전체 글42 [SpringDataJpa] QueryDsl 정리 HTML 삽입 미리보기할 수 없는 소스 1. QueryDsl 정의 JPA를 사용하다보면 method query나 jpql로 해결하기 애매한 문제들이 발생한다. 또한 jpql, mybatis처럼 문자열을 통해 쿼리를 작성하다 보면 문법에 의한 에러를 한번쯤은 겪게 되는데 QueryDsl을 사용하면 쿼리를 메소드를 통해 작성할 수 있고 자동완성, 컴파일 단계에서의 타입 체크등을 할 수 있어 더욱 편하게 쿼리를 작성할 수 있게된다. 2. QueryDsl 사용 이유 위에서 'JPA를 사용하다 보면 method query나 jpql로 해결하기 애매한 문제들' 이 발생한다고 하였다. 내가 겪은 문제는 동적 쿼리에 대한 처리였다. 자세한 상황은 아래와 같다. @GetMapping("/board") public Lis.. 2023. 8. 10. [SpringDataJpa] findAll() n+1 문제 해결 HTML 삽입미리보기할 수 없는 소스 1. findAll() n+1 발생 원인 토의 프로젝트를 하며 게시판 목록 조회를 하던 중 findAll()을 사용하였는데 연관관계인 Member 조회 쿼리가 미친듯이 날라가는 것을 보고 멘붕이 왔다. 내가 알고 있는 배경 지식으로는 도무지 이해가 안 가는 상황이었다. 환경은 다음과 같다. BoardEntity @DynamicInsert // null 값 전달 시 insert 컬럼에서 제외,=> Default 값 적용 가능 @Entity @Getter @Table(name = "board") @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString public cl.. 2023. 8. 9. [Spring] CustomReponseEntity HTML 삽입 미리보기할 수 없는 소스 1. CustomResponseEntity이란 API서버를 만들 때 json형태의 어떠한 값들을 리턴한다. 이때 우리는 여러가지의 객체들을 json으로 변환을 하고 추가로 statusCode, 메시지들을 클라이언트에게 전달한다. 이 값들의 어느 정도 공통적인 형태로 규격화 시키기 위하여 만든 것을 CustomReponseEntity라고 명칭하고 있으며, 해당 명칭은 사용자마다 다르고 그 공통적인 형태를 만드는 것도 사람마다 가지각색이라 정답이 없는 거 같다. 2. 다양한 형태의 API 리턴 값 API서버를 만들다보면 기본적으로 목록,단일 객체,등록,수정,삭제 등을 구현하게 된다. 그것들에 대한 리턴 값은 어떻게 되는지 확인 해보자. 2-1. 목록 조회 시 리턴 값 .. 2023. 8. 9. [스프링부트] junit 테스트 코드(5/5) - 예외 테스트 HTML 삽입 미리보기할 수 없는 소스 1. 예외 테스트란 실제 코드를 작성할 때 개발자는 예외처리를 하게 된다. 그에 따라 테스트코드를 작성할 때 예외 처리가 개발자가 의도한대로 동작하는지에 대해서도 테스트 코드를 통한 검증이 필요하다. 2. 예외 테스트 작성 방법 Service코드 /** * 게시판 생성 * @param boardCreateDto */ public Board createBoard(BoardCreateDto boardCreateDto) { // memberNo를 통해 회원 엔티티 조회 => 조회 결과가 없다면 예외 Member findMember = memberRepository.findById(boardCreateDto.getMemberNo()).orElseThrow(() -> new.. 2023. 8. 8. 이전 1 ··· 5 6 7 8 9 10 11 다음