Spring 5

플리보따리 서비스를 개발하며 -2024-04-04

플리보따리 란 ? 도메인 : www.plypockets.com Git hub : 플리보따리 (github.com) 안녕하세요 구독자 여러분 !! 제가 역대 한 프로젝트중 가장 애정을 가지고 진행했던 서비스에 대해서 소개해 드리겠습니다 !! ☺️ 플리보따리 서비스는 선물과 함께 노래를 전송하는 익명 편지 서비스 입니다 ! 💌 이화여대 디자인 동아리 “UXO” 와 협업하여 만들었어요 !! 저도 전문 디자이너분들과 첫 협업 경험이어서 정말 많이 배웠고, 저랑 전혀 상관없는 직군들과 소통하는 법을 배운거 같았습니다!!🤭 제가 이 프로젝트를 진행하며 많이 배웠고 신경쓰고자 했던 부분은 바로 테스트코드 와 클린코드 였어요 !! 😜 이번 프로젝트에서 반복문 대신 람다와 스트림을 활용한 자바8 부터 추가된 함수형 언어..

개발 프로젝트 2024.03.23

JWT 와 Session 적용기 (2024-01-22)

I. 서론 JWT와 Session 비교 및 JWT의 장점 소개 II. 본론 Access Token과 Refresh Token의 도입 이유 Refresh Token 은 어떻게 Access Token의 재발급을 도와주는 걸까? Refresh Token Rotation Redis 저장 방식 변경 III. 결론 정리 생각해 볼 수 있는 문제 해결하고자 한 문제 JWT로 인증을 구현한 개발자라면 아래의 문제를 생각해 볼 수 있다. 1. 유효기간이 긴 Refresh Token이 탈취된 경우. -> 이 경우는 간단히 refresh token rotation 을 떠올릴 수 있다. 하지만 아래의 문제까지 커버할 수 있을진 의문이다. 2. 탈취한 Refresh Token으로 정상 유저보다 먼저 Access Token을 재..

스프링 웹 개발 입문강의. 요약.

테스트코드의 given when then 구성 given: 뭔가가 주어졌을 때, when: 이것을 실행했을 때, then: 결과가 이것이 나와야 함. 주석으로 이런 방식으로 테스트 코드 흐름을 구성하면, 가독성이 증가됨. 2021-02-16 스프링 빈 추가하기 첫 번째 방법(컴포넌트 스캔과 자동 의존관계 등록.) @Controller, @Component, @Service, 애너테이션 등으로 스프링 메인 메소드가 실행되었을 때, 스프링 컨테이너에 자체적으로 컴포넌트 스캔을 통해 스프링이 스프링 컨테이너의 구성요소(빈)으로 추가해주는 것이다. 여기서 컴포넌트 스캔의 범위는 메인 메서드가 있는 상위 패키지에 구현된 모든 패키지들을 뒤져서 다 스프링의 빈으로 추가해 주는 것이다. 여기서 파란색 펜 부분이, 컴..

프록시와 AOP 프로그래밍 [최범균 스프링 5] 2021-06-04

우선 스프링 공식 래퍼런스에는, AOP를 설명하기 위해 '프록시'라는 단어를 사용하고 있다. 프록시란, 간단히 추상적으로 설명하자면, 핵심기능을 제외한 공동의 기능을 한데 묶어서 코드의 변경 없이 사용할수 있도록 만든 클래스이다. 이런 말로하면 이해가 잘 되지 않을테니, 코드로서 설명하겠다. 우선, 정수 num이 주어졌을때, num의 팩토리얼을 를 구하는 기능을 가진 클래스를 2개 만들어 보자. 그런데 다형성을 사용하여 프록시를 통한 공통의 기능을 구현해야 하니, Calculator라는 인터페이스를 만들어서 상속시키자. public interface Calculator { public long factorial(long num); } 다형성 사용을 위해서 인터페이스를 만들어줌. public class I..

스프링 DI 공부 및 내가 실수했던 것들[최범균의 스프링5 책](2021-05-26)

DI(DIpendency Ingection)란 '의존주입' 이라고 불린다. 여기서 의존에 대한 정의를 알아야 하는데 의존은 클래스 안에서 다른 클래스를 실행할 때, 이를 의존한다고 표현한다. 다시 정확하게 설명하자면, 의존은 한 클래스의 변경에의해 필연적으로 영향을 받는 관계를 의미한다. 즉, 의존의 대상이되는 코드의 변경이 이루어졌을때, 의존하는 메서드에 기능적, 프로그래밍적 영향을 미치면, 그건 두 클래스가 의존관계에 있다고 말할수 있다. 스프링은 이런 클래스들간의 의존관계를 관리해주는 기능을 제공한다. 대표적으로 DI 이다. 스프링의 DI없이 의존관계를 주입하려면, 어떤 클래스가 다른 클래스를 의존할때, 의존이 필요한 클래스 안에서 의존의 대상이 되는 클래스의 객체를 생성하는 방법으로 클래스간 의존..