자바 4

[JPA] Auditing으로 저장 할 생성/수정 시간 DateTimeFormatter로 포매팅하기

엔티티가 생성되고(CreatedDate), 변경되는 시점(LastModifiedDate)을 자동으로 감지하여 column으로 저장하기 위해 Auditing 클래스인 BaseTimeEntity 클래스를 만들었다. 아래처럼 @CreatedDate 와 @LastModifiedDate 를 사용하여 LocalDateTime을 그대로 받으면 @CreatedDate private LocalDateTime createdDate; @LastModifiedDate private LocalDateTime modifyDate; 이런 형식으로 날짜, 시간이 받아진다 2023-08-19T16:23:47.960583 알아보기도 힘들고 밀리세컨드 단위가 필요없어서 년-월-일 시:분:초 형식으로 변경하기로 하였다. 형식을 본인이 받고..

프로그래밍/JPA 2023.08.21

[Spring] 패키지 구조 - 계층형/도메인형

Spring 패키지 구조는 계층형 / 도메인형 으로 나눌 수 있습니다. 계층형 구조 계층형으로 디렉터리를 구성합니다. - controller, service, repository, domain, exception, dao ... 등 장점 구조 파악이 빠르다 단점 디렉토리에 클래스들이 너무 많이 모인다. 도메인형 구조 도메인 기준으로 디렉터리를 구성합니다. - order, member, item ... 등 장점 관련 코드들이 응집해 있다. 단점 구조 파악이 어렵다.

[Spring] 빈 생명주기(Bean LifeCycle) 콜백 개념 및 방식

애플리케이션 시작시점 및 종료시점에 작업이 필요한 경우가 있습니다. ex) 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결 ex) 종료 시점에 연결 종료 스프링을 통해 초기화 작업 및 종료작업을 어떻게 진행하는지 알아보겠습니다. 스프링 빈의 생명주기 스프링 빈은 다음과 같은 생명주기를 가집니다. 객체생성 -> 의존관계 주입 스프링 빈은 객체를 생성하고 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료 되는데 개발자가 의존관계 주입이 끝난 시점을 어떻게 알 수 있을까요? 스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 스프링은 의존..

[Java] 추상클래스(abstract class)와 인터페이스(interface) 비교 및 활용

자바를 학습하다보면 추상클래스와 인터페이스를 마주하게 되는데 추상클래스와 인터페이스는 존재 목적이 다름에도 불구하고 공통점이 많아서 헷갈리기도 하고 어느 상황에 사용해야할지 감 잡기가 참 어렵습니다. 추상클래스와 인터페이스의 공통점/차이점을 비교해보고 어느상황에 활용해야할지 한번 생각해보겠습니다. 추상클래스와 인터페이스의 공통점/차이점 추상클래스 인터페이스 자기 자신이 직접 객체를 생성할 수 없다 추상 메소드 선언이 가능하다 클래스가 가지는 모든 속성과 기능을 가진다 상수, 추상 메소드만 가진다 다중 상속이 불가능하다 다중 상속이 가능하다 첫번째 차이점을 보겠습니다. 추상클래스 : 클래스가 가지는 모든 속성과 기능을 가진다. 인터페이스 : 상수, 추상 메소드만 가진다. 둘 다 추상메소드 선언이 가능하지만..