전체 글

백엔드 개발 공부하고 있습니다.
· Study
이 포스팅은 JSON Web Token - 토큰의 구조 에서 이어지는 글입니다. 서론 저번 포스팅에서 JWT를 만들고 검증하는 법에 대해서 살펴보았습니다. 그럼 이번에는 이렇게 RFC로 쓰인 토큰을 어떻게 구현을 해놓았고, 사용을 하면 되는가?에 대해서 중점적으로 이야기를 해보겠습니다. 저는 현재 Java 언어의 Spring 프레임워크를 공부하고 있기 때문에, JAVA 언어로 만들어진 JWT 라이브러리를 살펴보겠습니다. JWT 라이브러리는 당연하게도 수많은 라이브러리가 있고, MavenRepository에서도 어떤 라이브러리들이 있는지 확인해 볼 수 있습니다. 이번 포스팅에서는 흔히들 많이 사용하는 라이브러리인 JJWT 라이브러리를 살펴보도록 하겠습니다. JJWT 라이브러리 깃허브 링크에서 확인해보실 수..
· Study
아래 글은 RFC 7519 를 기반으로 작성되었습니다. 서론 지난 포스팅에서 JWT의 구조에 대해서 알아보았습니다. 어떻게 생겼는지를 알았으니, JWT를 만들고 검증하는 법을 알아보죠. 숟가락 구조를 알고 있다고 해서 숟가락을 만드는 방법을 다 알고 있는 것은 아니니까요! RFC에 따라 JWT를 만들고 검증하는 법 RFC 공식 문서에 JWT를 만들고 검증하는 법이 나열이 되어 있습니다. 암호화나 서명이 되지 않은(Unsecured) 경우와 암호화나 서명명이 된 경우의 2가지로 나누어져 있습니다. 암호화나 서명이 되지 않은 경우 이 경우는 쉽습니다. 헤더 내용을 다음와 같이 채워주면 됩니다. { "alg" : "none" } 위 헤더 내용은 말그대로 알고리즘(alg)이 없다(none)는 뜻을 가지고 있는 ..
· Study
아래 글은 RFC 7519 를 기반으로 작성되었습니다. 서론 세상에는 두 태양이 공존할 수 없다고 하죠... 하지만 인증 세계에는 아직 두 개의 태양이 공존(?)하고 있습니다. 하나는 세션이고 하나는 JWT죠. 필자가 알기로 세션의 개념이 먼저 나왔다고 알고 있습니다. 세션은 쿠키라는 저장소에 담아서 상태를 저장하는 개념으로 나왔었죠. 하지만 이는 독자분들이 아시다시피, HTTP는 무상태라는 개념과 상충하는 바임을 쉽게 알 수 있습니다. HTTP가 무상태이다보니, 서로 간의 상태를 저장해두고 확인하고 싶었겠죠. 저라도 서비스를 저장할 때 이런 정보를 저장해놓고 사용하고 싶을 겁니다. 하지만 상태를 저장하다보니, 세션이 많아질수록 지연 시간이 늘고 성능에 의존하는 일이 잦아졌습니다. 이를 어떻게 해결해야할..
다대다(Many-to-Many)를 접하는 사람이라면 한 번쯤 접해보셨을 문제가 있으실 겁니다. 하나의 엔티티에 `@Id`를 2개 이상 어노테이션 적용을 못하는 문제를요.. 저 또한 프로젝트 진행 중에 다대다 클래스에서 Id에 대한 문제가 발생한 경우가 있어 이슈 트러블슈팅을 한 경험을 공유하고자 포스팅을 남깁니다. 다대다(Many to Many) 다대다는 이 글을 읽고 읽는 여러분들도 알고계시다시피 테이블과 테이블 간에 여러 개의 관계가 서로 맺어질 때 사용하는 관계입니다. (예: 상품-쿠폰, 학생-수업 등) 이 다대다 관계를 맺기 위해 스프링 프레임워크에서는 `@Entity`라는 어노테이션을 사용하여 테이블을 생성하고, 그 테이블 안에서 `@ManyToMany` 어노테이션을 사용하여 다른 테이블과 외래..
부트캠프에서 배웠던 내용 중에 새롭게 프로젝트를 세팅할 때 docker-compose 를 사용해서 데이터베이스 구성을 설정하는 방법을 알게되었습니다. 덕분에 올해 개발했던 스프링 프로젝트들에 docker-compose를 통해 데이터베이스 환경을 쉽고 편하게 관리하고 개발할 수 있었습니다. 이번 포스팅에서는 docker-compose로 mysql과 redis 데이터베이스 환경을 구성하여 로컬 개발 시 부담을 덜 수 있는 좋은 방법을 소개해드리려 합니다. 😄 잠깐! docker-compose가 뭐지? 방법을 소개드리기 전에 간단하게 docker-compose에 대해 간략하게 설명해드리겠습니다. (공식 문서 링크에서도 참고해보실 수 있습니다.) docker-compose는 하나의 프로젝트에서 사용하는 여러 d..
라페dev
RP 개발일지