프로젝트 전체 코드: https://github.com/kcm02/JWT_OAuth_Login.git

🤔 JWT? OAuth? 정말 이해하고 쓰고 있을까

우선 나는 프로젝트에서 로그인 및 회원가입 기능을 만든 경험이 있다. 하지만 그때는 기본적인 지식 없이 시간에 쫒겨 구글링으로 코드를 검색해 복붙하거나, 제대로 로직을 이해하지 못한 채 기능이 돌아가면 OK란 마인드로 코드를 짜곤 했다.

그렇지만 개발에 대해 공부를 할수록 회원 관련 기능은 웹 개발의 기본이 되는 만큼 한 번 제대로 정리해보고 만들어보고 싶다는 생각이 들었다. 따라서 이번에는 현업에서 쓰이는 다양한 기술 스택을 기반으로 회원가입 + 로그인 + 로그아웃 기능을 총정리하는 프로젝트를 진행하고자 한다!

프로젝트는 깃허브에 올릴 예정이며 벨로그에도 자세한 진행 과정을 정리할 예정이다.

기술 스택 소개

☝️ 핵심 기술

  • Spring Security
  • JWT(JSON Web Token)
  • JavaMailSender

✌️ DB 관리

  • Spring Data JPA
  • MySQL
  • Redis

🗒️ 프로젝트 진행 계획

프로젝트를 진행하며 세세한 부분은 바뀔 수도 있지만 기본적인 계획을 소개해 보겠다. 처음 프로젝트를 진행했을 때 뭐부터 해야 할지 몰라 막막했던 경험이 있는 만큼 이번에는 계획을 세우고 순서대로 개발을 진행해 보려고 한다.

1) 기초 설정 및 환경 구축

  • 목표: Spring Boot 프로젝트 생성 및 초기 설정 완료
  • 구체적인 작업:
    • Spring Boot 초기 설정 및 프로젝트 뼈대 구성
    • 각종 의존성 추가 및 설정 파일 구성
    • Git 저장소 생성 및 초기 커밋

2) 회원가입 기능 구현

  • 목표: 사용자가 웹 애플리케이션에 회원 등록할 수 있는 기능 구현
  • 구체적인 작업:
    • 회원가입 API 및 유효성 검사 구현 Validation
    • 사용자 정보 데이터베이스 저장 처리 Spring Data JPA MySQL
    • 비밀번호 암호화 처리 Spring Security

3) 로그인 기능 구현

  • 목표: 등록된 사용자가 로그인하면 토큰을 생성하는 기능 구현
  • 구체적인 작업:
    • 로그인 API 및 인증 처리 구현 Spring Security
    • JWT를 이용한 토큰 생성 및 검증 로직 추가
    • Redis에 JWT 토큰과 유효기간 저장

4) 로그아웃 기능 구현

  • 목표: 사용자가 로그아웃할 수 있는 기능 제공
  • 구체적인 작업:
    • 로그아웃 API 구현 Spring Security
    • Redis에서 해당 토큰 제거

5) 깃허브와 벨로그 정리

  • 목표: 프로젝트 진행 과정과 학습한 내용 정리
  • 구체적인 작업:
    • 각 단계별 프로젝트 진행 과정을 벨로그에 정리
    • 코드 예시와 기술적인 이슈 및 해결 방법 공유
    • README 파일 작성하기

🔥 프로젝트 목표

이번 프로젝트를 통해 로그인 · 회원가입 기능에 대해 제대로 이해하고 관련된 기술들을 잘 쓸 수 있게 되고 싶다. 단순한 기능 구현에 그치기 보단, 각 기술의 원리와 역할을 이해하며 프로젝트 경험을 서술하려고 한다.

또한 깃허브와 벨로그에 상세히 진행 내용을 공유함으로써 나와 같은 경험을 겪었던 사람들에게 조금이나마 유용한 정보를 알려주고 싶다!

profile
백엔드 개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN