Spring/MVC(18)
-
Redirect와 Forward
1. 요청과 응답의 방식개념누가 수행?의미 POST, GET 등 클라이언트(브라우저)서버로 어떻게 요청할까, 요청의 종류 redirect, forward서버(서블릿, 컨트롤러)클라이언트한테 어떻게 응답할까, 응답 후 화면 이동 방식 2. Redirect vs Forward 리다이렉트포워드요청 흐름요청 2번, 클라이언트한테 새 요청 시킴요청 1번, 서버 안에서 내부 이동데이터 유지안됨 (새 요청이니까)됨 (request 데이터 유지)URL 변화바뀜안 바뀜속도상대적으로 느림빠름주로 쓰는 상황POST 처리 후 새로고침 문제 방지데이터 넘기면서 화면 전환[Redirect] 요청이 두 번 일어남 (1) 클라이언트 -> 서버 (요청: /login)(2) 서버 -> 클라이언트 (응답: 상태코드 "302 redirec..
2025.05.30 -
9. 스프링 MVC와 Thymeleaf로 웹 페이지 만들기
1. Controller @Controller@RequestMapping("/basic/items")@RequiredArgsConstructorpublic class BasicItemController { private final ItemRepository itemRepository; /* 1. @RequiredArgsConstructor @RequiredArgsConstructor는 final이 붙은 멤버변수만 사용해서 생성자를 자동으로 만들어준다. + 생성자가 딱 1개만 있으면 스프링이 해당 생성자에 @Autowired로 의존관계를 주입해주기 때문에 생략 가능하다. => 따라서 @RequiredArgsConstructor 넣으면 아래 생성자..
2025.05.12 -
타임리프(Thymeleaf) 간단 정리
1. 타임리프 선언2. 타임리프 핵심핵심은 th:xxx 가 붙은 부분은 서버사이드에서 렌더링 되고, 기존 속성을 대체한다.HTML 파일을 브라우저에서 직접 열면 th: 속성은 무시되고 원래 HTML만 보여짐 → 순수 HTML처럼 보임서버를 통해 렌더링하면 th: 속성이 적용된 최종 결과가 보여짐JSP는 서버 렌더링 없이 브라우저에서 직접 열면 깨지지만, 타임리프는 안 깨짐이렇게 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수 있는 타임리프의 특징을 네츄럴 템플릿이라 한다.3. 속성 변경 - th:xxx등록기존 HTML 속성을 동적으로 바꾸고 싶을 때 사용한다. th:href, th:onclick, th:src 등 대부분의 속성에 th:를 붙여서 사용 가능th:onclick 같이 JS 코드가 필요..
2025.05.09 -
웹 경로 구조 정리: 정적 리소스, 뷰 템플릿 경로 구분
1. 상대경로 vs 절대 경로1) 상대경로 vs 절대경로상대경로(relative path): 현재 파일의 위치를 기준으로 경로를 지정하는 방식예: ../css/style.css, ./image/logo.png절대경로(absolute path): 웹 루트(/)를 기준으로 경로를 지정하는 방식예: /css/style.css, /images/logo.png2) 상대경로 문법 문법의미./file 현재 폴더의 file../file부모 폴더의 filefile기본적으로 ./file처럼 동작 (현재 폴더 기준)3) 언제 어떤 경로를 써야 할까?브라우저가 HTML을 로컬 파일로 직접 열 경우: 상대경로 사용 가능서버가 HTML을 응답으로 렌더링해줄 경우 (ex. 타임리프): 절대경로 사용이 안전함2. 정적 리소스와 뷰 ..
2025.05.09 -
8. 스프링 MVC 기본 기능
[목차]1. 요청 매핑 1) 요청 매핑2) @RequestMapping의 주요 애트리뷰트3) 경로변수 @PathVariable4) HTTP API 예제 2. HTTP 요청/응답 복습 1) HTTP 메시지 구조2) HTTP 요청/응답 데이터 전달 방식 3) HTTP 요청/응답 메시지 바디에 들어가는 데이터의 종류 3. HTTP 요청 메시지 조회 3-1. 요청 메시지의 시작라인, 헤더 조회3-2. 요청 메시지의 파라미터 조회 1) 요청 파라미터 전송 방식 2가지 2) @RequestParam3) @ModelAttribute3-3. 요청 메시지의 메시지 바디 조회 1) 단순 텍스트: @RequestBody + String 파라미터 2) JSON: @RequestBody + 객체 파라미터 4. HTTP 응답 메..
2025.05.08 -
7. 스프링 MVC의 HttpMessageConverter
[목차] 1. HttpMessageConverter란? 2. HttpMessageConverter 동작 시점3. HttpEntityMethodProcessor와 RequestResponseBodyMethodProcessor4. RequestMappingHandlerAdapter 동작 흐름 정리 1. HttpMessageConverter란? RequestMappingHandlerAdapter는 컨트롤러 메서드를 호출할 때 파라미터 처리와 리턴값 처리를 위해HandlerMethodArgumentResolver 리스트와 HandlerMethodReturnValueHandler 리스트를 순회하며파라미터 타입, 리턴 타입, 어노테이션 정보를 기반으로 적절한 구현체를 선택한다.이때, HttpMessageConve..
2025.05.02