๊ฐœ๋ฐœ์ž HOON
๐Ÿ› HOON DEVLog
๊ฐœ๋ฐœ์ž HOON
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ˜Ž ์ „์ฒด ์นดํ…Œ๊ณ ๋ฆฌ (137)
    • ๐Ÿ“ ์‹ ์ž… ์ธํ„ฐ๋ทฐ ์ค€๋น„ (7)
    • ๐Ÿฆ” ์ทจ์—…์ค€๋น„ ๊ธฐ๋ก (7)
    • โ˜• ์ž๋ฐ” : JAVA (5)
    • ๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS (80)
    • ๐ŸŒฑ ๋ฐฑ์—”๋“œ : Backend (13)
    • ๐Ÿงช ์ปดํ“จํ„ฐ๊ณผํ•™ : CS (11)
    • ๐Ÿ—‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : DB (1)
    • ๐Ÿƒ‍โ™‚๏ธ DEVLOG (8)
    • โš™๏ธ Trouble Shooting (5)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • GitHub
  • Resume

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๊ฐœ๋ฐœ์ž HOON

๐Ÿ› HOON DEVLog

[DEVLOG] if(kakao) dev 2022 ๊ฐœ๋ฐœ์ž ์ปจํผ๋Ÿฐ์Šค ํ›„๊ธฐ - 1. ISFP์˜ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ ๊ฐœ์„  ๊ฒฝํ—˜
๐Ÿƒ‍โ™‚๏ธ DEVLOG

[DEVLOG] if(kakao) dev 2022 ๊ฐœ๋ฐœ์ž ์ปจํผ๋Ÿฐ์Šค ํ›„๊ธฐ - 1. ISFP์˜ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ ๊ฐœ์„  ๊ฒฝํ—˜

2023. 1. 1. 20:23

 

๋ณธ ํฌ์ŠคํŠธ๋Š” ์นด์นด์˜ค ์ปจํผ๋Ÿฐ์Šค if(kakao) dev 2022 ์ปจํผ๋Ÿฐ์Šค ๋‚ด์šฉ ๋ฐ ์ž๋ฃŒ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜น์—ฌ๋‚˜ ๊ถŒ๋ฆฌ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ๊ธ€ ์ˆ˜์ • / ์‚ญ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

 

๐Ÿ 0. ์œ ํŠœ๋ธŒ ๋‹ค์‹œ๋ณด๊ธฐ ์˜์ƒ

https://www.youtube.com/watch?v=emGLxi0LvNI&list=LL&index=46&t=165s

 

 

๐Ÿค” 1. ์ฝ”๋“œ ๊ฐ€๋…์„ฑ ๊ฐœ์„  ๊ฒฝํ—˜

 

์ผ๋ฐ˜์ ์ธ ๋ฆฌํŒฉํ† ๋ง์€, ๊ธฐ์กด์˜ ๋กœ์ง์€ ๋ณ€ํ•จ ์—†์ด ์ฝ”๋“œ์˜ ๊ตฌ์กฐ ํ˜น์€ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.

