전체 글
-
[Intellij] Intellij에서 ERD 이쁘게 만드는 법Tool/Intellij 2021. 11. 29. 00:45
Intellij 에서 ERD 만드는 법 이번 글에서는 Intellij로 ERD를 이쁘게 만드는 법이 있어서 공유해보려 합니다! (대신 제가 알기로는 Ultimate 사용자만 가능한 것으로 알고 있습니다.😅) Intellij 오른쪽에 보면 위와 같이 DB 관련 설정을 할 수 있는 곳이 있는데요. 위에 보이는 순서대로 누르겠습니다! URL: jdbc:mysql://myEndPoint.ap-northeast-2.rds.amazonaws.com 만약 AWS RDS를 사용한다면 URL에 위의 형태와 같은 MySQL EndPoint 주소가 있을 것인데요. 그 주소를 위의 형태처럼 URL에 적겠습니다. 그리고 Driver는 저는 그냥 MySQL을 사용해서 MySQL을 찾아서 선택했습니다. URL을 잘 입력했다면 위와..
-
[Spring] Transactional Propagation 정리하기Server/Spring 2021. 11. 28. 23:52
@Transactional Propagation 알아보기 이번 글에서는 Spring Transactional 어노테이션에서 propagation 특징에 대해서 정리해보려 합니다. Propagation 옵션 설명 REQUIRED 기본 옵션 부모 트랜잭션이 존재한다면 부모 트랜잭션에 합류, 그렇지 않다면 새로운 트랜잭션을 만든다. 중간에 자식/부모에서 rollback이 발생된다면 자식과 부모 모두 rollback 한다. REQUIRES_NEW 무조건 새로운 트랜잭션을 만든다. nested한 방식으로 메소드 호출이 이루어지더라도 rollback은 각각 이루어 진다. MANDATORY 무조건 부모 트랜잭션에 합류시킨다. 부모 트랜잭션이 존재하지 않는다면 예외를 발생시킨다. SUPPORTS 메소드가 트랜잭션을 필..
-
[Spring] Test에서 public이 아닌 필드 Reflection 으로 값 넣어주는 법Server/Spring 2021. 11. 26. 21:21
Test에서 public이 아닌 필드를 Reflection 으로 값 넣어주는 법 이번 글에서는 테스트 코드를 작성하면서 public이 아닌 필드에 값을 넣어주어야 하는 상황에서 Reflection을 사용해서 값을 넣어주는 법에 대해서 정리해보겠습니다. 이번 글은 Reflection이 무엇인지 설명하는 글은 아니다 보니 Reflection을 알고 싶다면 Reflection 알아보기 를 참고하시면 좋을 거 같습니다. 먼저 제가 진행하고 있는 프로젝트에서 겪은 상황에 대해서 공유해보겠습니다. 현재 Repository는 Mockito를 사용해서 Mocking 하고 Service Layer의 메소드만 Unit Test를 해보려 하고 있습니다. 내부 로직이 없고 단순히 Entity -> DTO로 변환하는 메소드 입..
-
[JPA] Fetch Join 할 때 MultipleBagFetchException 해결하는 법Server/JPA 2021. 11. 24. 14:53
Spring Data JPA에서 MultiBagFetchException 해결하기 이번 글에서는 JPA를 사용한지 얼마 안된 초보자 입장에서 겪은 어려움을 공유하고 어떻게 해결해나갔는지 공유하며 생각을 정리해보려 합니다. 위의 화면에 대한 API를 만들어야 하는 상황입니다. 위의 뷰에서는 내가 팔로우 하고 있는 사람이 작성한 게시글이 나타나야 합니다. View를 보면서 DB Table을 간단하게 같이 보겠습니다. 하나의 게시글 : 여러 장의 사진 (1 : N) 하나의 게시글 : 여러 개의 가게 평가 해시 태그 (1 : N) 하나의 게시글 : 같이 가게를 간 사람들의 닉네임 (1 : N) 위의 조건에 해당하는 데이터를 다 가져와야 하나의 Post(게시글)을 보여줄 수 있습니다. 즉, JOIN이 꽤 많이 들..