์ค๋์ ์ฃผ์์ฌํญ (6/14, ์์์ผ)
- Spring ๋นจ๋ฆฌ ๋๋ด๊ณ ๊ณผ์ ํด์ผํจ!!!
ํผ๊ณคํ๋ค๊ณ ์กฐ๊ธ ๋ฏธ๋ค๋๋ ์ผ์ ์ด ์ด๋ฐํด์ก๋ค๐ ์ด๋ฌ๋ค๊ฐ ์ผ๊ฐ๋ณด์ถฉํ์ต์ ๋ฉดํ ์ ์๊ฒ ๋๊ณ ๋ง๋ค๐ต... ๋คํํ ๊ทผ์ก์ด์์ ๋ฅผ ๋จน๊ณ ์ค๋๋ ์ปจ๋์ ์ด ์กฐ๊ธ ํ๋ณต๋์๋ค. ์ ๋ง๋ก ๊ทผ์กํต ๋๋ฌธ์ด์๋ ๋ฏ ์ถ๋ค...
ํ์ฌํผ 12์๊ฐ๋์ ์์์ ๊ณต๋ถํ๋๋งํผ, ์ปจ๋์ ์ ํํํ๊ฒ ์ ์งํ๊ณ ์ถ์ด์ ๋ฆ๊ฒ ์๋ ๊ฒ๋งํผ์ ํผํ๊ณ ์๋ค (ใ ใ )... ๋๋๋ก 11์ ์ทจ์นจ โ 6์ ๊ธฐ์์ ์งํค๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์๋ค. ์ค๋๋ ํ์ดํ ๐ช๐ช!!
DTO = Data Transfer Object
๋ฐ์ดํฐ ์ ์ก
๋ฐ์ด๋
์ ์ํด ์์ฑ๋๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค.
(1) Client์์ ๋ณด๋ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ์ฒ๋ฆฌํ ๋๋ ์ฌ์ฉ๋๊ณ , (2) ์๋ฒ์ ๊ณ์ธต ๊ฐ ์ด๋์๋ ์ฌ์ฉ๋๋ค. ๋, (3) DB์์ ์ํต์ ๋ด๋นํ๋ ํด๋์ค๋ฅผ DTO๋ก ํ ๋ฒ ๋ณํ ํ ๋ฐํํ ๋๋ ์ฌ์ฉ๋๋ค. (๊ทธ ์ธ ์์ธํ ๊ฒ๋ค์ ์ดํ ๊ฐ์๋ฅผ ํตํด ์์ฐ์ค๋ฝ๊ฒ ํ์ตํ ์ ์๋ค)
Request ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ๊ฐ์ฒด๋ RequestDto
, Response๋ฅผ ๋ด๋นํ๋ ๊ฐ์ฒด๋ ResponseDto
๋ผ๋ ์ด๋ฆ์ ๋ถ์ธ๋ค. ์ด๋ ์กฐ์ง์ ๋ฐ๋ผ ๋ช
๋ช
๊ท์น์ด ๋ฌ๋ผ์ง ์ ์๋ค.
#1 ๋จธ๋ฆฌ๊ฐ ๋์๋ฉด ๋ชธ์ด ๊ณ ์ํ๋ค.
์๋ฌดํผ ์ด๋ ๊ฒ ์ฒซ ์ปค๋ฐ๊ณผ ํธ์๋ ๋ฌด์ฌํ ๋๋๋ค. ๊ณ ์ ์ด๊ฑฐํ๋๋ฐ ์๋ฌ๋ฅผ 4๋ฒ์ ๋ ๋ดค์... ๊ทธ๋ฅ IntelliJ์์ ์ปค๋ฐํ ๊น...........
(๋์ถฉ ๋ฐ๋ณด์ฒ๋ผ ์๋ฌ ๋ด๊ณ ๋ ๋ญ๊ฐ ๋ฌธ์ ์ธ์ง ๋ชฐ๋๋ค๋ ๊ธ) ๊ทธ๋๋ ํด๊ฒฐํ์ต๋๋ค!!!
โ ๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์๋ use
๋ช
๋ น์ด๋ฅผ ํตํด์ ์ฌ์ฉํ ๊ฒ์์ ๋ช
์์ ์ผ๋ก ์๋ฆด ๊ฒ!
mysql> use {database};
ํ์ฌํผ ๊ทนํ ์ด๋ณด์ ์ธ ์ค์์๋ค...
Contoller
๊ฐ Service
๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉ
public class Controller {
private final Service service;
public Controller() {
this.service = new Sevice();
}
}
Service
๊ฐ Repostiroy
๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉ
public class Service {
private final Repository repository;
public Service() {
this.repository = new Repository();
}
}
์ด๋ฐ ์ํฉ์์ Repository
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋, DB ์ ์ ์ ํ์ํ id
์ pw
๋ฅผ ๋ฐ์์ ์ฌ์ฉํ๋ค๋ฉด...?
public class Repository {
public Repository(String id, String pw) {
// DB ์ฐ๊ฒฐ
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/memo", id, pw);
}
}
์์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์. Controller
5๊ฐ๊ฐ ๊ฐ๊ฐ Service1
์ ์์ฑํ์ฌ ์ฌ์ฉํ๊ณ ์๋ค.
์ด ์ด๋ฏธ์ง์ ๋ฐ๋ฅด๋ฉด, Repository1
์์ฑ์ ๋ณ๊ฒฝ์ ์ํด, ๋ชจ๋ Contoller์ ๋ชจ๋ Service์ ์ฝ๋ ๋ณ๊ฒฝ์ด ํ์
ํด์ง๋ค.
public class MemoController {
private final MemoService memoService;
public MemoController(MemoService memoService) {
this.memoService = new MemoService(jdbcTemplate);
}
public class MemoController {
private final MemoService memoService;
public MemoController(MemoService memoService) {
this.memoService = memoService;
}
Repository1
์์ฑ์ ๋ณ๊ฒฝ์ ์ด์ ๋๊ตฌ์๊ฒ๋ ์ํฅ์ ์ฃผ์ง ์๊ฒ ๋์๋ค.
Service1
์์ฑ์์ ๋ณ๊ฒฝ์ฌํญ์ด ์๊ฒจ๋?
๋ชจ๋ Contoller
๋ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ด์ง๋ค.
๊ฐํ ๊ฒฐํฉ
์์ โ ๋์จํ ๊ฒฐํฉ
์ด ๋์๋ค.
์ฆ, ์ ์ด์ ํ๋ฆ์ด ๋ฐ๋์๋ค๊ณ ๋ณผ ์ ์๋ค!