์๋ฐ์ ์น ํ๋ ์์ํฌ๋ก ๊ธฐ์กด ์คํ๋ง ํ๋ ์์ํฌ(Spring Framework)์ ํฐ์บฃ ์๋ฒ๋ฅผ ๋ด์ฅํ๊ณ ์ฌ๋ฌ ํธ์ ๊ธฐ๋ฅ๋ค์ ์ถ๊ฐํ์ฌ ๊พธ์คํ ์ธ๊ธฐ๋ฅผ ๋๋ฆฌ๊ณ ์๋ ํ๋ ์์ํฌ์ด๋ค.
โ ์คํ๋ง๋ถํธ๋ ํผํผํ๋ค.
โ ์คํ๋ง๋ถํธ์๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์ค๋น๋์ด ์๋ค.
โ ์คํ๋ง๋ถํธ๋ WAS(Web Application Server)๊ฐ ๋ฐ๋ก ํ์ ์๋ค.
โ ์คํ๋ง๋ถํธ๋ ์ค์ ์ด ์ฝ๋ค.
๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ http://localhost:8080/hello ๋ผ๋ URL์ ์ ๋ ฅํ์ ๋ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ "Hello World"๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ๋ ์น ํ๋ก๊ทธ๋จ์ ์์ฑํด๋ณด์!
์ญ์ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ์ ์์์ "Hello World"์ง..!!
์ฐํด๋ฆญ ํ ์คํ๋ง ์คํํฐ ํ๋ก์ ํธ ์์ฑ
์คํ๋ง๋ถํธ ๋ฒ์ ๊ณผ ์คํ๋ง ์น์ ์ฒดํฌ ํ Finish
package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller // ์ปจํธ๋กค๋ฌ์ ๊ธฐ๋ฅ(์๋ฐ๋ก ์น๋ฉด main) ์ ์ํํ๋ค๋ ์๋ฏธ
public class HelloController {
@GetMapping("/hello")
// http://localhost:8080/hello /hello url๊ณผ hello()๋ฉ์๋๋ฅผ ๋งคํํ๋ค
@ResponseBody
// hello() ๋ฉ์๋์ ๋ฆฌํด๊ฐ์ด ๋ฌธ์์ด ๊ทธ ์์ฒด์์ ๋ํ๋ธ๋ค.
public String hello() {
return "Hello World";
}
โ ์ ์ฉ๋ ์ ๋ํ ์ด์
- @Controller
: ์ปจํธ๋กค๋ฌ์ ๊ธฐ๋ฅ(์๋ฐ๋ก ์น๋ฉด main) ์ ์ํํ๋ค๋ ์๋ฏธ- @GetMapping("/hello")
: http://localhost:8080/hello /hello url๊ณผ hello()๋ฉ์๋๋ฅผ ๋งคํํ๋ค- @ResponseBody
: hello() ๋ฉ์๋์ ๋ฆฌํด๊ฐ์ด ๋ฌธ์์ด ๊ทธ ์์ฒด์์ ๋ํ๋ธ๋ค.
๐ ์ ๋๋ ํฌ๋ก ์๋๋ถํฐ ์ ๋จ๋ ๊ฑฐ์ง...? ๐ 404์๋ฌ๊ฐ ๋ฐ์ํ์๋ค!
์ฐํด๋ฆญ ํ Rus As -> Run Configurations
8080ํฌํธ๊ฐ ์ด๋ฏธ ์ฌ์ฉ ์ค์ด๋ผ ์ฐ๊ฒฐํ ์ ์๋ค๊ณ ํ๋ค!
๐ ํด๊ฒฐ ๋ฐฉ์
โ 1. ํ์ฌ ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ค.
โ 2. ์คํํ๋ ค๊ณ ํ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํ ํฌํธ๋ฅผ ๋ณ๊ฒฝํ๋ค.
โ 3. static์ index.htmlํ์ผ ์์ฑ
โ cmd์ฐฝ ์ด๊ณ ๋ช ๋ น์ด "netstat -ano" ์ ๋ ฅ
โ 8080 ํฌํธ๋ฅผ ์คํํ๊ณ ์๋ 16460 ์ข ๋ฃ ์ํค๋ ๋ช ๋ น์ด "taskkill /f /pid 16460" ์ ๋ ฅ
โ ๋ก์ปฌ์๋ฒ ์ฌ์ฐ๊ฒฐ
๐ ์.. ์๋ผ... ์นจ์ฐฉํ๊ฒ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํ์...!
โ application.properties์์ ํฌํธ ๋ฒํธ 80์ผ๋ก ๋ณ๊ฒฝ server.port=80
โ ๋ก์ปฌ์๋ฒ ์ฌ์ฐ๊ฒฐ
๐ ์ฌ์ ํ ์๋๋ค.. ๊ฒ์ํด๋ณด๋ index.html ํ์ผ์ ์์ฑํด ์ฃผ์ด์ผ ํ๋ค๊ณ ํ๋ค!
๋๋์ด ๋๋ค..
โ 404์๋ฌ ๋ฐ์์ ํด๊ฒฐ๋ฐฉ์
โ spring ๊ตฌ๋ ์ index.html์ ์ฐพ๋ ์ด์ ?