전체 글63 Spring Security와 JWT로 로그인 구현 팀프로젝트를 하게 되면서 새롭게 다루는 주제들이 많았었다. 그 중에서 Spring Security와 JWT를 활용하여 로그인을 구현하는 부분이 있었다. (여태 나는 세션과 쿠키 방식의 로그인을 구현했었다. 프로젝트를 해본 경험은 있었지만 JWT를 구현해보지는 않았었다.) 프로젝트를 진행하며 알게 된 내용과 함께, springboot 버전마다 달라진 jwt관련 변경 사항들을 공유하고자 한다. 모든 코드는 Github에 있으니 참고하세요.📚 목차목차는 다음과 같다.JWT(JSON Web Token) 소개build.gradle 라이브러리 추가spring security, JWT 구현Spring Boot 3.x 이상의 Security Config 코드 변경 사항REST API 구현 & POSTMAN 확인참고자.. 2024. 3. 13. [item 3] private 생성자나 열거 타입으로 싱글턴임을 보증하라 singleton이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글톤의 전형적인 예로는 함수와 같은 무상태 객체나 설계상 유일해야 하는 시스템 컴포넌트를 들 수 있다. 그런데 클래스를 싱글톤으로 만들면 이를 사용하는 클라이언트를 테스트하기가 어려워질 수 있다. 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든 싱글톤이 아니라면, 싱글톤 인스턴스를 가짜(mock) 구현으로 대체할 수 없기 때문이다. 싱글톤을 만드는 방식은 보통 둘 중 하나다. 두 방식 모두 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단으로 public static 멤버를 하나 마련해둔다. (이번 내용도 github에 정리되어 있으니 참고해주세요.) 싱글톤 (singleton) 싱글.. 2024. 1. 14. [item 2] 생성자에 매개변수가 많다면 빌더를 고려하라. 이번 시간에는 빌더패턴에 대해 정리해보자. 생성자나 정적 팩터리가 처리해야 할 매개변수가 많다면 빌더 패턴을 선택하는게 더 낫다. 매개변수 중 다수가 필수가 아니거나 같은 타입이면 특히 더 그렇다. 빌더는 점층적 생성자보다 클라이언트 코드를 읽고 쓰기가 훨씬 간결하고, 자바빈즈보다 훨씬 안전하다. (이번 내용도 github에 정리되어 있으니 참고해주세요.) 생성자에 매개변수가 많다면 빌더를 고려하라 생성자 경우 이런 코드는 작성하기도 어렵고 읽기도 어렵다. NutritionFacts cocaCola = new NutritionFacts(240, 8, 100, 0, 35, 27); 자바빈 경우 (우선) 생성자 경우보다 읽기 쉬운 코드가 되었다. NutritionFacts cocaCola = new Nutr.. 2024. 1. 14. [item1] 생성자 대신 정적 팩터리 메서드를 고려하라 안녕하세요? 이번 시간부터 Effective Java 도서를 읽으며 학습한 내용을 코드 예제를 생각하여 함께 작성해보려고 합니다. 모든 코드는 Github에 업로드되어 있어 편하게 확인하실 수 있습니다. (공부한 내용을 먼저 Github에 정리했으며, 블로그에도 포스팅할 예정이니 참고해주세요.) 생성자 대신 정적 팩터리 메서드를 고려하라 2장 객체 생성과 파괴의 item 1은 "생성자 대신 정적 팩터리 메서드를 고려하라"는 내용을 다루고 있다. 이번 장의 포인트는 다음과 같다. 포인트 public 생성자를 사용해서 객체를 생성하는 방법 말고, public static 팩토리 메소드를 사용해서 해당 클래스의 인스턴스를 만드는 방법도 있다. 이제 정적 팩터리 메서드를 고려했을 때 장점과 단점을 알아보자. 장.. 2024. 1. 14. 이전 1 ··· 5 6 7 8 9 10 11 ··· 16 다음