JWT or Session? (프로젝트)

김지혁·2026년 3월 31일

프로젝트

목록 보기
4/4

요구사항 분석 중 발생한 인증 방식 논쟁과 해결 과정 (JWT vs Session)

프로젝트를 시작하면서 가장 먼저 진행했던 작업은 요구사항 분석이었다.
기능 정의를 구체화하는 과정에서 예상보다 다양한 의견이 나왔는데, 그중에서도 가장 크게 의견이 갈렸던 부분은 사용자 인증 방식 선택이었다.

문제 상황

처음에는 단순히 “로그인 기능을 구현한다” 정도로 생각했지만,
구체적인 구현 방식을 논의하면서 자연스럽게 인증 방식에 대한 이야기가 나왔다.

팀 내에서는 크게 두 가지 의견으로 나뉘었다.

  • JWT 기반 인증을 사용하자는 의견
  • 세션 기반 인증을 사용하자는 의견

처음에는 단순한 기술 선택처럼 보였지만, 이야기가 깊어질수록 각 방식의 장단점이 부각되면서 쉽게 결론이 나지 않았다.

논쟁의 핵심

JWT를 사용하자는 쪽에서는 다음과 같은 이유를 들었다.

  • 서버 상태를 최소화할 수 있어 확장성에 유리하다
  • MSA 구조를 고려하면 더 적합하다
  • 최근 많이 사용되는 방식이라 학습 가치가 있다

반면, 세션 기반을 선호한 쪽에서는 이런 의견이 나왔다.

  • 구현이 단순하고 안정적이다
  • 로그아웃이나 인증 관리가 직관적이다
  • 현재 프로젝트 규모에서는 과한 선택일 수 있다

결국 이 논쟁의 본질은 단순히 기술의 문제가 아니라
“개발 속도를 우선할 것인지, 확장성과 구조를 고려할 것인지”에 대한 방향성 차이였다.

해결 과정

이 상태로는 아무리 토론을 이어가도 결론이 나기 어렵다고 판단했고,
기술 자체가 아니라 프로젝트의 목표를 기준으로 의사결정을 해야 한다고 생각했다.

그래서 팀원들과 함께 다음과 같은 기준을 먼저 정리했다.

  1. 이번 프로젝트의 목적은 단순 기능 구현이 아니라 학습과 경험에 있다
  2. MSA 구조를 일부라도 경험해보는 것이 중요하다
  3. 일정 내 구현 가능한 수준이어야 한다

이 기준을 바탕으로 다시 논의를 진행한 결과,
확장성과 학습 측면에서 장점이 있는 JWT 방식이 더 적합하다는 결론을 내릴 수 있었다.

다만, JWT의 단점으로 언급되었던 토큰 관리 문제는 그대로 두지 않고,
Redis를 활용해 보완하기로 했다.

결과

결과적으로 JWT 기반 인증을 도입하면서 구조적인 설계 경험을 가져갈 수 있었고,
단순 구현을 넘어 실제 서비스 구조를 고민해볼 수 있는 계기가 되었다.

무엇보다 의미 있었던 점은,
기술 선택을 개인의 선호가 아닌 명확한 기준을 바탕으로 결정했다는 것이었다.

이 경험 이후로는 새로운 기능이나 기술을 선택할 때도
자연스럽게 “이 선택이 프로젝트 목표에 맞는가?”를 먼저 고민하게 되었다.

마무리

요구사항 분석 단계는 단순히 기능을 나열하는 과정이 아니라,
프로젝트의 방향을 결정하는 중요한 단계라는 것을 느꼈다.

그리고 그 과정에서 발생하는 논쟁은 피해야 할 문제가 아니라,
오히려 더 나은 결정을 위한 필수적인 과정이라고 생각하게 되었다.

profile
스위트아메리카노

0개의 댓글