본문 바로가기

Spring Framework16

디폴트 서블릿(Default Servlet) 디폴트 서블릿(Default Servlet)은 웹 서버에서 정적 자원(예: 이미지, CSS 파일, JavaScript 파일 등)을 처리하는 데 사용되는 서블릿입니다. 일반적으로 정적 파일들은 서블릿이 아닌 서블릿 컨테이너(예: 톰캣)에서 직접 제공되며, 서블릿 요청은 애플리케이션의 비즈니스 로직에 해당하는 요청을 처리합니다. 디폴트 서블릿은 이러한 정적 자원 요청을 처리하기 위한 기본적인 역할을 합니다.서블릿과 디폴트 서블릿의 관계서블릿은 자바 웹 애플리케이션에서 동적인 요청을 처리하기 위해 사용되며, JSP나 컨트롤러와 같은 동적인 웹 페이지 생성에 주로 사용됩니다. 하지만 웹 애플리케이션에는 정적인 리소스(예: 이미지, HTML, CSS, JavaScript 파일 등)도 포함됩니다. 이 정적인 리소스.. 2024. 10. 15.
ResponseEntity ResponseEntity는 Spring Framework에서 사용되는 클래스로, HTTP 응답(Response)을 보다 세밀하게 제어하기 위해 사용됩니다. 이를 통해 응답 상태 코드, 응답 헤더, 그리고 응답 본문(Body)를 모두 설정할 수 있습니다. 일반적으로 REST API 개발 시 주로 사용됩니다.ResponseEntity는 단순한 응답 데이터뿐만 아니라, HTTP 응답의 세부 사항을 설정하고 전달할 수 있는 유연한 방법을 제공합니다.ResponseEntity의 주요 구성 요소응답 본문(Body): 실제로 클라이언트에게 전달되는 데이터입니다. JSON, XML, 문자열, 객체 등 다양한 형태로 전달할 수 있습니다.응답 헤더(Headers): 클라이언트에게 추가 정보를 제공하는 메타데이터입니다. .. 2024. 10. 14.
XMLHttpRequest(XHR) - 비동기 자바스크립트 XMLHttpRequest(XHR)는 자바스크립트에서 비동기적으로 서버와 통신할 수 있게 해주는 API입니다. 이는 웹 페이지가 전체적으로 다시 로드되지 않고도 데이터를 서버에서 가져오거나 서버로 전송할 수 있도록 해줍니다. 이 방식은 AJAX(Asynchronous JavaScript and XML)의 핵심 부분으로, 사용자가 웹 페이지와 상호작용할 때 좀 더 빠르고 부드러운 사용자 경험을 제공할 수 있습니다.XMLHttpRequest 객체 사용XMLHttpRequest 객체는 자바스크립트에서 서버와의 요청을 만들고, 데이터를 비동기적으로 처리할 수 있게 해줍니다. 이 객체를 사용하면 GET, POST와 같은 HTTP 요청을 비동기적으로 보낼 수 있으며, 서버의 응답을 처리할 수 있습니다.기본 사용 방.. 2024. 10. 14.
@Valid와 @Validated @Valid와 @Validated는 모두 Spring에서 유효성 검사를 할 때 사용되는 애노테이션이지만, 적용 범위와 사용 방식에서 차이가 있습니다. 각 애노테이션의 차이점과 사용 방법에 대해 설명하겠습니다.1. @Valid@Valid는 자바 표준 유효성 검사(JSR-303, JSR-380)에서 사용되는 애노테이션입니다. 이 애노테이션은 Spring에서 자주 사용되며, Bean Validation API를 통해 객체의 필드 값들을 검사할 수 있습니다.주 용도: 자바 Bean의 필드에 대해 정의된 제약 조건(예: @NotNull, @Size, @Email 등)을 검사합니다.위치: 주로 컨트롤러 메서드의 매개변수에 사용하거나 객체 내부의 필드 검증에 사용합니다.적용 대상: 자바 표준 유효성 검사 애노테이션을.. 2024. 10. 14.
프록시와 어댑터 💡 프록시(Proxy) = 크로스컷팅 관심사(Cross-Cutting Concern)를 제공프록시 패턴(Proxy Pattern)은 대리 객체를 통해 원래 객체에 대한 접근을 제어하는 디자인 패턴입니다. 이 패턴은 주로 크로스컷팅 관심사(Cross-Cutting Concern)를 처리하는 데 사용됩니다.크로스컷팅 관심사(Cross-Cutting Concern):크로스컷팅 관심사는 애플리케이션의 주요 비즈니스 로직과는 직접적인 관련이 없지만, 다양한 모듈에서 반복적으로 나타나는 공통 기능을 말합니다. 대표적인 예로 로그 기록, 트랜잭션 관리, 보안 검사, 캐싱, 모니터링 등이 있습니다.이러한 기능을 각 비즈니스 로직에 직접 포함시키는 대신, 프록시를 사용하여 비즈니스 로직에 영향 없이 해당 기능을 추가할.. 2024. 10. 8.
스프링 웹 MVC 스프링 웹 MVC(Spring Web MVC)는 Model-View-Controller(MVC) 패턴을 기반으로 웹 애플리케이션을 개발하는 프레임워크입니다. 이 패턴은 애플리케이션의 비즈니스 로직, 사용자 인터페이스, 그리고 요청 처리를 명확하게 분리하여 유지보수성과 확장성을 높입니다.   💡 Spring MVC 요청 처리 흐름:클라이언트 요청(① Request):사용자가 브라우저에서 서버로 HTTP 요청을 보냅니다. 이 요청은 DispatcherServlet으로 전달됩니다.DispatcherServlet이 요청을 수신:DispatcherServlet은 Spring MVC의 Front Controller 역할을 하며, 모든 요청을 중앙에서 처리합니다. 이곳에서 요청을 받아서 적절한 Handler(주로 .. 2024. 10. 8.