본문 바로가기

Spring72

DTO, VO 정리 DTO 정리 Data Transfer Object = 데이터를 전송해주는 객체 계층 간 데이터를 전송해주는 객채입니다. service, controller 간 데이터를 전송해줄수 있고, 통신할 때도 dto 를 사용할 수 있습니다. DTO 장점 비용 절감 client 와 server 간 통신은 시간이 오래 걸리는 작업입니다. 이 때, DTO 없이 데이터를 보낼려고 하면 여러 번의 통신이 발생할 수 있습니다. 이는 resource 낭비이며, 성능이 안좋습니다. dto 를 통해 여러 데이터를 한꺼번에 보낼 수 있기에 좋습니다. 직렬화에 대한 책임 통신을 할 떄, 데이터를 직렬화 해야 합니다. 직렬화란 object to byte[] 를 의미합니다. 이 떄, dto 가 없다면 직렬화하기 위해서 여러 계층에 직렬화.. 2021. 11. 7.
[spring 5편] spring annotation componentScan, bean 과 component 정리 목차는 spring series 목차 에 있습니다. @ComponentScan 쉽게 말해 Bean 이 될 대상들을 찾아 application context 에 등록을 해주는 역할을 합니다. @Component 어노테이션을 빈 등록 대상으로 인식하고 스캔합니다. @Component, @Controller, @Servicie, @Repository 선언된 클래스가 대상입니다. controller, serivce 등 annotation 에 선언된 것을 추적하면 @Component 로 선언된 것을 볼 수 있습니다. @Configuration 과 함꼐 사용하며, 아규먼트가 없다면 선언된 위치가 basePackages 입니다. @Configuration 은 bean 등록을 위한 설정파일 역할을 합니다. 옛날 spr.. 2021. 10. 24.
QuerydslPagingItemReader 병렬 처리 정리 source 는 Github 에 있습니다. QuerydslPagingItemReader 병렬 처리 가능한가? QuerydslPagingItemReader 는 querydsl 을 이용하여 db 데이터를 읽어올 때, 페이지 단위로 읽어오는 컴포넌트입니다. 상세 설명 QuerydslPagingItemReader 결론부터 얘기하면 QuerydslPagingItemReader 병렬 처리 시, thread-safe 합니다. 아래 소스를 보면 QuerydslPagingItemReader 는 AbstractPagingItemReader 상속받고 있습니다. spring-bagch 내부 엔진에서 AbstractPagingItemReader 의 doRead() 를 호출하고, doRead() 내에서 QuerydslPaging.. 2021. 9. 29.
[spring 6편] spring request 관련 정리 목차는 spring series 목차 에 있습니다. spring request annotation 정리 @RequestParam Http 요청 파라미터를 받기 위해서 spring 에서 사용하는 annotation 입니다. @RequestParam 은 값이 반드시 있어야 하며, 값이 없으면 400 Error 가 발생합니다. 값을 반드시 받지 않아도 되는 옵션이 있습니다 (required = false) 예를 들면, http://localhost:8080?page=2&size=10 get 방식으로 요청한다고 가정을 합니다. 위와 같은 url 이 있을 때 RequestParam 을 사용하면 값을 가져올 수 있습니다. // http://localhost:8080?page=2&size=10 @GetMapping(.. 2021. 8. 24.