[Java] JWT(Json Web Token)을 발행, 확인하는 방법 > 질문답변

본문 바로가기

사이트 내 전체검색

뒤로가기 질문답변

[Java] JWT(Json Web Token)을 발행, 확인하는 방법

페이지 정보

작성자 미친새 작성일 23-02-24 10:51 조회 5,822 댓글 0

본문

안녕하세요. 명월입니다.



이 글은 Java에서 JWT(Json Web Token)을 발행, 확인하는 방법에 대한 글입니다.



저는 지금까지 웹 환경에서 로그인, 로그아웃 기능을 만들 때 보통 세션을 이용한 방법으로 로그인, 로그아웃을 사용했습니다. 사실 최근까지도 그렇게 사용했습니다.

세션에 정보를 넣는다 해도 쿠키의 세션 ID를 탈취하면 보안에 문제가 생기는 건 마찬가지지만 제가 알기로는 그나마 가장 보편적으로 사용하는 인증 방식이지 않을까 생각합니다.



최근에 프로젝트 형식이 마이크로 서비스 아키틱처에서 모듈별로 서버를 분할하거나 대용량 트래픽에 맞추어서 웹 서버 로드 밸런싱으로 여러 서버에 트래픽 분산 형식으로 많이 작성합니다.

그럴 경우 문제가 로그인 세션을 어떻게 구성하는 것입니다. 가장 많이 사용하는 방법으로는 하나의 세션 서버를 만들어서 Redis 데이터베이스를 설치하고 각 서버에서 Redis 서버에 세션 체크를 하는 것으로 대응이 가능합니다.

그런데 이것도 만능이 아니라서 마이크로 서비스로 웹 서버를 극단적으로 분할을 하게 된다면 세션 서버의 부하가 걸리고 여러가지 이유가 있겠네요..

사실 저의 경우는 그런 상황에서 JWT를 사용한 건 아니고 프로트엔드와 백엔드의 작업을 분리하는 과정에서 보안을 생각했을 때 좀 더 효과적으로 로그인 관리 기능을 사용하는 방법이 없을까 고민하던 차에 JWT라는 것을 알게 되었습니다.

링크 - https://jwt.io/introduction



JWT의 기능을 이해하는데 저도 좀 시간이 걸렸습니다. 사실 생각해 보면 굉장히 단순한 논리였는데.. 로그인 정보를 서버에 두어야 한다는 고정관념 때문인가 이게 과연 보안이 유용할까를 계속 고민했던 것 같습니다.

사실 인증만 된다고 하면 그 정보를 굳이 서버의 세션에 둘 필요는 없었는데.. 생각해 보면 지금까지 그렇게 비효율적으로 로그인 정보를 두었을까 생각이 되네요...

첨부파일

댓글목록 0

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

PC 버전으로 보기