Java
[Spring] spring-data-jpa Auditing 사용하기
Auditing 테이블을 설계할 때, 공통적으로 들어가는 컬럼이있는데, 바로 생성일자,수정일자,생성자,수정자 이다. 거의 모든 테이블에 들어가있고 정렬, 필터, 또는 검증? 도 할 수 있는 꽤나 중요한 정보들이다. 하지만 서비스를 요청을 하거나 응답을 줄 때, 필요한 정보가 아니기도하다. 서비스에는 영향이없지만 필요하고 중요한? 데이터를 spring-data-jpa 모듈에서 자동으로 넣을 수 있도록 제공을해준다. 해당 기능이 바로 Auditing이다. 사용하기 1. Main App 클래스에 @EnableJpaAuditing 추가하기 @EnableJpaAuditing @SpringBootApplication public class Application { 2. 엔티티 클래스 위에 @EntityListene..
2023.10.27 TIL
오늘 한 것 팀 프로젝트 개인 프로젝트 (커뮤니티) 팀 프로젝트 구현을 모두 끝내고 README에 내용도 채울겸 처음 설계하며 그렸던 플로우차트와 클래스다이어그램을 좀 더 다듬고 정리하는 시간을 가졌다. 팀원 모두 각자 맡은 역할을 잘해주어서 무난하게 잘 끝낸 것 같다. 다음 과제부터는 팀이 바뀌는데 새로운 팀에 잘 적응해서 더 나은 결과물을 내보고 싶다. 개인 프로젝트 팀 프로젝트를 끝내고 하고있던 개인 프로젝트를 공부를하며 진행하였다. 오늘은 각 테이블들에 존재하는 공통 컬럼들을 spring-data-jpa 모듈에서 제공하는 기능인 auditing을 설정하였다. 기본적으로 spring docs 를 참고하였고, https://docs.spring.io/spring-data/jpa/docs/1.7.0.D..
2023-10-24 TIL
오늘 한 것 팀 프로젝트 (콘솔 호텔 예약 프로그램) 개인 프로젝트 팀 프로젝트 오늘부터 팀프로젝트로 콘솔 호텔 예약 프로그램을 구현하기로 했다. 일정과 역할 분담을 위해 우선 요구사항을 보며 게더타운에 칠판?에 팀원들과 같이 러프하게 구조를 잡아봤다. 역할 분담은 서비스별로 나눴고 내가 맡은 역할은 예약 취소 기능 구현이다. 내일 TIL에 구현 과정을 작성할 예정이다~ 개인 프로젝트 WebClient request와 response 데이터 로깅 방법 외부 API 요청을 할 일이 생겨 restTemplate 대신 webClient를 써보았다. API 응답을 잘 못받아와서 요청, 응답에 대한 데이터 확인을 위해 찾아보니 filter 체이닝을 하면서 로깅하는 방법들이 있던데, 좀 더 찾아보니 간단하게 구현하..
2023.10.20 TIL
오늘 한 것 콘솔 키오스그 주문 프로그램 구현 어제에 이어서 키오스크 프로그램을 계속 구현하고있다 오늘은 필수 요구사항에 필요한 기능을 모두 구현해서 선택 요구사항 기능을 구현을 했다. 기존 구매 상품을 선택할 때, 옵션 을 추가하는 기능인데 기능을 구현하면서 문제가 조금 발생했다. 요구사항은 이렇다. 1. 상품 선택시 옵션을 추가 선택 2. 주문 시 상품 리스트를 볼 때 옵션별로 나누기. 문제사항 1. 구매 로직 기존에 구매까지의 프로세스는 이렇다 키오스크 실행 -> 각 메뉴(커피,음료,케이크) 객체 별로 상품 리스트 생성 -> 상품리스트 중 상품 선택 -> 해당 상품 주문객체에 추가(장바구니) -> 주문처리 여기서 문제는 상품을 선택하고 옵션을 추가해줄 때 발생했다. 기존에 상품은 키오스크 초기화 시..
2023.10.16 TIL
목차오늘 배운 것 Java 공부제네릭 (Generic)제네릭 (Generic)어느정도 자바와 친해졌다고 생각하지만 그럼에도 가끔 사용하면서 헷갈리는 것들이 있다..오늘은 그 중 하나인 제네릭에 대해 강의를 들으며 개념을 쌓아나갔다. 제네릭은 클래스, 인터페이스 그리고 메소드를 정의할 때, 타입을 파라미터로 사용할 수 있도록 해준다.=> 어떤 클래스, 인터페이스, 메서드를 이용할 때, 잘못된 타입의 데이터로 사용될 때 일어날 수 있는 문제를 컴파일 하는 시점에 확인하고 제거할 수 있게 하는 거다. 간단하게 예를 들어 Integer 리스트를 받아 해당 Element를 Long 타입으로 변환하여 리턴하는 메서드를 작성한다면 public static List convertIntToLong(List i..
클래스의 생성자
생성자? 인스턴스화 한 오브젝트인 class() 생성자로 인스턴스를 생성하는 명령어 class name =new class() 를 실행할 때 클래스를 접근하게 되면서 사용하게 된다. 이 때 생성자 메소드를 호출하면서 클래스는 힙 영역에 할당되고 자동으로 초기화를 시켜준다. 결국 생성자는 클래스를 힙 영역에 할당하고 초기화를 해주는 작업을 하는 메소드이다. 생성자는 보통 기본 생성자와 필드 생성자로 나뉜다. 기본 생성자 클래스가 호출될 때 가장 먼저 생성자를 확인하는데 생성자를 명시하지 않았으면 자동으로 생성되어 클래스를 초기화 작업을 수행하게 되는데 이 때 컴파일은 클래스 구성 요소들을 차례대로 읽어 초기화를 수행한다. 생성자를 명시하지않고 자동으로 호출할 경우 인스턴스에 필요한 요소들을 읽어 초기화 작..