JavaRush /Java Blog /Random-KO /30๋Œ€ ์ด์ƒ์„ ์œ„ํ•œ ์ด์•ผ๊ธฐ

30๋Œ€ ์ด์ƒ์„ ์œ„ํ•œ ์ด์•ผ๊ธฐ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์†์— ๋„ฃ์—ˆ๊ณ  ๋‚˜์˜ ์ž‘์€ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆŒ ์‹œ๊ฐ„์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

ํ”„๋กค๋กœ๊ทธ.

์ œ๊ฐ€ 30 ์‚ด์ด๊ณ  ์ฃผ์š” ๊ต์œก์€ ํ™”ํ•™ ๊ณ ๋“ฑ ๊ต์œก์ด๊ณ  (์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค) ๊ณต์žฅ์—์„œ ๊ฑฐ์˜ 8 ๋…„ ๋™์•ˆ ์ผํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ผ์€ ์‚ฌ์‹ค ๊ฝค ํฅ๋ฏธ๋กœ์› ์ง€๋งŒ, ๋™๋ฃŒ๋“ค์„ ๋ณด๋ฉด์„œ ๋‚˜๋Š” ์€ํ‡ดํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ณ  ์—ฌ๊ธฐ์„œ *20๋…„ ๋™์•ˆ ์ผํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ธ์ƒ์„ ์ด๋ ‡๊ฒŒ ๋ณด๋‚ด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ €๋Š” ๊ฐ€์กฑ์ด ์žˆ๊ณ  ๋‘ ์ž๋…€(ํฐ ์•„์ด๋Š” 6์‚ด, ๋ง‰๋‚ด๋Š” 1์‚ด)๊ฐ€ ์žˆ๊ณ  ๊ณ ์ „์— ๋”ฐ๋ฅด๋ฉด ๋ชจ๊ธฐ์ง€๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ง๋ถ™์ด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋งˆ์นจ๋‚ด ์ €๋Š” ๊ธ‰์—ฌ๊ฐ€ ๋” ๋†’๊ณ  ๊ฒฝ๋ ฅ ์„ฑ์žฅ์ด ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ๊ณณ, ๋‹ค๋ฅธ ๊ณต์žฅ์œผ๋กœ ์ด๋™ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ณต์žฅ์— ๋ฟŒ๋ฆฌ๋ฅผ ๋‚ด๋ ธ๊ณ , ๋– ๋‚˜๊ธฐ๊ฐ€ ํž˜๋“ค์—ˆ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒํŠธํŽ˜ํ…Œ๋ฅด๋ถ€๋ฅดํฌ ์—ฌํ–‰์€ ํ•œ ๋‹ฌ ๋™์•ˆ ์ง€์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ณต์‹์ ์œผ๋กœ ์ผ์ฃผ์ผ ๋™์•ˆ ๊ทธ๊ณณ์—์„œ ์ผํ–ˆ๊ณ  ์šฐ๋ฆฌ๋‚˜๋ผ ๊ณต์žฅ ์ƒํ™ฉ์ด ๋Œ€๋ถ€๋ถ„ ์Šฌํ”„๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ๊ณ ํ–ฅ์œผ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์ง€ ์•Š์•˜๊ณ  ์ด๊ฒƒ์ด ํ•œ ๊ฑธ์Œ ๋ฌผ๋Ÿฌ๋‚˜๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ ๋‚˜๋Š” ๋‚ด ์ธ์ƒ์„ ๋ฐ”๊พธ๋ฉด ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฐ”๊ฟ”์•ผ๊ฒ ๋‹ค๊ณ  ๊ฒฐ์‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค! ์•ฝ ์ผ์ฃผ์ผ ๋™์•ˆ ์–ด๋–ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์„ ํƒํ• ์ง€ ๊ณ ๋ฏผํ–ˆ๋Š”๋ฐ, ์‹ค์ œ๋กœ ์„ ํƒ์€ Java ๋กœ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค . ๊ทธ ํ›„ ๋‚˜๋Š” ๊ฐ•์ขŒ๋ฅผ ์ฐพ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์‚ฌ์‹ค ์ข‹์€ ๊ฐ•์ขŒ๊ฐ€ ๋งŽ๊ณ  ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€๊ฒฉ์—๋„ ์žˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๋ถ€ํ•  ์˜์š•๊ณผ ์‹œ๊ฐ„์€ ๋งŽ์•˜์ง€๋งŒ ๊ฒฝ์ œ์  ์—ฌ์œ ๋Š” ์ตœ๋Œ€ 3~4๊ฐœ์›”์ด์—ˆ์Šต๋‹ˆ๋‹ค. . ๋‚ด๊ฐ€ ์ข‹์•„ํ–ˆ๋˜ ๋ชจ๋“  ๊ฐ•์ขŒ๋Š” ์ฃผ๋‹น 2ํšŒ(๋Œ€๋ถ€๋ถ„) ์ˆ˜์—…์œผ๋กœ 6๊ฐœ์›” ์ด์ƒ ์ง€์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ํ•œ ์นœ๊ตฌ๊ฐ€ JavaRush๊ฐ€ ์•„์ฃผ ์ข‹์€ ๋ฆฌ์†Œ์Šค๋ผ๊ณ  ๋“ค์—ˆ๋‹ค๋ฉฐ ์ €์—๊ฒŒ ์ถ”์ฒœํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์—ฌ๊ธฐ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
  • ์ž๋ฃŒ ๋ฐ ์ž‘์—… ๊ตฌ๋….
  • ์‹œ๊ฐ„ ์ œํ•œ ์—†์Œ: ๋‚˜๋Š” ๋‚ด ์ผ์ •์ด ํ—ˆ์šฉํ•˜๋Š” ๋งŒํผ(๋ฌด๋ฃŒ์˜€์œผ๋ฉฐ) ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋งŒํผ(๊ทธ๋ฆฌ๊ณ  ์œ„์—์„œ ์“ด ๊ฒƒ์ฒ˜๋Ÿผ ๊ณต๋ถ€๋Ÿ‰์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค) ์ •ํ™•ํ•˜๊ฒŒ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

