Back-end/Spring

[JPA] jpa 2일차

moguogu 2021. 7. 27. 20:37

JPA Day-2

진도 [생성 api ~ 조회 api]

  1. api 개발시 entity를 외부에 노출하거나, 파라미터로 받으면 안된다.

    • entity를 그대로 사용하면 중간에 변동성 때문에 api 호출시 깨질 수 있다.
    • DTO를 파라미터로 사용하여 받는다.
  2. 수정 api 개발시 command와 query를 분리하여 개발할 때 유지보수성이 증가한다.

  1. entity를 직접 반환하면 안된다

    • @JsonIgnore annotation을 사용하면 반환 시 없는 경우 나타나지 않는다. 다만 해당 어노테이션을 사용하는 것이 모든 케이스를 막기는 어렵다

    • DTO를 사용하여 반환해야한다.

        public Result membersV2() {
            List<Member> findMembers = memberService.findMembers();
            //엔티티 -> DTO 변환
            List<MemberDto> collect = findMembers.stream()
            .map(m -> new MemberDto(m.getName()))
            .collect(Collectors.toList());
            return new Result(collect);
        }
      
        @Data
        @AllArgsConstructor
        class Result<T> {
            private T data;
        }

출처

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

'Back-end > Spring' 카테고리의 다른 글

[Spring boot + MongoDB + MySQL] DB 2개 연동하기  (0) 2022.07.26
[JPA] jpa 1일차  (0) 2021.07.27