본문 바로가기
관리자

Programming-[Backend]

(394)
[스프링 웹MVC-2] 2. 타임리프 기본 - 2 : 대표 문법 공부 계속 - 반복, 조건, 주석, 블록, 자바스크립트, 템플릿, 레이아웃 1. 타임리프 기능 살펴보기 - 이전 글에 이어서 반복 반복 기능은 반복적으로 데이터를 렌더링 해준다. 아래 코드와 같이 th:each="파라미터1, 파라미터2 : ${반복객체}" 로 표현한다. 파라미터1은 반복 객체 속의 각 객체를 의미하고, 파라미터2는 각 객체의 상태값을 표현한다. 파라미터1의 이름이 user인 경우 파라미터2의 이름은 userStat으로 자동지정되어 파라미터2는 생략해도 정상 동작한다. 표현할 수 있는 상태값은 코드에 나와 있는 것과 같으며, current는 현재 반복 index의 각 객체를 표시한다. 결과 화면을 참고하자. 예시를 위해서 addUsers 메서드를 추가했다. 반복 기능의 경우 예시문의 List 뿐만 아니라, java.util.Iteration, java.util.E..
[스프링 웹MVC-2] 1. 타임리프 기본 - 1 : 프로젝트 생성, 대표 문법 공부 - text, 변수, 기본 및 편의 객체, 날짜, 유틸리티 1. 프로젝트 생성 및 초기 세팅 늘 하던대로 start.spring.io 사이트에서 프로젝트를 생성한다. 다만 Group은 hello, Artifact는 thymeleaf-basic 이라고 하되, 자동완성되는 package name은 hello.thymeleaf 까지만 작성한다. packaging은 Jar, Java 11버전, Gradle PJT로 진행한다. dependency는 Spring web, lombok, thymeleaf를 설정한다. 늘 하던대로~ annotation processor를 enabled로 바꿔주고, Build Tools를 intelliJ로 바꿔준다. resources/static/index.html 파일을 넣어준다. view 조회 경로를 미리 지정해놓은 html 파일이다. 2...
[스프링 웹MVC] 14. 웹페이지 실습 ; PRG 패턴, RedirectAttributes MVC 패턴과 Thymeleaf를 이용하여 간단한 웹사이트를 만들어본다. 1. 프로젝트 생성 프로젝트를 생성한다. 패키지명에 "-" 같은 표기가 들어가면 안되므로 유의하자 서버를 띄워 잘 실행되는지 확인하고, 아래의 index.html을 추가하여 welcome page가 정상적으로 보이는지 확인한다. resources/static/index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Title 상품 관리 상품 관리 - 기본 Colored by Color Scripter cs 표현할 웹페이지의 기획 내용은 다음과 같다. 1. 상품 목록을 보여준다. 2. 상품 목록에서 상품 상세로 이동가능하다. 3. 상품 저장이 가능하며, 저장 완료 시 상품 상세 화면으로 이동한다...
[스프링 웹MVC] 13. 스프링 MVC - HTTP 메시지 컨버터, 요청 매핑 핸들러 어댑터 구조 1. 메시지 컨버터 메시지 컨버터는 HTTP 요청 body를 원하는 타입으로 변환하거나, HTTP 응답으로 뷰 템플릿을 전송하는 것이 아니라 JSON 객체 등으로 HTTP body에 직접 메시지를 쓰는 경우에 사용한다. 구체적으로, ViewResolver 대신 HttpMessageConverter가 적용된다. 스프링부트에서는 앞서 살펴보았던 @RequestBody, @ResponseBody, HttpEntity 등이 적용되어 body가 송수신되는 경우에 메시지 컨버터가 적용된다. HttpMessageConverter를 상속하여 여러가지 타입의 데이터 메시지를 처리하는 다양한 컨터버 클래스들이 존재한다. 대표적인 컨버터들은 다음과 같다. 위쪽 컨버터부터 순서대로 작동한다. ByteArrayHttpMessa..
[스프링 웹MVC] 12. 스프링 MVC - 응답 정보 처리 기능 1. View 처리방식 응답을 단순 text, JSON 정보로 보내는 것이 아니라 View로 보내는 방법을 배운다. MVC 패턴의 마지막 단계라고 할 수 있다. 스프링부트에서 View를 처리하는 방식은 Controller의 viewPath를 기반으로 static, 또는 동적인 templates의 html 파일을 반환하는 방식이다. resources 경로 내부에 '/static', '/public', '/resources', '/META-INF/resources' 디렉토리가 있으면 그 디렉토리 내부의 view 파일들을 참조하는 방식으로 작동한다. 여기서 static 디렉토리에는 정적 리소스 정보를, templates 폴더에는 동적 HTML 정보를 넣어주는 것이 일반적이다. 2. 응답 처리 - 정적 리소스,..
[스프링 웹MVC] 11. 스프링 MVC - 요청 정보 처리 기능 요청 URL에 따라 Controller를 매핑해봤으니, 이제 받아온 요청의 정보들을 처리하는 기능들에 대해서 알아본다. 몇가지 어노테이션과 기본 내용들만 학습하면 된다. 1. 헤더 정보 조회 @RequestHeader @RequestHeader 어노테이션을 이용하여 모든 헤더들의 정보를 MultiValueMap으로 받아올 수도 있고, 각 key값에 맞는 header 정보를 받아올 수도 있다. MultiValueMap은 Map과 유사한데, 하나의 key에 여러 값을 받을 수 있다. key값으로 조회하면 value값들의 배열을 반환한다. 요청 및 응답의 경우 같은 key에 여러 값을 받을 수 있으므로 MultiValueMap을 사용한다. @CookieValue 쿠키 정보를 받아올 수 있다. java/hell..
[스프링 웹MVC] 10. 스프링 MVC - 요청 매핑 1. @RequestMapping의 개념과 여러가지 속성 @RequestMapping은 controller에서 라우팅을 해준다. 클라이언트의 요청 정보를 쉽게 처리할 수 있도록 다양한 속성들을 제공한다. 속성들을 하나씩 공부해보자. URL 배열, 슬래시 처리 요청 주소를 중괄호 {} 안에 넣어서 여러 URL 요청을 받을 수도 있다. 그리고 "/hello-basic"의 URL로 요청하도록 지정했는데, URL 상으로는 완전히 다른, "/hello-basic/" 으로 슬래시를 하나 더 붙여서 요청을 보내더라도 해당 요청을 처리해주는 특징이 있다. 1 2 3 4 5 6 7 8 9 10 11 12 @RestController public class MappingController { private Logger l..
[스프링 웹MVC] 9. 스프링 MVC - 프로젝트 생성과 로깅 1. 프로젝트 생성 스프링 MVC도 이전 글에서 살펴본 ControllerV5와 똑같은 구조를 갖고 있다. 다만 FrontController의 이름이 DispatcherServlet이고, MyView등 강의에서 만든 일부 객체의 이름이 다르다. 이제 springMVC에 대해서 본격적으로 알아본다. 새롭게 프로젝트를 만든다. 기존에 프로젝트를 만들던 start.spring.io 사이트에서 만들면 된다. Gradle Project, Java는 11버전, Jar Packaing을 선택하고, 라이브러리는 Spring web, Thymeleaf, Lombok을 추가한다. jsp를 쓰거나, 별도의 tomcat 서버에 설치하기 위해서는 War 패키징을 하지만, 그냥 스프링에서 제공하는 내장 서버를 이용할려면 Jar ..