๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Today I Learned(TIL)/์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 10

by carrot0911 2024. 12. 8.

์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง 

  • ๊ฐœ์ธ ๊ณผ์ œ Lv 1 - JDBC๋กœ ๋ฐ”๊พธ๊ธฐ

 

์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ 

์˜ค๋Š˜ ์ง„ํ–‰ํ–ˆ๋˜ ๊ณผ์ œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ •๋ฆฌํ•ด ๋†”์•ผ๊ฒ ๋‹ค!

  1. ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋‹ค ์™„์„ฑํ–ˆ๋˜ ๊ณผ์ œ๋ฅผ JDBC๋กœ ๋ฐ”๊พธ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
  2. ์ผ์ • ์ƒ์„ฑ ์ˆ˜์ • - Todo(@Setter ์ œ๊ฑฐ), TodoScheduleRepository(์‚ญ์ œ), JdbcTemplateRepository(์ƒ์„ฑ ๋ฐ createTodo ๋ฉ”์„œ๋“œ ์ˆ˜์ •), TodoScheduleService(createTodoService ๋ฉ”์„œ๋“œ ์ˆ˜์ •), TodoResponseDto(@AllArgsConstructor Annotation ์ถ”๊ฐ€)
  3. ์ „์ฒด ์ผ์ • ์กฐํšŒ ์ˆ˜์ • - TodoScheduleService(searchAllTodoService ๋ฉ”์„œ๋“œ ์ˆ˜์ •), TodoScheduleController(searchAllRodosAPI ๋ฉ”์„œ๋“œ ์ˆ˜์ •), JdbcTemplateRepository(searchAllTodos ๋ฉ”์„œ๋“œ ์ˆ˜์ •, todoRowMapper ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€)
  4. ์„ ํƒ ์ผ์ • ์กฐํšŒ ์ˆ˜์ • - TodoScheduleService(searchTodoById ๋ฉ”์„œ๋“œ ์ˆ˜์ •), TodoScheduleController(searchTodoByIdAPI ๋ฉ”์„œ๋“œ ์ˆ˜์ •), JdbcTemplateRepository(searchTodoById ๋ฉ”์„œ๋“œ ์ˆ˜์ •, todoRowMapperV2 ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€)

 

์˜ค๋Š˜ ํ•˜๋ฃจ ์ •๋ฆฌ โœ๏ธ

