본문 바로가기

프로그래밍/TIL6

[TIL] JpaAuditing 설정하고 사용하기 스프링부트 프로젝트에서 JpaAuditing 설정과 사용 JPA Auditing 이란? Spring Data JPA를 사용하여 Entity의 생성일과 수정일을 자동으로 추적하여 업데이트해준다. Database Entity의 변경이력을 좀 더 쉽게 관리할 수 있다. JPA 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' JPA Auditing 활성화 @EnableJpaAuditing 어노테이션을 메인 클래스 또는 별도의 설정 클래스에 추가한다. @EnableJpaAuditing @SpringBootApplication public class Application { public static void main(Stri.. 2024. 2. 28.
[TIL] LocalDateTime to String, String to LocalDateTime Java Spring 프로젝트 실습을 진행하다 보면 LocalDateTime을 사용할 일이 잦다. 사용자의 가입일자, 게시글의 등록일자, 변경일자 등 정확한 날짜와 시간을 데이터베이스에 저장하기 위해서 쓰인다. 이번 토이프로젝트에서도 여행정보를 저장할 때 여정정보를 저장할 때 날짜와 시간 부분에 많이 사용했다. 팀원들끼리 소통을 하면서 진행했지만 역시 아무 일도 없이 지나갈 수는 없는 법. Entity와 DTO를 만드는 과정에서 Entity에서는 LocalDateTime으로 만들고 DTO에서는 String으로 만드는 바람에 여러 가지 해결방법이 있겠지만 1차적으로 데이터타입을 수정하지 않고 DTO에서 Entity로 변환해 주는 과정에서 String을 LocalDateTime으로 변환하는 작업을 수행했다... 2024. 1. 31.
[TIL] Spring Legacy - Java의 enum값을 MySQL 넣기 스프링부트에서 Java의 enum과 데이터베이스의 VARCHAR 타입 연결하는 포스팅은 이전 미니게시판 사이드프로젝트에서 포스팅을 했다. 스프링부트의 메이저 버전에 따라 사용법이 다르기는 하지만.. 2024.01.25 - [프로그래밍/Project] - [Project01] MiniBoard(3) - Custom Annotation 생성, 사용자 Model 생성 [Project01] MiniBoard(3) - Custom Annotation 생성, 사용자 Model 생성 Custom Annotation 생성 각 클래스의 역할 세분화를 위해 Business, Converter Annotation을 만든다. 요청 로직의 흐름은 Client -> Controller -> Business -> Service -.. 2024. 1. 30.
[TIL] LocalDate, LocalTime, LocalDateTime Java version 8 이상에서만 사용이 가능한 api이다. [LocalDate] 날짜 정보만 출력한다. ex) 2024-01-15 [LocalTime] 시간 정보만 출력한다. ex) 11:10:25 [LocalDateTime] 날짜와 시간 정보 모두 출력한다. ex) 2020-10-12T12:32:32.222 [적용] 진행 중인 프로젝트에서 여행 시작일자, 종료일자, 체크인 시간, 체크아웃 시간 등 시간에 대한 모든 타입을 LocalDateTime으로 지정하고, MySQL타입에서는 DATETIME으로 지정했다. 여행 정보를 저장할 때 문제가 발생했다. 사용자의 가입을 처리할 때에는 LocalDateTime.now()를 사용해서 문제없이 지나갔지만, 날짜만 필요한 여행 시작일자와 종료일자에서는 Loc.. 2024. 1. 29.
[TIL] MyBatis 그리고 ObjectMapper 패캠 백엔드 부트캠프 토이프로젝트 2차가 시작되었다. 온라인 강의 진도 기준으로 스트링부트를 이용한 프로젝트를 진행하고 있었지만, 실강 기준으로 프로젝트가 나오다 보니 헷갈린다. 토이 1차의 자바만을 이용한 여행 웹애플리케이션 콘셉트를 스프링과 MyBatis를 사용해서 API 개발이 목적이다. 왜 안부트요??? 달성목표는 복잡하지 않다. 여행과 여정의 정보를 1:n으로 관계로 설계 여행 정보 등록, 조회, 수정 여행에 포함된 여정의 정보 등록, 조회, 수정 회원은 여러 여행 기록을 등록할 수 있습니다. (회원은 고려하지 않는다.) 회원은 고려하지 않는다...? 회원이 없다면 정보 등록은 누가 하나요??? 더하면 더했지 덜하면 직성이 안 풀리기에 회원등록부터 시작하겠습니다^^ A Few Moments La.. 2024. 1. 28.
[TIL] Spring Annotation Target : 어노테이션을 붙일 수 있는 위치 @Bean Target : METHOD (메서드 레벨) 개발자 본인이 직접 제어할 수 없는 Method에 사용한다. 일반적으로 외부 라이브러리를 Bean으로 등록할 때 사용한다. @Component Target : TYPE (Class, Interface, enum 등 클래스 레벨) 개발자가 직접 개발해서 제어할 수 있는 클래스를 Bean으로 등록할 때 사용한다. @Controller Bean으로 등록되어 View를 렌더링 해서 보여준다. 핸들러메서드에서 ViewName을 반환한다. @RequestMapping("/home") public String index() { return "index"; } 뷰페이지에 데이터를 전달하기 위한 데이터바인딩은 Mode.. 2024. 1. 26.