ํ ์คํธ ์ฝ๋๋?ํ ์คํธ ์ฝ๋๋ ์์ฑํ ์ฝ๋๊ฐ ์๋๋๋ก ์ ์๋ํ๋์ง ํ์ธํ๋ ์ฝ๋์ด๋ค. ํ ์คํธ ์ฝ๋๋ test ๋๋ ํฐ๋ฆฌ์์ ์์ ํ๋ค. ํ ์คํธ ์ฝ๋ ํจํด์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ๋ณดํธ์ ์ผ๋ก ์ฌ์ฉ๋๋ ํจํด์ "given-when-then" ํจํด์ด๋ค. @DisplayName("Save New Pet") @Test public void savePetTest(){ // given : ๋ฐ๋ ค๋๋ฌผ์ ์ ์ฅํ๊ธฐ ์ํ ์ค๋น ๊ณผ์ final String name = "BlackCherry"; final int age = 4; final Pet pet = new Pet(name, age); // when : ์ค์ ๋ก ์ ์ฅ final..
์คํ๋ง ๋ถํธ 3์ ๊ตฌ์กฐ์คํ๋ง ๋ถํธ๋ ๊ฐ ๊ณ์ธต์ด ์ ์์ ๊ณ์ธต๊ณผ ํต์ ํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ ๊ณ์ธต์ ์๋ก ์ํตํ ์ ์์ง๋ง ๋ค๋ฅธ ๊ณ์ธต์ ์ง์ ์ ์ธ ์ํฅ์ ์ฃผ์ง๋ ์๋๋ค. ํ๋ ์ ํ ์ด์ ๊ณ์ธตHTTP ์์ฒญ์ ๋ฐ์ ๋น์ฆ๋์ค ๊ณ์ธต์ผ๋ก ์ ์กํ๋ ์ญํ ์ ํ๋ค. ์ปจํธ๋กค๋ฌ๊ฐ ํ๋ ์ ํ ์ด์ ๊ณ์ธต ์ญํ ์ ํ๋ฉฐ์ปจํธ๋กค๋ฌ๋ ์ฌ๋ฌ๊ฐ ์กด์ฌํ ์ ์๋ค. ๋น์ฆ๋์ค ๊ณ์ธต๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๊ณ์ธต์ด๋ค. ํ๋ก์ธ์ค๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋ก์ง์ธ ์๋น์ค๊ฐ ๋น์ฆ๋์ค ๊ณ์ธต์ ์ญํ ์ ํ๋ค. ํผ์์คํด์ค ๊ณ์ธต๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ๋ก์ง์ ์ฒ๋ฆฌํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๋ DAO(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ธต๊ณผ ์ํธ์์ฉ ํ๊ธฐ ์ํ ๊ฐ์ฒด)๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์๋ค. Repository๊ฐ ํผ์์คํด์ค ๊ณ์ธต์ ์ญํ ์ ํ๋ค. ์คํ๋ง ๋ถํธ ๋๋ ํฐ๋ฆฌ ๊ตฌ์ฑmain์ค์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ณต๊ฐ. ..
@SpringBootApplicationimport org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}ํด๋น ์ฝ๋๊ฐ ์๋ ํ์ผ์ ์๋ฐ์ main() ๋ฉ์๋์ ๊ฐ์ ์ญํ ์ ํ๋ค. @SpringBootApplication ์ ๋ํ ์ด์ ์ ์คํ๋ง๋ถํธ์ ํ์ํ ๊ธฐ๋ณธ ์ค์ ์ ํด์ค๋ค. "SpringApplication.run(..
์คํ๋ง ๋ถํธ ๊ฐ๋จ ์์ @RestControllerpublic class TestController{ @GetMapping("/test") public String test() { return "Hello World!"; }}TestController.java์ ์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ SpringBoot๋ฅผ ์คํํ๊ณ ์น ๋ธ๋ผ์ฐ์ ์์ https://localhost:8080/test๋ก ์ ์ํ๋ฉด Hello world๋ฅผ ํ์ธํ ์ ์๋ค localhost์ธ 127.0.0.0์ ์ปดํจํฐ ๋คํธ์ํฌ์์ ์ฌ์ฉํ๋ ๋ฃจํ๋ฐฑ ํธ์คํธ๋ช ์ด๋ฉฐ ํ์ฌ ์ฌ์ฉ์ค์ธ ์ปดํจํฐ๋ฅผ ์๋ฏธํ๋ค. 8080์ ์คํ๋ง์ ํฌํธ ๋ฒํธ์ด๊ณ , /test๋ @GetMapping์ด๋ผ๋ ์ ๋ํ ์ด์ ์ผ๋ก ๋ฉ์๋์ ๋งคํํ ๋ ์คํ๋ง ๋ถํธ์์ ์ค์ ํ ๊ฒฝ๋ก์ด๋ค. ์ค..
์คํ๋ง์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ : ๋๊ท๋ชจ์ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํํธ์จ์ด ๋ถ์ผ๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์คํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์์ ๋ง์ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํด์ผ ํด์๋ฒ์ ์ฑ๋ฅ, ๋ณด์, ์์ ์ฑ์ด ๋งค์ฐ ์ค์ํ๊ฒ ๋์๋ค. ์คํ๋ง์ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฐ๋ฐํ๊ฒฝ์ ์ ๊ณตํ์ฌ ๊ธฐ๋ฅ ๊ฐ๋ฐ์๋ง ์ง์คํ ์ ์๊ฒ ํด์ค๋ค. ์คํ๋ง ํ๋ ์์ํฌ๋ ์๋ฒ ์ฑ๋ฅ, ์์ ์ฑ, ๋ณด์์ ๋์ ์์ค์ผ๋ก ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๋ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ง์คํ ์ ์๊ฒ ๋์๋ค. ์คํ๋ง ๋ถํธ์คํ๋ง์ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋๊ตฌ์ด์ง๋ง, ์ค์ ์ด ๋งค์ฐ ๋ณต์กํ๋ค๋ ๋จ์ ์ด ์๋ค. ์คํ๋ง๋ถํธ๋ ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ด์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ์ด๋ค. ์คํ๋ง ํ๋ก์ ํธ ์ค์ ์ ๋น ๋ฅด๊ฒ ํ ์ ์๊ณ , ์์กด์ฑ ์ธํธ๋ผ๊ณ ํ๋ ์คํํฐ๋ฅผ ํ์ฉ..