📘 워너플라이 (WANNAFLY)

큐시즘이라는 동아리에서 만든 프로젝트 한 번에 지원서를 관리하고 작성하는 웹사이트 서비스 wannafly이다. 지금까지 한 프로젝트중 백엔드 부분에서 가장 잘하는 사람과 했던 프로젝트라고 생각하고, 정말 잘하는 사람과 프로젝트를 해서 그런지 인프라나 코드 리팩토링 코드리뷰등 정말 많은 것을 배운 기회였다. 다른 프로젝트와는 다른 이점들을 살펴보자.

Lambda

Lambda를 이용하여 파이썬 맞춤법 검사기 라이브러리 사용, 하나의 작은 API를 사용하기 위해 EC2를 올리는게 비효율적, 람다를 사용하여 인프라 관리 부담 감소하게되었다.

처음에는 Docker을 활용하여 ec2에 플라스크 서버를 열어 스프링이랑 통신을 하려고 했다. 하지만 하나의 작은 api를 사용하기 위해 ec2에 올리는게 비효율적이라고 판단하여 aws lambda를 사용하게 되었다.

JWT,Access Token,Refresh Token

JWT 사용, Access Token의 시간을 짧게 두어 Access Token을 탈취 당했을때를 대비, Refresh Token을 캐싱하여로그인이 자주 풀리는 사용자 경험을 개선

같이 프로젝트 하는 형이 설명해주었는데 학교 eclass만 가봐도 사용자가 로그인을 했을때 몇분 지나지 않아서 로그인이 풀리는 경우가 존재한다. 그 경험을 개선하고자 Refresh token을 사용하였다.

또한 refresh token을 Redis에 저장하였는데 그 이유는

  1. 성능: Redis는 고성능으로 유명한 인메모리 데이터 저장소다. Redis에 새로 고침 토큰을 저장하면 빠른 액세스 및 검색이 가능하여 인증 프로세스의 대기 시간이 줄어든다.
  2. 지속성: Redis는 기본적으로 메모리 내 데이터 저장소이지만 지속성 옵션도 지원하므로 새로 고침 토큰을 안전하고 안정적으로 저장할 수 있다. 이렇게 하면 서버가 다시 시작되거나 오류가 발생하는 경우에도 새로 고침 토큰이 손실되지 않다.
  3. 만료: Redis는 데이터 만료 시간 설정을 기본적으로 지원하므로 특정 기간이 지나면 새로 고침 토큰이 자동으로 만료될 수 있다. 이는 토큰 순환과 같은 보안 조치를 시행하는 데 도움이 되며 오래되거나 사용되지 않은 토큰이 캐시에 무기한 남아 있는 위험을 완화한다.

이점들은 여기까지 인거같고, 하지만 이 프로젝트에서는 코드적는 부분이나 스프링에 전체적인 틀 객체지향 생활체조 원칙을 지키며 코딩하고 여러가지로 많이 배운 프로젝트였다.

태그:

카테고리:

업데이트: