artIST - developer/SSAFY๐Ÿ’Ž

์ž์œจ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ  (์ž์œ ์ฃผ์ œ)

ssunj 2024. 5. 28. 16:05

์ž์œจ ํ”„๋กœ์ ํŠธ๋„ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค!
์‹ธํ”ผ์˜ ๋์ด ๋‹ค๊ฐ€์˜ค๋„ค์š”๐Ÿฅบ๐Ÿฅบ
 
์ž์œจ ํ”„๋กœ์ ํŠธ์—๋Š” ํฌ๊ฒŒ ๊ธฐ์—…์—ฐ๊ณ„ / ์˜คํ”ˆ์†Œ์Šค / ์ž์œ ์ฃผ์ œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
 
๊ทธ ์ค‘ ์ €ํฌ๋Š” ์ž์œ ์ฃผ์ œ๋กœ, ์ƒˆ๋กœ์šด ์„œ๋น„์Šค๋ฅผ ํ•˜๋‚˜ ๊ธฐํšํ•ด์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์‹ค ์ž์œ ์ฃผ์ œ์ธ๋งŒํผ, ์•„๋ฌด๋Ÿฐ ์ œํ•œ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ ์ ˆํ•œ ์ฃผ์ œ๋ฅผ ์ •ํ•˜๊ธฐ ์˜คํžˆ๋ ค ์–ด๋ ค์› ๋Š”๋ฐ์š”....
๊ทธ๋ž˜๋„ ๊ทธ๋งŒํผ ์ž์œ ๋กœ์› ๋‹ต๋‹ˆ๋‹ค(?)
(์ €ํฌ ํŒ€๋ช… ๊ฐ€์ œ๋„... ์ž์œ ๋กœ์šด ์šฐ๋ฆฌ๋ฅผ ๋ด, ์ž์œ ๋กœ์›Œ .. ์˜€์–ด์š”ใ…‹ใ…‹)
 
์ด์ „ ๊ณตํ†ต์ด๋‚˜ ํŠนํ™” ํ”„๋กœ์ ํŠธ์—์„œ ๊ธฐํš ๊ด€๋ จ ์ปจ์„คํŒ…์„ ๋ฐ›์„ ๋•Œ, ์ฃผ์–ด์ง„ ๊ธฐ์ˆ ์ด๋‚˜ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„ˆ๋ฌด ๋ป”ํ•œ ์ฃผ์ œ๋‹ค- ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค- ๋“ฑ์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ๋ณ„ ๋ง ์—†์ด ๋ฐ”๋กœ ํ†ต๊ณผ๋์–ด์š”! (๋†€๋ผ์›€+์–ผ๋–จ๋–จ)
๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๊ธฐ์— ์—„์ฒญ๋‚˜๊ฒŒ ์‹ ๋ฐ•ํ•œ ์ฃผ์ œ๋Š” ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ์ปจ์„คํ„ดํŠธ๋‹˜๊ณผ ์ฝ”์น˜๋‹˜๊ป˜ ์ข€ ๋” ๋””๋ฒจ๋กญ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์•„์ด๋””์–ด์— ๊ด€ํ•œ ์˜๊ฒฌ์„ ๋“ค์„ ์ˆ˜ ์žˆ์—ˆ๋‹ต๋‹ˆ๋‹คโœŒ
 
 
 
๊ทธ๋ž˜์„œ! ์ €ํฌ ํŒ€์˜ ์ฃผ์ œ๋Š”! ์—ฌํ–‰ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๊ด€๋ฆฌ ๋ฐ ๊ฐ€๊ณ„๋ถ€ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค!
์ฒ˜์Œ์— ์—ฌํ–‰์ด๋ผ๋Š” ์ฃผ์ œ๊ฐ€ ๋‚˜์™€์„œ ์ด๊ฒƒ์ €๊ฒƒ ํšŒ์˜ํ•˜๋‹ค๋ณด๋‹ˆ ์ตœ์ข… ๊ฒฐ๋ก ์ด ์ด๋ ‡๊ฒŒ ๋‚ฌ๋Š”๋ฐ์š”..., ํ•œ ๋งˆ๋””๋กœ ์ •๋ฆฌํ•˜๋ฉด ์—ฌํ–‰ ์ „/์ค‘/ํ›„์— ๊ผญ ํ•„์š”ํ•œ ๋‚ด์—ญ๋“ค์„ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค๐Ÿ˜‰
 
