Spring Filter와 AOP 차이 및 활용 정리Spring 애플리케이션을 개발하다 보면 공통된 처리 로직을 여러 요청에 적용해야 할 때가 많다.모든 요청에 대해 IP를 로깅하거나, 특정 메서드 실행 전에 인증을 검사하거나, 실행 시간을 측정하는 등.이러한 횡단 관심사(Cross-Cutting Concern)를 처리하기 위한 대표적인 방법이 바로 Filter와 AOP.Filter란?Filter는 서블릿 스펙의 일부로, DispatcherServlet 이전 단계에서 동작.즉, Spring MVC가 요청을 처리하기 전에 먼저 실행 됨.특징HttpServletRequest와 HttpServletResponse에 접근 가능요청 전/후 처리 모두 가능인증/인가, IP 로깅, CORS 처리, RequestWra..
오늘의 할일NGINX?NGINX와 리버스 프록시의 개념과 활용Spring + FastAPI 프로젝트 기반웹 서비스 개발 시 자주 접하는 개념 중 하나가 리버스 프록시(Reverse Proxy)특히 백엔드 서버가 여러 개이거나, React와 같은 프론트엔드와 분리된 구조를 사용할 때리버스 프록시 도입이 필수적인 아키텍처 구성 요소리버스 프록시란?리버스 프록시는 클라이언트(사용자)의 요청을 받아 백엔드 서버에 전달하고,응답을 다시 클라이언트에게 반환하는 중간 게이트웨이 역할 수행.사용자는 하나의 도메인(URL)만 인지하며,내부적으로 여러 서버가 요청을 분산 처리하는 구조.리버스 프록시의 필요성1. 단일 진입점 제공클라이언트가 하나의 도메인만 사용하며, 내부적으로 정적 웹, API 서버(Spring, Fast..
오늘의 할일Docker Docker를 활용한 공통 환경 구성Docker는 여러 개의 서비스를 컨테이너로 분리하여 효율적으로 관리할 수 있게 해주는 강력한 도구Docker Compose란?Docker Compose는 여러 개의 Docker 컨테이너를 한번에 정의하고 관리할 수 있는 도구. 일반적으로 각 서비스는 별도의 컨테이너로 실행되며, Docker Compose를 사용하면 이러한 서비스를 하나의 파일로 정의하여 동시에 실행하거나 관리할 수 있음. 이를 통해 복잡한 환경을 간편하게 구축하고 운영할 수 있다.Docker Compose의 주요 특징다수의 컨테이너 관리: 여러 개의 서비스(컨테이너)를 하나의 파일로 정의하고 실행할 수 있음.환경 설정의 편리함: 각 서비스의 환경변수, 볼륨, 네트워크 등을 do..
오늘의 할일네트워크 기본개념자바 테스트 코드 2025.05.01 - [study/Network] - 네트워크 개념 정리 OSI 7 Layer ~ 4Layer detailspring boot 기반 java test code 1. 테스트의 필요성코드가 원하는 대로 동작하는지 검증유지보수, 리팩토링 시 안정성 확보자동화된 테스트로 반복적인 검증 가능2. 테스트 종류테스트 종류설명사용 기술단위 테스트 (Unit Test)하나의 클래스나 메서드 단위 테스트JUnit, Mockito통합 테스트 (Integration Test)여러 Bean 간의 실제 연결을 포함한 테스트Spring Boot Test, TestRestTemplate인수 테..
오늘의 할일Rest API에서 ResponseEntity 활용 Rest, Rest API2025.04.28 - [study/Web] - REST, REST APISpring REST API에서 ResponseEntity 활용하기REST API를 설계할 때 HTTP 상태 코드는 매우 중요한 역할. 클라이언트는 상태 코드를 통해 요청이 성공했는지, 실패했는지, 혹은 어떤 오류가 발생했는지 판단할 수 있다.Spring MVC에서는 ResponseEntity를 사용해 상태 코드, 헤더, 본문을 세밀하게 제어할 수 있고, 이를 통해 클라이언트에게 명확하고 일관된 API 응답을 제공할 수 있다.ResponseEntity란?Response..
오늘의 할일Spring Boot Spring BootSpring Boot Starter라이브러리 묶음, pom추가시 관련 라이브러리 자동적용Auto ConfigurationSpring Boot는 프로젝트의 의존성과 설정을 자동으로 구성어노테이션@SpringBootApplicationBoot 시작 클레스에 붙이는 어노테이션@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan@Configuration : 해당클레스가 스프링의 설정 클레스임을 나타냄, 내부에서 bean을 사용하여 bean등록가능@EnableAutoConfiguration : 스..
오늘의 할일Mybatis MybatisMybatis?DB쿼리와 JAVA코드를 분리하여 유지보수/생산성 ↑기존 JAVA코드 내에 SQL문장들을 분리 해 주어 코드의 양이 줄고 유연해진다.Mybatis setting# 기존 maven 프로젝트 기준으로 설정하는 Mybatisroot-content.xml에 mybatis 관련 설정 추가.더보기 ---------- sqlsessionfactory - sqlsession을 생성해서 제공 sqlsession - sql명령을 수행하는데 필요한 메서드 제공 (mybatis 모듈이 제공) ---------- sqlsessionfactorybean - sqlsessionfact..