1๋ถ€: ์ง€์‹์„ ์ฐพ์•„์„œ.

2019๋…„ 11์›” 26์ผ์— ๊ตฌ๋…์„ ํ•˜๊ณ  ์ˆ˜์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์ตœ๋Œ€ 14์‹œ๊ฐ„ ๋™์•ˆ ๊ณต๋ถ€ํ•˜๊ณ  ๊ด€๋ จ ๋งํฌ๋ฅผ ๋ชจ๋‘ ์ฝ๊ณ  (๋„์›€๋ง์„ ๋ณด์ง€ ์•Š๊ณ ) ๋” ์•„๋ฆ„๋‹ค์šด ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ๋‚ ๋„ ์žˆ์—ˆ๋‹ค๊ณ  ๋ฐ”๋กœ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ์†”๋ฃจ์…˜์ด ์ตœ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์„ ๋•Œ๋งŒ ๋„์›€๋ง์„ ๋ณด์•˜๊ณ  ๋” ์•„๋ฆ„๋‹ต๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ์ž์ฃผ ๋†€๋ž์Šต๋‹ˆ๋‹ค. 1์›” ๋ง์— ๋ ˆ๋ฒจ 17์— ๋„๋‹ฌํ•˜๋ฉด์„œ ์ €๋Š” ์‚ฌํšŒ ๋ณต์ง€ ์„œ๋น„์Šค์— ์ฐธ์—ฌํ•˜์—ฌ ๊ธฐ์ˆ ์„ ํ›ˆ๋ จํ•˜๊ณ  ์‹œ์žฅ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์š”๊ตฌ๋˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์•„๋ฌด๋„ ๋‚˜์—๊ฒŒ ๋Œ€๋‹ตํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‚˜๋ฅผ ์กฐ๊ฑด๋ถ€ ๋ฌด๋ฃŒ ์ธํ„ด์‹ญ์— ๋ฐ๋ ค๊ฐ€๋Š” ์‚ฌ๋ฌด์‹ค์ด ํ•˜๋‚˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋‹ฌ์€ ๋ฌด๋ฃŒ์˜€๊ณ  ๋‘ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ๋‹ฌ์€ ์†Œ์•ก์˜ ๋ด‰๊ธ‰์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ 3๊ฐœ์›”์˜ ๊ฒฐ๊ณผ์™€ ์„ฑ๊ณต์ ์ธ ์™„๋ฃŒ ํ›„ ๊ณ ์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌํšŒ ๋ณด์žฅ์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

