๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ์ด์•ผ๊ธฐ

์ผ์ฃผ์ผ๋™์•ˆ ๊ฐ„๋‹จํ•˜๊ฒŒ ํด๋ก ์ฝ”๋”ฉ #springboot

 

๊ฐœ๋ฐœ ์ดํ‰: ์†”์งํžˆ ์–ด๋ ค์šด ๊ธฐ๋Šฅ์ด ์—†์–ด์„œ ๊ฐœ๋ฐœ์„ ๋ฌผ๐ŸŒŠ๋กœ ๋ดค๋Š”๋ฐ ํฐ ์ฝ” ๋‹ค์ณค์–ด์š”...!

๊ฐœ๋ฐœ ๊ณผ์ •

์ €๋Š” ๋ฐฑ์—”๋“œ๋ฅผ ๋‹ด๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. api ์ŠคํŽ™ ์„ค๊ณ„ #link
  2. Project Initialization
  3. db ๋ชจ๋ธ๋ง ๋ฐ db ์ƒ์„ฑ
  4. db ์—ฐ๋™
  5. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
  6. ๋ฐฐํฌ #link

5์›” 30์ผ ์ผ์š”์ผ:

์šฐ๋ฆฌ ๋ฉ‹์ง„ ํŒ€์›๋“ค๊ณผ ๋งŒ๋‚œ ๊ฐœ๋ฐœ ์ฒซ๋‚ !

๐Ÿ—ํ•œ ์ค„: ๊ฐœ๋ฐœ ๊ณผ์ • ์ค‘ 4๋ฒˆ๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ์—ˆ๋Š”๋ฐ, 5์‹œ๊ฐ„ ์ค‘ 4์‹œ๊ฐ„์€ ๋ฌด๋ ค ์žฌํฌ ์–ธ๋‹ˆ์˜ ๋…ธํŠธ๋ถ์—์„œ ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ์•„๊ฐ€๊ฒŒ ์„ธํŒ…ํ•˜๊ธฐ! ์˜€์Šต๋‹ˆ๋‹ค. ใ…Žใ…Žใ…Ž

 

intelliJ์˜ ๋ฒ„์ „์—๋Š” ๋ฌด๋ฃŒ์ธ Community ๋ฒ„์ „๊ณผ ์œ ๋ฃŒ์ด์ง€๋งŒ ๋Œ€ํ•™์ƒ๋ฉ”์ผ ์ธ์ฆ ํ›„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Ultimate ๋ฒ„์ „์ด ์žˆ๋Š”๋ฐ Community ์—์„œ๋Š” Spring boot ์ด๋ชจ์ง€๊ฐ€ ์žˆ๋Š” ์‹คํ–‰ ๋ฒ„ํŠผ์„ ์ œ๊ณตํ•ด์ฃผ์ง€๋„ ์•Š๊ณ  ๋นŒ๋“œํˆด๋กœ ๋Œ๋ ค์„œ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ์— ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์‚ฌ์‹ค ํ˜ผ์ž ์„ค์ •ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„๋“ค์ด ๋งŽ๋”๋ผ๊ตฌ์š”. ๋˜ ํšŒ์‹ ๋•Œ ๋ฐฑ ์ธํ„ด์ด๊ธฐ๋„ ํ•œ ๋ฏผ์ง€์˜ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์œผ๋ฉด์„œ ๋ฒ„์ „ ์ฐจ์ด๋กœ ์ธํ•ด ๋ฒ„ํŠผ ์ž์ฒด๊ฐ€ ์—†๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์œผ๋ฉด์„œ ์ˆจ ๋„˜์–ด๊ฐ€๊ฒŒ ์›ƒ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”๐Ÿคฃ Ultimate๋กœ ๋น ๋ฅด๊ฒŒ ๊ฐˆ์•„ํƒ€์„ธ์š”!

5์›” 31์ผ ์›”์š”์ผ:

๊ฐœ๋ฐœ 90% ์™„์„ฑ

