๐Ÿ—ฃ <๋น„๋“œ๋งˆ์ผ“> ํŒ€ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

waterglassesยท2022๋…„ 8์›” 21์ผ
4
post-thumbnail

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์›น ๋ฐ๋ธŒ์ฝ”์Šค 2๊ธฐ, ๋น„๋“œ๋งˆ์ผ“ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ํšŒ๊ณ ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์˜คํƒ€๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์šฉ!!

๐Ÿ’ธ ๋น„๋”ฉ์œผ๋กœ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์„ค๋ ˜์„ ๋Š๊ปด๋ด, <๋น„๋“œ๋งˆ์ผ“>

๐Ÿ“‘ ๋น„๋“œ๋งˆ์ผ“์— ๋Œ€ํ•ด ๋” ์•Œ ์ˆ˜ ์žˆ๋Š” ๋งํฌ ๋ชจ์Œ์ง‘
์‚ฌ์ด์ฝ” ํŒ€ ๋…ธ์…˜ํŽ˜์ด์ง€
์‚ฌ์ด์ฝ” ํ”„๋ก ํŠธ์—”๋“œ ๋…ธ์…˜ํŽ˜์ด์ง€
๋น„๋“œ๋งˆ์ผ“ ๊นƒํ—ˆ๋ธŒ
๋น„๋“œ๋งˆ์ผ“ ์ตœ์ข… ๋ฐœํ‘œ ์˜์ƒ

์ €๋ฒˆ ๋Ÿฌ๋ถ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํŒ€์žฅ์„ ๋งก์•˜๊ณ  ํ”„๋ก ํŠธ๋ผ๋ฆฌ๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๋ฐ˜๋ฉด, ๋น„๋“œ๋งˆ์ผ“ ํ”„๋กœ์ ํŠธ๋Š” ํ”„๋ก ํŠธ 4๋ช…, ๋ฐฑ์—”๋“œ 5๋ช…, ๋””์ž์ด๋„ˆ 1๋ช… ์ด 10๋ช…๊ณผ ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์•ฝ 1๋‹ฌ์ด๋ผ๋Š” ๊ธฐ๊ฐ„๋™์•ˆ ๊ธฐํš๋ถ€ํ„ฐ ๋””์ž์ธ, ๊ฐœ๋ฐœ์„ ํ•จ๊ป˜ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋น„๋“œ๋งˆ์ผ“์— ๋Œ€ํ•œ ์†Œ๊ฐœ๋Š” ๊นƒํ—ˆ๋ธŒ ๋˜๋Š” ๋…ธ์…˜ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๊ณ  ์ด ํšŒ๊ณ ์—๋Š” ํ•œ๋‹ฌ๋™์•ˆ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•˜์˜€๋Š”์ง€, ์–ด๋–ค ๊ฒƒ์„ ๋Š๊ผˆ๋Š”์ง€์— ๋Œ€ํ•ด ๋‹ด์•˜์Šต๋‹ˆ๋‹ค.

๐Ÿง‘๐Ÿปโ€๐Ÿซ ํ”„๋กœ์ ํŠธ ๊ธฐํš(์œ ์ € ์Šคํ† ๋ฆฌ์™€ UI ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ)

์ €๋ฒˆ ๋Ÿฌ๋ถ ๋•Œ๋Š” API ๋ช…์„ธ๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ์—ˆ๊ณ  ์ •ํ•ด์ง„ ํ‹€ ์•ˆ์—์„œ ์ฃผ์ œ๋ฅผ ์ •ํ–ˆ๋‹ค๋ฉด ์ด๋ฒˆ์—๋Š” ์ฃผ์ œ๊ฐ€ ์ž์œ ๋กœ์› ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ์˜๊ฒฌ์„ ๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋งŽ์€ ์˜๊ฒฌ๋“ค ์ค‘ ์ค‘๊ณ ๊ฑฐ๋ž˜ ๋น„๋”ฉ ํ”Œ๋žซํผ์ด ๊ฐ€์žฅ ๋†’์€ ํ‘œ๋ฅผ ๋ฐ›์•„์„œ ๋‹ค์Œ ์ฃผ์ œ๋กœ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1. ์œ ์ € ์Šคํ† ๋ฆฌ & MoSCoW

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

ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ(MosCow)
  • Must Have: ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ˜๋“œ์‹œ ์—ฌ๊ธฐ๊นŒ์ง„ ๋‹ค ํ•ด์•ผํ•œ๋‹ค.
  • Should Have: ํ˜น์‹œ๋ผ๋„ ์—ฌ๋ ฅ์ด ๋œ๋‹ค๋ฉด ์—ฌ๊ธฐ๊นŒ์ง€๋„ ํ•œ๋ฒˆ ํ•ด๋ณด์ž.
  • Could Have: ์—ฌ๊ธฐ๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹๊ฒ ์ง€๋งŒ, ๋ชปํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.
  • Wonโ€™t Have: ์ด๊ฑด ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์— ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ˆ ๊ดœํžˆ ๋ฏธ๋ จ ๊ฐ–์ง€ ๋ง์ž.

Must๋กœ๋Š” ์œ ์ € ์ •๋ณด ์กฐํšŒ ๋ฐ ์ˆ˜์ •, ๊ฒฝ๋งค์‹œ์Šคํ…œ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ž…์ฐฐ, ๋‚™์ฐฐ ๊ธฐ๋Šฅ, ์ƒํ’ˆ ์กฐํšŒ๊ธฐ๋Šฅ์„ ์œ„์ฃผ๋กœ ์ ์—ˆ๊ณ  Should๋กœ๋Š” ์ž…์ฐฐ, ๋‚™์ฐฐ ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์•Œ๋ฆผ๊ณผ ์‚ฌ์šฉ์ž์™€ ๋งค์นญ์‹œ์ผœ์ฃผ๋Š” ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ๋ชฉํ‘œ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚œ ์ด ์‹œ์ ์—์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์ •ํ•˜๊ณ  ์ง„ํ–‰ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชฉํ‘œ๊ฐ€ ํ™•์‹คํ–ˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๋Œ€๋กœ ์ˆ˜์›”ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

2. UI ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ

์ €ํฌ ํŒ€์€ ํŒ€์›๋ถ„์˜ ๋„์›€์œผ๋กœ ๋””์ž์ด๋„ˆ๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋””์ž์ธ์ด ์กฐ๊ธˆ ๋” ๋นจ๋ฆฌ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋””์ž์ธ์„ ํ† ๋Œ€๋กœ ํŽ˜์ด์ง€๋งˆ๋‹ค ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ž์„ธํžˆ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (๋””์ž์ธ(์™€์ด์–ดํ”„๋ ˆ์ž„) ๋ฐ UI ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ ๋งํฌ)

๐Ÿ’ธ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ๋ฌธํ™”

1. ์Šคํ”„๋ฆฐํŠธ/์Šคํฌ๋Ÿผ/ํšŒ๊ณ 

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

  • JIRA ์ด์Šˆ ์ง„ํ–‰ ์‚ฌํ•ญ

  • JIRA ์Šคํ”„๋ฆฐํŠธ ๋ณด๊ณ ์„œ

์Šคํ”„๋ฆฐํŠธ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ํŒ€์› ๋ชจ๋‘ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ๋‹ค์Œ ์Šคํ”„๋ฆฐํŠธ ๋•Œ ๋”์šฑ ๋‚˜์€ ๋ชฉํ‘œ์™€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.(์Šคํ”„๋ฆฐํŠธ ํšŒ๊ณ  ๋ชจ์Œ)

2. ํ”„๋ก ํŠธ ์•ˆ๊ฑด ํŽ˜์ด์ง€

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

