๐ Language/โ JAVA
![[Spring][ํผ๊ณต] 4. ํ์ ๊ด๋ฆฌ ์์ - (3) ํ
์คํธ ์ผ์ด์ค ์์ฑ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3IjdC%2FbtrbosNo8ak%2F823ItPQwhjkfwqFUMNX6XK%2Fimg.png)
[Spring][ํผ๊ณต] 4. ํ์ ๊ด๋ฆฌ ์์ - (3) ํ ์คํธ ์ผ์ด์ค ์์ฑ
ํ์ ๊ด๋ฆฌ ์์ 3. ํ์ ๋ฆฌํฌ์งํ ๋ฆฌ ํ ์คํธ ์ผ์ด์ค ์์ฑ ๊ฐ๋ฐํ ๊ธฐ๋ฅ์ ์คํํด์ ํ ์คํธํ ๋ ์๋ฐ์ main ๋ฉ์๋๋ฅผ ํตํด์ ์คํํ๊ฑฐ๋, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด์ ํด๋น ๊ธฐ๋ฅ์ ์คํํ๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ค๋นํ๊ณ ์คํํ๋๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๊ณ , ๋ฐ๋ณต ์คํํ๊ธฐ ์ด๋ ต๊ณ ์ฌ๋ฌ ํ ์คํธ๋ฅผ ํ ๋ฒ์ ์คํํ๊ธฐ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์๋ค. ์๋ฐ๋ JUnit ํ๋ ์์ํฌ๋ก ํ ์คํธ๋ฅผ ์คํํด์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋จผ์ ์์ฑํ ํ ๊ฐ๋ฐํ๋ ๋ฐฉ์์ ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)์ด๋ผ ํ๋ค. 1) ํ ์คํธ ์ผ์ด์ค ์์ฑ ๋ณดํต ํ ์คํธํ ๊ธฐ๋ฅ๊ณผ ๋์ผํ ํจํค์ง ์ด๋ฆ์ผ๋ก ์์ฑํ๊ณ class๋ ๋ค์ Test๋ฅผ ๋ถ์ธ๋ค. @Test๋ ํ ์คํธ ๋ฉ์๋๋ผ๋ ๋ป์ผ๋ก ํด๋น ๋ฉ์๋๋ฅผ ๋จ๋ ์คํ์ํฌ ์ ์๋ค. ํ ๋ฒ์ ์ฌ๋ฌ ํ ์คํธ๋ฅผ ์คํํ๋ฉด ๋ฉ๋ชจ๋ฆฌ..
![[Spring][ํผ๊ณต] 4. ํ์ ๊ด๋ฆฌ ์์ - (2) ํ์ ๋๋ฉ์ธ๊ณผ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcASOeA%2FbtraWSqJ4OI%2FDtUqFElnL9kOE4LwAK2bU1%2Fimg.png)
[Spring][ํผ๊ณต] 4. ํ์ ๊ด๋ฆฌ ์์ - (2) ํ์ ๋๋ฉ์ธ๊ณผ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ
ํ์ ๊ด๋ฆฌ ์์ 2. ํ์ ๋๋ฉ์ธ๊ณผ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ 1) ํ์ ๋๋ฉ์ธ ๋ง๋ค๊ธฐ damain ํจํค์ง ์์ฑ Member ํด๋์ค ์์ฑ: ์๊ตฌ์ฌํญ ๋ฐ์ดํฐ ์ ์ํ๋ค. package hello.hello.spring.domain; public class Member { private Long id; // ์์คํ ์ด ์ ์ฅํ ์์์ ๊ฐ private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2) ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ reposi..
![[Spring][ํผ๊ณต] 4. ํ์ ๊ด๋ฆฌ ์์ - (1) ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ ์ ๋ฆฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp4juw%2FbtraQqoGXCC%2FBYQHgcchbqYAqlp5S8a64k%2Fimg.png)
[Spring][ํผ๊ณต] 4. ํ์ ๊ด๋ฆฌ ์์ - (1) ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ ์ ๋ฆฌ
ํ์ ๊ด๋ฆฌ ์์ 1. ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ ์ ๋ฆฌ 1) ์๊ตฌ์ฌํญ ๋ฐ์ดํฐ: ํ์ ID, ์ด๋ฆ ๊ธฐ๋ฅ: ํ์ ๋ฑ๋ก, ์กฐํ ๊ฐ์์ ์๋๋ฆฌ์ค๋ก ์์ง ๋ฐ์ดํฐ ์ ์ฅ์๊ฐ ์ ์ ๋์ง ์์๋ค. 2) ์ผ๋ฐ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ๊ตฌ์กฐ ์ปจํธ๋กค๋ฌ: ์น MVC์ ์ปจํธ๋กค๋ฌ ์ญํ ์ด๋ค. ์๋น์ค: ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ด ๊ตฌํ๋์ด ์๋ค. Ex) ํ์์ ์ค๋ณต ๊ฐ์ ์ด ์๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ: DB์ ์ ๊ทผ ๋ฐ ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ DB์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ค. ๋๋ฉ์ธ: ๋น์ฆ๋์ค ๋๋ฉ์ธ ๊ฐ์ฒด์ด๋ค. Ex) ์ฃผ๋ก DB์ ์ ์ฅํ๊ณ ๊ด๋ฆฌ๋๋ ํ์, ์ฃผ๋ฌธ, ์ฟ ํฐ ๋ฑ 3) ํด๋์ค ์์กด ๊ด๊ณ ๋ฐ์ดํฐ ์ ์ฅ์๋ RDB, NoSQL ๋ฑ ๋ค์ํ ์ ์ฅ์๋ฅผ ๊ณ ๋ฏผ ์ค์ด๋ฉฐ ์์ง ์ ์ ๋์ง ์์๋ค. ์ฐ์ ์ธํฐํ์ด์ค๋ก ๊ตฌํํ๊ณ ๋์ค์ ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ์ค๊ณํ๋ค. ๊ฐ๋ฐ ์งํ์ ์ํด ์ด๊ธฐ ๊ฐ..
![[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) ๋์ ๋ฐฉ์ ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋ค ํ์ด์ง๋ฅผ ๋์ง๋ฉด ๋ด์ฅ ํฐ์บฃ ์..