일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 서블릿
- 추상클래스
- 스프링
- JSON
- @configuration
- 의존관계
- DI
- ocp
- objecterror
- 티스토리챌린지
- 코드트리
- 오버라이딩
- HttpServletResponse
- equals()
- 코드트리조별과제
- html form
- http 메시지 컨버터
- 테스트코드
- 참조변수
- 백준
- 프록시
- 다형성
- 오블완
- java
- 싱글톤
- 인터페이스
- 김영한
- fielderror
- 스프링컨테이너
- 코딩테스트
- Today
- Total
목록TIL (147)
minOS
Thymeleaf 특징1) 서버 사이드 HTML 렌더링 (SSR)타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다.2) 네츄럴 템플릿타임리프는 순수 HTML을 최대한 유지하는 특징이 있다. 타임리프로 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다. 타임리프로 작성된 파일은 해당 파일을 그대로 웹 브라우저에서 열어도 정상적인 HTML 결과를 확인할 수 있다. 물론 이 경우 동적으로 결과가 렌더링 되지는 않는다. 하지만 HTML 마크업 결과가 어떻게 되는지 파일만 열어도 바로 확인할 수 있다. 이렇게 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수..
요청 매핑 핸들러 어댑터 요청 맵핑 핸들러 어댑터란?: 스프링 프레임워크에서 클라이언트의 HTTP 요청을 적절한 핸들러 메서드로 연결해주는 중요한 구성 요소.핸들러 어댑터의 역할과 중요성: 다양한 핸들러를 유연하게 지원하고, 요청 처리 로직의 확장성을 보장.ArgumentResolver애노테이션 기반 컨트롤러는 `HttpServletRequest`, `Model`뿐만 아니라 `@RequestParam`, `@ModelAttribute` 같은 애노테이션, 그리고 `@RequestBody`, `HttpEntity`와 같은 HTTP 메시지 처리 방식 등 매우 다양한 파라미터를 활용할 수 있다. 이러한 유연한 파라미터 처리가 가능한 이유는 바로 `ArgumentResolver` 덕분이다.애노테이션 기반 컨트롤..
HTTP 메시지 컨버터뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리하다.@ResponseBody 사용 원리1) HTTP의 BODY에 문자 내용을 직접 반환2)`viewResolver` 대신에 `HttpMessageConverter` 가 동작3) 기본 문자처리: `StringHttpMessageConverter`4) 기본 객체처리: `MappingJackson2HttpMessageConverter`5) byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음 참고: 응답의 경우 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반..
HTTP 응답 - HTTP API, 메시지 바디에 직접 입력HTTP API를 제공할 때는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. 이 경우 정적 리소스나 뷰 템플릿을 거치지 않고, 서버가 직접 HTTP 응답 메시지를 생성하여 클라이언트에 전달한다.1) 문자열 응답을 직접 HttpServletResponse 객체를 사용해 전송하는 방법@GetMapping("/response-body-string-v1") public void responseBodyV1(HttpServletResponse response) throws IOException { response.getWriter().write("ok"); } 서블릿..
HTTP 응답 - 정적 리소스, 뷰 템플릿스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다.1) 정적 리소스 예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다.2) 뷰 템플릿 사용 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다.3) HTTP 메시지 사용 예) HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. 정적 리소스스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다./static , /public , /resources ,/META-INF/resourcessrc/main/resourc..
HTTP 요청 메시지 - JSON이번에는 HTTP API에서 주로 사용하는 JSON 데이터 형식을 조회해보자.기존 서블릿에서 사용했던 방식과 비슷하게 시작해보자./** * 이 컨트롤러는 JSON 형식의 요청 본문을 처리하는 다양한 방법을 보여줍니다. * 예시 요청 본문: {"username":"hello", "age":20} * Content-Type: application/json */1)HttpServletRequest와 HttpServletResponse를 사용하여 JSON 요청 본문을 읽고 처리하는 방법 @PostMapping("/request-body-json-v1") public void requestBodyJsonV1(HttpServletRequest request, HttpSe..