๋งค๋ฒˆ ์Šคํฌ๋Ÿผ ์ง„ํ–‰ ์ „ ํŒ€์žฅ๋‹˜์ด ํ™•์ธํ•ด์ฃผ์‹œ๊ณ  ํšŒ์˜ ๋•Œ ์–˜๊ธฐํ•ด์ฃผ์…”์„œ ๊นŒ๋จน์ง€ ์•Š๊ณ  ํšŒ์˜ํ•˜๊ณ  ๋‹ค์Œ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋””์ž์ด๋„ˆ๋‹˜๊ป˜ ์–˜๊ธฐํ•ด์•ผํ•  ๋ถ€๋ถ„์„ ์ ์–ด์„œ ํ•œ๋ฒˆ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํ•„์š”ํ•œ ์˜์‚ฌ์†Œํ†ต์„ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.(ํ”„๋ก ํŠธ ์•ˆ๊ฑด ํŽ˜์ด์ง€)

๐Ÿ’ป ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ์Šคํƒ๊ณผ ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ

๊ธฐ์ˆ  ์Šคํƒ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ €๋ฒˆ ํ”„๋กœ์ ํŠธ์™€ ์ƒˆ๋กญ๊ฒŒ ๊ฒฝํ—˜ํ•ด๋ณธ ๊ธฐ์ˆ ๋กœ๋Š” Typescript, Next.js์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด์„œ ํ”„๋ก ํŠธ ํŒ€์› ๋ชจ๋‘ ๋…ธ๋งˆ๋“œ์ฝ”๋” Typescript ์ฑŒ๋ฆฐ์ง€๋ฅผ ํ•˜๋ฉด์„œ ์ƒˆ๋กญ๊ฒŒ ๊ธฐ์ˆ ์„ ๋„์ž…ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

Typescript

TypeScript๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์˜ˆ์ „์— Javascript๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์–ผ๋งˆ๋‚˜ ๋ถˆํŽธํ–ˆ๋Š”์ง€ ์ƒˆ์‚ผ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. API๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ๋‚˜ ๋ณด๋‚ผ ๋•Œ ํ•ญ์ƒ ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ๋‚˜ ๋ฐ˜๋Œ€์ผ ๊ฒฝ์šฐ ๋“ฑ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋Š”๋ฐ ํ™•์‹คํžˆ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ํ›„ ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฏธ๋ฆฌ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ visual studio code๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ ํƒ€์ž…์— ๋Œ€ํ•œ API๋ฅผ ๋ฏธ๋ฆฌ ๋„์›Œ์ค„ ์ˆ˜ ์žˆ์–ด์„œ ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Next.js

๋˜ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋น„๋“œ๋งˆ์ผ“์˜ ๋ชฉ์ ์ธ ๊ฒฝ๋งค ์ƒํ’ˆ๋“ค์„ ๊ฒ€์ƒ‰ ์—”์ง„์— ์ž˜ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ๋„๋ก SEO๋ฅผ ์ œ๋Œ€๋กœ ์ ์šฉํ•˜๊ณ  ํ•ด๋ณด๊ณ  SSR Next.js๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
SEO๋ฅผ ์œ„ํ•ด์„œ meta ํƒœ๊ทธ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ ์šฉํ•˜์˜€๊ณ  ๊ทธ๋กœ ์ธํ•ด lighthouse ์ธก์ •์„ ํ•ด๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ Next/Image ๋“ฑ Next.js์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ง์ ‘์ ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด์ง€ ๋ชปํ•ด๋ดค๊ณ  ์œ„์˜ Lighthouse ์ ์ˆ˜ ์ค‘ ํผํฌ๋จผ์Šค ๋ถ€๋ถ„์ด ๋งŽ์ด ์•„์‰ฌ์› ๋‹ค. ๋ฆฌํŒฉํ† ๋ง ๋•Œ ๊ผญ ๊ฐœ์„ ํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์ด๋‹ค.

์ž…์ฐฐ๊ณผ ๋‚™์ฐฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„

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

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

