전체 글
Fetch Join 사용 시 조건문(Condition) 올바르게 사용하기 - 실습으로 배우는 JPA 4편
코드는 Github을 통해 확인할 수 있습니다. 이 글은 Fetch Join에 조건문을 사용해보면서 어떠한 상황에서 문제가 생기는 지 알아보는 예제입니다. Fetch Join은 일대다 조인 시 한계점이 많아서 default_batch_fetch_size를 설정하는 것이 가장 좋은 방법이지만 드물게나마 Fetch Join에 조건문을 걸고 이용해보고 싶다면 어떠한 방법으로 사용해야 올바른 방법인지 알 수 있습니다. 제대로 설명이 될지는 모르겠으나 한번 시작해보겠습니다! 들어가기 전 Member Entity와 Order Entity를 아래와 같이 만들었습니다. 총 3명의 회원을 만들고 회원마다 각각 Apple, Banana, Orange를 주문한 상태입니다. Fetch Join 이란? Fetch Join은 N..
ModelMapper, MapStruct 빠른 기초 사용법
ModelMapper와 MapStruct는 하나의 객체의 값을 다른 객체에 바인딩 시킬 때 쓰인다. 보통 Entity로 가져온 데이터를 Response DTO에 바인딩 시킬 때 쓰는 라이브러리다. 아래와 같은 Member Entity의 값을 DTO로 넘기는 예제를 만들어보겠다. @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column private Long id; private String name; } 라이브러리 안쓰고 사용하기 @Getter public class MemberResponseDto { private String name private String author; public MemberResponseDto(Post..
Java에서 일급 객체(First-Class Citizen)와 일급 컬렉션(First-Class Collection)의 의미
이 글은 모든지 검색하면 나오는 도라에몽 향로님의 일급 컬렉션의 소개와 써야할 이유 글을 참조했습니다. 향로님의 글을 복붙한 글은 많았지만 왜 일급 컬렉션은 멤버변수가 1개만 존재해야 하는지, 일급이란 표현은 왜 썼는지에 대한 근원적인 궁금함이 해소하고자 써보는 글 입니다. 일단 그 시작은 왜 '일급'인지에 대한 궁금함에서 시작합니다. 일급(First-Class)이란? 일급이라는 표현은 '1등 시민, 2등 시민'이라는 용어에서 나온 표현입니다. 그걸 컴퓨터 용어에 최초로 접목시켜서 헷갈리게 만든 사람이 바로 아래 장발 신사분. 사회적으로 1등 시민은 언제 어디서든 차별을 받지 않는 시민을 말하고 2등 시민은 언제 어디서든 차별을 받는 시민을 말합니다. 그래서 컴퓨터 용어에서 '일급'이라는 표현은 위의 개..
@RequestBody, @ModelAttribute의 사용 이유와 목적, 활용
약 2년전에 관련 내용으로 포스팅 한 적이 있지만 그때는 사용 방법에 관한 포스팅이었고 지금은 사용법보다는 사용하는 목적, 이유 등의 차원에서 다시 정리하고자 한다. 결과부터 말하자면 @RequestBody 1. 클라이언트에서 서버로 Ajax등과 같은 비동기 요청 시 Json 타입으로 보낼 때 사용한다. 2. Rest Api에서 주로 사용한다. @ModelAttribute 1. 공통된 Model 값을 사용하고 싶을 때 쓰인다. 2. Client에서 Get 데이터를 보내고 싶을 때 사용한다. 3. SSR에서는 여러 화면에서 Form 양식을 재활용하고 싶을 때 사용한다. 4. 타임리프에서 Form 태그 기능(th:object), 세션, 검증과 같은 기능과 결합해서 사용한다. @RequestBody 사용 목적..