1. Spring WebFlux란?Spring WebFlux는 Spring Framework 5.0부터 도입된 완전한 비차단(Non-Blocking) 방식의 리액티브 웹 프레임워크입니다. 적은 수의 스레드로 대량의 동시 접속 요청을 효율적으로 처리하기 위해 설계되었으며, Netty, Undertow, Servlet 3.1+ 컨테이너 등 다양한 서버 환경에서 실행됩니다.기존 Spring MVC가 '요청 당 스레드(Thread-per-Request)' 모델을 사용했다면, WebFlux는 **이벤트 루프(Event Loop)**와 비동기 I/O를 통해 리소스를 극한으로 효율화합니다.핵심 특징Non-Blocking I/O: I/O 작업(DB 조회, API 호출 등) 시 스레드가 대기하지 않고 다른 작업을 처리합..
소프트웨어 공학, 특히 웹 개발을 공부하다 보면 가장 먼저 마주치게 되는 디자인 패턴이 바로 MVC(Model-View-Controller) 입니다. 단순히 코드를 나누는 것을 넘어, 유지보수와 협업을 위해 필수적인 이 패턴에 대해 정리해 봅니다.1. MVC 패턴이란?MVC (Model - View - Controller) 는 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발하는 소프트웨어 디자인 패턴입니다.이 패턴의 핵심 목적은 "관심사의 분리(Separation of Concerns)" 입니다. 사용자가 보는 화면(View)과 데이터 처리 로직(Model)을 서로 분리함으로써, 한쪽을 수정하더라도 다른 쪽에 영향을 최소화하여 유지보수를 쉽게 만듭니다.2. 핵심 구성 요소 (The 3 Compo..
ObjectMapper는 Java 객체와 JSON 데이터를 변환하는 데 널리 사용되는 도구입니다. 하지만 매번 새로운 ObjectMapper 인스턴스를 생성하는 것은 여러 가지 문제를 야기할 수 있습니다. 이 글에서는 ObjectMapper를 매번 호출하지 말아야 하는 이유와 더 나은 사용 방법에 대해 알아보겠습니다.ObjectMapper 반복 생성의 문제점성능 저하: ObjectMapper는 내부적으로 많은 초기화 작업을 수행하기 때문에, 일반 객체에 비해 생성 비용이 높습니다.일관성 부족: 매번 새로운 인스턴스를 생성하면 날짜 형식, 직렬화 규칙 등이 매번 초기화되어 일관성이 깨질 수 있습니다.유지보수 어려움: 설정이 분산되어 있으면 코드 유지보수가 어려워집니다.캐시 효율성 저하: ObjectMapp..