Skip to content

ํšŒ๊ณ 

GyeongHyang Jun edited this page May 28, 2024 · 4 revisions

๋ฐฑ์—”๋“œ Team

์‹ ์˜จ์œ 

Feeling | ๋А๋‚€ ์ 

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

Finding | ๋ฐฐ์šด ์ 

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

Longed for | ํ–ฅํ›„

  • ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ IoT ํ”„๋กœ์ ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœ ์ฝ”๋“œ ๋ฟ๋งŒ ์•„๋‹Œ ์˜คํ”„๋ผ์ธ์˜ ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค์„ ๊ณ ๋ คํ•ด์•ผํ•ด ๋ฐœํ‘œ๋‹จ๊ณ„๊นŒ์ง€ ๊ฐ€๋Š”๋ฐ ๋งŽ์€ ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์–ด๋ ค์›€์„ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋•Œ๋Š” ๋ฏธ๋ฆฌ ๊ณ ๋ฏผํ•˜๊ณ  ๊ณ ๋ คํ•ด์„œ ๋Œ€๋น„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜ํ•œ AI Model์„ ์ง์ ‘ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒฝํ—˜์„ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ํ›ˆ๋ จ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ผ๋ฒจ๋ง๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ผ๋ฒจ๋ง ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋ƒ‰์žฅ๊ณ  ๋ชจํ˜• ์ œ์ž‘์ด ๋Šฆ์–ด์ ธ ์‹œ๊ฐ„์ƒ Bounding Box Labeling์œผ๋กœ ์ง„ํ–‰ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ผ๋ฒจ๋ง ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ๋œ ์ธ์‹์ด ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (์ƒ‰๊น”๋กœ ์ธ์‹ํ•˜์—ฌ ๋น„์Šทํ•œ ์ƒ‰๊น”๋กœ ์ธ์‹ํ•˜๋Š” ๊ฒฝ์šฐ/ํ˜•ํƒœ๊ฐ€ ๋น„์Šทํ•œ ๊ณผ์ผ์„ ๋น„์Šทํ•˜๊ฒŒ ์ธ์‹) ๋‚˜์ค‘์— ๋น„์Šทํ•œ ์ด๋ฏธ์ง€ ์ธ์‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด Polygon Labeling์„ ํ†ตํ•ด์„œ ์กฐ๊ธˆ ๋” ์ •๋ฐ€ํ•œ ์‚ฌ์ง„์ธ์‹์„ ํ†ตํ•œ ์ •๊ตํ•˜๊ฒŒ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ „๊ฒฝํ–ฅ

Feeling | ๋А๋‚€ ์ 

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

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

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

Finding | ๋ฐฐ์šด ์ 

  • ํŒ€์˜ ์„ฑ๊ณผ๋ฅผ ์œ„ํ•ด ๋ชจ๋‘๊ฐ€ ํ•จ๊ป˜ ๋…ธ๋ ฅํ•ด์•ผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŒ€์›๋“ค ๊ฐ์ž์˜ ๊ฐœ์ธ ๋ชฉํ‘œ๊ฐ€ ์•„๋‹Œ ํŒ€ ์ „์ฒด์˜ ๊ณตํ†ต ๋ชฉํ‘œ์— ๋Œ€ํ•œ ์ค‘์š”์„ฑ์„ ๊นจ๋‹ฌ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŒ€์›๋“ค ๊ฐ„์˜ ํ˜‘์—…๊ณผ ์†Œํ†ต์ด ํ•„์š”ํ•˜๋ฉฐ, ํŒ€์˜ ๋ชฉํ‘œ์— ๋Œ€ํ•œ ๊ณต๊ฐ๋Œ€๋ฅผ ํ˜•์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ œ ์ƒํ™ฉ ๋ฐœ์ƒ ์‹œ ๊ตฌ์ฒด์ ์ธ ๊ณต์œ ์˜ ํ•„์š”์„ฑ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” ์ƒํ™ฉ์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ๋ฌธ์ œ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์˜๊ฒฌ์„ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒ€์›๋“ค ๊ฐ„์˜ ์‹ ๋ขฐ์™€ ํ˜‘๋ ฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํšจ๊ณผ์ ์ธ ๋ฐฉ์•ˆ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Longed for | ํ–ฅํ›„

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

  • Git ๋ฐ GitHub์™€ ๊ด€๋ จํ•˜์—ฌ ์ž์œ ์ž์žฌ๋กœ ํ™œ์šฉํ•˜๋Š” ํŒ€์›๋“ค์„ ๋ณด๊ณ  Git ํ™œ์šฉ ๋ฐฉ๋ฒ•๊ณผ issue์™€ wiki ๋“ฑ์„ ํ™œ์šฉํ•œ ๊ธฐ๋ก ๊ด€๋ฆฌ ๋Œ€ํ•ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Git์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋ฐ ํ˜‘์—…์„ ์œ„ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ˆ™๋‹ฌํ•˜๊ณ , ํŒ€ ๋‚ด์—์„œ ์ฝ”๋“œ ๊ด€๋ฆฌ ๋ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•™์Šตํ•˜๊ณ  ์ง€์‹์„ ๊ณต์œ ํ•˜์—ฌ ํŒ€ ์ „์ฒด๊ฐ€ Git์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰ ์ƒํ™ฉ๊ณผ ๊ฒฐ์ •์‚ฌํ•ญ, ๋ฌธ์ œ์ƒํ™ฉ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•˜์—ฌ ํ–ฅํ›„ ํ”„๋กœ์ ํŠธ์—์„œ ์ž˜ ์ ์šฉํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์œ ํ˜ธ์˜

Feeling | ๋А๋‚€ ์ 

  • ํ”„๋กœ์ ํŠธ์—์„œ ๋ฏฟ๊ณ  ์˜์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ํŒ€์›๋“ค์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ฐธ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋А๊ผˆ์Šต๋‹ˆ๋‹ค. IoT์™€ AI๋ผ๋Š” ์ƒˆ๋กœ์šด ๋„์ „์ด์—ˆ์ง€๋งŒ, ๋›ฐ์–ด๋‚œ ์—ญ๋Ÿ‰์„ ์ง€๋‹Œ ํŒ€์›๋“ค์„ ๋ฏฟ๊ณ , ๋งก์€ ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ธํ”„๋ผ ์ž‘์—…์„ ํ•˜๋ฉด์„œ CI/CD ๊ด€๋ จ ์ง€์‹ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋„คํŠธ์›Œํฌ ๋ฐ ์„œ๋น„์Šค ์ „์ฒด ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋„ ์กฐ๊ธˆ ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๋ถ€ํ„ฐ ์„œ๋ฒ„์˜ ์‘๋‹ต๊นŒ์ง€, ๊ณ„์†ํ•ด์„œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ๊ฐํ•˜๋ฉฐ ์–ด๋””์„œ ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ๋””๋ฒ„๊น… ํ•˜๋Š” ๊ฒฝํ—˜์ด ์ฐธ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  • ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ ์ž‘์—…์„ ํ•˜๋ฉด์„œ ์Šค์Šค๋กœ๋ฅผ ๋Œ์•„๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ •๋ณด๋ฅผ ๋„˜๊ฒจ์ฃผ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๋ง‰์ƒ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋ฐ›์•„๋ณด๋ฉด ๋ถˆํŽธํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๋ณด์กฐ ์—ญํ• ์„ ํ•˜๋ฉด์„œ ๋„ˆ๋ฌด ๋ฐฑ์—”๋“œ ์œ„์ฃผ๋กœ๋งŒ ์ƒ๊ฐํ•˜๋ฉด์„œ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š์•˜๋‚˜ ๋ฐ˜์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. JPA pageable์— ๋Œ€ํ•ด swagger์— ์จ๋†“์ง€ ์•Š์•„ ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์—†์–ด์„œ, ์ˆ˜์ •ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์—ญํ• ์„ ๋‘๋ฃจ ๊ฒฝํ—˜ํ•˜๋ฉด์„œ ํ˜‘์—… ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ๋ฐฐ๋ ค์˜ ์ž์„ธ๋ฅผ ๊ฒฌ์ง€ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Finding | ๋ฐฐ์šด ์ 

  • ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์— ์นœ์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. CD/CI ์ž‘์—…๊ณผ db ๊ด€๋ฆฌ ๋“ฑ AWS ์„œ๋ฒ„์—์„œ ์ง์ ‘ ์ž‘์—…ํ•˜๋ฉด์„œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๊ณ , CLI์— ์‰ฝ๊ฒŒ ์ ์‘ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ docker ๋ช…๋ น์–ด ์‚ฌ์šฉ ๋ฐ jenkins ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑ์„ ํ†ตํ•ด ๊ด€๋ จ ์ง€์‹์„ ์Œ“์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • http ํ†ต์‹ ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๊นŠ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ธํ”„๋ผ ์ž‘์—… ์ค‘ ๊ณ„์†ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๊ณผ ์„œ๋ฒ„์˜ ์‘๋‹ต ๊ณผ์ •์„ ๋จธ๋ฆฌ๋กœ ๊ทธ๋ ค๊ฐ€์•ผ ํ–ˆ๊ณ , ์–ด๋А ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š”์ง€ ์žก์•„๋‚ด๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด CORS, RSA ๋“ฑ ๋‹ค์–‘ํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • JPA๋ฅผ ํ†ตํ•ด Spring Boot REST์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด๋Š” ๊ฒฝํ—˜์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด์ „๊นŒ์ง€๋Š” Mybatis๋ฅผ ํ†ตํ•œ SQL๋งคํ•‘ ๋ฐฉ์‹๋งŒ์„ ์‚ฌ์šฉํ•ด๋ณด์•˜๋Š”๋ฐ, ORM์„ ํ†ตํ•œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ๊ฒฝํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • DB์— ์ข…์†๋˜์ง€ ์•Š์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ์„ ๋‘๋ฃจ ๊ฐ–์ถ˜ JPA์˜ ๊ฐ•๋ ฅํ•จ์„ ๋А๊ผˆ์Šต๋‹ˆ๋‹ค.
  • ์ „์—ญ ์—๋Ÿฌํ•ธ๋“ค๋ง๊ณผ ์ปค์Šคํ…€ Response ์ž‘์„ฑ ๋ฐฉ์‹์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŒ€์›๋“ค๋ผ๋ฆฌ ์ •ํ•œ ์ „์—ญ ์—๋Ÿฌํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด ์—๋Ÿฌ๋ฅผ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปค์Šคํ…€ Response๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ”„๋ก ํŠธ ์—”๋“œ์™€์˜ ์†Œํ†ต์ด ๋”์šฑ ์›ํ• ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • git์„ ๋” ์ž์‹ ๊ฐ ์žˆ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํŒ€์›๊ณผ ํ•จ๊ป˜ ํ–ˆ๋˜ ๋งŒํผ, branch ์ž‘์—…๋„ ๋งŽ์•˜๊ณ  ๋ณ‘ํ•ฉ๋„ ์ž์ฃผ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ rebase ๋ฐ cherry-pick์œผ๋กœ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒฝํ—˜์„ ๋” ๋งŽ์ด ์Œ“์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • axios ์ธ์Šคํ„ด์Šค์™€ ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํ†ตํ•ด ํ”„๋ก ํŠธ์—์„œ์˜ API ํ˜ธ์ถœ์„ ๋” ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. jwt๋ฅผ ์‚ฌ์šฉํ•˜๋Š” api์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ api๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌํ•˜์˜€๊ณ , ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ ์ง์ „ ํ† ํฐ์„ ์‹ฌ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ๋กœ ํ† ํฐ์ด ๋งŒ๋ฃŒ๋œ ๊ฒฝ์šฐ ์žฌ๋ฐœ๊ธ‰ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Longed for | ํ–ฅํ›„

  • JPA์— ๋Œ€ํ•ด ๋” ์‹ฌ๋„์žˆ๋Š” ๊ณต๋ถ€๋ฅผ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ์™€ ํšจ์œจ์ ์ธ JPQL ์ž‘์„ฑ์— ๋Œ€ํ•ด ๊นŠ์€ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Entity ์ž‘์„ฑ๊ณผ ์‹ค์ œ DDL ๋™์ž‘์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” DB๋ฅผ ๋”ฐ๋กœ ์ž‘์„ฑํ•˜๊ณ  ์ด๋ฅผ ์œ„ํ•œ Entity ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…ํ–ˆ๋Š”๋ฐ, Entity์— ๋”ฐ๋ผ DB table์ด ์‹ค์ œ๋กœ ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
  • git branch ๊ด€๋ฆฌ๋ฅผ ๋” ๊ณ ๋„ํ™”ํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” squash and merge๋ฅผ ํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, squash์™€ tag๋ฅผ ์ ๊ทน ์ด์šฉํ•ด์„œ ๋ฒ„์ „๋ณ„ ๊ด€๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

Clone this wiki locally