본문 바로가기

Back-End22

헥사고날 아키텍처에서 도메인 중심적인 Update 수행 Update in Hexagonal Architecture헥사고날 아키텍쳐가 뭔지는 Skip 헥사고날 아키텍쳐로 프로젝트를 수행하던 도중, Update 관련 의문점이 발생했다.의문이 발생한 두개의 Case의 코드 먼저 보고가자Port Interface의 선언부와, DTO는 생략했다.기존 CodeCase 1: 약관 도메인 - 약관 수정약관을 서버에서 관리하는 것은 기획팀의 요청Application Module - AdminTermsService.javapublic void updateTerms(UpdateTermsRequest request) { Terms existingTerms = termsOutput.getTerms(request.termsId()); Terms updatedTerms = .. 2025. 7. 7.
[TroubleShotting] AWS Secret Manager로 p8 키 파일 관리 AWS Secret Manager로 p8 키파일 관리하기까지의 삽질 기록진짜 쉽지않았다.... 끄적끄적끄적여보자..배경애플을 포함한 카카오/구글소셜로그인 기능을 전부 완성하고, 테스트도 다 하고 배포했는데 "애플"만 실패했다.원인 : .p8 키 파일이 프로젝트 resources에 포함되어있었고, 배포환경은 AWS ECS 였으며 접근할 수 없었다.해결방안 : AWS Secrets Manager를 활용하여 키파일 내용을 넣어 해결하고자 했다.진짜문제 : 근데 잘 안되더라....AWS Secrets Manager 도입 과정1. 의존성 추가implementation("software.amazon.awssdk:secretsmanager:2.30.36")implementation("software.amazon.aw.. 2025. 3. 15.
4. [OAuth2 + OIDC + JWT] 공개 키 리스트 캐싱 및 락 제대로 하기 4. OIDC 로그인 공개 키 리스트 캐싱하고 락걸기https://nakhwa.tistory.com/57 3. [OAuth2 + OIDC + JWT] 카카오/구글/애플 로그인 구현3. OIDC 로그인 공개 키 리스트 캐싱하기 이거 잘못 작성해서 로직부터 다시 수정중입니다!카카오 개발 문서에 이렇게 써있더라 난 몰랐다. 애플은 확인 안해봤는데 비슷하겠지...?요청 차단은 곧nakhwa.tistory.com여기서 완전 잘못해서... ㅎㅎ 문제점과거 공개 키 "리스트"와 그 중 선택된 "공개 키" 로직이 하나의 클래스에 통합되어 있었는데 이 둘이 같이 묶여있으면 안됐다.결정적인 문제는 생성된 공개 키 리스트는 "캐싱"되어 보관되는데, 공개키 생성하는 메서드는 공개 키 리스트를 변수로 "외부에서 주입"받고 있었.. 2025. 3. 15.
3. [OAuth2 + OIDC + JWT] 공개 키 리스트 캐싱 잘못하기 3. OIDC 로그인 공개 키 리스트 캐싱하기 이거 잘못 작성해서 로직부터 다시 수정중입니다!카카오 개발 문서에 이렇게 써있더라 난 몰랐다. 애플은 확인 안해봤는데 비슷하겠지...?요청 차단은 곧 로그인 실패로 이어질 수 있는 심각한 문제이므로 빠르게 적용하자.Caching스프링에서는 @Cacheable 어노테이션과 CacheManager를 통해서 캐싱을 간편하게 지원한다.해당 기능을 사용하기 위해서는 @EnableCaching 어노테이션을 활용해서 캐싱기능을 활성화해야한다. 이때 Cache의 저장소로 In-Memory 를 사용할까도 생각했지만... 현재 ec2 서버의 사양이 낮은 점과 서버 재시작 시 캐싱 데이터가 증발할 수 있기에 기존에 다른 목적으로 사용하던 Redis 를 확장해서 사용했다.Redi.. 2025. 2. 18.