| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Console
- oAuth2
- 순환참조
- nodejs
- 파라메트릭 서치
- 이진탐색
- 안드로이드 스튜디오
- HttpCookieOAuth2AuthorizationRequestRepository
- 백준
- Async
- 프롬프트
- 프롬프트엔지니어링
- __filename
- 다이내믹 임포트
- JPA
- __dirname
- 객체지향의 사실과 오해
- import.meta.url
- 노드 내장 객체
- 우테코
- 객체지향
- 우테코 프리코스
- exports
- 8기
- 프리코스
- 이분탐색
- ECMAScript
- await
- CommonJS
- Global
- Today
- Total
목록Back-End (22)
코딩하는 감쟈
OAuth2 로그인 시 HttpCookieOAuth2AuthorizationRequestRepository가 State를 어떻게 저장하고 검증하는지 단계별로 알아보겠습니다.우선, OAuth2 로그인 플로우 개요를 간단히 보겠습니다.사용자 → 로그인 버튼 클릭 ↓백엔드 → 카카오로 리다이렉트 ↓사용자 → 카카오에서 로그인 ↓카카오 → 백엔드로 리다이렉트 ↓백엔드 → JWT 토큰 발급1. OAuth2 로그인에서 State가 필요한 이유위 과정에서 시작 요청(백엔드 → 카카오)과 콜백 요청(카카오 → 백엔드)은 완전히 다른 HTTP 요청입니다.HTTP는 무상태(Stateless)이기 때문에, 시작 단계에서 시작한 요청과 콜백 단계에서 돌아온 요청이 같은 사용자인지 확인할 방법이 필요합니다..
flowchart TD A[클라이언트] -->|HTTP 요청| B[DispatcherServlet] B -->|1.핸들러 조회| C[핸들러 매핑] C --> B B -->|2.핸들러 어댑터 조회| D[핸들러 어댑터 목록] D -->|3.handle: handler| E[핸들러 어댑터] E -->|4.handler 호출| F[핸들러: 컨트롤러] F -->|5.ModelAndView 반환| E E --> B B -->|6.viewResolver 호출| G[viewResolver] G -->|7.View 반환| B B -->|8.render: model 호출| H[View] H -->|HTML 응답| A예시 코드 PostController.jav..
빈 스코프란?빈이 존재할 수 있는 범위를 뜻한다.스프링이 지원하는 스코프싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다.웹 관련 스코프request: 웹 요청이 들어오고 나갈때까지 유지되는 스코프이다.session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프이다.application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프이다.프로토타입 스코프프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 생성해서 반환한다.스프링 컨테이너는 프로토타입 빈을 생성하고, 의존관계 주입, 초..
빈 생명주기 콜백스프링 빈은 간단하게 다음과 같은 라이프사이클을 가진다.객체 생성 -> 의존관계 주입스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료된다.스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공한다. 또한 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다.스프링 빈의 이벤트 라이프사이클스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료1. 인터페이스(InitializingBean, DisposableBean)public class NetworkClient implements Initializ..