본문 바로가기

Project2

JWT 로그인과 보안 전략 왜 세션 대신 JWT인가?프로젝트 초기, 로그인 방식을 두고 세션과 JWT 중 고민을 했었는데 결론적으로 JWT 방식을 선택했다. 가장 큰 이유는 서버 리소스 효율성 때문이었다. 우리 프로젝트는 EC2 하나로 구동되기 때문에 세션 방식을 사용한다면 동시 접속자가 늘어날 수록 서버 메모리에 부하가 갈 수 있다고 판단했다. 따라서 상태를 서버에 저장하지 않는 JWT 방식이 우리 환경에 더 적합하다고 생각했다. 토큰 저장소의 분리JWT의 약점은 탈취되었을 때 대처가 어렵다는 점이다. 이를 보완하기 위해 Access Token과 Refresh Token으로 분리하고, 저장 위치를 다르게 가져갔다. Access Token : 클라이언트에서 화면 렌더링을 위해 토큰안에 userId같은 값을 추출해서 사용하기 때문.. 2026. 1. 23.
회원탈퇴 - Soft Delete 배경프로젝트의 Api 구현이 거의 마무리될 시점에 회원탈퇴 기능을 작업하게 되었다. 회원 탈퇴 기능은 User 테이블 뿐만 아니라 Order, Cart, Chat 등 여러 도메인의 로직을 건드려야하기 때문에 코드가 자주 바뀔수 있는 초반보다 기능이 안정화된 시점에 구현하는 것이 제일 적합하다고 판단했다. 문제처음에 단순히 관련 데이터들만 삭제하면 된다고 생각했다. 하지만 ERD를 다시 살펴보니 여러 테이블들이 엮여있기 때문에 함부로 데이터를 삭제해버리면 관련된 기능들이 동작하지 않거나 심각한 문제가 생길 수도 있다고 판단했다. 전략그래서 회원탈퇴 시 처리되는 데이터들을 두 가지 종류로 우선 분류해봤다.1. 삭제해야 할 데이터 (Hard Delete) : 장바구니, 친구 관계 등2. 보존해야 할 데이터 (.. 2025. 12. 26.