๊ณผ์ ํธ๋ฌ๋ธ ์ํ
๋ฌธ์ ์ํฉ
IntelliJ์์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ค, import๋ฅผ ์ํํ ๋ ์ฝ๋์ ๋งจ ์๋ก ์ถ๊ฐ๋์ง ์๊ณ ์์ฑ ์ค์ธ ํด๋น ์ค์ import๋ฌธ์ด ์ถ๊ฐ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ฌธ์ ์์ธ
๋ฌธ์ ์ ์ ํํ ์์ธ์ ํ์
ํ์ง ๋ชปํ๋ค.
ํ์ง๋ง import ์๋ ์ IntelliJ ์ฐ์ธก ํ๋จ์ IDE Error ๋ฉ์์ง๊ฐ ์ง์์ ์ผ๋ก ๋ํ๋ ๊ฒ์ ๋ณด์ IntelliJ ์์ฒด์ ๋ฌธ์ ๋ก ํ๋จํ๋ค.
์ฌ๋ฌ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋ ๊ณผ์ ์์ ์ค์ ์ด ๊ผฌ์๊ฑฐ๋ ์๋ชป๋ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง ๊ฒ์ผ๋ก ์๊ฐํ๊ณ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํํฐ๋๊ณผ ํจ๊ป ๋ค์ํ ์๋
- IntelliJ ์ค์ ๋ณ๊ฒฝ
- ์บ์ ์ญ์
- ๊ทธ๋ฌ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ์๋ํด๋ ์ฌ์ ์น IDE Error ๋ฉ์์ง๊ฐ ๋ฐ์ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ๋ค.
- ์ต์ข
ํด๊ฒฐ
- IntelliJ๋ฅผ ์์ ํ ์ญ์ ํ ํ ์ฌ์ค์น ์งํ
- ์ฌ์ค์น ํ ๊ธฐ๋ณธ ์ํ๋ฅผ ์ ์งํ๋ฉฐ, ๊ผญ ํ์ํ ํ๋ฌ๊ทธ์ธ๋ง ์ค์น
๊ฒฐ๋ก
IntelliJ๋ฅผ ์ฌ์ค์นํ ํ ๋ฌธ์ ์์ด ์ ์ ์๋ํ๋ ๊ฒ์ ํ์ธํ๋ค.
์์ผ๋ก ํ๋ฌ๊ทธ์ธ์ ์ค์นํ ๋ ์ ์คํ๊ฒ ์ ํํ๊ณ , ๋ถํ์ํ ๋ณ๊ฒฝ์ ์ต์ํํด์ IDE์ ์์ ์ฑ์ ์ ์งํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๋ฌธ์ ์ํฉ
๊ณผ์ ์ ์๊ตฌ์ฌํญ์์๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฐํํ์ง ์์์ผ ํ๋ค๊ณ ์์ฑ๋์ด ์์ง๋ง, ์ผ์ ์ ์์ฑํ ๋ ๋น๋ฐ๋ฒํธ๊ฐ ํจ๊ป ๋ฐํ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ฌธ์ ์์ธ
TodoResponseDto ํด๋์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ ์ญํ ์ ๋ด๋นํ๋๋ฐ, ๊ฐ์ ์ค์ต ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ณผ์ ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋๋ก ์ค์ ํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก password ํ๋๋ ํจ๊ป ๋ฐํ๊ฐ์ ํฌํจ๋๋ฉด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ฌธ์ ์ฝ๋
public TodoResponseDto(Todo todo) {
this.id = todo.getId();
this.title = todo.getTitle();
this.content = todo.getContent();
this.writer = todo.getWriter();
this.password = todo.getPassword();
this.created_date = todo.getCreated_date();
this.updated_date = todo.getUpdated_date();
}
ํด๊ฒฐ ๋ฐฉ๋ฒ
password ํ๋๋ฅผ ๋ฐํํ์ง ์๋๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค.
public TodoResponseDto(Todo todo) {
this.id = todo.getId();
this.title = todo.getTitle();
this.content = todo.getContent();
this.writer = todo.getWriter();
this.created_date = todo.getCreated_date();
this.updated_date = todo.getUpdated_date();
}
์์ ํ ๋น๋ฐ๋ฒํธ๊ฐ ๋ ์ด์ ๋ฐํ๋์ง ์์๊ณ ๊ณผ์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ ์ ์์๋ค.
๊ฒฐ๋ก
๊ฐ์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ๋ ๊ฒ์ ํจ์จ์ ์ด์ง๋ง ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ ์ ํ ์์ ํ๊ณ ํ์ฉํ๋ ๊ฒ์ด ๋ ์ค์ํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ๋ง์ผ๋ก๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ํฉ์ ๋ง๋ ๋ณ๊ฒฝ๊ณผ ํ๋จ ๋ฅ๋ ฅ์ด ํ์ํจ์ ๊นจ๋ฌ์๋ค.
๋ฌธ์ ์ํฉ
๊ฐ์ ์ค์ต ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ TodoScheduleService์ TodoScheduleController๋ฅผ ์์ฑํ๋ ์ค์ ๋ ํด๋์ค์์ ์์กด์ฑ์ ์ฃผ์ ๋ฐ๋ ํ๋ ๊ฐ์ฒด๊ฐ ์๋ชป ์ค์ ๋์ด ์๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค.
๋ฌธ์ ์์ธ
Interface๋ฅผ ์ฃผ์
๋ฐ์์ผ ํ๋๋ฐ ๊ตฌํ ํด๋์ค๋ฅผ ์ง์ ์ฃผ์
๋ฐ๊ณ ์์๋ค.
์ด๊ฒ์ DI(Dependency Injection) ์์น์ ์ด๊ธ๋๋ ์ฝ๋๋ก, ์ถํ ํ์ฅ์ฑ ๋ฐ ์ ์ง๋ณด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋ฌธ์ ์ฝ๋
// TodoScheduleService
private final TodoScheduleRepository todoScheduleRepository;
// TodoScheduleController
private final TodoScheduleService todoScheduleService;
ํด๊ฒฐ ๋ฐฉ๋ฒ
์์กด์ฑ ์ฃผ์
์, Interface๋ฅผ ์ฃผ์
๋ฐ์ ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ถํ ๊ตฌํ์ฒด ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ์๋ ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์๋ค.
// TodoScheduleService
private final TodoRepository todoRepository;
// TodoScheduleController
private final TodoService todoService;
์์ ํ ์์กด์ฑ ์ฃผ์ ์์น์ ๋ง๊ฒ Interface๋ฅผ ์ฃผ์ ๋ฐ๋๋ก ๊ฐ์ ๋์๋ค.
๊ฒฐ๋ก
์ฝ๋๋ฅผ ์์ฑํ ๋๋ importํ๋ ๋์์ด ์ฌ๋ฐ๋ฅธ์ง์ ์ฃผ์
๋ฐ์์ผ ํ ๊ฐ์ฒด์ ์ญํ ์ ์ ํฉํ ์ดํดํ๊ณ ์์ฑํด์ผ ํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
DI ์์น์ ์ค์ํ๋ฉด ์ฝ๋๋ฅผ ์ข ๋ ์ ์ฐํ๊ณ ์ ์ง๋ณด์ ๊ฐ๋ฅํ๋๋ก ๋ง๋ค ์ ์๋ค๋ ์ ๋ ๊นจ๋ฌ์๋ค.
๋ฌธ์ ์ํฉ
๊ณผ์ ์ ์๊ตฌ์ฌํญ์์๋ ์์ ์ผ๊ณผ ์์ฑ์๋ช
์ ๊ธฐ๋ฐ์ผ๋ก ์ผ์ ๋ชฉ๋ก์ ๋ชจ๋ ์กฐํํด์ผ ํ๋ค.
์ฒ์์๋ ์์ ์ผ๋ก ์กฐํํ ๋ SQL์ LIKE ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์ฝ๋๋ฅผ ์์ฑํ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์์๋ค.
์์ฑ์๋ช
๋ง ์ฌ์ฉํ์ฌ ์กฐํํ์ ๋๋ ์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ฐํ๋์๋ค.
๋ฌธ์ ์์ธ
LIKE๋ฅผ ์ฌ์ฉํ ๋ ๋ ์ง๋ฅผ ์กฐํํ๋ ค๋ฉด "YYYY-MM-DD%" ํ์์ผ๋ก ์
๋ ฅ๊ฐ์ ์ ๋ฌํด์ผ ํ์ง๋ง, "YYYY-MM-DD" ํ์์ผ๋ก ์กฐํ๋ฅผ ์๋ํ๋ค.
์ด๋ก ์ธํด ์์ ์ผ์ ์๊ฐ ์ ๋ณด๊น์ง ์ผ์นํ์ง ์์ ์กฐํ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋์ง ์์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
์
๋ ฅ๊ฐ์ % ์์ผ๋์นด๋๋ฅผ ์ถ๊ฐํ์ฌ "YYYY-MM-DD%" ํ์์ผ๋ก ์์ ํ๋ค.
์์ ํ, ์์ ์ผ์ ๊ธฐ์ค์ผ๋ก ์ผ์ ๋ชฉ๋ก์ด ์ ์์ ์ผ๋ก ์กฐํ๋๋ ๊ฒ์ ํ์ธํ๋ค.
๊ฒฐ๋ก
SQL์ ์ฌ์ฉํ ๋ LIKE ์ฐ์ฐ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ฉํ๋ ค๋ฉด ์
๋ ฅ๊ฐ์ ํ์๊ณผ ํจํด์ ์ ํํ ์ดํดํด์ผ ํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
๋ ์ง์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋๋ ํฌ๋งท์ ์ฃผ์ํ๊ณ , ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋ ์์ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ฉฐ ํ์ธํ๋ ์ต๊ด์ด ์ค์ํ๋ค๋ ์ ์ ๊นจ๋ฌ์๋ค.
๋ฌธ์ ์ํฉ
์์ ์ผ์ ์กฐ๊ฑด์ผ๋ก ์ผ์ ๋ชฉ๋ก์ ์กฐํํ๋ ค๊ณ ํ์ผ๋, ์กฐ๊ฑด์ ์ถ๊ฐํด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ชจ๋ ์ผ์ ์ด ์กฐํ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์์ฑ์๋ช
์กฐ๊ฑด์ ํจ๊ป ์ถ๊ฐํ๋ฉด ์ ํํ ์กฐ๊ฑด์ ๋ง๋ ์ผ์ ์ด ๋ฐํ๋์๋ค.
์ด ๋ฌธ์ ๋ ์์ ์ผ ์กฐ๊ฑด๋ง ์ฌ์ฉํ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ค.
๋ฌธ์ ์์ธ
LIKE "YYYY-MM-DD%" ๋ฐฉ์์ผ๋ก ์์ ์ผ ์กฐ๊ฑด์ ์์ฑํ์ง๋ง updated_date ํ๋๊ฐ ๋ ์ง์ ์๊ฐ์ ํฌํจํ๊ณ ์์ด์ ์ ๋ ฅ๊ฐ์ด ์ ํํ ๋งค์นญ๋์ง ์์๋ค. ์์ ์ผ ์กฐ๊ฑด์ด ์ ๋๋ก ์๋ํ์ง ์์์ ์ ์ฒด ๋ฐ์ดํฐ๊ฐ ๋ฐํ๋์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
LIKE ๋์ DATE(updated_date) ํจ์๋ฅผ ์ฌ์ฉํ์ฌ updated_date ํ๋์ ๋ ์ง ๋ถ๋ถ๋ง ๋น๊ตํ๋๋ก SQL ์ฟผ๋ฆฌ๋ฅผ ์์ ํ๋ค.
์์ ํ ์กฐ๊ฑด์ ๋ง๋ ์ผ์ ๋ง ์ ์์ ์ผ๋ก ์กฐํ๋์๋ค.
๊ฒฐ๋ก
์ฝ๋์๋ ์ ๋ต์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ๋ง ๊ณ ์งํ์ง ์๊ณ ๋ค์ํ ์ ๊ทผ๋ฒ์ ์๋ํ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ์ ์ ๋ฐฐ์ ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์์๋ ์ฟผ๋ฆฌ ์์ฑ ์ ๋ฐ์ดํฐ ํ์
๊ณผ ํจ์ ํ์ฉ์ ์ ์ํด์ผ ํ๋ฉฐ, ์ํฉ์ ๋ฐ๋ผ ๋ ์ ํฉํ ๋ฐฉ๋ฒ์ ์ ํํ ์ ์์ด์ผ ํ๋ค๋ ์ ์ ๊นจ๋ฌ์๋ค.
๋ฌธ์ ์ํฉ
์ ํํ ์ผ์ ์ ์์ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ Postman์ ์ด์ฉํด API๋ฅผ ํธ์ถํ์ง๋ง ๊ณ์ 404 NOT_FOUND ์๋ต์ด ๋ฐํ๋์๋ค.
์ด๋ก ์ธํด ์ผ์ ์ ์์ ํ ์ ์์๋ค.
๋ฌธ์ ์์ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๊ฐ์ ํ์ธํ ๊ฒฐ๊ณผ, ๋น๋ฐ๋ฒํธ ํ๋์ ์์ฑ์๋ช
์ด ์ ์ฅ๋์ด ์์๋ค.
์ผ์ ์ ์ ์ฅํ๋ ์ฝ๋์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ชป ์ฒ๋ฆฌํ ๋ก์ง์ผ๋ก ์ธํด ๋ฐ์ํ ๋ฌธ์ ์๋ค.
์์ ์ ์
๋ ฅ๋ ๋น๋ฐ๋ฒํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์์ ์กฐ๊ฑด์ ๋ง๋ ์ผ์ ์ ์ฐพ์ ์ ์์๊ณ 404 NOT_FOUND๊ฐ ๋ฐํ๋์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
์ผ์ ์ ์ ์ฅํ๋ ์ฝ๋๋ฅผ ์์ ํ์ฌ ๋น๋ฐ๋ฒํธ๊ฐ ์ ์์ ์ผ๋ก ์ ์ฅ๋ ์ ์๊ฒ ํ๋ค.
์ฝ๋๋ฅผ ์์ ํ ํ, Postman์ ์ด์ฉํด ๋ค์ ์์ฒญ์ ๋ณด๋๋๋ ์ ์์ ์ผ๋ก ์ผ์ ์ด ์์ ๋์๋ค.
๊ฒฐ๋ก
์ฝ๋๋ฅผ ์์ฑํ ํ์๋ ๋ฐ๋์ ์ธ๋ถ ๋ก์ง๊ณผ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ผผ๊ผผํ ๊ฒํ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ๊ฐ์ ํ์ธํ๊ณ , ์
๋ ฅ๊ฐ๊ณผ ์ ์ฅ๋ ๊ฐ์ ์ผ์น๋ฅผ ์ ์คํ๊ฒ ๊ฒํ ํด์ผ ํ๋ค๋ ์ ์ ๋ฐฐ์ ๋ค.
'ํ๋ก์ ํธ > ๊ฐ์ธ ํ๋ก์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ผ์ ๊ด๋ฆฌ ์ฑ Develop_ํธ๋ฌ๋ธ ์ํ (0) | 2024.12.19 |
---|---|
์ผ์ ๊ด๋ฆฌ ์ฑ ๋ง๋ค๊ธฐ ๊ณผ์ _KPT ํ๊ณ (0) | 2024.12.10 |
ํค์ค์คํฌ ๊ณผ์ _KPT ํ๊ณ (0) | 2024.11.28 |
ํค์ค์คํฌ ๊ณผ์ _ํธ๋ฌ๋ธ ์ํ (0) | 2024.11.28 |
๊ณ์ฐ๊ธฐ ๊ณผ์ _ํธ๋ฌ๋ธ ์ํ (0) | 2024.11.20 |