์ค‘๋ณต์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜, ๊ธด ์„œ๋ธŒ๋ฃจํ‹ด์„ ์ชผ๊ฐœ๋Š” ์ž‘์—…, ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜์—์„œ ์—ญํ• ์˜ ๋ถ„๋ฆฌ, ์ „์—ญ๋ณ€์ˆ˜ ์„ค์ •, ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋„ค์ด๋ฐ ์ˆ˜์ •, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ ์ œ๊ฑฐ ๋“ฑ์ด ์ผ๋ฐ˜์ ์ธ ๋ฆฌํŒฉํ† ๋ง์„ ์˜๋ฏธํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์นด์นด์˜ค์˜ coze ๊ฐœ๋ฐœ์ž๋‹˜์€, ์ž์‹ ์˜ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๊ฐ€๋„๋ก ๋งŽ์€ ๋…ธ๋ ฅ์„ ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฆฌํŒฉํ† ๋ง์˜ ๋ฒ”์ฃผ์—์„œ ํ™•์žฅํ•˜์—ฌ, "๋‚จ๋“ค์—๊ฒŒ ์‰ฝ๊ฒŒ ์ดํ•ด๋˜๋„๋ก ํ•  ์ˆ˜ ์—†์„๊นŒ?"ํ•˜๋Š” ๊ณ ๋ฏผ์„ ํฌํ•จํ•˜์—ฌ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ์ด๋Ÿฌํ•œ ์ž‘๊ณ  ์„ธ์‹ฌํ•œ ๊ณ ๋ฏผ์ด ์“ธ๋ฐ ์—†๋Š” ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•œ ๊ฒƒ์€ ์•„๋‹Œ์ง€ ์šฐ๋ คํ•˜์…จ์ง€๋งŒ, ๋Œ์ด์ผœ ๋ณด๋ฉด ์œ ์ง€๋ณด์ˆ˜ ๋ฉด์—์„œ ๊ต‰์žฅํžˆ ๋„์›€์ด ๋งŽ์ด ๋˜์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

"๋‚จ๋“ค์—๊ฒŒ ์‰ฝ๊ฒŒ ์ดํ•ด๋˜๋„๋ก ํ•  ์ˆ˜ ์—†์„๊นŒ?"๋ผ๋Š” ์Šค์Šค๋กœ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ํ†ตํ•ด ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ๊ฐœ์„ ํ•œ ๊ฒฝํ—˜์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰˜์–ด์ง„๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

1) ์ •ํ™•ํ•œ ๋‹จ์–ด๋ฅผ ๊ณ ๋ฅด๊ธฐ
2) ์ž˜ ๋ณด์ด๋Š” ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๊ธฐ 

 

 

1-1. ์ •ํ™•ํ•œ ๋‹จ์–ด ๊ณ ๋ฅด๊ธฐ

1) ๋‹ค๋ฅธ ๋œป์„ ๊ฐ€์ง„ ๋‹จ์–ด์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ

 

const data = await loadData();

์ด ์ฝ”๋“œ๋ผ์ธ์€ ์–ธ๋œป ๋ณด์•˜์„ ๋•Œ ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ์ด๋ฆ„์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ ์ˆ˜ ์žˆ๊ณ , ํ•ด๋‹น ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ coze๋‹˜์€, ์„ธ์„ธํ•œ ๋””ํ…Œ์ผ๋กœ๋ถ€ํ„ฐ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ •ํ™•ํ•œ ์—ญํ• ์„ ๋ช…์‹œํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์…จ์Šต๋‹ˆ๋‹ค.

load : ๊ฐ€์ ธ์™€์„œ ์‹ฃ๋‹ค
fetch : ๊ฐ€์ ธ์˜ค๋‹ค

 

load๋Š” ์ด๋ฏธ ํŠน์ • ๊ณต๊ฐ„์— ์‹ฃ๋Š” ๊ฒƒ๊นŒ์ง€ ์™„๊ฒฐ๋œ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ loadData()๋ผ๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋Š”, ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„์— ํŠน์ • ๊ณต๊ฐ„์— ์‹ฃ๊ณ  ๋‚œ ๊ฒƒ๊นŒ์ง€ ํฌํ•จํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ const data = await loadData(); ๋ผ๊ณ  ํ•˜๋ฉด, loadData์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ๊ณต๊ฐ„์— ํ•œ ๋ฒˆ ์‹ฃ๊ณ , const data ๋ถ€๋ถ„์— ํ•œ ๋ฒˆ ๋” ์‹ฃ๋Š”, "์—ญ์ „ ์•ž"๊ณผ ๊ฐ™์€ ๋А๋‚Œ์„ ๋ฐ›์•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 ๊ทธ๋ž˜์„œ const data = await fetchData();๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด, fetchData() ํ•จ์ˆ˜๋Š” ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ "๋ถˆ๋Ÿฌ์˜จ๋‹ค"์˜ ์—ญํ• ์„ ๋ช…์‹œํ•˜๊ณ , const Data์— ์ €์žฅํ•จ์œผ๋กœ์จ fetchData ํ•จ์ˆ˜์˜ ์—ญํ• ์„ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

const success = await loadData();

 

loadData() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„์— ํŠน์ • ๊ณต๊ฐ„์— ์‹ฃ๋Š” ๊ฒƒ๊นŒ์ง€ ์™„๊ฒฐํ•œ ์ƒํƒœ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ดํ›„์— ์„ฑ๊ณต ์—ฌ๋ถ€์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฆฌํ„ด๋ฐ›๋Š” ๊ฒƒ๋„ ์ข‹์€ ๊ฐ€๋…์„ฑ ์žˆ๋Š” ์ฝ”๋“œ๋ผ๊ณ  ์„ค๋ช…ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

 

๋˜ ๋‹ค๋ฅธ ์‚ฌ๋ก€๋ฅผ ํ•œ ๋ฒˆ ์‚ดํŽด๋ด…์‹œ๋‹ค.

" ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ get์ด ์ข‹์„๊นŒ์š”? query๊ฐ€ ์ข‹์„๊นŒ์š”? "

 

๊ฐœ์ธ์ ์œผ๋กœ get์ด๋ผ๋Š” prefix๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งŽ์€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์™”๋˜ ์ €์—๊ฒŒ๋Š” ๊ต‰์žฅํžˆ ํ˜ผ๋ž€์Šค๋Ÿฌ์› ๋˜ ์งˆ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด, ๋‹น์—ฐํžˆ get์ด ๋งž๋Š”๊ฑฐ ์•„๋‹๊นŒ? ๋ผ๊ณ  ๋‹จ์ˆœํžˆ ์ƒ๊ฐํ–ˆ์—ˆ์œผ๋‚˜, coze๋‹˜์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜๋ฏธ๋กœ ์ ‘๊ทผํ•˜์…จ์Šต๋‹ˆ๋‹ค.

 

get : ๊ฐ€์ ธ์˜ค๋‹ค, ๊ฒฐ๊ณผ๋ฅผ ๋‹น์—ฐํžˆ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค!
query : ์งˆ๋ฌธํ•˜๋‹ค, ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ์งˆ๋ฌธํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, ๊ฒฐ๊ณผ๊ฐ€ ์—†์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‹จ์–ด์˜ ๋‰˜์•™์Šค๋Š” ๊ฒฐ๊ณผ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

get์€ ๊ฒฐ๊ณผ๋ฅผ ๋‹น์—ฐํžˆ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ถˆ๋Ÿฌ์˜ฌ ๊ฐ’์ด null์ด๋ผ๋ฉด, Error๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ์˜ณ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

query์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์—†์„ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ, ์ด ๊ฒฝ์šฐ์—๋Š” null์„ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์ฃ .

 

๋”ฐ๋ผ์„œ ๋‹จ์ˆœํžˆ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์„์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„๋•Œ๋Š” get๋ณด๋‹ค query๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋”์šฑ ์ ํ•ฉํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

๋˜ํ•œ get ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š”, ๊ฐ€์ ธ์˜จ ๋’ค ๋Œ€์ƒ์„ ์ถ”๊ฐ€์ ์ธ ํ™œ์šฉํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

๋Œ€์ƒ์„ ๊ฐ€์ ธ์˜จ ํ›„ ๋Œ€์ƒ์„ ํ™œ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” get์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

 

ํ”„๋ก ํŠธ์—”๋“œ์—์„œ UI ์ปดํฌ๋„ŒํŠธ์™€ ๊ด€๋ จํ•ด์„œ ์„œ์น˜๋ฐ” ํ•˜๋‹จ ์—ฐ๊ด€ ๊ฒ€์ƒ‰์–ด ๋ถ€๋ถ„์—์„œ ํ•œ ์›์†Œ๊ฐ€ HighLight๋˜๋Š” ํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜์‹ค ๋•Œ์—๋„ ๋‹จ์–ด ๊ตฌ๋ณ„์„ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

https://speakerdeck.com/kakao/seomsehan-isfpyi-kodeu-gadogseong-gaeseon-gyeongheom

 

๊ธฐ์กด์—๋Š” select๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, highlight๋˜๋Š” ๊ฒƒ์€ ๋‹น์—ฐํ•œ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ˆœํžˆ Search ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์‰ฝ๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋‹จ์–ด์˜ ๋ช…ํ™•ํ•œ ์˜๋ฏธ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•  ๋•Œ์—๋„ ํฐ ๋„์›€์ด ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

2) ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ๋‹จ์–ด๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

 

https://www.youtube.com/watch?v=GD5TmEIEK38

 

๊น€์˜ํ•˜ ์ž‘๊ฐ€๋Š” "์งœ์ฆ๋‚œ๋‹ค"๋ผ๋Š” ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์งœ์ฆ์ด๋ผ๋Š” ๊ฐ์ •์€ ๋‹ค์–‘ํ•œ ๊ฐ์ •์ด ๋ญ‰๋šฑ๊ทธ๋ ค์ง„, ์ถ”์ƒ์ ์ธ ๊ฐ์ •์ด๋ผ ์ •ํ™•ํ•œ ๊ฐ์ •์„ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ์šดํ•œ ๊ฒฝ์šฐ๋„ ์งœ์ฆ์ด ๋‚  ์ˆ˜ ์žˆ๊ณ , ์–ต์šธํ•œ ๊ฒฝ์šฐ์—๋„ ์งœ์ฆ์ด ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ ๋ชจํ˜ธํ•œ ํ‘œํ˜„์„ ๊ธ€์“ฐ๊ธฐ์— ๋ฐ˜์˜ํ•˜๋ฉด ํ™”์ž์˜ ์ •ํ™•ํ•œ ๊ฐ์ •์ด ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

coze๋‹˜์€ ์ฝ”๋“œ ์ž‘์„ฑ์€ ๊ธ€์“ฐ๊ธฐ์™€ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฝ”๋“œ ์ž‘์„ฑ์„ ํ•  ๋•Œ์—๋„ ์ถ”์ƒ์ ์ด๊ณ  ๊ด‘๋ฒ”์œ„ํ•œ ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•œ ๋‹จ์–ด ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ๋‹จ์–ด๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ๋ฅผ ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

 

if(expirationTime < PROMOTION_END_TIME){
	return remainTime / totalTime;
}

์œ„์˜ ์ฝ”๋“œ๋Š” ์ดํ•ดํ•˜๋Š”๋ฐ ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ๋น„๊ตํ•œ ์กฐ๊ฑด์„ ํ†ต๊ณผํ•˜๋ฉด, ๋‚จ์€ ์‹œ๊ฐ„์„ ์ „์ฒด ์‹œ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์ฃ .

ํ•˜์ง€๋งŒ, Time์€ ๋ชจํ˜ธํ•œ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. Time์€ ์–ด๋–ค ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ๋œ ๊ฒƒ์ธ์ง€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„-๋ถ„-์ดˆ๋กœ ์ด๋ค„์ง„ ์‹œ๊ฐ„์ธ์ง€, ๋‚ ์งœ๊นŒ์ง€ ํฌํ•จ๋œ ํ˜•์‹์ธ์ง€, ๋…„~์ดˆ์˜ ๋‹จ์œ„๋ฅผ ๋ชจ๋‘ ๋ณ€ํ™˜ํ•ด ์ดˆ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฐ’์ธ์ง€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

 

if(expirationDate < PROMOTION_END_DATE){
	return remainDuration / totalDurtion;
}

๋‹ค์Œ์€ ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ Date๋กœ 'Date'ํ˜•์‹์˜ ๊ฐ’์„ ์–ป์–ด์˜ค๊ฒ ๋‹ค! ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ ,

๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์‹œ๊ฐ์ด ์•„๋‹Œ '์–‘'์„ ๋œปํ•˜๋Š” ์‹œ๊ฐ„์˜ ์ฐจ์ด๋ฏ€๋กœ Duration์„ ์‚ฌ์šฉํ•ด ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๋…์„ฑ์„ ๊ฐœ์„ ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ ์ด์ „๋ณด๋‹ค๋Š” ์™€๋‹ฟ๋Š” ๊ฒŒ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ด ์™ธ์—๋„ ๋ชจํ˜ธํ•œ ๋‹จ์–ด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์ฒด ๋‹จ์–ด
get(๊ฐ€์ ธ์˜ค๋‹ค) extract(์ถ”์ถœํ•˜๋‹ค) / parse(๋ถ„ํ•ดํ•˜๋‹ค) / aggregate (ํ•ฉ์น˜๋‹ค)
number(์ˆซ์ž) limit(์ œํ•œ์ด ์žˆ๋Š” ์ˆ˜) / count(์ด๊ณ„)
change(๋ณ€๊ฒฝํ•˜๋‹ค) convert(๋ณ€ํ™˜ํ•˜๋‹ค), filter(๊ฑฐ๋ฅด๋‹ค), override(๋ฎ์–ด์“ฐ๋‹ค)
changed(๋ฐ”๋€) dirty(๋”๋Ÿฌ์šด = ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์ง„)

 

์˜ˆ๋ฅผ ๋“ค์–ด, extract๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, parameter๋กœ ๋“ค์–ด์˜จ ๊ฐ’ ์ค‘์— ์ผ๋ถ€ ํ•„๋“œ๋งŒ ์ถ”์ถœํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ get๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ๋ณด๋‹ค ํ›จ์”ฌ ์ดํ•ดํ•˜๊ธฐ ํŽธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

3) ํ•ญ์ƒ ์ •ํ™•ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

 

์ •ํ™•ํ•œ ๋‹จ์–ด๋กœ ๋ช…์„ธํ•˜๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๊ฐ€๋…์„ฑ์— ํฐ ๋„์›€์„ ์ฃผ์—ˆ์ง€๋งŒ, ๋•Œ๋กœ๋Š” ํ•ญ์ƒ ์ •ํ™•ํ•  ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, ์•ž์œผ๋กœ ๋ถ„/์‹œ/์ผ์„ ์ดˆ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝํ•  ์˜ˆ์ •์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ •ํ™•ํ•œ ํ‘œํ˜„์œผ๋กœ๋Š” MIN_TO_SEC, HOUR_TO_SEC, DAY_TO_SEC๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฆ…๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ, ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ์•„๋ž˜์˜ ๊ฒฝ์šฐ๊ฐ€ ์ „์ฒด์ ์ธ ๋งฅ๋ฝ์ด ๋”์šฑ ๋” ์ž˜ ์ฝํžˆ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช… ์ •ํ™•ํ•œ ํ‘œํ˜„์€ ์œ„์˜ ์ฝ”๋“œ์ง€๋งŒ์š”.

๋”ฐ๋ผ์„œ ํ•ญ์ƒ ์ •ํ™•ํ•œ ํ‘œํ˜„์„ ์ฐพ๊ธฐ ๋ณด๋‹ค๋Š” ๋ฌธ๋งฅ์„ ํŒŒ์•…ํ•ด ๊ฐ€๋…์„ฑ ํ™•๋ณด์„ ํ™•๋ณดํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

1-2. ์ž˜๋ณด์ด๋Š” ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๊ธฐ

๊ธ€์“ฐ๊ธฐ๋ฅผ ํ•  ๋•Œ ํ•œ ๋ˆˆ์— ์ž˜ ๋“ค์–ด์˜ค๊ฒŒ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋ณดํ†ต ์–ด๋–ค ๊ฒƒ๋“ค์„ ์‚ฌ์šฉํ• ๊นŒ์š”?

๋‹จ์ˆœํžˆ ๊ธ€๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์šฉ์–ด ์ •๋ฆฌ, ๋ชฉ์ฐจ, ๊ทธ๋ฆผ, ์ฐจํŠธ ๋“ฑ์„ ์‚ฌ์šฉํ•ด ์‹œ๊ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ๋ˆˆ์— ๋”์šฑ ๋” ์ž˜ ๋ณด์ด๊ฒŒ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

 

coze๋‹˜์€ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ์ฝ”๋“œ ์ž‘์„ฑ์—์„œ๋„ ์—ฐ๊ณ„ํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋ ค๋Š” ๋…ธ๋ ฅ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

1. ํ‘œ

const type = 
	exception
    ? undefined
    : condA
    ? 'A'
    : condB
    ? condC
    	? 'BC'
        : 'BD'
    : 'A';

์œ„์˜ ์ฝ”๋“œ๋Š” ์ง€๋…ํ•œ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž์˜ ํ–ฅ์—ฐ์ž…๋‹ˆ๋‹ค. ๋กœ์ง์€ ์ž˜ ์‹คํ–‰๋  ์ง€ ๋ชจ๋ฅด์ง€๋งŒ, ์ง๊ด€์ ์œผ๋กœ ๋ˆˆ์— ์ด ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด์˜ค์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ฐ’์ด ๊ฒฐ์ •๋˜๋Š” ๋กœ์ง์„ ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์–ด๋–จ๊นŒ์š”?

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ ๋ˆˆ์— ์–ด๋–ค ์กฐ๊ฑด์— ์˜ํ•ด ๊ฐ’์ด ๊ฒฐ์ •๋˜๋Š” ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ์ฝ”๋“œ๋กœ ์ตœ๋Œ€ํ•œ ํ‘œ์™€ ๋น„์Šทํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด ์•„๋ž˜์˜ ์˜ˆ์‹œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

let type = 'A';
if (exception) type = undefined;
if (condA) type = 'A';
if (condB) {
	if (condC) type = 'BC';
    else type = 'BD';
}

 

ํ™•์‹คํžˆ ์ „ ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ก if ๋ฌธ์ด ๋Š˜์–ด๋‚œ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„, ๋ณต์žกํ•œ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์ด์–ด ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์ด๋Ÿฐ ๊ฒƒ์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ์— ํ›จ์”ฌ ํŽธํ•œ ์ฝ”๋“œ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

 

 

2. ๋ชฉ์ฐจ

 

UI ์ปดํฌ๋„ŒํŠธ์˜ ์•ž ๋’ค ์œ„์น˜์˜ ๊ฐš์„ ๋‚˜ํƒ€๋‚ด๋Š” zIndex์™€ ๊ด€๋ จ๋˜์–ด ๋‚˜์˜จ ํ‚ค์›Œ๋“œ๋กœ, ํ”„๋ก ํŠธ์—”๋“œ์— ๋Œ€ํ•œ ์ง€์‹์ด ๋ถ€์กฑํ•˜์ง€๋งŒ ์š”์•ฝํ•˜์ž๋ฉด,

ํ”„๋ก ํŠธ์—”๋“œ UI์˜ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์˜ zIndex ๊ฐ’์„ ๊ด€๋ฆฌํ•˜๋Š” '๋ชฉ์ฐจ'๋ฅผ ์ƒ์„ฑํ•ด ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ์—์„œ๋„ ๋ชฉ์ฐจ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์€, enum ํ˜น์€ ์Šคํƒœํ‹ฑ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์ถฉ๋ถ„ํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ˆ ํ•„์š”์‹œ ์ ๊ทน์ ์œผ๋กœ ๊ธฐ์šฉํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์„ ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

3. ์šฉ์–ด์ •๋ฆฌ

700

 

