전체 글
-
[Java] Thread synchronized, Lock 개념 정리하기카테고리 없음 2021. 11. 23. 20:52
Java Thread Lock 개념 정리 Java에서 synchronized 키워드를 사용하는 방법은 크게 3가지로 나눌 수 있습니다. 어쩌면 단순한 내용이지만 하나씩 Lock의 개념을 이해하면서 정리해보겠습니다. synchronized 메소드 public class MusicExam { public static void main(String[] args) { MusicBox box = new MusicBox(); MusicPlayer musicPlayer1 = new MusicPlayer(1, box); MusicPlayer musicPlayer2 = new MusicPlayer(2, box); musicPlayer1.start(); musicPlayer2.start(); } } public class..
-
[Spring] @Builder를 사용할 때 고려해야 할 생성자 문제 알아보기Server/Spring Boot 2021. 11. 21. 00:48
@Builder, @AllArgsConstructor 알아보기 이번 글에서는 @Builder, @AllArgsConstructor, @NoArgsConstructor 애노테이션을 사용할 때 알아야 할 점에 대해서 정리해보겠습니다. 위와 같이 @Builder, @NoArgsConstructor를 사용했을 때 Lombok에서 만들어주는 메소드를 알아보겠습니다. 만들어주는 메소드를 보면 기본 생성자, 빌더 관련 메소드들을 만들어주는 것을 볼 수 있습니다. Builder가 어떤 것인지 안다면 전체 생성자가 필요하다는 것을 알 수 있습니다. (Builder가 궁금하다면 여기 에서 확인하실 수 있습니다.) Builder란 생성자의 매개변수가 많을 때 좀 더 편리하게 객체를 만들 수 있게 도와주는 것이고, Build..
-
[Spring] 프로젝트에서 MyBatis ResultMap을 사용하게된 이유Server/Spring 2021. 11. 18. 22:05
MyBatis ResultMap 사용하게 된 이유 이번 글에서는 프로젝트에서 MyBatis를 사용하면서 ResultMap을 사용한 것에 대해서 정리해보겠습니다.(ResultMap이 어떤 것인지?를 정리한 것이라기 보다 프로젝트에서 왜 ResultMap을 썼고 어떻게 적용했는지 정도만 정리해두려 작성하는 글입니다!) MyBatis 사용하는 법이 궁금하다면 여기 에서 확인할 수 있습니다. 제가 프로젝트에서 사용하고 있는 Layer를 간단하게 그리면 위와 같습니다. 즉, 클라이언트에게 받아온 DTO를 Service Layer에서 DTO -> Entity 과정을 거친 후에 DB Layer에 영속화 시키는 작업을 하고 있습니다. 그리고 DB Layer에서 조회한 결과들도 Service Layer에서 Entity ..
-
[Spring] Spring Data JPA에서 Auditing 사용하는 법Server/JPA 2021. 11. 9. 12:05
JPA AuditingEntityListener 알아보기 위의 코드는 제가 작성했던 코드인데요. 누군가 저에게 아래와 같이 물었습니다. LocalDateTime.now() 코드는 왜 작성한거야? 위의 질문을 듣고 아.. BaseEntity를 통해서 생성시간, 수정시간을 저장하기 위해서 만들었는데 now() 코드는 없어도 되려나? 라는 생각이 들었습니다. 지금 생각하면 당연히 없어도 될 코드인데 왜 저렇게 작성했나 싶지만.. 어쨋든 AuditingEntityListener가 어떻게 동작하는지 잘 모르고 사용하고 있는 거 같아서 이번 글에서는 JPA AuditingEntityListener를 어떻게 사용하고 어떤 원리로 동작하는 것인지 알아보겠습니다. JPA Auditing 이란? 언제 만들어졌는지, 언제 ..