본문 바로가기

Back-End/SpringBoot13

헥사고날 아키텍처에서 도메인 중심적인 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.
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.
2. [OAuth2 + OIDC + JWT] 애플 OIDC 로그인 2. 애플 OIDC 로그인 부터 연동 해제까지카카오, 파이어베이스 소셜로그인은 참고할 것도 많고 쉬우니까 생략 ! 구현 할 내용들 및 요구 사항 정리부터 !카카오, 파이어베이스, 애플 로그인을 "OIDC" 방식을 사용해서 구현해야 하며 로직이 비슷함.회원 탈퇴 및 소셜 연동 해제가 없으면 애플의 App Store에 출시할 수 없음연동 해제의 경우 Apple Refresh Token이 필요함위에서 언급한 순서대로 작성해 볼 예정글이 길어지면 일단 로그인만 작성할수도..?OIDC?OpenID Connect 의 약자로, OAuth 2.0을 확장하여 인증기능이 추가된 프로토콜이다.해당 프로토콜을 사용하게 된 이유는 https://devtalk.kakao.com/t/ios/130676 게시글의 "AccessTok.. 2025. 2. 15.