์‹ค์‹œ๊ฐ„ ํƒ€์ด๋จธ ๊ธฐ๋Šฅ๊ตฌํ˜„

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

๐Ÿ‘ค ๊ฐœ์ธ ํšŒ๊ณ 

์ข‹์•˜๋˜ ์ 

ํŒ€ ๋ถ„์œ„๊ธฐ์™€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

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

์ผ์ • ๊ด€๋ฆฌ(JIRA ์‚ฌ์šฉ)

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

์ฝ”๋“œ ๋ฆฌ๋ทฐ

์ €ํฌ๋Š” ๋งค ์ด์Šˆ๋งˆ๋‹ค PR์„ ์˜ฌ๋ฆฌ๊ณ  ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ•„์ˆ˜๋กœ ๋ฐ›๊ณ  main์— ๋จธ์ง€ํ•˜๋„๋ก ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ•จ์œผ๋กœ์จ ํŒ€์›๋“ค์˜ ์ฝ”๋”ฉ ์Šคํƒ€์ผ์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜ ํŒŒ์•… ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‚ด ์ฝ”๋“œ์˜ ํ”ผ๋“œ๋ฐฑ์€ ๋ฌผ๋ก  ๋‹ค๋ฅธ ํŒ€์›์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์„œ ๋”์šฑ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ €๋Š” react-query์„ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†๊ณ  ์•„์ง ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํŒ€์›์ด react-query๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌดํ•œ ์Šคํฌ๋กค์„ ๊ตฌํ˜„ํ•˜์˜€๋Š”๋ฐ ๊ทธ๋Ÿฌํ•œ ๋ถ€๋ถ„๋“ค์„ ๋ฆฌ๋ทฐ๋ฅผ ํ•จ์œผ๋กœ์จ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์ ์šฉํ•˜๋Š”์ง€ ๋” ํ•œ ๋ˆˆ์— ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฑ„ํŒ… ๊ตฌํ˜„์—์„œstompjs์™€ sockjs๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์‰ฌ์› ๋˜ ์ 

Next/Image ๋ฏธ์ ์šฉ

์šฐ๋ฆฌ๋Š” ๋น ๋ฅธ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด chakra-ui๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ ๊ทธ๋กœ ์ธํ•ด chakra-ui์— ์žˆ๋Š” Imageํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ Next/Image๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋งˆ๊ฐ๊ธฐํ•œ์— ๋งž์ถ”๊ธฐ ๊ธ‰๊ธ‰ํ–ˆ๋˜ ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ๋‹ค์‹œ lighthouse, nextjs ๊ณต์‹ ๋ฌธ์„œ ๋“ฑ์„ ํ™•์ธํ•˜๊ณ  ๋‚˜์„œ์•ผ Next/Image๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด lazy loading, ๋น ๋ฅธ ํŽ˜์ด์ง€ ๋กœ๋“œ ๋“ฑ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ํฐ ๋„์›€์ด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

๋ฉ˜ํ† ๊ป˜์„œ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์…จ๋˜ ๋ถ€๋ถ„์ด๊ณ  ๊ทธ๋ƒฅ image ์ปดํฌ๋„ŒํŠธ์™€ ์ฐจ์ด์ ์„ ๋ฐฐ์šฐ๋ฉด์„œ ๊ฐ€์žฅ ๋จผ์ € ๋ฆฌํŒฉํ† ๋ง์„ ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ถ”ํ›„ ์ด ๋ถ€๋ถ„์€ ๋”ฐ๋กœ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ฐ˜์˜ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ธก๋ฉด

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

๋น„๋“œ๋งˆ์ผ“ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น˜๋ฉฐ..

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

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

๊ทธ ํ›„ ๋ฆฌํŒฉํ† ๋ง ์ง„ํ–‰ํ•œ ๋งํฌ

์˜ค๋žœ๋งŒ์— ์‚ฌ์ง„๋ณด๊ณ  ๋ญ‰ํด

profile
๋งค ์ˆœ๊ฐ„ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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