타밭슈 프로젝트 리팩토링 – JWT 로그인 적용

재윤·2025년 3월 2일

tabatshu 리팩토링

목록 보기
1/1
post-thumbnail

오픈소스SW 프로그래밍 전공 수업 – 타밭슈 프로젝트

오픈소스SW 프로그래밍 전공 수업에서 주제 자율 프로젝트를 진행한 적이 있다. 기간은 2024.9.19~12.5였고, 우리는 큐싱 방지 공공 자전거 대여 어플리케이션인 타밭슈 프로젝트 를 개발했다.

컴퓨터공학과 2학년 학생들끼리 4~5명이 모여 시작한 프로젝트였는데, 팀원 모두 프로젝트 경험이 없어서 수많은 삽질을 통해 개발하였고, 성능이나 보안보다는 "일단 돌아가게라도 만들자!"라는 마음으로 개발했던 기억이 난다.

최근 벨로그를 둘러보다가 오픈소스로 공개된 코코아 프로젝트를 보게 되었다. 이를 읽어보면서 타밭슈를 어떻게 리팩토링할 수 있을지 고민해보고, 하나씩 정리해볼 예정이다.

1. 로그인 기능 개선

기존 로그인 기능은 MongoDB(NOSQL) 를 사용했다.
MongoDB에 사용자 및 관리자 정보를 저장하고, HTTP 통신을 통해 입력값과 DB 값을 비교한 후, 일치하면 true를 반환하는 방식으로 구현했다.

하지만 앱을 실행할 때마다 로그인해야 했고, 다른 앱들은 한 번 로그인하면 앱을 재시작해도 유지되던데 어떻게 구현하는 걸까? 하고 궁금했던 적이 있었다.

그러던 중 코코아 소스코드를 살펴보면서 JWT 토큰 기반 로그인 방식을 알게 되었다.
main/server/src/admin/guards/jwt-auth.guard.ts 파일에 있다

이 방식은 기존처럼 DB 값을 조회해 로그인 여부를 확인하는 것이 아니라, 로그인 시 토큰을 발급받고 이후에는 토큰의 유효성만 확인하면 되기 때문에 DB 접근이 불필요하다.

이를 활용해 로그인 기능을 JWT 토큰 방식으로 리팩토링할 계획이다.

0개의 댓글