본문 바로가기

Back-End/Spring-MVC

(14)
HTTP 응답 데이터 1. 정적 리소스CSS, JS, 이미지 같은 정적파일을 반환2. View TemplateView 이름을 반환하여 HTML 렌더링SSR 페이지 반환(Thymeleaf, JSP 등)3. @ResponseBody메서드 반환값을 그대로 HTTP 응답 바디로 반환REST API에서 JSON이나 텍스트 데이터 반환예시@GetMapping("/api/message")@ResponseBodypublic String message() { return "Hello, World!";}4. ResponseEntity응답 상태 코드, 헤더, 바디를 모두 제어할 수 있다.API 응답에 상태 코드와 헤더를 명시적으로 설정해야 할 때 사용예시@GetMapping("/api/user")public ResponseEntity ge..
HTTP 요청 데이터 1. @RequestParamURL 쿼리 파라미터나 HTML Form의 데이터를 매핑할 때 사용한다. 주로 HTTP 통신 Method 중 GET 방식의 통신을 할 때 사용.상황간단한 파라미터를 받을 때Ex. 검색 키워드나 페이징 번호예시"요청 URL : /search?keyword=spring&page=1"@GetMapping("/search")public String search(@RequestParam String keyword, @RequestParam int page) { return "Searching for: " + keyword + ", Page: " + page;}2. @ModelAttributeHTML Form 데이터나 URL 쿼리 파라미터를 객체로 바인딩상황 여러 필드를 가진 객체를 받..
@RequestMapping @RequestMapping은 Spring MVC에서 사용하는 애노테이션으로, 클라이언트가 보낸 HTTP 요청을 처리할 메서드나 클래스를 매핑하기 위해 사용된다. 즉, 특정 URL로 들어오는 요청을 어떻게 처리할지 연결하는 역할.1. RequestMapping의 기본 동작 원리@RequestMapping은 요청의 URL을 기준으로 컨트롤러나 메서드에 매핑한다.@Controllerpublic class MyController { @RequestMapping("/hello") public String sayHello() { return "hello"; // View 이름 (hello.html 같은 템플릿 파일을 반환) }}클라이언트가 /hello URL로 요청을 보내면 sayHe..
@Controller 와 @RestController 요약 정리 특징 @Controller@RestController주요 목적View(HTML)렌더링 반환JSON, XML 같은 데이터 반환리턴 값 처리 방식View 이름으로 해석(ex. return "home")데이터(객체) 자체를 HTTP 응답 본문에 반환내부 구성컨트롤러 로직만 포함@Controller + @ResponseBody 포함즉, @Controller는 화면(View)을 반환할 때 적합하며, SSR 환경에서 주로 사용.근데 @Controller도 @ResponseBody를 추가해주면 JSON 같은 데이터 반환 가능!@RestController는 데이터를 반환하는 REST API를 개발할 때 사용됨.
Spring MVC 구조 흐름 DispatcherServlet : Spring의 프론트 컨트롤러프론트 컨트롤러 패턴 : Servlet(Controller)이 호출되기 전에 공통 기능을 하나의 Servelt에서 처리해주는 패턴이다.프론트 컨트롤러 하나에 모든 클라이언트측 요청이 들어온다!Spring MVC 구조 실행 순서1. 요청Client(사용자)가 브라우저에서 URL을 입력하거나 버튼을 누르면 HTTP 요청(Request)이 만들어지고, 이 요청이 Dispatcher Servlet에 전달된다.2. 핸들러 찾기DispatcherServlet은 요청을 보고 어떤 컨트롤러(Handler)가 처리해야 하는지 HandlerMapping을 통해 찾는다.(여기서 컨트롤러는 요청을 처리하는 실제 로직을 담고 있는 클래스)Q : 어떤 컨트롤러가 ..
Spring MVC가 나오게 된 이유 Servlet으로 비지니스 로직과 View Rendering까지 모두 처리하면 너무 많은 역할을 하게 되고 유지보수가 굉장히 어려워져서 Spring MVC 패턴이 나오게 되었다.그럼 Servlet이 비니지스 로직, 뷰까지 처리하는 코드를 보자.@WebServlet("/products")public class ProductServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 비즈니스 로직 (상품 목록 생성) List products =..