์˜ค๋Š˜์€ ์ข€ ํ‘น ์‰ฌ๋‹ค๊ฐ€ ์˜คํ›„๋ถ€ํ„ฐ JDBC์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค.
๋จผ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๋™ํ•œ ํ›„, ์ผ์ • ์ƒ์„ฑ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ˆ˜์ •์„ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ฐ•์˜ ์‹ค์Šตํ•  ๋•Œ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ์™€ ๊ฐ•์˜ ์ž๋ฃŒ๋ฅผ ํ•จ๊ป˜ ๋ณด๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ตœ๋Œ€ํ•œ ํ๋ฆ„์„ ์ดํ•ดํ•˜๋ฉด์„œ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์ผ์ • ์ƒ์„ฑ ๋ถ€๋ถ„ ์ž‘์„ฑ ํ›„์—๋Š” ์–ด๋Š ์ •๋„ ๊ฐ์ด ์žกํ˜”๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์ „์ฒด ์ผ์ • ์กฐํšŒ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋ฐœ์ƒํ–ˆ๋‹ค.
์ „์ฒด ์ผ์ •๋งŒ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์กฐ๊ฑด์ด ๋ถ™์–ด์žˆ์–ด์„œ ๋จธ๋ฆฌ๋ฅผ ์•„ํ”„๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค... ์ˆ˜์ •์ผ๊ณผ ์ž‘์„ฑ์ž๋ช…์„ ํ†ตํ•ด ์กฐ๊ฑด์— ๋งž๋Š” ์ผ์ •๋“ค๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๋‹นํ™ฉํ–ˆ์ง€๋งŒ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ณด๋ฉด์„œ ๋‚ด๊ฐ€ ํ•ด์•ผํ•  ์ผ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ ์–ด๋ณด์•˜๋‹ค. ์ ๋Š” ๋™์•ˆ ๋จธ๋ฆฌ ์†์— ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ์ข‹์„์ง€ ๊ตฌ์ƒ์ด ์žกํ˜€๊ฐ€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌ์ƒ๋งŒ ์žกํ˜”์„ ๋ฟ ์ •์ž‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์ข‹์„์ง€ ๋ง‰๋ง‰ํ•˜๊ธฐ๋งŒ ํ–ˆ๋‹ค.
๊ฒฐ๊ตญ GPT์—๊ฒŒ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๋ฐฉํ–ฅ์ด ๋งž๋Š”์ง€ ๋ฌผ์–ด๋ณด๊ณ  ํ™•์‹ ์„ ์–ป์€ ํ›„์— ์‹ค์Šต ์ฝ”๋“œ์™€ ๊ฐ•์˜ ์ž๋ฃŒ๋ฅผ ๋ณด๋ฉฐ์„œ ์ฒœ์ฒœํžˆ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ postman์„ ํ†ตํ•ด ์กฐํšŒํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ์ˆ˜์ •์ผ ๋ถ€๋ถ„์—์„œ ์•„๋ฌด๊ฒƒ๋„ ๋ถˆ๋Ÿฌ์™€์ง€์ง€ ์•Š์•˜๋‹ค.. ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋ณด๋‹ˆ๊นŒ ์ˆ˜์ •์ผ์„ SQL ๊ตฌ๋ฌธ์—์„œ LIKE๋กœ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋Š”๋ฐ ๋‚ ์งœ ๋’ค์— %๊ฐ€ ๋น ์ง€๋ฉด์„œ ์•„๋ฌด๊ฒƒ๋„ ์กฐํšŒ๋˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด์—ˆ๋‹ค.. ์ด ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊นจ๋‹ฌ์„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋‹ค์‹œ ์ˆ˜์ • ํ›„ ํ™•์ธํ–ˆ๋”๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์„ ํƒ ์ผ์ • ์กฐํšŒ์—์„œ ์‹ค์Šต ์ฝ”๋“œ์™€ ๊ฐ•์˜ ์ž๋ฃŒ๋ฅผ ๋ณด๋ฉด์„œ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ฃผ๋ง๋™์•ˆ ๊ทธ๋Œ€๋กœ ๊ฝค ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์ค‘๊ฐ„์ค‘๊ฐ„ ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์ž˜ ํ•ด๊ฒฐํ–ˆ๊ณ  ์ด๋ ‡๊ฒŒ ์ด๋ฒˆ์ฃผ ์ฃผ๋ง๋„ ์‚ญ์ œ๋˜์—ˆ๋‹ค...........

๋‚ด์ผ๋ถ€ํ„ฐ๋Š” ๋˜ ์ผ์ฃผ์ผ ์‹œ์ž‘์ด๋‹ˆ๊นŒ ๊ณผ์ œ ๋งˆ๋ฌด๋ฆฌ๋„ ์ž˜ํ•˜๊ณ  ๊ณต๋ถ€๋„ ์—ด์‹ฌํžˆ ํ•˜๋ฉด์„œ ์ผ์ฃผ์ผ ์•Œ์ฐจ๊ฒŒ ๋ณด๋‚ด์•ผ๊ฒ ๋‹ค.
๋‹ค์Œ์ฃผ๋„ ํŒŒ์ดํŒ…!!!!

 

๋‚ด์ผ ๊ณ„ํš โฐ

  • ๊ณผ์ œ Lv2 ์ˆ˜์ •
  • ๊ณผ์ œ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„ ๊ณ„์† ํ™•์ธ