์šฉ์–ด ์ •๋ฆฌ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š”, ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ํŒŒํŠธ๋ฅผ ๋…์ž๊ฐ€ ์ฝ์„ ๋•Œ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋„๋ก, ๋”ฐ๋กœ ์„ค๋ช…ํ•œ ๋ถ€๋ถ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ์ฝ”๋“œ๊ฐ€ ์šฉ์–ด ์ •๋ฆฌ๋ฅผ ์ฝ”๋“œ์— ์ ์šฉํ•œ ๊ฒฝ์šฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์กฐ๊ธˆ ๋” ๊ธธ์–ด์กŒ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์„ค๋ช…์„ ์ค‘๊ฐ„์˜ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋„ฃ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ™•์‹คํžˆ ๋””ํ…Œ์ผํ•œ ์ฝ”๋“œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์ด์ง€๋งŒ, ์œ„์™€ ๊ฐ™์€ ์ฝ”๋”ฉ ๋ฐฉ์‹์— ์ต์ˆ™ํ•ด์ ธ์„œ ๊ทธ๋Ÿฐ์ง€ ์•„๋ž˜์˜ ์ฝ”๋“œ๊ฐ€ ๋ˆˆ์— ์ž˜ ๋“ค์–ด์˜ค๋Š” ๋А๋‚Œ์€ ์•„๋…”์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ฝ๋‹ค๋ณด๋ฉด, ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ์ž˜ ๋“ค์—ฌ๋‹ค ๋ณผ ์ˆ˜๋Š” ์žˆ๊ฒ ์ง€๋งŒ์š”.

์ ์ ˆํ•œ ์‚ฌ์šฉ์„ ํ†ตํ•ด ๊ฐ€๋…์„ฑ์„ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์€ ์ œ ๋ชซ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

https://speakerdeck.com/kakao/seomsehan-isfpyi-kodeu-gadogseong-gaeseon-gyeongheom

 

 

 

๐Ÿ˜ฎ 2. ํ›„๊ธฐ

 

์ฝ”๋“œ ์ž‘์„ฑ์˜ ํ€„๋ฆฌํ‹ฐ๋Š” ์ •ํ•ด์ง„ ์ •ํ™•ํ•œ ์ด๋ก ์ด ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ฐœ๋ฐœ์ž์˜ ๊ฒฝํ—˜์— ๋งŽ์ด ๋‹ฌ๋ ค์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์„ธ์‹ฌํ•œ ๋ฐฐ๋ ค๊ฐ€ ๋‹๋ณด์ด๋Š” ๊ฐœ๋ฐœ์ž์˜ ์ƒ๊ฐ์„ ๊ณต์œ  ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

 

๊ฐ€์žฅ ๊นŠ์€ ๊ฐ๋ช…์„ ๋ฐ›์€ ๋ถ€๋ถ„์€, "์ •ํ™•ํ•œ ๋‹จ์–ด" ํŒŒํŠธ์˜€์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋Ÿฐ ์ƒ๊ฐ ์—†์ด ๋‹จ์ˆœํ•˜๊ฒŒ ์‚ฌ์šฉํ–ˆ๋˜ ๋‹จ์–ด๋“ค์ด ๊ทธ๋Ÿฐ ๋œป์„ ๋‚ดํฌํ•˜๊ณ  ์žˆ์—ˆ๋Š”์ง€ ๋ชฐ๋ž๋‹ค๋Š” ์ ์—์„œ ์กฐ๊ธˆ ๋ถ€๋„๋Ÿฝ๋„ค์š”.

 

๋น„๋ก ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ๋‚˜์™€ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„๋„ ์žˆ์—ˆ์œผ๋‚˜ "์•„, ๋‚ด ์ฝ”๋“œ์—์„œ๋„ ์ถฉ๋ถ„ํžˆ ์ ์šฉํ•  ๋งŒํ•œ ๋ถ€๋ถ„์ด ๋งŽ๋‹ค!"๋ผ๊ณ  ๋А๋‚€ ๋ถ€๋ถ„๋„ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ต‰์žฅํžˆ ์œ ์ตํ•œ ์ปจํผ๋Ÿฐ์Šค์˜€์Šต๋‹ˆ๋‹ค.

 

 

 

๐Ÿ ์ถœ์ฒ˜

[์Šฌ๋ผ์ด๋“œ] https://speakerdeck.com/kakao/seomsehan-isfpyi-kodeu-gadogseong-gaeseon-gyeongheom
[์ปจํผ๋Ÿฐ์Šค] https://www.youtube.com/watch?v=emGLxi0LvNI&list=LL&index=46&t=165s

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿƒโ€โ™‚๏ธ DEVLOG' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[DEVLOG] @Builder์™€ @Builder.Default  (0) 2023.04.12
[DEVLOG] JUnit5๋ฅผ ํ™œ์šฉํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ๊ณผ @DataJpaTest ์‚ฌ์šฉ์‹œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ  (1) 2023.04.12
[DEVLOG] ์šฐ๋‹นํƒ•ํƒ• ์ œ๋ฐœ๋ชจ๋ฐœ v2 ๊ฐœ๋ฐœ๊ธฐ - ํƒˆ๋ชจ ์ง„๋‹จ API ์ˆ˜์ •ํ•˜๊ธฐ (4) createdAt๊ณผ updatedAt, JPA AttributeConverter  (1) 2022.12.27
[DEVLOG] ์šฐ๋‹นํƒ•ํƒ• ์ œ๋ฐœ๋ชจ๋ฐœ v2 ๊ฐœ๋ฐœ๊ธฐ - ํƒˆ๋ชจ ์ง„๋‹จ API ์ˆ˜์ •ํ•˜๊ธฐ (3) DTO์— ๋”ฐ๋ฅธ ์‘๋‹ต ์ƒ์„ฑ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ  (0) 2022.12.16
[DEVLOG] ์šฐ๋‹นํƒ•ํƒ• ์ œ๋ฐœ๋ชจ๋ฐœ v2 ๊ฐœ๋ฐœ๊ธฐ - ํƒˆ๋ชจ ์ง„๋‹จ API ์ˆ˜์ •ํ•˜๊ธฐ (2) ๊ณตํ†ตํ•„๋“œ๊ฐ€ ๋งŽ์€ DTO ๋งŒ๋“ค๊ธฐ  (0) 2022.12.16
    '๐Ÿƒ‍โ™‚๏ธ DEVLOG' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [DEVLOG] @Builder์™€ @Builder.Default
    • [DEVLOG] JUnit5๋ฅผ ํ™œ์šฉํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ๊ณผ @DataJpaTest ์‚ฌ์šฉ์‹œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ
    • [DEVLOG] ์šฐ๋‹นํƒ•ํƒ• ์ œ๋ฐœ๋ชจ๋ฐœ v2 ๊ฐœ๋ฐœ๊ธฐ - ํƒˆ๋ชจ ์ง„๋‹จ API ์ˆ˜์ •ํ•˜๊ธฐ (4) createdAt๊ณผ updatedAt, JPA AttributeConverter
    • [DEVLOG] ์šฐ๋‹นํƒ•ํƒ• ์ œ๋ฐœ๋ชจ๋ฐœ v2 ๊ฐœ๋ฐœ๊ธฐ - ํƒˆ๋ชจ ์ง„๋‹จ API ์ˆ˜์ •ํ•˜๊ธฐ (3) DTO์— ๋”ฐ๋ฅธ ์‘๋‹ต ์ƒ์„ฑ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ
    ๊ฐœ๋ฐœ์ž HOON
    ๊ฐœ๋ฐœ์ž HOON
    ์ข‹์€ ๋ฐฑ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก์„ ๋ชจ์•˜์Šต๋‹ˆ๋‹ค. # ์ฃผ๋‹ˆ์–ด # ๋ฐฑ์—”๋“œ # ๊ฐœ๋ฐœ์ž

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”