안녕하세요!이번 포스트는 Spring에서 어떻게 JSESSIONID 쿠키로 구분하는지를 포스팅하려고 합니다!컨트롤러에서 직접적으로 JSESSIONID 쿠키를 사용하지 않는데 어떻게 세션을 구분하여 찾는지 알아보겠습니다. 1. 서블릿 컨테이너 Session 사용과 조회우선 Spring에서 세션을 사용하는 방식의 간단한 예제를 보여드리겠습니다. 세션 생성 및 저장우선, 세션을 만들고 데이터를 저장합니다.request.getSession()이 호출되면 스프링 부트에 내장된 톰캣이 다음을 수행합니다.- 요청에 JSESSIONID 쿠키가 있는지 확인- 없으면, 새로운 HttpSession 객체와 고유한 세션 ID를 생성하고, 이 ID를 JSESSIONID 쿠키로 만들어 응답에 추가.- 있으면, 기존 HttpSes..
제가 팀 프로젝트를 했을 때, Spring Security를 사용하여 JWT 토큰을 이용한 인증/인가 방식을 구현했습니다.그런데, 프로젝트 종료 후 생각해보니 왜 JWT 인증 방식을 사용했는지, 세션 방식을 사용하면 되지 않았는지를 생각하게 됐습니다.그래서, 이번 포스팅은 JWT에 대해 알아보고, 팀 프로젝트에서 꼭 JWT를 사용했어야 됐는지를 이야기해 보려고 합니다.결론먼저 말씀 드리면, 꼭 JWT 인증 방식을 사용하지 않아도 됐다.입니다. (저의 생각이 틀릴 수 있습니다!)우선, JWT 인증 방식에 대해 알아봅시다!토큰 기반 자격 증명우선, 토큰은 '입장권'이라고 생각을 하면 됩니다. 서버에서 이 토큰을 보고 인증과 인가를 처리합니다.입장권이라는 말은 서버에서 사용자 정보를 별도로 관리하지 않는다는 ..
앞선 포스트에서는 정기 결제를 구현할 때 스프링에서 제공하는 스케쥴러를 사용했습니다.하지만 정기 결제 로직을 구현하는 데 있어서 런타임에 동적으로 스케쥴러의 주기를 바꿀 수 없는 문제가 있어서 Quartz 라이브러리를 사용하게 되었습니다. 문제를 다시 회고해 보자면,런타임 환경에서, 첫 결제일을 기준으로 주기 변경을 하기 힘들다.스케쥴을 db에 영속적으로 저장하기 힘들다.였습니다. 그런데, quartz 라이브러리를 사용하면 위의 두 가지 문제가 해결됩니다.또한, 두 스프링 스케쥴러보다 훨씬 더 디테일하고 자세하게 설정이 가능합니다. 설정 환경은 Springboot 2.7.5, Quartz 2.3.2, java 11 버전입니다.우선 Quartz는 스프링 스케쥴러보다 더 구체적인 기능 구현이 가능합니다.저..
프로젝트에서 정기 결제 스케줄을 만들기로 결정했습니다.사용자가 주기를 설정하면,예를 들어 30일 주기로 배송을 정하면 30일마다 결제가 되게 해야 했습니다(프로젝트에서 결제가 되면 배송이 된다고 가정).그리고 사용자는 배송 주기를 변경할 수 있고, 취소도 할 수 있습니다.처음에는 어떻게 구현해야 할지 막막했지만 자바로 구현할 수 있는 스케쥴러를 찾아보다 Spring에서 제공하는 Scheduling Tasks를 사용하게 되었습니다. https://spring.io/guides/gs/scheduling-tasks/ Getting Started | Scheduling TasksAlthough scheduled tasks can be embedded in web applications, the simpler a..
- Total
- Today
- Yesterday
- 커넥션풀문제
- java
- N + 1
- 항해99
- SpringBatch
- 분산락
- http메서드
- 알고리즘
- spring session
- spring.
- 대용량데이터
- 네트워크
- StringBuilder
- AttributeConverter
- 정기결제
- 세션
- 디자인패턴
- leetcode
- socket통신
- 외부API
- jpa
- 싱글모듈
- Http 버전
- 무상태성
- 리트코드
- redisson
- 프로그래머스
- 벌크헤드
- fetch join
- 백준
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |