본문 바로가기

Java/Spring

(7)
[Spring] API 1. API 템플릿 엔진과의 차이는 뷰없이 데이터가 그대로 요청한 클라이언트에 전달됨 @ResponseBody를 사용하면 viewResolver를 사용하지 않음 HTTP의 Body에 문자 내용을 직접 반환(HTML BODY TAG 아님) @ResponseBody를 사용하고 객체를 반환하는 경우 Spring에서는 기본적으로 JSON으로 변환됨 ① 문자 반환 @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } http://localhost:8080/hello-string?name=spring 로 접근 시 : "hello spri..
[Spring] MVC와 템플릿 엔진 1. MVC Model, View, Controller 과거에는 Controller, View가 분리되어 있지 않았음 View에서 모든 것을 처리 (ex. jsp) -> Model1 방식 View : 화면에 관련된 일만 / Controller : 비즈니스 로직, 뒷 단에 관련된 일 2. 템플릿 엔진 템플릿 엔진 : html을 서버에서의 처리를 통해 동적으로 바꿔서 전달 ex) jsp, php thymeleaf 템플릿 엔진 장점 : 서버없이 열어봐도 구조를 볼 수 있음 hello! empty {name} : Mode에 key가 name인 것의 값을 가져와서 치환해줌 ① 서버없이 절대경로로 접근 시 : hello! empty 확인 가능 (서버없이 구조 확인 가능) ② Controller에 "hello-mvc..
[Spring] 정적 컨텐츠 1. Spring 웹 개발 방식 ① 정적 컨텐츠 - 서버에서의 처리없이 파일을 그대로 웹 브라우저에 전달 ② MVC와 템플릿 엔진 - MVC : Model, View, Controller - 템플릿 엔진 : html을 서버에서의 처리를 통해 동적으로 바꿔서 전달 ex) jsp, php ③ API - JSON 데이터 포맷으로 클라이언트에 전달 - 서버끼리 통신할 때도 사용 2. 정적 컨텐츠 Spring Boot는 기본적으로 정적 컨텐츠 기능을 제공 /static, /public, /resources, /META-INF/resources 에 위치한 파일을 찾아 웹 브라우저에 그대로 전달 ① 웹 브라우저에서 localhost:8080/hello-static.html 요청 ② 내장 톰캣 서버가 요청을 받아서 S..
[Spring] 빌드하고 실행하기(Git Bash, CMD) : Git Bash, Windows CMD에서 gradle 빌드하고 실행하기 1. 프로젝트 디렉터리로 이동 (Git Bash, CMD 동일) C:\Users\hhlin>cd hello-spring 2. gradle 실행 # Windows C:\Users\hhlin\hello-spring>./gradlew # Git Bash C:\Users\hhlin\hello-spring>gradlew # CMD # Mac C:\Users\hhlin\hello-spring>./gradlew build # 잘 안되는 경우 # ./gradlew clean 하면 build 폴더가 없어짐 # ./gradlew clean build 하면 지우고 다시 생성 C:\Users\hhlin\hello-spring>./gradlew cle..
[Spring] View 환경설정 1. Welcome Page : spring boot는 static/index.html을 올려두면 Welcome page 기능을 제공 2. 정적 페이지 : 파일을 웹서버가 웹브라우저에 그냥 던짐 Hello hello 3. Thymeleaf 템플릿 엔진 : 템플릿 엔진을 이용해 루프를 넣는 등 원하는 대로 바꿀 수 있음 스프링 부트는 FreeMarker, Groovy, Thymeleaf, Mustache 제공 안녕하세요. 손님 를 선언해줘야 thymeleaf 문법을 쓸 수 있음 th : thymeleaf 4. Controller @Controller 붙여줘야 함 @GetMapping("hello") : 웹 어플리케이션에서 /hello로 들어오면 해당 메소드 호출 package hello.hellosprin..
[Spring] Spring 라이브러리(dependencies) # gradle의 의존관계 관리 : gradle, maven 같은 build tool들은 의존관계를 관리해줌 build.gradle에 Spring Web, Thymeleaf만 추가했지만 gradle이 Spring Web, Thymeleaf와 의존관계를 가지는 라이브러리들을 모두 가져옴. 실제 External Libraries에 보면 직접 추가하지 않은 라이브러리들이 많음. Gradle Dependencies 확인해보면 thymeleaf, starter-web 아래에 의존관계를 가지는 다른 라이브러리들 확인 가능 이미 선언한 라이브러리는 중복 표시하지 않고 (*)을 통해 나타냄(더블 클릭하면 선언된 곳으로 이동 가능) spring이 tomcat을 내장한다는 것도 확인 가능(Java main 메소드 실행만 ..
[Spring] Spring 프로젝트 생성 1. Spring Initializr 접속 https://start.spring.io/ 2. 설정 3. Generate - 설정 완료 후 Generate 클릭하면 zip 파일이 다운로드 됨 - 다운로드 받은 파일 압축 풀고 IntelliJ에서 해당 프로젝트 열기 4. 프로젝트 구조 확인 4. build.gradle 확인 5. 실행 - src/main/java 밑에 HelloSpringApplication 실행 - @SpringBootApplication 어노테이션 사용시, 내장하고 있는 톰캣 웹서버를 자체적으로 띄우면서 Spring boot가 같이 올라옴 - Tomcat initilaized with port(s): 8081 (http) 확인 - localhost:8081 접속 - Whitelabel E..