배경

Spring Security(이하 시큐리티), 이름만 봐도 보안에 대한 다양한 기능들이 있을 것 같아 보인다.

 

처음 SpringBoot 를 이용한 프로젝트를 진행하던 2022년도에 나에게 있어 시큐리티는 테스트 코드 짜는 것도 어렵게 만들고, JWT 토큰을 이용한 인증/인가를 하는 것도 어렵게 하는 나쁜 놈이었다. 그래서 과감히? (걱정 한가득이었지만) TDD 대신 시큐리티를 포기했다.

 

시큐리티를 사용하지 않으니, 이를 통해 구현하는 다양한 레퍼런스들이 무용지물이었다.(솔직히 진짜 자료가 없었다)그냥 직접 다 개발했어야 했다. 소셜로그인, JWT 기반의 인증/인가 부터 나중에는 Authority 체크에 사용하는 @PreAuthorize 를 모방한 @MyPreAuthorize 까지 직접 만들었어야만 했다.

 

2년 전에 시큐리티 없이 개발했던 그 모험기는 시리즈로 조만간 작성할 예정이다.

 

이번 시리즈는 시큐리티를 사용하여 JWT 를 통한 인증/인가, 소셜 방식과 ID/PW 방식의 로그인과 회원가입 프로세스 개발 모험기를 담을 예정이다. 많은 개발자 분들이 굳이 찾아보지 않고 넘어갈 만한, 또 해결하지 못했던 궁금증에 집중해서 필자의 첫 시리즈물을 시작해보려고 한다. (나만 몰랐을 것 같기도 하다 ^^)

시리즈

  1. 시리즈 소개
  2. 프로젝트 설계 + 유저 도메인 ERD 설계
  3. ID/PW 방식의 회원가입과 로그인과 JWT 토큰 발급
  4. Spring Security 를 이용한 JWT 인증/인가
  5. 소셜로그인 방식에 대한 삽질기
  6. 백엔드 전담의 소셜로그인 구현, Spring Security, OAuth2 를 이용한
  7. (2024.08.15 시리즈 추가) Security 를 적용한 테스트 코드 도입기

 

시리즈의 시작에 앞서, 서비스마다 로그인에 관련된 정책이 달라 ERD 와 API 설계가 제각각이다. 그렇기에 무조건 따라하기보단 글을 따라가면서 설계에 따라 어떻게 개발하는지를 보는게 좀 더 좋을 것 같다.

 

시큐리티 시리즈 2번 포스트로 넘어가보자.

 

 

[그리고 시큐리티를 곁들인] #2 : 프로젝트 설계 + 유저 도메인 ERD 설계

이전 글(1편)에서는 이번 시리즈의 주제와 글을 쓰게 된 배경을 소개했다. 이번 글에서는 프로젝트 설계 과정와 유저 도메인 ERD 설계에 대해서 정리해 보려고 한다.

0woodev.tistory.com

 

 

0woodev