본문 바로가기

전체 글75

[Web] JWT & Session & Cookie 서버에서 보안, 인증, 권한 부여 등을 확인하고 관리하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지가 있습니다. 이 글에서는 3가지 방식(토큰은 JWT 기반)에 대해서 알아보고자 합니다. 추가로 Spring Framework 환경에서는 어떤 방식으로 세션을 처리하는지 간단한 예제와 설명도 함께 작성하도록 하겠습니다. JWT(JSON Web Token) 역사 JWT는 JSON Web Token의 줄임말로 일반적으로 웹 애플리케이션에서 인증 및 권한 부여 목적으로 사용되는 표준입니다. XML을 이용하여 인터넷을 통해 데이터를 전송하던 2000년대 초, 웹 애플리케이션이 점점 가볍고 이동성이 높은 JSON 데이터 전송 방식을 선호하게 되는 시점과 함께 JWT는 JSON 형식으로 데이터를 안전하게 전송하기 위.. 2023. 7. 15.
[Gradle] Java Plugin & Java Library Plugin 최근 멀티 모듈 프로젝트 환경을 구성하면서 겪었던 trouble이 몇 가지 있었습니다. 그 중 Gradle에서 제공하는 Dependency 관련된 trouble이 있었는데, 해당 프로젝트는 각 Layer, feature 별로 서브 모듈들을 가지고 있고 모듈에서 필요한 모듈의 의존성을 주입 받아 사용하는 환경이었습니다. 이 시점에서, 모듈 간 의존성을 설정하며 겪은 Trouble의 케이스를 적어 보면 아래와 같습니다. 코드 작성 시점에서 문제 없이 하위 모듈의 소스들을 가져와 작성은 되나 Runetime 시점에서는 NotFoundClassException이 발생한다. 코드 작성 시점에서 실제 해당 모듈 클래스를 import 해오나 해당 클래스가 의존하고 있는 다른 class의 정보를 가져 오지 못한다. ... 2023. 7. 14.
[Library] Jasypt Spring Boot Git 저장소(ex: GitHub, GitLab, Bitbucket...)를 통해서 코드를 관리할 때, private repository인 경우는 해당없지만, public repository로 관리하다 보면 민감한 정보에 대한 처리는 필수적입니다. 소스 코드에는 DB URL, Principal, Credential, Token Secret Key ... 등등 많은 민감한 정보를 담고 있기 때문입니다. 이를 위해 .gitignore file을 통해 Git 버전 관리에서 제외할 파일 목록을 지정 할 수 있지만, 협업을 하는 상황 사용하는 pc 환경이 자주 바뀌는 경우 ... ignore 된 파일의 변경 사항을 추적하고 동시에 관리하기란 여간 힘든 일이 아닙니다. 이런 외부에 공개되면 안 되는 정보들을 암호화.. 2023. 7. 13.