본문 바로가기
개발[프로젝트]/쿠스토랑

웹 세션/앱 jwt - Naver/Apple 로그인 통합 리팩토링 (로그인2탄)

by wcwdfu 2025. 6. 13.

웹 세션/앱 jwt - Naver/Apple 로그인 통합 리팩토링 (로그인2탄)


잡설 파트 

아직 로그인1탄 도 완성을 못했는데 .. 쓰게 되었다 ㅎㅎㅎ;;;;; 첫 세션 로그인 구현은 띵운씨였지만, 공부도 한번 해볼겸 내가 담당해서 가져와서 작업을 하게 된것같다.초기엔 띵운씨와 그런 얘기를 나눴다.

 

hey dding, 이거 어떻게 작동하는거임??

dding : 나도 모름 ㅋㅋㅋㅋ

ㅋㅋㅋㅋㅋ

 

사실 구현 어떻게든 하려면 할 수는 있었다. 다만 생각보다 OAuth 부터 Spring Security까지 절대 범위가 협소하지 않는 부분이였고, 글쎄... 어림잡아 이파트만 진짜 하루종일 공부한다고 해도 일주일.. 혹은 그 이상이 걸릴수도 있는 파트이지 않나 싶다.

 

 지금에서야 jwt의 리프레시토큰, 웹의 세션은 redis에 저장해서 사용하는 방식으로 옮겨졌지만, redis를 사용하기 전에도 세션도, 토큰도 db에 접근에서 userId, 혹은 providerId로 유저를 가져오는 과정이 있었는데 지금에서 보면 굉장히 초보적인 구현이였음을 되돌아 보게 된다.

 

 그리고 솔직히 지금 글을 쓰는 시점에서도 저 거대한 두 영역을 온전히 모두다 공부하지는 않았다. 어떤 도메인에서 진짜 로그인으로 여러가지를 고민해볼만한, 예를들면 다양한 디바이스 장치에서 로그인 하는 유저들에 대한 처리라던가, 동시접근 제어 등이라던가 기타 계정별 권한 등등 그런 이슈를 핸들링할 상황이 보일때나 깊게 학습해서 구현하는게 맞지 굳이 모든내용을 다 시간을쏟아 정복하기엔 당장엔 우선순위가 떨어진다고 너무 와닿는다 .. ;;;;;;;;;;;; 왜냐면 먼저 할것들이 여전히 너무 많기 때문이다. 물론 이 결정이 추후 취직에는 안좋게 작용할 수도 있으리라 생각한다.


본문

 

 1탄 에서는 "단순히 구현해내기! 이후 기능 정상 작동!" 가 목표였다. 이 글에서는 2탄 답게 next step이 필요하다.

 

1. 웹과 앱에서 각각의 security config 설정 관련 전략(?)들 

2. custom Argument Resolver를 통해서 웹/앱 controller에서 공통으로 유저정보 가져오기 

3. 이전 구현 리팩토링 (전략, facade 디자인 패턴등을 활용한 확장가능성 염두 물론 확장은 안할거임)

4. 세션과 refreshToken은 redis에 저장한다

5. 다중 디바이스 로그인 제어 하기

6. 로그인 기능 테스트코드 작성은 어떻게?

 

- 작성 진행중