개발 공부 기록

개발 공부 기록

  • 분류 전체보기 (205) N
    • spring (47) N
      • JPA (19)
      • TEST (4)
      • 비동기 처리 (4)
      • SECURITY (1)
      • BATCH (0)
      • WebFlux (6) N
    • 문제풀이 (2)
      • 백준 (2)
      • 프로그래머스 (0)
    • java (43)
      • java (39)
      • servlet_jsp (3)
      • jdbc (1)
    • 프론트 (7)
      • html (6)
      • css (1)
    • DB (12)
      • Oracle-기초 (8)
      • Mysql-기초 (4)
      • Redis (0)
    • CS (4)
      • Network (4)
      • 디자인 패턴 (0)
    • Project (0)
      • e-commerce (0)
    • Book (80)
      • 이펙티브 자바 (55)
      • 클린코드 (0)
      • 모던 자바 인 액션 (25)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

개발 공부 기록

컨텐츠 검색

태그

웹플럭스 Reactive 통합 테스트 단위 테스트 영속성 이펙티브 자바 비동기 JPA 메서드 참조 webflux Future 제네릭 스트림 람다식 Collector DSL 가변인수 리액티브 프로그래밍 리액티브 CompletableFuture

최근글

댓글

공지사항

아카이브

spring(47)

  • Spring WebFlux(4) - Annotated Controllers/Mapping Requests

    4.1 @RequestMapping @RequestMapping 어노테이션은 컨트롤러 메서드에 요청을 매핑할 때 사용한다.이 어노테이션은 아래와 같은 다양한 조건으로 매핑할 수 있다.URLHTTP methodrequest parametersheadersmedia types클래스 레벨에 사용하면 공통 매핑을 정의할 수 있고, 메서드 레벨에 사용하면 특정 엔드포인트 범위를 좁힐 수 있다. 아래는 HTTP method 를 특정해 단축한 @RequestMapping 의 변형 어노테이션이다.@GetMapping@PostMapping@PutMapping@DeleteMapping@PatchMapping위에서 언급된 애너테이션들(예: @GetMapping, @PostMapping 등)은 커스텀 애너테이션이며, 대부분의..

    2025.12.08
  • Spring WebFlux(4) - Annotated Controllers/@Controller

    Spring WebFlux - Annotated Controllers 스프링 웹플럭스는 어노테이션 기반 프로그래밍 모델을 지원한다. @Controller, @RestController 어노테이션이 붙은 컴포넌트들은 어노테이션을 사용해 요청 매핑, 요청 파라미터, 예외 처리, ... 기타 등등 을 표현한다.또한 어노테이션이 선언된 컨트롤러는 유연한 메서드 시그니쳐를 가지고 있어 클래스를 상속하거나 인터페이스를 구현할 필요가 없다. 아래는 기본 예제이다.@RestControllerpublic class HelloController { @GetMapping("/hello") public String handle() { return "Hello WebFlux"; }} 4.1 @Controller 컨트롤러 ..

    2025.12.06
  • Spring WebFlux(3) - DispatcherHandler

    Spring WebFlux - DispatcherHandler 스프링 웹플럭스는 스프링 MVC 와 비슷하게 프론트 컨트롤러를 기반으로 설계되었다. 여기서 중앙 웹 핸들러인 디스패처 핸들러는 요청 처리를 위한 공통 알고리즘을 제공하고 실제 작업은 설정 가능한 위임 컴포넌트에서 처리한다. 이 모델은 유연하고 다양한 워크 플로우를 지원한다. 디스패처 핸들러는 스프링 설정에서 필요한 위임 컴포넌트들 찾아낸다. 디스패처 핸들러는 스프링 빈으로 등록되며 실행중인 ApplicationContext 에 접근할 수 있도록 ApplicationContextAware 를 구현한다. 만약 디스패처 핸들러가 webHandler 라는 이름의 빈으로 등록된다면 WebHttpHandlerBuilder가 이를 찾아내고 요청 처리 체..

    2025.12.06
  • Spring WebFlux(2) - 코어(2)

    Spring WebFlux - Spring Core 2.4 Filters WebHandler API 에서 WebFilter를 사용해서 인터셉터처럼 필터의 다른 체인들과 최종 WebHandler 실행 전후에 실행시킬 수 있다.WebFlux Config 를 사용할 때에는 WebFilter를 스프링 빈으로 선언하면 간단하게 등록할 수 있다.옵션으로 @Order 어노테이션이나 Ordered 인터페이스를 구현함으로서 필터 실행 순서를 지정할 수 있다. corsSpring WebFlux는 컨트롤러에 애노테이션을 사용해서 세밀한 CORS 설정을 지원한다. 하지만 스프링 시큐리티와 함께 사용할 경우 내장된 CorsFilter를 사용하는걸 추천한다. CorsFilter는 스프링 시큐리티 체인보다 우선 실행된다. URL ..

    2025.12.06
  • Spring WebFlux(2) - 코어(1)

    Spring WebFlux - Spring Core 스프링 웹 모듈은 리액티브 웹 애플리케이션을 위한 다음과 같은 기본적인 지원이 포함되어있다.서버 요청 처리에는 두 가지 수준의 지원이 있다.HttpHandler: Http 요청을 넌 블러킹 I/O 방식과 reactive streams 백프레셔 기반으로 처리하기 위한 인터페이스.다양한 엔진에서도 문제없이 동작하도록 Reactor Netty, Tomcat, Jetty, Servlet container 어댑터도 함께 지원된다.WebHandlerAPI: 약간 고수준으로 일반적인 Http 요청을 처리하기 위한 API다. 이를 기반으로 어노테이션이 선언된 컨트롤러나 함수형 엔드포인트 같은 구체적인 프로그래밍 모델이 작성된다.클라이언트쪽에는 기본 ClientHtt..

    2025.12.02
  • Spring WebFlux(1) - 개요

    Spring WebFlux - Spring Framework Spring WebFlux는 완전한 Non-blocking을 제공하며 Reactive Streams의 백프레셔를 지원한다. 또한 Netty, Undertow, Servlet container 서버 위에서 동작한다. 왜 Spring WebFlux가 만들어졌을까?하나는 적은 수의 스레드와 적은 하드웨어 자원으로 동시성을 제어할 넌 블러킹 웹 스택을 필요로 했기 때문이다.서블릿 넌 블로킹 I/O 는 서블릿의 다른 동기 처리(Filter, Servlet)나 블로킹 방식(getParameter, getPart) 때문에 넌 블러킹을 구현하기가 어렵다.이 때문에 넌-블러킹 환경에 맞는 새로운 공통 API가 만들어졌다. * 넌-블러킹 웹 스택 : 요청이 발생..

    2025.11.29
  • 스프링 시큐리티(1) - URL 접근 보안하기

    과제 대다수 웹 애플리케이션에는 특별히 보안에 신경 써야 할 민감한 URL이 있다. 이런 URL에 미인가 외부 유저가 제약 없이 접근할 수 있도록 보안하라 해결책 스프링 시큐리티는 HTTP 요청에 서블릿 필터를 적용해 보안을 처리한다. AbstractSecurityWebApplicationInitializer라는 베이스 클래스를 상속하면 편리하게 필터들 등록하고 구성 내용이 자동 감지되게 할 수 있다. WebSecurityConfigurerAdapter라는 구성 어댑터에 준비된 다양한 configure() 메서드를 이용하면 웹 애플리케이션 보안을 쉽게 구성할 수 있다. 간단하고 일반적인 보안 요건은 구성 파일을 건드리지 않아도 아래 기본 보안 설정을 바로 적용할 수 있다. *폼 기반 로그인 서비스 : 유..

    2024.03.08
  • 스프링 비동기(4) - 웹소켓

    과제 서버/ 클라이언트가 웹에서 양방향 통신을 할 수 있게 하라 해결책 HTTP와 달리 전이중 통신이 가능한 웹소켓을 이용하면 서버/클라이언트가 서로 양방향 통신을 할 수 있다. 풀이 웹소켓 기술과 HTTP는 가까운 기술이다. 웹소켓에서 HTTP는 처음 한번 핸드셰이크를 할 때만 쓰이고 이후에는 접속 프로토콜이 일반 HTTP => TCP 소켓으로 업그레이드 된다. 웹소켓 지원 기능 설정 구성 클래스에 @EnableWebSocket만 붙이면 웹소켓 기능을 활용할 수 있다. @Configuration @EnableWebSocket public class WebSocketConfiguration { } 버퍼 크기, 타입아웃 등 웹소켓 엔진을 추가 설정할 경우 ServletServerContainerFactor..

    2024.03.05
  • 스프링 비동기(3) - 비동기 인터셉터

    과제 서블릿 API로 정의한 서블릿 필터는 서블릿 웹 요청을 처리하기 전후마다 원하는 선/후처리 로직을 수행할 수 있다. 스프링 웹 애플리케이션 컨텍스트의 필터 비슷한 뭔가를 구성해 컨테이너의 장점을 이용해보자 또한 스프링 MVC 핸들러가 담당하는 웹 요청을 선/후처리하는 과정에서 모델 속성을 뷰에 반환하기 전 조작해보자 해결책 스프링 MVC에서는 핸들러 인터셉터를 사용해 웹 요청을 가로채고 원하는 선/후처리를 할 수 있다. 핸들러 엔터셉터는 스프링 웹 애플리케이션 컨텍스트에 구성하기 때문에 컨테이너 기능을 얼마든지 꺼내쓸 수 있고 컨테이너에 선언된 빈은 전부 다 참조 가능하다. 핸들러 인터셉터는 특정 URL로 들어오는 요청만 적용되도록 설정할 수 있다. 스프링 HandlerInterceptor 인터페이..

    2024.03.05
이전
1 2 3 4 ··· 6
다음
티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바