1. 개요 Spring AOP(Aspect-Oriented Programming)를 활용하면, 권한 체크 로직을 모든 컨트롤러 메서드마다 반복해서 작성할 필요 없이 관점 지향 프로그래밍(Aspect-Oriented Programming) 방식으로 깔끔하게 분리할 수 있다.Spring AOP를 이용하여 API 호출 시 특정 역할(Role)만 접근 가능하도록 제한하는 방법을 정리하겠다. 2. 구현2 - 1. @RequireRole 어노테이션 생성 먼저, 권한 체크를 적용할 메서드에 사용할 커스텀 어노테이션을 생성한다.package com.example.infra.aspect;import java.lang.annotation.ElementType;import java.lang.annotation.Retenti..
1. 문제 상황 Kafka topic에 이벤트를 발행하기 위해서는 java 객체를 JSON 으로 직렬화하는 과정이 필요하다.이 때 변환하려는 이벤트에 LocalDateTime 타입의 필드가 있었고, 직렬화하는 과정에서 문제가 발생했다. ReservationCreatedEventpublic record ReservationCreatedEvent( UUID reservationId, Long userId, UUID restaurantScheduleId, LocalDateTime createdAt, // LocalDateTime LocalDateTime expiredAt // LocalDateTime) createdAt, expiredAt 이라는..
1. Snake Case Snake Case는 프로그래밍에서 변수, 함수, 파일명 등 이름을 작성할 때단어 사이를 밑줄('_')로 구분하는 네이밍 규칙이다.모든 문자를 소문자로 작성하며, 공백 대신 밑줄을 사용하는 것이 특징인데, 예를 들어, user_namephone_number위와 같이 작성하면 Snake Case 를 따른 것이다. 일반적으로 JSON 데이터 포맷, 데이터베이스에서 주로 사용되는데, Java를 주로 쓰는 나로서는 Java의 기본 규칙인 Came Case와 충돌(?)하게 되어 문제가 될 때가 있다.물론, 문제라고 할 것 까지는 없는데,팀 프로젝트를 진행할 때는 코드 스타일을 정확하게 짚고 넘어가는 것이 협업하는 데 좋긴 할 것이다. 2. 팀 프로젝트 식당 예약, 줄서기 프로그램을 개발..