2๋ถ€: ์šฐ๋ฆฌ๋Š” ์ „ํˆฌ์— ๋Œ์ž…ํ•ฉ๋‹ˆ๋‹ค.

์ธํ„ด์‹ญ์€ ํšŒ์‚ฌ ๋‚ด๋ถ€ ๋ถ€์„œ์˜ ์ผ์ƒ์ ์ธ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Java๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ๊ฐ–์ถ˜ Chrome์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์ง€์‹์„ ๊ฐ–์ถ˜ ํ›Œ๋ฅญํ•œ ๋ฉ˜ํ† ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ์ด๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์žก์ดˆ์— ๋น ์ง€์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์Šคํƒ์ด ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€ ์ฆ‰์‹œ ์ž‘์„ฑํ•˜๊ณ  ๊ธฐ์‚ฌ ๋ ๋ถ€๋ถ„์—์„œ ๋‚˜์—๊ฒŒ ๋งค์šฐ ์œ ์šฉํ•œ ๋ช‡ ๊ฐ€์ง€ ๋งํฌ๋ฅผ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์Šคํƒ:

Java 11(ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์™„์ „ํžˆ ์ž‘์„ฑ๋จ), Spring(๋ถ€ํŒ…, ๋ณด์•ˆ, OAuth2); MongoDB๊ฐ€ ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž๋™ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด Assertj, Mockito, Spring-boot-starter-test๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ  ์ƒ๋‹นํžˆ ์ธ๊ธฐ ์žˆ๋Š” GitHub Flow(์›๋ณธ์˜ ๋Ÿฌ์‹œ์•„์–ด ๊ธฐ์‚ฌ)๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ์ž‘์—… ํ–ˆ์Šต๋‹ˆ๋‹ค . ์—ฌ๊ธฐ์„œ๋Š” ์›๋ณธ๊ณผ ๋ฒˆ์—ญ๋ณธ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์›๋ฌธ์„ ์ฝ๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ, ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๋ฒˆ์—ญ๋ณธ์„ ์ฝ์–ด๋ณด์„ธ์š”. ์ง€๊ธˆ์€ ์˜์–ด ํ•™์Šต์„ ์ถ”์ฒœํ•˜๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์ €๋Š” A2 ๋ ˆ๋ฒจ์ด์ง€๋งŒ ์˜์–ด๋กœ ๋œ ๊ธฐ์‚ฌ๋ฅผ ์ฝ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค(๋ฌผ๋ก  ๋ฒˆ์—ญ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋Š” ์•„๋‹™๋‹ˆ๋‹ค). ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์ธํ„ด์‹ญ ํ”„๋กœ์ ํŠธ์—์„œ ์ฒ˜์Œ์— ๊ฐ€์žฅ ํฐ ์–ด๋ ค์›€์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌธ์„œ๊ฐ€ ์˜์–ด๋กœ ์ž‘์„ฑ๋œ ํƒ€์‚ฌ CRM์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Spring์œผ๋กœ ์ž‘์—…ํ•  ๋•Œ ์›๋ณธ ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ํ›Œ๋ฅญํ•˜๊ณ  ์ƒ์„ธํ•˜๋ฉฐ ๋Ÿฌ์‹œ์•„์–ด ๊ฐ€์ด๋“œ๋„ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฌธ์„œ๊ฐ€ ์˜์–ด๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(Captain์˜ ์•ฝ๊ฐ„์˜ ๋‚ด์šฉ) ๋ถ„๋ช…ํ•œ). ๋ฉ˜ํ† ๋‹˜๋„ ๋ชจ๋“  ์ฝ”๋“œ ์ฃผ์„๊ณผ API ๋ฌธ์„œ๋ฅผ ์˜์–ด๋กœ ์ž‘์„ฑํ•˜๋ผ๊ณ  ํ•˜์…”์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ง์”€๋“œ๋ฆฌ์ง€๋งŒ, ์˜์–ด๋ฅผ ๋ฐฐ์šฐ์„ธ์š”! ์™ธ๊ตญ ๊ณ ๊ฐ๊ณผ ์ผํ•˜๊ฑฐ๋‚˜ ํ•ด์™ธ ์—ฌํ–‰์„ ํ•  ์ƒ๊ฐ์ด ์—†๋”๋ผ๋„ ์ด ๊ธฐ์ˆ ์€ ํ•™์Šต๊ณผ ๊ฐœ๋ฐœ์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

