저희 Glue 서비스에서는 application.yml과 같은 설정 파일은 Spring Cloud Config로부터 전달받아 각 마이크로 서비스에 적용하는 방식으로 구현하였습니다. Spring Cloud Config는 연결된 Github의 Private Repository에서 application.yml을 조회하고 name과 profile을 기준으로 각 spring cloud server에게 전달해줍니다. 저희 팀에서는 MSA 환경에서 application.yml을 Spring Cloud Config 서버를 통해 관리하도록 하였습니다. 이슈👉 Spring Cloud 프로젝트를 Github Actions로 CI/CD를 구축하는데 @Value 값이 초기화되지 않는 오류를 만났습니다.@Value로 설정된 부..
이슈👉 Spring Boot 프로젝트에서는 application.yml에 다양한 설정과 환경 변수처럼 프로젝트에 사용할 값을 지정할 수 있습니다.이를 @Value 어노테이션으로 값을 불러와 사용할 수 있습니다. Auth-Service에서 jwt secret, access-expiration-time, refresh-expiration-time의 값을 yml 파일에서 불러오며 사용하였습니다. 처음에 JWT를 생성하고 검증하는 JwtTokenProvider.class를 생성했을 때, jwt secret, access-expiration-time, refresh-expiration-time 값들은 변경되지 않는 값이고 다른 메서드에서 사용될 수 있도록 private static final로 설정하고 @Val..
가천-카카오엔터프라이즈 SW 아카데미를 참여하면서, 겪은 에러 상황에 대해 트러블 슈팅을 작성하고자 합니다.이슈 설명👉 API를 작성하면서 목록 데이터를 페이징하여 전달해줘야 했습니다. 페이징 중 Slice의 정보만 필요하여, hasNext, isFirst, isLast의 값을 DTO에 담아서 응답 값을 전달하였습니다.하지만, Swagger로 테스트를 하면 계속해서 isFirst → First, isLast → Last로 응답하는 이슈가 있었습니다. 문제 분석👉 ‘JavaBeans Convention’ 처리 방식에 의해 is 키워드가 제거되는 문제 Java Beans 컨벤션에 따라 boolean 타입의 필드에 대한 getter 메서드는 is로 시작합니다. boolean isLast 필드의 경우, ge..
문제 상황Repository에서 (1) 문자열의 값을 특정 date 타입으로 변경하거나 (2) 현재 시간을 특정 date로 변경하기 위해서 DateTimeFormatter를 사용했습니다. 쿼리에 그대로 DateTimeFormatter.ofPattern()을 사용하면 DateTimeFormatter 객체가 여러 번 생성되고 날짜 패턴이 중복으로 하드코딩되는 문제가 있었습니다.그래서 이를 Util 클래스에 static으로 만들어 둔 다음 하나의 DateTimeFormatter를 사용하려고 했습니다.public static DateTimeFormatter hmFormatter() { return DateTimeFormatter.ofPattern("HH:mm");}public static DateTimeFo..