# View 환경설정 --- ## Welcome Page 만들기 - `Welcome Page` : 도메인만 누르고 들어왔을 때 첫 화면이다. - `main/resources/static` 디렉토리 내에 `index.html` 파일을 만들면 `static/index.html`이 `Welcome Page`기능을 제공한다. --- ## spring - 스프링은 자바 엔터프라이즈 웹 애플리케이션 관계된 전반적인 생태계를 다 제공한다. - 따라서 필요한 것을 찾는 것이 중요하다. - [스프링 공식 홈페이지](spring.io)(`spring.io`) -> `Projects` -> `Spring Boot` -> `LEARN` -> `Reference Doc.` -> 필요한 정보에 대한 문서 검색(`index.html`을 검색해보자) --- ## 참고할 수 있는 링크 - [thymeleaf 공식사이트](https://www.thymeleaf.org/) - [스프링 공식 튜토리얼](https://spring.io/guides/gs/serving-web-content/) - [스프링 부트 메뉴얼](https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-template-engines) --- ## Controller - `@Controller` 어노테이션을 명시해야 한다. --- ## @GetMapping("경로") - 웹 어플리케이션에서 지정한 경로로 들어오면 해당 메서드를 호출한다. --- ## hello.html - `th` : `thymeleaf`의 `th`이다. - `thymeleaf` 템플릿 엔진 : `` - `html` 내에 작성해주면 템플릿 엔진으로써 `thymeleaf` 문법을 사용할 수 있다. - `${data}` : `HelloController`에서 `model`의 키 값으로 준 `data`이고, 값은 마찬가지로 `model`의 `value`를 사용하여 치환되어 웹에서 표시된다. --- ## 동작 환경 그림 ![동작-환경-그림](https://user-images.githubusercontent.com/68052095/102768026-d5d32380-43c3-11eb-9e8c-e7581a2da836.PNG) - 웹 브라우저에서 `hello`로 접근하면 내장 톰캣 서버가 `HelloController`에 존재하는 `hello` url이 매핑되어 있는 `hello` 메서드를 찾아서 실행시킨다. - 이때 `model`에 키는 `data`, 값은 `hello!!`로 넣는다. - 그리고 `hello`(`resources`에 존재하는 `hello`)를 리턴한다. - 이것은 `resources/templates/hello`에 접근해서 랜더링(저 화면을 실행시켜라)하라는 의미이다. - 컨트롤러에서 리턴 값으로 문자를 반환하면 `뷰 리졸버(viewResolver)`가 화면을 찾아서 처리한다. - 스프링부트는 템플릿엔진은 기본적으로 `viewName` 매핑을 한다. - `resources/templates/` + `ViewName` + `.html`과 매핑시켜준다. - 결과적으로, `resources/templates/hello.html`이 열리게 된다. --- ## 참고 - `spring-boot-devtools` 라이브러리를 추가하면 `html` 파일을 컴파일만 해주면 서버 재시작 없이 `View` 파일 변경이 가능하다. - 인텔리제이 컴파일 방법: 메뉴 `build` -> `Recompile` ---