์ž ๊น ์„œ๋น„์Šค ํ™๋ณดํ•˜๊ณ  ์ง€๋‚˜๊ฐˆ๊ฒŒ์š”๐Ÿ’จ๐Ÿ’จ๐Ÿ’จ

๊ธ‰ํžˆ ๋š๋”ฑ๋š๋”ฑ ๋งŒ๋“  ํฌํŠธํด๋ฆฌ์˜ค ์ด์šฉํ•˜๊ธฐ..! ๋•ก์Šค ํˆฌ.. ์‹ธํ”ผ๐Ÿ˜Ž..

 
๋ชจ๋“  ํˆฌ์–ด๋ฆฌ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋‹จ ํ•˜๋‚˜์˜ ํˆฌ์–ด๋ฆฌ์ŠคํŠธ(TOUR LIST)! โœˆโœ…

์—ฌํ–‰์„ ๊ฐ€๋Š” ๊ณณ๊ณผ, ์—ฌํ–‰์—์„œ ์ง„ํ–‰ํ•˜๋Š” ํ™œ๋™์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ค€๋น„๋ฌผ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค!
๋ฉค๋ฒ„๋“ค๊ณผ ํ•จ๊ป˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—ฌํ–‰ ์ผ์ •์„ ๊ณ„ํšํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!
์ง€์ถœ๋‚ด์—ญ์„ ํ•ด์™ธํ†ตํ™”์™€ ์›ํ™”๋กœ ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์ •์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

 
https://github.com/Eminyidle/TO-UR-LIST

GitHub - Eminyidle/TO-UR-LIST: ๋ชจ๋“  ํˆฌ์–ด๋ฆฌ์ŠคํŠธ(Tourist)๋ฅผ ์œ„ํ•œ ๋‹จ ํ•˜๋‚˜์˜ ํˆฌ์–ด๋ฆฌ์ŠคํŠธ(TourList)โœˆโœ…

๋ชจ๋“  ํˆฌ์–ด๋ฆฌ์ŠคํŠธ(Tourist)๋ฅผ ์œ„ํ•œ ๋‹จ ํ•˜๋‚˜์˜ ํˆฌ์–ด๋ฆฌ์ŠคํŠธ(TourList)โœˆโœ…. Contribute to Eminyidle/TO-UR-LIST development by creating an account on GitHub.

github.com

 
 
 
ํ›„ํ›„...
๊ทธ๋Ÿผ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ์–ด๋• ๋Š”์ง€!
KPT๋กœ ๋‚˜๋ˆ„์–ด ํšŒ๊ณ  ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
 

KEEP

1. ํ†ต์ผ๋œ ํ”Œ๋žซํผ์— ์งง๊ฒŒ๋ผ๋„ ๋งค์ผ ๊ฐœ๋ฐœ ๊ธฐ๋ก์„ ๋‚จ๊ฒผ๋‹ค! 
 
์‚ฌ์‹ค ๊ธฐ๋ก์˜ ํ•„์š”์„ฑ์€ ๊ทธ ์ „์—๋„ ๋А๊ผˆ๊ณ  ๊ธฐ๋กํ•˜๊ธฐ๋„ ํ–ˆ์ง€๋งŒ, ์ผ๊ณผ์‹œ๊ฐ„์ด ๋๋‚˜๋ฉด ์ •๋ฆฌํ•ด์„œ ๋นจ๋ฆฌ ๊ฐ€๊ณ ์‹ถ์–ด์„œ... ๊ธฐ์–ต์ด ํ•„์š”ํ•œ ๋‚ด์šฉ๋“ค์„ ๊ฐ€๋”์€ ๋…ธ์…˜์— ์ ๊ธฐ๋„ ํ•˜๊ณ , ๊ฐ€๋”์€ ์นดํ†ก์— ์ ๊ธฐ๋„ ํ•˜๊ณ , ๊ฐ€๋”์€ mm์— ์ ๊ธฐ๋„ ํ•˜๊ณ  ๊ทธ๋žฌ๊ฑฐ๋“ ์š”...ใ…Ž
๊ทธ๋Ÿผ ์•ˆ ์ข‹์€๊ฒŒ ๋ญ๊ฐ€ ์–ด๋””์žˆ๋Š”์ง€ ๋ชจ๋ฅด์ž–์•„์š”? ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—” ๊ฐœ๋ฐœ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ธฐ๋ก! ๋‚จ๊ธด๋‹ค!๋Š” ๋งˆ์ธ๋“œ๋กœ ๋…ธ์…˜ ํŽ˜์ด์ง€๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋†“๊ณ , ์งง๊ฒŒ๋ผ๋„ ์˜ค๋Š˜์˜ ๋ฐฐ์šด ์ ๊ณผ ๊ณ ๋ฏผํ•œ ์ , ์ฐพ์•„๋ณธ ๊ฒƒ๋“ค์„ ์˜ฎ๊ฒจ๋’€์Šต๋‹ˆ๋‹ค๐Ÿ˜Š
 
์•„์ฃผ์•„์ฃผ.. ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค! ๊ทธ ์ „๋‚  ๋ญ˜ ํ–ˆ๊ณ , ๊ณ ๋ฏผ์ด ๋ฌด์—‡์ธ์ง€๋ฅผ ์•„๋‹ˆ๊นŒ, ๊ทธ๋•Œ ์ฐพ์•„๋ณด๋˜๊ฒŒ ๋ญ”์ง€ ์ €์žฅํ•ด๋‘๋‹ˆ๊นŒ ์ด์–ด์„œ ์ง„ํ–‰ํ•˜๊ธฐ๊ฐ€ ์•„์ฃผ ์‰ฝ๋”๋ผ๊ตฌ์š”! ์–ด๋–ค ๋ถ€๋ถ„์—์„œ ๋ง‰ํ˜€์„œ ์‹œ๊ฐ„์„ ์˜ค๋ž˜ ๋Œ์—ˆ๋Š”์ง€๋„ ์•Œ ์ˆ˜ ์žˆ๊ณ ...ใ…Žใ…Ž...
 
์ €๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ž์œจ ํ”Œ์ ๋™์•ˆ ์ด ๋…ธ์…˜ํŽ˜์ด์ง€๋ฅผ ํ•ญ์ƒ ์ผœ๋’€๊ณ , ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ ์ฐพ์•„๋ดค๋˜ ๊ฑฐ๋ฅผ ์งฌ์งฌํžˆ ์งง๊ฒŒ ์ •๋ฆฌํ•ด๋’€์Šต๋‹ˆ๋‹ค! ์ •๋ฆฌ๊ฐ€ ๊ท€์ฐฎ์•˜๋‹ค๋ฉด [๋ญ˜ ๋ชฐ๋ž๋Š”์ง€ + ๊ทธ๊ฑธ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ• ๋งํฌ]๋ผ๋„ ์ ์–ด๋’€์–ด์š”!

๋ณ„ ๊ฑฐ ์•„๋‹ˆ๋ผ ์˜ฌ๋ฆฌ๊ธฐ ๋จธ์“ฑํ•˜์ง€๋งŒ.. ๋…ธ์…˜์— ์ด๋Ÿฐ์‹์œผ๋กœ ํ˜•์‹๋„ ์—†์ด ์ ์—ˆ์Šต๋‹ˆ๋‹ค! ใ…Žใ…Ž ์ฃผ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์ฃผ์ œ๋ฅผ ์“ฐ๊ณ  ๊ทธ ์•ˆ์— ๋‚ด์šฉ์„ ์ ์—ˆ๊ณ , ํ†ตํ•ฉ์ ์œผ๋กœ ์“ธ ๋•Œ๋Š” ์˜ค๋Š˜์˜ ๋ฐฐ์›€์œผ๋กœ ๋ญ‰๋šฑ๊ทธ๋ ค ์ผ์–ด์š”๐Ÿ˜

 
2. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ์ ๊ทน์ ์œผ๋กœ ๋ฐฐ์šฐ๊ณ  ๋„์ž…ํ•ด๋ดค๋‹ค! 
 
์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ข‹์•˜๋˜ ์ ! ์ด๋ฆ„๋งŒ ์•Œ๊ณ  ์ž˜ ๋ชจ๋ฅด๋˜ ๊ฒƒ๋“ค์„ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ!
์šฐ์„  ๋ฐฑ์—”๋“œ๋Š” MSA ๊ตฌ์กฐ์˜€๊ตฌ์š”, ์ €๋Š” ๋‘ ๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ๋งก์•˜๋Š”๋ฐ ๊ทธ ์„œ๋ฒ„์—์„œ๋Š” neo4j๋ผ๋Š” ๊ทธ๋ž˜ํ”„ ๋””๋น„๋ฅผ ํ™œ์šฉํ–ˆ๋‹ต๋‹ˆ๋‹ค!
๊ทธ๋ฆฌ๊ณ  MSA ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๋™์œผ๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์„œ๋ฒ„๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๊ฒฝ์šฐ Kafka๋ฅผ ์ด์šฉํ•ด ๊ทธ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ–ˆ์–ด์š”.
 
์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ MSA๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์Šคํ”„๋ง์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด ์ข‹์•˜๊ณ , ๋ชจ๋“ˆ์„ ์Šค์Šค๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์„œ ์ข‹์•˜์–ด์š”! ํ•ญ์ƒ ์šฐ๋ฆฌ ํŒ€์žฅ๋‹˜์ด ์–ด๋А์ •๋„ ๋ผˆ๋Œ€๋ฅผ ๋„ฃ์–ด์ค€ ๊ฒƒ์—์„œ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด.. ์˜ค๋žœ๋งŒ์— ์ „๋ถ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•ด๋ดค๋‹ฌ๊นŒ...ใ…Žใ…Ž... ์ƒˆ๋ก์ƒˆ๋ก ์ƒ๊ธฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค๐Ÿ‘
Kafka๋„ ๊ฐœ๋…๋งŒ ๋Œ€๊ฐ• ์•Œ๊ณ  ํ”„๋กœ์ ํŠธ์—์„œ ์“ฐ๊ธด ํ–ˆ์œผ๋‚˜ ์“ธ ์ค„ ์•ˆ๋‹ค๊ณ  ๋งํ•˜๊ธฐ ๋ญํ•œ.. ๋А๋‚Œ์ด์—ˆ๋Š”๋ฐ! ์ด๋ฒˆ์— ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค! ์นดํ”„์นด์™€ ์นœํ•ด์ง€๊ธฐ ์„ฑ๊ณต
๊ทธ ๊ณผ์ •์—์„œ neo4j๋„ ๋ฐฐ์šฐ๊ณ , ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๊ณ ๋ฏผ๋„ ํ•ด๋ณด๊ณ , ๋„์ปค๋ž‘๋„ ์นœํ•ด์ง€๊ณ ... ๊ธฐ์ˆ ์ ์œผ๋กœ ์ข€ ๋” ์„ฑ์žฅํ•œ ๊ธฐ๋ถ„์ด๋ผ ๋ฟŒ๋“ฏํ•ด์š”๐Ÿค—
 
 
3. ํ…Œ์ŠคํŠธ๋ฅผ ์žŠ์ง€ ์•Š์•˜๋‹ค.....ใ…Žใ…Ž
 
์ข‹์€๋ฐ ์•ˆ ์ข‹์•„... ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์ธ๋ฐ์š”..., ์ œ๋Œ€๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งœ์ง€๋Š” ๋ชปํ–ˆ์ง€๋งŒ, ๊ทธ ๊ณผ์ •์„ ๊ณ„์† ๋†“์ง€์•Š๊ณ  ๋„์ „ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ์Šค์Šค๋กœ์— ๋Œ€ํ•ด ์นญ์ฐฌํ•ฉ๋‹ˆ๋‹ค!
์„œ๋ฒ„ ํ•˜๋‚˜๋Š” TDD๋ฅผ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ์œผ๋‚˜, ์‰ฝ์ง€ ์•Š๋”๊ตฐ์š”ใ… ใ…  ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด์•ผํ•˜๋Š” ๋‚ด์—ญ์„ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•˜๊ณ .. ๋งŒ๋“ค๊ณ  ์ˆ˜์ œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ํ˜•์‹.....ใ…‹
๊ทธ๋Ÿผ์—๋„ TDD๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ธฐ๋Šฅ์˜ ์ •์ƒ์ ์ธ ์ž‘๋™์„ ๋น ์ง์—†์ด ํ™•์ธํ•˜๋Š” ๊ฑฐ๋‹ˆ๊นŒ..! ์–ด๋А์ •๋„ ํ…Œ์ŠคํŠธ์˜ ๊ฐœ๋…์€ ๊ฐ€์ง„ ๊ฑฐ ์•„๋‹๊นŒ์š”? ๋ผ๋Š” ์š”์ƒํ•œ ์ฃผ์žฅ์„ ํ•ด๋ด…๋‹ˆ๋‹ค.
 