๐Ÿ—ํ•œ ์ค„: ์žฌํฌ ์–ธ๋‹ˆ๊ฐ€ ํ‡ด๊ทผํ•œ ํ›„ ๊น€ํฌ๊ณตํ•ญ์—ญ์—์„œ ๋งŒ๋‚˜์„œ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๊นŒ์›Œ์„œ ๋„ˆ๋ฌด ์ข‹์•˜์–ด n_n๐Ÿ’›

์–ด๋ ค์šด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ์„œ ์ดˆ์ง‘์ค‘ํ•ด์„œ ์ •๋ง ๋น ๋ฅธ ์‹œ๊ฐ„์— ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์—ˆ์–ด์š” ๐Ÿ˜‰

 

๋งˆ์ง€๋ง‰์— github์— ์˜ฌ๋ฆฌ๋ฉด์„œ ํ˜‘์—… ์‹œ์— ์ค„๋ฐ”๊ฟˆ์ด ๊ณต๋ฐฑ์ธ์ง€ space์ธ์ง€, tab ํฌ๊ธฐ๋Š” ๋ช‡์œผ๋กœ ํ• ๊ฑด์ง€์— ๋Œ€ํ•ด ๋จผ์ € IDE์˜ ์„ธํŒ…์„ ๋˜‘๊ฐ™์ด ๋งž์ถฐ๋‘๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ์–ด์š”. ๊ณต๋ฐฑ ๋•Œ๋ฌธ์— ๊ฐ™์€ ์ฝ”๋“œ์ธ๋ฐ๋„ ๋‹ฌ๋ผ์กŒ๋‹ค๊ณ  github์— ํ‘œ์‹œ๋˜๋‹ˆ๊นŒ history๋ฅผ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ๊ฐ€ ์–ด๋ ต๋”๋ผ๊ตฌ์š”. ์ถฉ๋Œ์ด ๋‚ฌ์„ ๋•Œ์—๋„ ๋‹ค๋ฅธ ์ฝ”๋“œ๋กœ ์ธ์‹ํ•ด์„œ 10์‹œ๊ฐ€ ๋‹ค ๋˜์–ด์„œ๊นŒ์ง€ ํ‹€๋ฆผ๊ทธ๋ฆผ์ฐพ๊ธฐ๋ฅผ ๋‘๋ˆˆ ๋ถ€๋ฆ…๋œจ๊ณ  ํ–ˆ๋‹ต๋‹ˆ๋‹ค ใ…Žใ…Ž

 

 

6์›” 3์ผ ๋ชฉ์š”์ผ:

jar file๋กœ ์ฒซ ๋ฐฐํฌ

๐Ÿ—ํ•œ ์ค„: ๊ฐœ๋ฐœ์„ ๋ฌผ๋กœ ๋ดค๋˜ ์ €๋Š” ํ—ˆ์ ‘ ๊ทธ ์ž์ฒด์˜€์ฃ . ๋ฐฐํฌ์˜ ์„ธ๊ณ„๋Š” ์ •๋ง ์ง•๊ธ€์ง•๊ธ€ ๐Ÿ’ซ

 

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

์—‰์—‰ ๐Ÿ˜ข

