안녕하세요.
최근에 인증 방식 등에 대해 정리를 해보았는데요.
해당 내용을 바탕으로 간단하게 백엔드 서비스를 하나 만들어보면 좋을 것 같다고 생각이 들었습니다.
그래서 Serverless 인증 서비스 구현하기라는 작은 시리즈를 글로 정리해보려고 합니다.
오늘은 그 첫 번째로 어떻게 진행할지 설계하는 내용을 정리해보겠습니다.
▶️ 왜 서버리스로 구현하나요?
사이드 프로젝트 등을 진행하더라도 인증 시스템은 필수로 들어가야 합니다.
하지만 EC2 환경 구성을 비롯하여 유지관리, 스케일링 등의 서버 관리를 모두 신경 쓰기 어려운 경우가 많은데요.
그래서 이번에는 Serverless와 JWT를 이용해서 누구나 쉽게 개발할 수 있는 방법으로 한 번 해보고자 했습니다.
단점 또한 있지만 프로젝트 초기에 매우 유연하게 활용 가능한 몇 가지 장점이 있습니다.
- 요금은 호출한 만큼만 지불 (하지만 초기에는 발생하지 않음)
- 서버는 운영에 대한 고민이 없음 (복잡한 서버 설정 등)
- 사용량에 따라 자동 스케일링
▶️ 사용 기술 스택
그럼 어떤 기술 스택을 사용할 지 선택을 해야 하는데요.
저는 비용이 들지 않도록 하기 위해 아래와 같이 사용했습니다.
먼저 AWS를 활용했고, Free Tier 내에서만 운영하고자 하는 조건이 있었습니다.
(AWS Free Tier 상세 안내는 링크 참고 부탁드립니다 -> 링크)
- API Gateway
- Lambda
- DynamoDB
- CloudWatch
- CloudFormation
그리고 마지막으로 Serverless Framework를 통해 배포 자동화도 함께 구성했습니다. (https://www.serverless.com/)
간단한 아키텍처를 그림으로 정리해보았습니다.
여기서 몇 가지를 고려하였는데요.
- JWT는 상태를 저장하지 않기 때문에, accessToken 자체로 인증 처리 가능
- refreshToken은 DB에 저장해 유효성 관리 가능하게 설계 (로그아웃 처리와 접속 기기제어 등의 목적)
- 클라이언트는 토큰만 유지하면 되므로 확장성이 좋음
- 다만, 콜드스타트, 로그 관리, 에러 핸들링 등의 서버리스 특화 이슈는 따로 챙겨야 했습니다
위 내용은 앞으로 시리즈를 진행하면서 상세하게 다뤄보겠습니다.
▶️ TODO List
지금까지 전체 서버리스 인증 구조를 어떻게 설계했는지, 어떤 스택을 사용했는지를 소개했습니다.
그럼 마지막으로 앞으로 진행 할 내용들에 대해 간단히 정리를 해두겠습니다.
- serverless framework 연동 및 cloudformation 권한 설정
- 회원가입 API 개발
- 로그인 / 로그아웃 API 개발
- 토큰 갱신 / 서비스 API 개발
- 서비스 개선 1. 콜드 스타트 문제 해결
- 서비스 개선 2. 서비스 로깅 개선 및 모니터링
오늘의 글은 이것으로 마치겠습니다.
감사합니다.
'Backend Engineering' 카테고리의 다른 글
[Serverless 서비스 개발] #3. 회원가입 기능 구현 (2) | 2025.06.20 |
---|---|
[Serverless 서비스 개발] #2. serverless Framework로 Lambda 배포하기 (2) | 2025.06.19 |
[Cache] Local Cache vs Redis, 언제 어떤 캐시를 써야 할까? (1) | 2025.06.16 |
Spring Security를 활용한 인증 흐름 정리 (0) | 2025.06.09 |
OAuth 2.0 개념 정리 (1) | 2025.06.05 |