본문 바로가기

spring boot12

spring jpa의 mappedBy 알아보기 본 글은 정확하지 않을 수 있습니다. 참고용으로만 봐주시면 감사하겠습니다. 인프런의 김영한님 강의 [자바 ORM 표준 JPA 프로그래밍 - 기본편] 을 보고 정리한 내용입니다. 미리 보기 JPA의 양방향 관계에서 연관관계의 주인을 정하기 mappedBy를 사용한다. // 반 엔티티 @Entity public class Room { @Id private Long id; @OneToMany(mappedBy = "room") // 연관관계 주인의 이름 지정 private List students = new ArrayList(); } // 학생 엔티티 @Entity public class Student { @Id private Long id; private String name; @ManyToOne @JoinC.. 2023. 1. 26.
spring rest docs 적용방법 본 글은 정확하지 않을 수 있습니다. 참고용으로만 봐주시면 감사하겠습니다. spring rest docs 공식 사이트 https://spring.io/projects/spring-restdocs spring boot 2.7.5 gradle 7.6 Junit5 MvcMock 도구 선정 스프링에는 문서화를 도와주는 도구로 크게 Spring REST Docs와 Swagger가 존재한다. Swagger Spring REST Docs 장점 1. 동적 api 문서 페이지를 제공하여 직접 요청을 보내 테스트할 수 있다. 2. 문서 적용이 간단하다. 1. 운영 코드에 영향을 주지 않는다. 2. 테스트 코드를 성공해야 문서를 작성할 수 있다. (테스트 강요) 단점 1. 운영 코드에 문서관련 로직을 추가해야 된다. 1. .. 2023. 1. 21.
spring 테스트 마다 table 초기화 시키는 방법 각 테스트 케이스를 개별적으로 실행할 경우 잘 통과되는데, 클래스로 전체를 한 번에 실행할 경우 실패하는 경우가 있다. 나의 경우 엔티티의 id값이 테스트를 진행하면서 증가되는 문제점이 있었다. (물론 개별적으로 진행하면 성공함) 이러한 문제점을 해결하기 위해 매 테스트마다 테이블 데이터를 초기화시켜 주는 작업을 추가시켜 주었다. // 원하는 결과물 @BeforeEach void beforeEach() { databaseCleaner.execute(); } DatabaseCleaner 클래스 생성 전체적인 흐름 최초로 한 번 db에 들어있는 table 이름을 받아서 list에 담아줍니다. 매번 테스트가 진행되기 전 table의 데이터를 초기화해줍니다. 전체 코드 @Component public class.. 2023. 1. 17.
dto(Data Transfer Object)를 사용하는 이유 해당 블로그는 초보 개발 지망생의 글로 정확하지 않을 수 있습니다. dto(Data Transfer Object) 계층 간 데이터 교환을 위한 객체라고 한다. 이렇게만 듣고 이해가 된다면 참 좋을 텐데... 나는 여태까지 DTO의 존재를 모르는 상태로 프로젝트를 진행했고, 딱히 dto의 필요성을 느끼지 못하였다. 그러다가 코드 리뷰를 하게 되면서 개인적으로 잘한다고 생각하는 분들이 공통적으로 dto를 사용한다는 것을 알게 되었고 나도 따라 쓰기로 결정하였다. 그저 dto클래스만 생성해주면 된다고 생각하였지만 그밖에 신경 써줘야 되는 부분이 많았다. 이때부터 굳이? 왜 만들어줘야 되는 거지... dto를 만들고 코드의 양은 더 늘었고 뭔가 의존성 관계도 뒤죽박죽 된 기분이었다. 역시 무작정 따라 하는 건 .. 2022. 11. 3.
반응형