3๋ถ€: ํ๊ธฐ.

์ด ๋ถ€๋ถ„์€ ํ›จ์”ฌ ์งง์„ ๊ฒƒ ๊ฐ™์•„์š” :) ์ธํ„ด์‹ญ์ด ๋๋‚˜๊ณ  ์‚ฌํšŒ๋ณด์žฅ์ œ๋„์— ํ•ฉ๊ฒฉํ•ด์„œ ์ทจ์—…์„ ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ„์†ํ•˜๊ฒŒ ๋์–ด์š”. ์ธํ„ด์‹ญ์˜ ์ผํ™˜์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๊ฐ€ ๊ตฌํ˜„ ๋  ์˜ˆ์ •์ด์—ˆ๊ณ  ์ด 3 ๋‹จ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒฌ๋ฐ๋ฏน์˜ ์‹œ์ž‘์œผ๋กœ ์ธํ•ด ๋งŽ์€ ์ƒ์—… ํ”„๋กœ์ ํŠธ๊ฐ€ ์‚ฌ๋ผ์กŒ๊ณ , ๋‚˜๋Š” ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ชจ๋“  ๋‹จ๊ณ„์™€ ์•„์ด๋””์–ด/์›ํ•˜๋Š” ๊ฒƒ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ž‘์—…์ด ์žˆ์—ˆ์ง€๋งŒ ๊ทธ๋“ค์ด ๋งํ–ˆ๋“ฏ์ด ๊ทธ๊ฒƒ์€ ๋˜ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

4๋ถ€: Happy End, ์•„์ง End์™€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€์ง€๋งŒ ;)

