본문 바로가기

이슈와해결30

JWT 토큰 기반의 상태 관리시 로그아웃 처리 문제와 간단한 해결 방법 본 글의 탄생 배경 사내에서 JWT 기반의 인증 인가 시스템을 구현할 기회가 있었다. 당시 프로젝트 개발을 구상하는 단계에서 로그아웃에 대한 이슈가 있었다. 당시 해당 이슈를 정리하고 검토하면서 작성한 글이다. 결론적으로 JWT의 장점을 유지하면서도 가장 효율적인 대안으로 프론트엔드에서의 처리 방법으로 결정했었다. 개요 인증/인가 설계에 있어 JWT 토큰 기반의 방식을 결정하였습니다. 기술 구현에 있어서 토큰을 관리하는 구체적인 방식을 진행하기에 앞서 몇가지 논의 사항이 필요합니다. 쟁점 사항 이슈를 다루기 전에 먼저 JWT 방식에 대한 이해가 필요하여 다음과 같이 정리하였습니다. ❓ JWT 기반 인증의 기존 방식과의 차이 JWT(JSON Web Token) 기반 인증은 전통적인 서버 기반 인증 방식과 .. 2023. 12. 18.
리팩토링 회고 - 입사 3개월 차에 만난 거대한 코드를 넘어가기 위해 생각했던 방법들 본 글에 대해서 회사 수습 기간 중에 한 도메인의 비즈니스 오케스트레이션 서비스를 들여다 볼 기회가 있었다. 해당 오케스트레이션의 취약점을 분석하고 해결 전략을 제시하는 업무를 맡았었다. 그 일을 하면서 본 업무와는 별개로 해당 프로젝트에 대해 코드 레벨 수준의 리팩토링을 제안했었다. 왜냐하면 막상 코드를 읽으니 읽는 것 자체가 너무 어렵고 흐름 파악하는 데 시간이 너무 오래 걸렸기 때문이다. 내 실력이 부족해서 이해 비용이 많이 들었을 수도 있다. 하지만 조금 더 구조화가 잘 되어 있고 코드가 클린했다면 유지보수에 있어서 범용성과 효율성이 많이 높아졌을 것이라 생각했다. 본 글은 그때 리팩토링을 제안하면서 쓴 글을 각색해서 재작성한 글이다. 주요 용어나 실제 코드는 컨셉용으로 대체하였고 민감한 부분은 .. 2023. 12. 17.
엔티티 필드 매핑 전략 탐구: 성능 테스터 Gatling을 이용한 Json 필드 매핑 사례 분석 목차 1. 개요 2. 목적 3. 테스트 환경 구성 4. 더미데이터 구성 5. 조회 로직 6. 테스트 전략 및 시나리오 7. 테스트 결과 분석 8. 결론 및 추가 과제 개요 사내에서 대규모 시스템 개편을 하면서 차세대 프로젝트에 참여한 경험이 있습니다. 일 평균 160만 건 이상의 데이터가 쌓였기 때문에 맡은 도메인에서 대규모 데이터 처리 시나리오를 고민해야 했습니다. 본 글에서는 효율적인 데이터베이스 매핑 방법을 탐구하면서 결정한 한 가지 방법에 대한 성능 테스트 내용을 다룹니다. 특정 엔티티의 특정 필드(ImportantField)에 대해 String 타입의 집합으로 데이터를 준비하고, 요청 쿼리를 통해 성능을 테스트하고 결과를 분석하는 내용입니다. 목적 ImportantField 필드에 대한 다양한 .. 2023. 12. 16.
MSA 도메인 서비스에서 id 채번 방식 - 멱등성 보장하기 개요 도메인 서비스를 개발하면서 id 채번 방식을 고민한 적이 있었다. 개인 프로젝트를 할 땐 auto generation 옵션으로 순번으로 생성되는 것을 너무 당연하게 생각했었다. 회사에서 다양한 케이스들을 접하면서 도메인 서비스에서 자동 채번으로 데이터가 쌓이기 시작할 때 다양한 문제가 생길 수 있다는 걸 알게 됐다. pk 생성 규칙을 정하기까지 다양한 옵션들을 탐구해보면서 고민했던 과정을 기록해보았다. @GeneratedValue 부터 멱등성 보장 규칙에 이르기까지 한 마디로 삽질의 기록이다. 하지만 해당 프로젝트를 하면서 정말 혼자했더라면 생각해보지도 못했을 것들을 많이 접하게 돼서 여러 배움 중에서도 인상 깊은 배움이었다. 용어나 예시 코드는 실제가 아닌 컨셉 용어, 컨셉 코드로 대체하였습니다... 2023. 12. 15.
입사 0년차 주니어의 첫 운영 배포와 실수 경험 목차 개요 및 사건 요약 첫 번째 문제 두 번째 문제 세 번째 문제 결론 회고 및 제안 개요 및 사건 요약 한 서비스에 기능 고도화를 개발하고 배포한 일이 있었습니다. 서비스 배포 과정에서 발생한 에러에 대해 원인을 파악하고 해결한 경험을 기록하여 공유해보려고 합니다. 용어나 코드는 실제의 것으로 작성하지 않고 컨셉으로 대체하였습니다. 대상 서비스: 서비스A 배포 내용: 유니버설 템플릿 적용을 통한 주요 기능 변경 및 추가 로직 도입 일시: 최근 날짜 (예: 2023년 11월 8일 10:30부터 12:30까지) 발생한 문제: 실제 운영 환경에서의 스프링 부트 어플리케이션 실행 실패, 주요 API 기능 제공 불가 결론: 3가지 주요 실패 원인 분석 첫 번째 문제 첫 번째 시도에서 만난 에러 메시지는 다음과.. 2023. 12. 14.