issue (#)๋กœ ๋‹น์‹œ ์‹œ๋„ํ–ˆ๋˜ ๋ฐฉ๋ฒ•๋“ค์„ ๋Œ€์ถฉ ์จ๋‘์–ด ๋ฐœํ–‰ํ•ด๋‘์—ˆ๋Š”๋ฐ ์ด์— ๊ด€๋ จํ•ด์„œ๋Š” ๋” ์•Œ์•„๋ด์•ผํ•  ๊ฒƒ ๊ฐ™์•„์š”... issue๊ฐ€ ๋„ˆ๋ฌด ๋นˆ์•ฝํ•œ๋ฐ... ๋‹ค์Œ ๋ฒˆ์˜ ์‚ฝ์งˆ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ๋ผ๋„ ์‹ค์‹œ๊ฐ„์œผ๋กœ error์™€ ๊ด€๋ จ ํ•ด๊ฒฐ์ฑ…๋“ค์„ ์ž์„ธํ•˜๊ฒŒ ๊ธฐ๋กํ•˜๋Š” ๊ฑธ ์Šต๊ด€ํ™”ํ•˜๋Š” ๊ฒŒ ์ •๋ง ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

6์›” 4์ผ ๊ธˆ์š”์ผ:

RDS ๋ณ€๊ฒฝ ๋ฐ ๋กœ์ง ์ˆ˜์ •, ์ตœ์ข… ๋ฐฐํฌ

๐Ÿ—ํ•œ ์ค„: ์ง„์ž‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„œ๋ฒ„์— ๋„์šธ ๊ฑธ ๊ทธ๋žฌ์–ด์š”!

 

์ถ”๊ฐ€๋กœ ์ƒ๊ธด ์ˆ˜์ • ์ž‘์—…์—์„œ ๊ฐœ๋ฐœํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ํ”„๋ก ํŠธ ๋ถ„๋“ค์„ ์œ„ํ•ด sql ๋ฌธ์„ ์ƒ์„ฑํ•ด ๋“œ๋ฆฌ๋Š” ๊ฒƒ์ด ํ›จ ! ์”ฌ ! ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๋˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ฉด์„œ ๊ฒฐ๊ณผํ™”๋ฉด์„ ๋‚˜๋ˆ„๋‹ˆ ์†Œํ†ต๋„ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๊ฐœ๋ฐœ ํŒ€์ด RDS๋ฅผ ๋„์šฐ๊ฑฐ๋‚˜ ์„œ๋ฒ„ํŒŒ์ผ ์‹คํ–‰ ์‹œ ์ž๋™์œผ๋กœ ์Šคํ‚ค๋งˆ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ์„ธํŒ…์ด ๋˜๋„๋ก(JPA ๋ฐ schema.sql, data.sql ํ™œ์šฉ) ํ–ˆ์–ด์•ผ ํ–ˆ์—ˆ๋˜๊ฑฐ์ฃ ... :0

๊ทธ๋ฆฌ๊ณ  ์ˆ˜์ • ์ž‘์—…์„ ๊ท€์ฐฎ์•„์š”... ๋‹ค์Œ์—๋Š” api ๋ช…์„ธ์„œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ตœ๋Œ€ํ•œ ๊ผผ๊ผผํžˆ ์ œ์ž‘ํ•ด๋‘์–ด์•ผ๊ฒ ๋‹ค๊ณ  ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. ์ ์  ๋‹จ๊ณ„๊ฐ€ ๊นŠ์–ด์งˆ์ˆ˜๋ก ๋˜๋Œ์•„๊ฐ€์„œ ๊ณ ์ณํ•  ๋‹จ๊ณ„๊ฐ€ ๋งŽ์•„์ ธ์„œ ์“ธ๋ชจ์—†๋Š” ์ž‘์—…์— ๋“ค์–ด๊ฐ€๋Š” ์‹œ๊ฐ„์ด ๋งŽ์•„์ง‘๋‹ˆ๋‹ค.

์ด ์™ธ์—๋„ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „๊นŒ์ง€ ์ €๋Š” TDD์™€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด ๊ณต๋ถ€๋ฅผ ๋‹จ๊ธฐ๊ฐ„์— ์—ด์‹ฌํžˆ ํ•ด๋‘์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ ˆ์‹คํžˆ ๋Š๊ผˆ์–ด์š”. ํ™”์ดํŒ… ๐Ÿ™Œ๐Ÿป !

'๊ฐœ๋ฐœ์ด์•ผ๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

DSC KR Solution Challenge hackathon  (0) 2021.02.19
[pickmeup] ํ•ซํ•œ ํƒœ๊ทธ ๊ตฌํ˜„ํ•˜๊ธฐ  (0) 2021.02.18