7์›” ์ค‘์ˆœ์— ๊ทธ๋“ค์€ ๋‚˜์—๊ฒŒ ์ „ํ™”ํ•ด์„œ ์ผ์ž๋ฆฌ๋ฅผ ์ฐพ๊ณ  ์žˆ๋Š”์ง€ ๋ฌผ์—ˆ๋‹ค. ์ด๋ ฅ์„œ๋Š” ์˜ค๋žซ๋™์•ˆ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์ง€๋งŒ hh์— ๊ฑธ๋ ค ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์Šค์Šค๋กœ ์‹œํ—˜ํ•ด ๋ณด๊ธฐ๋กœ ๊ฒฐ์‹ฌํ•˜๊ณ  3๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค: ํ…Œ์ŠคํŠธ ์ž‘์—…, ๊ธฐ์ˆ  ์ธํ„ฐ๋ทฐ, ๊ฒฝ์˜์ง„ ์ธํ„ฐ๋ทฐ, ๊ทธ๋“ค์€ ์ €์—๊ฒŒ ์ œ์•ˆ์„ ๋ณด๋ƒˆ๊ณ ... ๊ฑฐ์ ˆํ•  ์ˆ˜ ์—†๋Š” ์ œ์•ˆ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์–ด๋–ค ์œ ํ˜•์˜ ํšŒ์‚ฌ๊ฐ€ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋ฅผ ๊ผญ ์ฝ๊ณ  ์ž์‹ ์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํšŒ์‚ฌ๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. ๋ฌผ๋ก  ๋‚˜๋Š” ์ฒ˜์Œ ๋ช‡ ๋ฒˆ์€ ๊ทธ๋“ค์ด ๋‹น์‹ ์„ ๋ฐ๋ ค๊ฐ€๋Š” ๊ณณ์œผ๋กœ ๊ฐ€๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์˜ ์ฒซ ๋ฒˆ์งธ ์ง์—…์€ ์™ธ๊ทผ์ด์—ˆ๊ณ  ์ง€๊ธˆ์€ ์‹๋ฃŒํ’ˆ์ ์—์„œ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ ์ €๋Š” ๋‘˜์งธ ๋‚ ์—๋งŒ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.) ๊ทธ ์ž๋ฆฌ์— ํ›„๋ฐฐ๋„ ๊ณ ์šฉํ–ˆ๋Š”๋ฐ, ์ง€์‹๊ณผ ๋ˆ ๋ชจ๋‘ ์„ฑ์žฅํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ˜€ ์†์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐœ๋ฌธ.

๊ทธ๋Ÿฌ๋‹ˆ ์นœ๊ตฌ ์—ฌ๋Ÿฌ๋ถ„, ๋‚™๋‹ดํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฒฐ์ •ํ•˜๊ณ  ๊ธธ์—์„œ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์กฑ์— ๋Œ€ํ•œ ํฐ ์ฑ…์ž„์ด ์žˆ์—ˆ๊ณ  ์ œ ์ธ์ƒ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐ”๊พธ๊ณ  ์ œ๊ฐ€ ์ •๋ง ์ข‹์•„ํ•˜๋Š” ์ผ์„ ํ•˜๊ณ  ์‹ถ์€ ์—ด๋ง์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ„์•ผ์˜ ํŠนํžˆ ์ข‹์€ ์ ์€ ํšŒ์‚ฌ์— ๊ณต์„์ด ๋งŽ๋“ , 20๋…„ ๋™์•ˆ ์ผํ•œ ํ‡ด์ง์ž๊ฐ€ ๋– ๋‚ฌ๋“ , ์˜ค๋ฅผ ๋งŒํผ ํ„ธ์ด ๋งŽ์€ ํŒ”์ด ์žˆ๋“  ์ƒ๊ด€์—†์ด ๊ฒฝ๋ ฅ ์‚ฌ๋‹ค๋ฆฌ๋ฅผ ์˜ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋นˆ ๊ณณ. ์šฐ๋ฆฌ ๋ถ„์•ผ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์šฐ๋ฆฌ ์†์— ์žˆ์Šต๋‹ˆ๋‹ค!

๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ๊ธ€:

  • ๊ฑด์ถ•์— ๋Œ€ํ•œ ์ดํ•ด( ๋Ÿฌ์‹œ์•„์–ด ๋ฐ ์›๋ณธ ) ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋ฏธ๋ž˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐœ๋ฐœํ•˜๋˜ ์ค‘ ์ด ๊ธฐ์‚ฌ๋ฅผ 4๋ฒˆ์ด๋‚˜ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ˜ํ† ๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๋ฐ˜๋ณต ํŽธ์ง‘์„ ์œ„ํ•ด ๋ณด๋ƒˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์ˆ˜ํ˜•์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋Š” ์ฝ”๋“œ ๊ฒ€ํ† ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค). ์ฒ˜์Œ์—๋Š” ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ ๋๋Š”๋ฐ, 3๊ฐœ์›” ๋’ค์— ์ฝ์–ด๋ณด๋‹ˆ ์™œ ๊ทธ๋žฌ๋Š”์ง€ ๋ฒŒ์จ ์ดํ•ด๊ฐ€ ๋˜๋”๋ผ๊ณ ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ†ตํ•ฉํ•˜๊ณ  ์™„์ „ํžˆ ๋™ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋‘ ๋ฒˆ ๋” ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค.
  • Git ์ž‘์—…์— ๋Œ€ํ•œ ๋Œ€ํ™”ํ˜• ๊ต์œก์ž…๋‹ˆ๋‹ค .
  • ๋‚˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ŠคํŠธ๋ฆผ ์ž‘์—… ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋ผ๊ณ  ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ •๋ง ๋ฉ‹์ง„ ์ผ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์–‘์˜ ๊ธ€์„ ์ž‘์€ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆผ ์ž‘์—…์— ๋Œ€ํ•ด ์ƒ๊ธฐ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ €๋Š” ํ•ญ์ƒ ์ด ๊ธ€์„ ์—ด์–ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค .
  • Spring ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋ฌธ์„œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ค ์ด์œ ๋กœ Spring the Ripper ๋ผ๊ณ ๋„ ์•Œ๋ ค์ง„ Evgeny Borisov๋ผ๋Š” ์‚ฌ๋žŒ์„ ์ฆ‰์‹œ ๋งŒ๋‚˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค . ๋‹ค์Œ์€ ์ €์žฅ์†Œ ์ž‘๋™ ๋ฐฉ์‹ ๋“ฑ์— ๋Œ€ํ•œ ๋งค์šฐ ๋ฉ‹์ง„ ํ”„๋ฆฌ์  ํ…Œ์ด์…˜๊ณผ ๋ถ„์„ ์ž…๋‹ˆ๋‹ค. ์ฆ‰์‹œ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด ์ •๋ง ํ›„ํšŒ๋ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ๋งŽ์€ ๊ฒƒ์ด ๋” ๋ช…ํ™•ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ๋“ฃ๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋™์‹œ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ๊ทผ์œก ๊ธฐ์–ต์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๊ธ€์Ž„์š”, ์ €๋Š” ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ž‘์—…ํ–ˆ๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ(ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ํšŒ์‚ฌ)๋Š” SQL๋กœ ์ž‘์—…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ฐ€ ์‹œ๊ฐ„์—๋Š” SQL ์ฟผ๋ฆฌ ์ž‘์„ฑ๊ณผ ๊ด€๋ จ๋œ ์ ์–ด๋„ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์ง€๋งŒ ๋ฌธ์ œ์™€ ํ•™์Šต์šฉ ๊ต๊ณผ์„œ๊ฐ€ ์žˆ๋Š” ์ด ์‚ฌ์ดํŠธ๊ฐ€ ๋งˆ์Œ์— ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ(Assertj, Mockito)์— ๋Œ€ํ•ด ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ข‹์€ ๊ธฐ์‚ฌ๋Š” ๊ธฐ์–ต๋‚˜์ง€ ์•Š๊ณ  ๋ฌธ์„œ๋งŒ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ(๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค) ๋””์ž์ธ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด ๋ณด์‹ญ์‹œ์˜ค . ์ ์–ด๋„ ์•Œ๋ ค์ง„ ํŒจํ„ด์— ๋Œ€ํ•ด ๋Œ€๊ฐ์„ ์œผ๋กœ ์ต์ˆ™ํ•ด์ง€๋ฉด ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค์‹œ ํ•œ๋ฒˆ ์ด ๋ฌธ์ œ์— ์žˆ์–ด ๋ชจ๋‘์—๊ฒŒ ํ–‰์šด์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ์‹œ๋ฉด ๋ฌธ์˜ํ•ด ์ฃผ์„ธ์š”. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION