[꼼꼼한 개발자] 꼼코더

45. [개발일지] - [피파 온라인 4 프로젝트] - 10. 상태 저장이 필요하다 (세션(Session), 쿠키(Cookie), 토큰(Token)) 본문

개발일지/피파 온라인 4 프로젝트

45. [개발일지] - [피파 온라인 4 프로젝트] - 10. 상태 저장이 필요하다 (세션(Session), 쿠키(Cookie), 토큰(Token))

꼼코더 2023. 5. 22. 15:41
반응형

🙆🏻‍♂️ 많아진 기능

이전 기능들을 보면 알겠지만 대부분의 Open API 기능들이

'유저 고유 식별자(accessId)'를 필수적으로 요구하고 있다.

 

나는 이전에 개발 시 "우선 한 화면에 모든 메서드 기능을 출력하고 나중에 나눠야지!"라는 생각을 가지고

'accessId'를 한 메서드 안에서 계속 저장하여 돌려쓰는 방법을 선택했었다.

 

그렇게 계속 개발하던 도중

"매번 페이지 넘어갈때마다 닉네임 호출 -> '고유 식별자 획득' 작업을 반복할 수 없는데.."

그렇게 수정이 필요하다는 걸 직감했다..

 

🤷🏻 어떻게 수정할까?

찾아보니 리액트에서는 UseState를 사용하지만 

백엔드에서는 상태 저장을 3가지 중(세션, 쿠키, 토큰)에서 선택해야 했다.

 


 

🚀 상태 저장 선택(세션(Session), 쿠키(Cookie), 토큰(Token))

우선 가장 큰 특징들을 간단하게 적어보겠다.

 

  • 📝 세션(Session)
    • 서버 측에서 클라이언트의 상태 정보를 저장하고 관리하는 방식. 
    • 세션은 서버에 저장되며, 클라이언트는 세션 ID를 받아서 이를 사용하여 서버와 상태를 공유한다. 
  • 🍪쿠키(Cookie)
    • 클라이언트 측에 저장되는 작은 데이터 조각. 
    • 쿠키는 클라이언트의 웹 브라우저에 저장되어 서버와 클라이언트 간의 상태 정보를 유지한다. 
  • 🪙 토큰(Token)
    • 클라이언트가 서버로부터 발급받은 문자열로, 클라이언트의 인증 정보나 권한 등을 담고 있다.
    • 토큰은 클라이언트 측에 저장되거나 안전한 방식으로 전송되어 상태를 유지한다.

 

위에 특징으로 봐서는

  • 토큰 : 권한(role)에 따른 기능은 없고 무엇보다 회원 기능이 없기 때문에 불필요.
  • 쿠키 : 쿠키는 클라이언트 측에 저장되어 보안상 중요한 accessId를 저장하기에 부적합하고, 클라이언트가 쿠키를 조작하거나 삭제할 수도 있어서 데이터의 무결성이 보장되지 않을 수 있다.

 

👉🏻 결론(최종 선택)

세션을 선택했다.

이 후 개발하고 글을 작성해 보겠다.

 

 

 

 

 

 

Comments