전체 글
-
[김영한 스프링] 28. 스프링 MVC 웹 페이지 만들기 - 프로젝트 생성 & 세팅 & 요구사항 분석Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 19. 00:09
프로젝트 생성 프로젝트 만들기 https://start.spring.io 프로젝트 선택 Project : Gradle-Groovy Language : Java Spring Boot : SNAPSHOT이 아닌 버전에서 2.x Project Metadata Group : hello Artifact : item-service Name : item-service Package name : hello.itemservice Packaging : Jar (주의!) Java : 11 Dependencies : Spring Web, Thymeleaf, Lombok 프로젝트 열기 build.gradle 선택 -> 프로젝트 열기 설정 설정 -> 어노테이션 프로세서 -> 어노테이션 처리 활성화 체크 설정 -> 파일 인코딩 -..
-
[김영한 스프링] 27. 스프링 MVC 기본 기능 - HTTP 메시지 컨버터 & 요청 매핑 헨들러 어뎁터 구조Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 18. 00:25
HTTP 메시지 컨버터 뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리하다. @ResponseBody 사용 원리 @ResponseBody를 사용 HTTP의 BODY에 문자 내용을 직접 반환 viewResolver 대신에 HttpMessageConverter가 동작 기본 문자처리 : StringHttpMessageConverter 기본 객체처리 : MappingJackson2HttpMessageConverter byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 적용한다. HTT..
-
[김영한 스프링] 26. 스프링 MVC 기본 기능 - 응답Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 17. 22:26
HTTP 응답 - 정적 리소스, 뷰 템플릿 스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다. 정적 리소스 예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다.(파일을 그대로 전달하는) 뷰 템플릿 사용 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다. HTTP 메시지 사용 HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. 정적 리소스 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources src/main/resources는 리..
-
[김영한 스프링] 25. 스프링 MVC 기본 기능 - HTTP 요청 메시지Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 14. 03:41
HTTP 요청 메시지 - 단순 텍스트 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, XML, TEXT 데이터 형식은 주로 JSON 사용 POST, PUT, PATCH 요청 파라미터와 다르게, HTTP 메시지 바디를 통해 데이터가 직접 넘어오는 경우는 @RequestParam, @ModelAttribute를 사용할 수 없다. (물론 HTML Form 형식으로 전달되는 경우는 요청 파라미터로 인정된다.) 먼저 가장 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고, 읽어보자. HTTP 메시지 바디의 데이터를 InputStream을 사용해서 직접 읽을 수 있다. RequestBodyStringController main/java/hello/..
-
[김영한 스프링] 24. 스프링 MVC 기본 기능 - HTTP 요청 파라미터Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 14. 02:24
HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form HTTP 요청 데이터 조회 - 개요 클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 다음 3가지 방법을 사용한다. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Form 사용 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 ..
-
[김영한 스프링] 23. 스프링 MVC 기본 기능 - HTTP 요청 기본, 헤더 조회Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 14. 00:33
HTTP 요청 - 기본, 헤더 조회 애노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 지원한다. RequestHeaderController main/java/hello/springmvc/basic/request/RequestHeaderController 생성 package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpMethod; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.CookieValue; import org.springframework...
-
[김영한 스프링] 22. 스프링 MVC 기본 기능 - 요청 매핑Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 12. 02:33
요청 매핑 MappingControlle package hello.springmvc.basic.requestmapping; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") public ..
-
[김영한 스프링] 21. 스프링 MVC 기본 기능 - 로깅 간단히 알아보기Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 11. 22:31
로깅 간단히 알아보기 운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 참고로 로그 관련 라이브러리도 많고, 깊게 들어가면 끝이 없기 때문에, 여기서는 최소한의 사용 방법만 알아본다. 로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. 쉽게 이야기해서 SLF4..