์•„๋ฌดํŠผ ๊ทธ๋ž˜๋„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๊ณต๋ถ€ํ–ˆ๋˜ ์ .. ์˜์‹ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์—์„œ KEEP์— ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค! ํ•˜ํ•˜ ๋‹ค์Œ ๋ฒˆ ํšŒ๊ณ ์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งฐ๋‹ค๋กœ ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค... I'll be back....๐Ÿ‘
 

PROBLEM

1. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ œ๋Œ€๋กœ ์งœ์ง€ ๋ชปํ–ˆ๋‹ค...
 
์•ž์„œ ๋งํ–ˆ์ง€๋งŒ, ์‚ฌ์‹ค ์ด๊ฑด ๋ฌธ์ œ๊ธด ํ•ด์š”ใ…  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ์ง€..... ๊ทธ๊ฒŒ ๋งž์ง€.... ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ํ•ด๋‘๋Š”๊ฒŒ ๊ฐœ๋ฐœ์ž์ง€....
ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ์ฐพ์•„๋ณด๋ฉฐ ์•„์ฃผ ๋งŽ์ด ์ฐ”๋ฆฐ ์•„ํ‹ฐํด์ด ์žˆ๋Š”๋ฐ... ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์•ˆ(๋ชป)์งœ๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค... https://yozm.wishket.com/magazine/detail/2308/

TDD, ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ถ€ํ„ฐ ์ž‘์„ฑํ•ด ์–ป๋Š” ๊ฒƒ 5๊ฐ€์ง€ | ์š”์ฆ˜IT

โ€˜ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(Test-Driven Development, ์ดํ•˜ TDD)โ€™์€ ์ž๋ฐ”(Java) ํ…Œ์ŠคํŠธ ๋„๊ตฌ์ธ JUnit์„ ๋งŒ๋“  ์ผ„ํŠธ ๋ฒก์ด ๋งŒ๋“  ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์œผ๋กœ, ๋นจ๊ฐ•/์ดˆ๋ก/๋ฆฌํŒฉํ† ๋ง์ด๋ผ๋Š” ์‚ฌ์ดํด์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค. TDD๋ฅผ ์ฒ˜

yozm.wishket.com

๋ฌดํŠผ ์ด ์•„ํ‹ฐํด์—์„œ ๊ฐ€์žฅ ์ฐ”๋ฆฌ๋Š” ๋ง... ํ…Œ์ŠคํŠธํ•  ์‹œ๊ฐ„์ด ์—†์–ด์š” + ํฌ์ŠคํŠธ๋งจ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์–ด์š”...ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹
 
๋„ค.. ์ด๋ฒˆ ๋ฐฉํ•™์—๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ข€ ์งœ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค... ํ˜น์€ GPT๊ฐ€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž˜ ์งค ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•˜๋Š” ๊ฑธ ์•Œ์•„๋ณผ.. ๊ณ„ํš์ž…๋‹ˆ๋‹ค...!
 
2. ์ธํ”„๋ผ๋ฅผ ๊ฑด๋“ค์ง€ ๋ชปํ–ˆ๋‹ค..! + ์•„์‰ฌ์šด ๋ชจ๋‹ˆํ„ฐ๋ง
 
์ธํ”„๋ผ ๋‹ด๋‹น์€ ์•„๋‹ˆ์—ˆ์ง€๋งŒ, ๋งˆ์ง€๋ง‰ ํ”„๋กœ์ ํŠธ์ธ ๋งŒํผ ์กฐ๊ธˆ์ด๋ผ๋„ ๋งŒ์ ธ๋ณด๊ณ  ์‹ถ์€ ๋งˆ์Œ์ด ์žˆ์—ˆ๋Š”๋ฐ ๋ชปํ•ด๋ด์„œ ์ข€ ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  ๋งˆ์ง€๋ง‰์— ์šฐ๋ฆฌ ์•„ํ‚คํ…์ณ ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ค์ง€ ๋ฐฐ์› ๊ณ , ์„œ๋ฒ„ ์ ‘์†ํ•ด์„œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ–ˆ๊ณ  ์ด๊ฑฐ์ €๊ฑฐ๋ฅผ ๋ณด๊ธด ํ–ˆ์œผ๋‚˜... ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ตฌ์ถ•๊ณผ ๋™์ž‘์— ๋Œ€ํ•ด ์•„์ง ์ž˜ ๋ชจ๋ฅธ๋‹ค... ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค!
 
