๐ Language
![[Spring][ํผ๊ณต] 4. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด - API (3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxWiBE%2Fbtrasvh3o9E%2FzK3m4Q2pPnM5ZVmuZvKvC0%2Fimg.png)
[Spring][ํผ๊ณต] 4. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด - API (3)
์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด 3. API MVC๋ ๋ณํ๋ html์ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ฐํํ๋ ๋ฐฉ์์ด๊ณ (xml) API๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๊ทธ๋๋ก ๋ด๋ ค์ฃผ๋ ๋ฐฉ์์ด๋ค. (json) 1) ๋ฌธ์ ๋ฐํ Controller ๊ธฐ์กด์ ๊ตฌํํ HelloController ์์ ์๋ก์ด ๋ฉ์๋๋ฅผ ์ถ๊ฐํ ๊ฒ์ด๋ค. viewResolver๋ฅผ ์ฌ์ฉํ์ง ์๊ณ HTTP์ ์๋ต body์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ฐํํ ๊ฒ์ด๋ค. (@ResponseBody) @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } ์คํ ํ๋ฉด ์ด์ ์ ์์ ํ๋ MVC ๋ฐฉ์๊ณผ ๋ณ ์ฐจ์ด๊ฐ ์์ด ๋ณด์ธ๋ค. ํ..
![[Spring][ํผ๊ณต] 4. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด - MVC์ ํ
ํ๋ฆฟ ์์ง (2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd5W1ye%2Fbtq9MuMaccW%2FnB8AUprBIwowapkZhtjf90%2Fimg.jpg)
[Spring][ํผ๊ณต] 4. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด - MVC์ ํ ํ๋ฆฟ ์์ง (2)
์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด 2. MVC์ ํ ํ๋ฆฟ ์์ง MVC๋ Model, View, Controller๋ฅผ ๋งํ๋ค. ๊ณผ๊ฑฐ์๋ Controller์ View๊ฐ ๋ฐ๋ก ๋ถ๋ฆฌ๋์ด ์์ง ์์๊ณ View์์ ๋ชจ๋ ๊ฒ์ ๋ค ์ฒ๋ฆฌํ๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ชจ๋ธ 1 ๊ตฌ์กฐ๋ผ๊ณ ํ๊ณ JSP์์ ์ฌ์ฉ๋์๋ค. ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ ๊ด์ฌ์ฌ๋ ์ญํ ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค. View๋ ํ๋ฉด์ ๊ทธ๋ฆฌ๋๋ฐ ์ง์คํด์ผ ํ๊ณ Controller๋ ๋น์ฆ๋์ค ๋ก์ง์ด๋ ์๋ฒ๋ ๋ด๋ถ์ ์ธ ๊ฒ์ ์ฒ๋ฆฌํ๋๋ฐ ์ง์คํด์ผ ํ๊ณ Model์ ํ๋ฉด์์ ํ์ํ ๊ฒ๋ค์ ์ ์ฅํ๊ณ ํ๋ฉด์ ์ ๋ฌํ๋๋ฐ ์ง์คํด์ผ ํ๋ค. 1) ์ ์ฉ Controller ๊ธฐ์กด์ ๊ตฌํํ HelloController ์์ ์๋ก์ด ๋ฉ์๋๋ฅผ ์ถ๊ฐํ ๊ฒ์ด๋ค. ์ด์ ์ ๊ตฌํํ ๋ฉ์๋๋ ์ฝ๋๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ฐ์์๋ค. ..
![[Spring][ํผ๊ณต] 4. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด - ์ ์ ์ปจํ
์ธ (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHeeW3%2Fbtq9e5GIQGP%2F6SKsqUEZ7wWEANGJqBPzL1%2Fimg.png)
[Spring][ํผ๊ณต] 4. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด - ์ ์ ์ปจํ ์ธ (1)
์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด ์น ๊ฐ๋ฐ์ ํฌ๊ฒ 3๊ฐ์ง ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. ์ ์ ์ปจํ ์ธ ์๋ฒ์์ ์ฒ๋ฆฌํ๋ ์์ ์์ด ๋จ์ง ํ์ผ์ ์น๋ธ๋ผ์ฐ์ ๋ก ๋ด๋ ค์ฃผ๋ ๋ฐฉ์์ด๋ค. Welcome ํ์ด์ง MVC์ ํ ํ๋ฆฟ ์์ง ๊ฐ์ฅ ๋ง์ด ํ๋ ๋ฐฉ์์ด๋ค. ์ปจํธ๋กค๋ฌ(C), ๋ชจ๋ธ(M), ํ ํ๋ฆฟ ์์ง์ ํ๋ฉด(V)์ ์ฌ์ฉํ๋ค. ํ ํ๋ฆฟ ์์ง(JSP, PHP): HTML์ ์๋ฒ์์ ํ๋ก๊ทธ๋๋ฐํ์ฌ ๋์ ์ผ๋ก ๋ฐ๊ฟ์ ๋ด๋ ค์ค๋ค. API ์๋ฒ์์ Json๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ํฌ๋งท์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๋ ๋ฐฉ์์ด๋ค. ์๋๋ก์ด๋๋ ์์ดํฐ ๊ฐ๋ฐ ์์ ์ฌ์ฉํ๋ค. ์๋ฒ์ ์๋ฒ ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ API ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค. 1. ์ ์ ์ปจํ ์ธ ์คํ๋ง ๋ถํธ๋ ์ ์ ์ปจํ ์ธ ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ค. 1) ๋์ ๋ฐฉ์ ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋ค ํ์ด์ง๋ฅผ ๋์ง๋ฉด ๋ด์ฅ ํฐ์บฃ ์..
![[Spring][ํผ๊ณต] 3. ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - ๋น๋ ๋ฐ ์คํ (4)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcApERN%2Fbtq8HSUSFSw%2FAR5saW5lvpTAsDUcfEyhJk%2Fimg.png)
[Spring][ํผ๊ณต] 3. ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - ๋น๋ ๋ฐ ์คํ (4)
ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ 3. ๋น๋ ๋ฐ ์คํ ์ง๊ธ๊น์ง๋ IDE ์์์ ์คํํ์๋๋ฐ ์ด์ ๋น๋๋ฅผ ํ ํ ์คํํ ์ ์๋ ํ์ผ์ ๋ง๋ค์ด๋ณผ ๊ฒ์ด๋ค. 1) ์คํ ์์ ๋ช ๋ น ํ๋กฌํํธ(cmd)๋ฅผ ํตํด ํ์ฌ ํ๋ก์ ํธ์ ๋ฃจํธ ํด๋ ์์น๋ก ์ด๋ํ๋ค. (cd ...\hello.spring) gradlew๋ฅผ ์คํํ๋ฉด ๋น๋๊ฐ ์๋ฃ๋๋ค. (gradlew build) ๋ง๋ค์ด์ง ๋น๋๋ฅผ ์คํํ๊ธฐ ์ํด์ ๋น๋ ํด๋ ์์ libs๋ก ์ด๋ํ๋ค. (cd build/libs) ์๋ฐ ๋ช ๋ น์ด๋ก ์คํ์ํจ๋ค. (java -jar hello-spring-0.0.1-SNAPSHOT.jar) ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๋น๋๋ฅผ ํ ์ ์๋ค. 2) CMD ๋ช ๋ น์ด dir: ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค. gradlew clean: ๋น๋ ํด๋๋ฅผ ์ญ์ ํ ์ ์๋ค. Ctrl+C:..
![[Spring][ํผ๊ณต] 3. ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - View ํ๊ฒฝ ์ค์ (3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeuQVUo%2Fbtq8G4O0q9C%2FULpBBoYkLYDN4kzSNJuDz1%2Fimg.png)
[Spring][ํผ๊ณต] 3. ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - View ํ๊ฒฝ ์ค์ (3)
ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ 2. View ํ๊ฒฝ ์ค์ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ์คํํ๋ฉด ์๋ฌ ํ์ด์ง๋ง ๋ํ๋๋๋ฐ, ์ด ํ์ด์ง๋ฅผ ๋ฐ๊ฟ๋ณผ ๊ฒ์ด๋ค. 1) Welcome ํ์ด์ง ๋ง๋ค๊ธฐ Welcome ํ์ด์ง๋ ๋๋ฉ์ธ์ ์ ๋ ฅํ๊ณ ๋ค์ด์์ ๋ ๋ํ๋๋ ์ฒซ ํ์ด์ง๋ฅผ ๋งํ๋ค. ์คํ๋ง ๋ถํธ๋ resources/static ํด๋น ํด๋ ์์น์ index.html๋ฅผ ์์ฑํ๋ฉด ํด๋น ํ์ผ์ Welcome ํ์ด์ง๋ก ์ธ์ํ๋ค. ์ง๊ธ Welcome ํ์ด์ง์ ์ํ๋ ์ ์ ํ์ด์ง ์ํ์ธ๋ฐ, html ํ์ผ์ ์น์๋ฒ๊ฐ ์ฝ์ด๊ฐ ํ ๋จ์ง ๋ณด์ฌ์ฃผ๊ธฐ๋ง ํ๊ณ ์๋ค. ์ฌ๊ธฐ์ ํ ํ๋ฆฟ ์์ง์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋๋ก ๋ชจ์์ ๋ณ๊ฒฝํ ์ ์๋ค. 2) thymeleaf ํ ํ๋ฆฟ ์์ง ๋์ ๋ฐฉ์ ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋ค ํ์ด์ง๋ฅผ ๋์ง๋ฉด ๋ด์ฅ ํฐ์บฃ ์๋ฒ๊ฐ ๋ฐ์์ ์คํ๋งํํ ์ ๋ฌํ๋ค...
![[Spring][ํผ๊ณต] 3. ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - ๊ธฐ๋ณธ ์ค์ (2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV36Qk%2Fbtq8dyPq38f%2FzR6xh1a6xK4TuNZM3eoKf0%2Fimg.png)
[Spring][ํผ๊ณต] 3. ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ - ๊ธฐ๋ณธ ์ค์ (2)
ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ 1. ๊ธฐ๋ณธ ์ค์ 4) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฒ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ ์ ํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ 2๊ฐ์ง์ด๋ค. spring web: ์น ํ๋ก์ ํธ thymeleaf: HTML ๋ง๋ค์ด์ฃผ๋ ํ ํ๋ฆฟ ์์ง test: ์๋์ผ๋ก ์ถ๊ฐ๋๋ Test ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ก์ ํธ์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ 3๊ฐ์ง๋ฐ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ค์ด๊ฐ ๋ณด๋ฉด ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์๋ค. ์ ์ด๋ ๊ฒ ๋ง์๊น? ๊ทธ๋๋ค๊ณผ ๊ฐ์ ๋น๋ ๋๊ตฌ๋ ์์กด ๊ด๊ณ๊ฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํจ๊ป ๋ค์ด๋ก๋ํ๋ค. ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ... ์ด ์์ ์ ๋ฐ๋ณตํ์ฌ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ค์ด๋ก๋ํ์ฌ์ง๊ฒ ๋๋ค. spring-boot-starter-web spring-boot-starter-tomcat: ๋ด์ฅ ์น์..