HackaLearn ์ฐธ์—ฌ ํ›„๊ธฐ๐Ÿฅธ

โ€์„œ์ง€์˜คยท2022๋…„ 8์›” 30์ผ
0

๋‚ด์ผ„๋งŒ์›

๋ชฉ๋ก ๋ณด๊ธฐ
2/3

๐Ÿ’ก ์ตœ์ข… ๋ณด๊ณ ์„œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ์—ฌ ๋ฐฐ๊ฒฝ

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


์ง„ํ–‰ ๊ณผ์ •

1. ์‚ฌ์ „ ํ•™์Šต

์ผ์ • ๊ธฐ๊ฐ„ ์•ˆ์— ํ•„์š”ํ•œ ์ง€์‹์„ ์ง์ ‘ ๋ฐฐ์›Œ ํ•ด์ปคํ†ค์— ์ ์šฉํ•ด๋ณด์ž๋Š” ์ทจ์ง€์— ๋งž๊ฒŒ ๋ฐฑ์—”๋“œ ํŒŒํŠธ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๊ฒฝํ™˜๋‹˜๊ณผ Java๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ธ โ€˜์Šคํ”„๋งโ€™์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ํ•™์Šต ๋ฐ๋“œ๋ผ์ธ์„ ๋‘” ์ฑ„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ์ธํ”„๋Ÿฐ์— ๊น€์˜ํ•œ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์ง„ํ–‰ํ•˜์‹œ๋Š” ์Šคํ”„๋ง ๋กœ๋“œ๋งต์„ ๋”ฐ๋ผ ์Šคํ”„๋ง์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์›๋ฆฌ๋ถ€ํ„ฐ ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA๊นŒ์ง€ ๋น ๋ฅด๊ฒŒ ํ•™์Šตํ•˜์˜€๋Š”๋ฐ ํŒ€์›๋“ค๊ณผ ๊ฒŒ๋”์— ๋ชจ์—ฌ ํ•จ๊ป˜ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ–ˆ๊ธฐ์— ์ง€๋ฃจํ•˜์ง€๋„ ์•Š๊ณ  ๋ชจ๋ฅด๋Š” ๊ฒƒ์ด ์ƒ๊ฒผ์„ ๋•Œ ๋ฌผ์–ด๋ณผ ๊ณณ์ด ์žˆ์–ด ์ •๋ง ๋“ ๋“ ํ–ˆ๋‹ค. (์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ํ”„๋ก ํŠธ์—”๋“œ ํŒŒํŠธ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํŒ€์›๋“ค์€ ๋ฆฌ์—‘ํŠธ๋ฅผ ํ•™์Šต์˜€๋‹ค.)

2. ํ”„๋กœ์ ํŠธ ์ง„ํ–‰

๊นƒ ํ—ˆ๋ธŒ์— ์ƒˆ๋กœ์šด organization์„ ๋งŒ๋“ค์–ด ํŒ€์›๋“ค๊ณผ ํ˜‘์—… ํ•  ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ฐ์ž ๊ฐœ์ธ ๊ณ„์ •์— forkํ•ด ๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ฐฑ์—”๋“œ๋Š” ๋ฐฑ์—”๋“œ ๋ผ๋ฆฌ ์ž‘์—…ํ•˜๊ณ  ํ”„๋ก ํŠธ๋Š” ํ”„๋ก ํŠธ ๋ผ๋ฆฌ ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ๋‚˜์ค‘์— ํ”„๋ก ํŠธ์™€ ๋ฐฑ์„ ํ•ฉ์น˜๋Š” ๊ฑธ ๊ฒฝํ™˜๋‹˜(ํ‚น๊ฐ“ ํ’€์Šคํ…)๊ป˜์„œ ๊ตฌํ˜„ํ•ด์ฃผ์…จ๋‹ค. ๋ฐฑ์—”๋“œ ํŒŒํŠธ ๋‚ด์—์„œ ๊ฒฝํ™˜๋‹˜์€ โ€˜์Šคํ”„๋ง ์„ธํ๋ฆฌํ‹ฐ๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์› ๊ฐ€์ž… + AWS๋ฅผ ํ†ตํ•œ ๋ฐฐํฌโ€™ ์ชฝ์„ ๋งก์•„์ฃผ์…จ๊ณ  ๋‚˜๋Š” ํ”„๋ก ํŠธ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  API ๊ฐœ๋ฐœ ๋ฐ Swagger๋ฅผ ํ†ตํ•œ api ๋ช…์„ธโ€™ ์ชฝ์„ ๋งก์•˜๋‹ค. ์ฒ˜์Œ ์ง„ํ–‰ํ•ด๋ณด๋Š” ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ์˜€๊ธฐ ๋•Œ๋ฌธ์— ํ—˜๋‚œํ•œ gradle ์„ธํŒ…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ api ๊ฐœ๋ฐœ ์‹œ ์ž๊พธ๋งŒ ๋œจ๋Š” โ€˜Lazy Initializtion Exceptionโ€™๊ณผ์˜ ์‹ธ์›€์˜ ์—ฐ์†์ด์˜€๊ณ  ๋‚ด๊ฐ€ ์˜ˆ์ƒํ•œ ๊ฒƒ ์ด์ƒ์˜ sql๋ฌธ์ด ์ž๊พธ ๋‚˜๊ฐ€์„œ ์ด์— ๋Œ€ํ•œ ๊ณ ๋ฏผ ํ›„ API๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋์—†๋Š” ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์—ˆ๋‹ค.

๐Ÿ’ก API ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ๊ธ€์„ ์—ฌ๊ธฐ์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!

3. ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ

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

๐Ÿ’ก ๋‚ด์ผ„๋งŒ์› ์„œ๋น„์Šค ๋งํฌ(๋ชจ๋ฐ”์ผ๋กœ ๋“ค์–ด๊ฐ€์‹œ๋ฉด ํ›จ์”ฌ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค!)


์ฐธ์—ฌ ํ›„๊ธฐ

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

profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ํ•™์ƒ์ž…๋‹ˆ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€