(์ถฉ๊ฒฉ์‹คํ™”) ์  ํ‚จ์Šค๋„ ์ด๋ฒˆ์— ์ฒ˜์Œ ์Šค์Šค๋กœ ์ ‘์†ํ•ด๋ดค์–ด์š”...! ํ˜ธํ˜ธ... ์–ด๋–ค ์‹์œผ๋กœ ์„ค์ •ํ•˜๋Š”์ง€ ์•Œ์•˜์œผ๋‹ˆ ํฌํŒ…๋งค๋‰ด์–ผ ๋ณด๋ฉด์„œ ์ข€ ๋”ฐ๋ผํ•ด๋ณด๋ฉฐ.. ๊ณต๋ถ€๋ฅผ ํ•ด๋ณผ๊ฒŒ์šฅ..!
 
๋งˆ์ง€๋ง‰์œผ๋กœ ์ €ํฌ ์„œ๋น„์Šค์— ๊ทธ๋ผํŒŒ๋‚˜๋„ ๋‹ฌ๋ ค์žˆ๊ณ  ๊ทธ๋žฌ๋Š”๋ฐ, ๋ฌด์–ธ๊ฐ€ ์˜๋ฏธ์žˆ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์› ์–ด์š”...
๋ชจ๋‹ˆํ„ฐ๋ง๋„ ๋ณผ ์ˆ˜ ์žˆ๋Œ€์„œ ๋“ค์–ด๊ฐ”๋Š”๋ฐ .. ๋ญ˜ ๋ณด๋ฉด ๋ผ? ์‹œ์ „๐Ÿ˜ต
 
3. ํ”„๋ก ํŠธ์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ Flow... ์–ด์ƒ‰ํ•œ ํ”Œ๋กœ์šฐ๋ฅผ ๋งˆ์ง€๋ง‰์— ์ฐพ์€ ๊ฒƒ์ด ์กฐ๊ธˆ ์•„์‰ฝ๋‹ค
 
๊ฐœ์ธ์ ์œผ๋กœ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์•„์ฃผ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋А๋ผ๋Š” ์‚ฌ๋žŒ์œผ๋กœ์„œ, ์กฐ๊ธˆ ์•„์‰ฌ์šด ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์—„์ฒญ ํฐ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ, ๊ฐœ์ธ์ ์œผ๋กœ ์กฐ๊ธˆ ์ฐœ์ฐœํ–ˆ๋˜ ๋ฌธ์ œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์ง€์š”.
 
์‚ฌ์‹ค ์ดˆ๋ฐ˜ ๊ธฐํš ๋•Œ ๊ธฐ๋Šฅ ์ •์˜, ํ™”๋ฉด ์„ค๊ณ„๋ฅผ ๋‹ค ํ•ด๋’€๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์—ฐํžˆ ์šฐ๋ฆฌ ํŒ€ ๋ชจ๋‘๋Š” ๋น„์Šทํ•œ ์ƒ๊ฐ์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ! ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ๊ทธ๊ฒŒ ์•„๋‹ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ด๋ฒˆ์— ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค...!
๋งˆ์ง€๋ง‰ QA์—์„œ, ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ๋‹น์—ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋ญ”๊ฐ€ ์–ด์ƒ‰ํ•œ ํ”Œ๋กœ์šฐ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์ด์•ผ๊ธฐ๋ฅผ ๊บผ๋ƒˆ์œผ๋‚˜ ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๋ ค๋ฉด ๋กœ์ง์„ ๋œฏ์–ด๊ณ ์ณ์•ผ ํ•œ๋‹ค ๊ทธ๋ž˜์„œ ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ๊ฒƒ ๊ฐ™๋‹ค ๊ทธ๋žฌ๊ณ ...! ๊ทธ๊ฑธ ๊ณ ์น˜๋Š” ๊ณผ์ •์—์„œ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ด ์•ˆ ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์–ด ์ œ์ถœ ์ „์— ๊ณ ์น˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์กฐ๊ธˆ..! ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.
 
์ด ๊ณผ์ •์—์„œ ์ €๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์— ํ”Œ๋กœ์šฐ ์ •์˜๊ฐ€ ์ค‘์š”ํ•˜๊ตฌ๋‚˜..!๋ฅผ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.
ํŠนํžˆ, ๋ฌด์—‡์„ ๋ชจ๋‹ฌ์ฒ˜๋Ÿผ ๋งŒ๋“ค๊ณ  ํŽ˜์ด์ง€๋กœ ๋งŒ๋“ค์ง€ ๊ณ ๋ฏผํ•˜๋Š” ๊ฒƒ๋„ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ์—ญํ•  ์ค‘ ํ•˜๋‚˜๋ž€ ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์–ด์š”. ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ™”๋ฉด์„ ํŽ˜์ด์ง€๋กœ ๋งŒ๋“ค๊ณ , ์–ด๋–ค ๊ฑด ๋ชจ๋‹ฌ์„ ์‘์šฉํ•œ ํŽ˜์ดํฌ ํŽ˜์ด์ง€๋กœ ๋งŒ๋“ค๊ณ  ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒŒ ํ•„์š”ํ•˜๊ตฌ๋‚˜ ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
์ฆ‰,
์–ด๋–ค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์žˆ์–ด ๋’ค๋กœ๊ฐ€๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ ์–ด๋–ค ํ™”๋ฉด์ด ๋ณด์—ฌ์•ผ ํ•˜๋Š”๊ฐ€!
์ด ๋ถ€๋ถ„์— ์žˆ์–ด ํ”Œ๋กœ์šฐ์— ๋Œ€ํ•ด์„œ๋„ ๋ณด๋‹ค ๋””ํ…Œ์ผํ•˜๊ฒŒ ์„ค๊ณ„ํ•ด๋‘ฌ์•ผ ํ•˜๋Š” ๊ตฌ๋‚˜๋ฅผ ๋А๊ผˆ์Šต๋‹ˆ๋‹ค!
 

TRY

1. ์ธํ”„๋ผ ๋ฐฐํฌ๋ฅผ ํ•ด๋ณด์ž~
 
ใ…Žใ…Ž์ธํ”„๋ผ์— ๋Œ€ํ•œ ์•„์‰ฌ์šด ์ ์„ ๊ณต๋ถ€+ํฌํŒ…๋งค๋‰ด์–ผ ๋ณด๋ฉฐ ๊ตฌ์„ฑ ํ•˜๋ฉด์„œ ์ฑ„์›Œ์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค!
๊ทธ๋ฆฌ๊ณ  ๋ชจ๋‹ˆํ„ฐ๋ง๋„, ๋ฌด์—‡์„ ํ•ด์•ผํ•˜๋Š”์ง€ ๋ฌด์—‡์„ ๋ด์•ผํ•˜๋Š”์ง€๋ฅผ ์ข€ ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค~
 
2. ์ œ๋Œ€๋กœ ๋œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜์ž!
 
์ผ๋‹จ ์Šค์Šค๋กœ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์งœ๋Š” ๋ฐฉ๋ฒ•๊ณผ GPT๋ฅผ ์ž˜ ์‚ฌ์šฉํ•ด ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‘˜ ๋‹ค ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! ์Œ~!
๊ทธ๋ฆฌ๊ณ  ์„ฑ๋Šฅํ…Œ์ŠคํŠธ๋„ ์ง„ํ–‰ํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค! ์„ฑ๋Šฅํ…Œ์ŠคํŠธ๋‚˜ ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ์ˆ˜์น˜ํ™”ํ•  ์ˆ˜ ์žˆ์„์ง€ ์•Œ์•„๋ณด์ž!
 
3. ํ”„๋ก ํŠธ๋„ ๋งŒ์ ธ๋ณด์ž
 
์‚ฌ์‹ค ํ”„๋ก ํŠธ๋ฅผ ์–ด๋А์ •๋„ ๋งŒ์งˆ ์ˆ˜ ์žˆ๊ธด ํ•œ๋ฐ... ์‚ฌ์†Œํ•œ QA๋ฅผ ํ•ด๋ณด๋‹ˆ๊นŒ ์ƒˆ์‚ผ ๋˜ ๋‹ค์‹œ ๋А๋‚€ ๊ฒƒ์€... ํ”„๋ก ํŠธ๊ฐ€ ์–ด๋ ต๊ฒŒ ๋А๊ปด์ง€๋Š” ์ด์œ ๋Š” ์ „๋ถ€ JS์™€ CSS ๋•Œ๋ฌธ์ด๋‹ค ๋ผ๋Š” ๊ฒƒ....
์ด๋ฒˆ์— ์กฐ๊ธˆ ๊ณ ํ†ต๋ฐ›์€ ๊ฑด CSS.... ใ…‹ใ…‹ ๋ฉ”์ธ ๋‚ด์šฉ์ด ํ•˜๋‹จ ๋„ค๋น„๊ฒŒ์ดํŒ…๋ฐ”์— ๋‚ด์šฉ์ด ์•ˆ ๊ฐ€๋ ค์ง€๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์— ๋”ฐ๋ผ ๊ฐ€๋ ค์ง€๋Š” ๊ฒŒ ์žˆ๊ธฐ๋„ ํ•˜๊ณ  ์ด์ƒํ•œ ์—ฌ๋ฐฑ์ด ์ƒ๊ธฐ๊ธฐ๋„ ํ•˜๊ณ  ๊ทธ๋ž˜์„œ... ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.....
๊ทธ๋ž˜์„œ ์Šคํฌ๋กค๊ณผ ๊ฐ€๋ฆฌ์ง€ ์•Š๊ฒŒ ํ•˜๋Š” CSS๋ฅผ ํ™•์‹คํžˆ ์•Œ์•„๋‘๋ฉด ๋‘๊ณ ๋‘๊ณ  ์จ๋จน๊ธฐ ์ข‹๊ฒ ๋‹ค ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค!
 


 
๊ฐ„๋‹จํ•˜๊ฒŒ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•ด๋ดค๋Š”๋ฐ์š”,
 
์‚ฌ์‹ค ์ด๋ฒˆ ์ž์œจ ํ”„๋กœ์ ํŠธ๋Š” ์—ฌ์œ ๋กœ์šด๋“ฏ ์—ฌ์œ ๋กญ์ง€ ์•Š์€.. ์ด์ƒํ•œ ๋А๋‚Œ์ด ์žˆ์—ˆ๋‹ต๋‹ˆ๋‹ค...?
์ฒ˜์Œ์— ๊ทธ๋ ‡๊ฒŒ ๋นก์„ธ๊ฒŒ ํ•˜์ง€ ๋ง๊ณ  ์ทจ์ค€๋„ ๋ณ‘ํ–‰ํ•˜๋ฉฐ ์Šฌ์ฉ์Šฌ์ฉ ํ•˜์ž-๋Š” ์˜๊ฒฌ์œผ๋กœ ํ•ฉ์˜๋ฅผ ๋ณธ ์ค„ ์•Œ์•˜๋Š”๋ฐ...
๊ธฐํšํ•˜๋‹ค๋ณด๋‹ˆ....
๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋‹ˆ....
๋˜ ์ง„์‹ฌ์ด ๋˜์–ด๋ฒ„๋ ธ๋‹ต์ฃ ....ใ…‹ใ…‹.....
(์Šต๊ด€์ด ์ฐธ ๋ฌด์„œ์›Œ)
 
 
์•„๋ฌดํŠผ ! ๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ์•„์‰ฝ๊ฒŒ .. ์ˆ˜์ƒ์€ ๋ชปํ–ˆ์œผ๋‚˜! ๊ธฐ์ˆ ์ ์œผ๋กœ ๋งŽ์ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด ๋งŒ์กฑ์Šค๋Ÿฌ์šด ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹คใ…Žใ…Ž
 
์ด์ œ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‘์›ํ•  ์ˆ˜ ์—†๋‹ค๋‹ˆ.. ์ด ํ—ˆ์ „ํ•œ ๋งˆ์Œ!
๊ทธ๋Ÿผ์—๋„, ์ง„์งœ ๋งˆ์ง€๋ง‰ ์‹ธํ”ผ ์ƒํ™œ์„ ์ž˜ ๋งˆ๋ฌด๋ฆฌํ•˜์‹œ๊ณ , ์•ž์œผ๋กœ ์ง„ํ–‰ํ•  ๊ณต๋ถ€์™€ ์ทจ์ค€๊ณผ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์ข‹์€ ๊ฒฐ๊ณผ ์žˆ์œผ์‹œ๊ธธ ์‘์›ํ•ฉ๋‹ˆ๋‹ค!
์‹ธํ”ผ 10๊ธฐ ํ™”์ดํŒ…~~~๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