트러블슈팅

트러블슈팅

GitHub Actions CI/CD 자동 배포 시 @Value 값 주입 문제 해결하기

저희 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 @Value, static 정적 바인딩 오류 해결하기

이슈👉 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..

트러블슈팅

JavaBeans Convention - boolean 필드에서 발생하는 변수명 변경 문제 해결

가천-카카오엔터프라이즈 SW 아카데미를 참여하면서, 겪은 에러 상황에 대해 트러블 슈팅을 작성하고자 합니다.이슈 설명👉 API를 작성하면서 목록 데이터를 페이징하여 전달해줘야 했습니다. 페이징 중 Slice의 정보만 필요하여, hasNext, isFirst, isLast의 값을 DTO에 담아서 응답 값을 전달하였습니다.하지만, Swagger로 테스트를 하면 계속해서 isFirst → First, isLast → Last로 응답하는 이슈가 있었습니다. 문제 분석👉 ‘JavaBeans Convention’ 처리 방식에 의해 is 키워드가 제거되는 문제 Java Beans 컨벤션에 따라 boolean 타입의 필드에 대한 getter 메서드는 is로 시작합니다. boolean isLast 필드의 경우, ge..

트러블슈팅

[트러블슈팅] Spring DateTimeFormatter 생성 비용 최적화

문제 상황Repository에서 (1) 문자열의 값을 특정 date 타입으로 변경하거나 (2) 현재 시간을 특정 date로 변경하기 위해서 DateTimeFormatter를 사용했습니다. 쿼리에 그대로 DateTimeFormatter.ofPattern()을 사용하면 DateTimeFormatter 객체가 여러 번 생성되고 날짜 패턴이 중복으로 하드코딩되는 문제가 있었습니다.그래서 이를 Util 클래스에 static으로 만들어 둔 다음 하나의 DateTimeFormatter를 사용하려고 했습니다.public static DateTimeFormatter hmFormatter() { return DateTimeFormatter.ofPattern("HH:mm");}public static DateTimeFo..

kylo
'트러블슈팅' 카테고리의 글 목록