본문 바로가기

스프링 관련63

API 만들 때 생길 수 있는 문제 (지연 로딩과 조회 성능 최적화) 쿼리 방식 선택 권장 순서 1. 우선 엔티티를 DTO로 변환하는 방법을 선택한다. 2. 필요시 페치 조인으로 성능을 최적화 한다. -> 대부분의 성능 이슈가 해결된다. 3. 그래도 안되면 DTO 로 직접 조회한다. 4. 그래도 안되면 JPA가 제공하는 네이티브 SQL이나 스프링 JDBC Template을 사용해서 SQL을 직접 사용한다. 1. Entity 순환참조 문제 (양방향 연관관계, 무한루프) 해결 -> 양방향 연관관계에서 한쪽은 @JsonIgnore 해야 한다. (json 응답 만들 때 관계를 끊어줘야 한다.) @JsonIgnore @OneToMany(mappedBy = "member") private List orders = new ArrayList(); 궁금증 : 그런데 이 문제는 HTTP R.. 2022. 8. 28.
springboot test data.sql 넣는 방법 https://wadekang.tistory.com/39 Spring JUnit5 Sql script로 테스트 데이터 불러오기 테스트를 할 때 sql로 미리 데이터를 insert 하고 해당 데이터로 테스트를 진행하고 싶을 경우 다음과 같이 설정하면 된다. 먼저 테스트 폴더에 resources 폴더를 만들어서 applciation.yml (or properties)을.. wadekang.tistory.com springboot test data.sql 넣는 방법 2022. 8. 25.
3. Repository JPA (Hibernate-하이버네이트) QueryMethod (Spring Data JPA 라이브러리 필요) : 쿼리 메소드는 스프링 Data JPA에서 제공하는 핵심 기능 중 하나로 Repository 인터페이스에 간단한 네이밍 룰을 이용하여 메소드를 작성하면 원하는 쿼리를 실행할 수 있다. JPQL (Spring Data JPA 라이브러리 필요) QueryDsl (별도 QueryDsl 라이브러리 import 필요) 따라하기 1. application.yml 설정정보 복붙하여 업데이트 h2 DB 관련 다양한 편의 설정 + url으로 h2-console 바로 접근할 수 있게 해주는 설정 127.0.0.1:8081/h2-console server: port: 8081 spring: application:.. 2022. 5. 24.
2. Controller Test (Get/Post/Put/Delete) 1. controller/test, dto/test, repository, service 패키지 생성하고, TestDto.java, TestController.java 파일 생성 후 아래 코드 참조하여 작성 public class TestDto { int id; String name; int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(.. 2022. 5. 23.