ํšŒ๊ณ 

[ํšŒ๊ณ ] Ticket Want it!(ํ‹ฐ์ผ“์›์ž‡!) ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

_์„ฑํ˜ธ_ 2023. 5. 14. 04:30
728x90
๋ฐ˜์‘ํ˜•

https://ticketwantit.shop/

 

1์ฐจ ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ๋ฅผ ๋งˆ์นœ ํ›„ ๋ฆฌํŒฉํ„ฐ๋ง ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ฉด์„œ ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

ํ”„๋กœ์ ํŠธ ์ฃผ์ œ

  • ์˜จ๋ผ์ธ ํ‹ฐ์ผ“ ๊ตฌ๋งค ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‡ผํ•‘๋ชฐ

 

ํ”„๋กœ์ ํŠธ๋ช…

  • ํ‹ฐ์ผ“์›์ž‡!(Ticket Want it!)

 

์ œ์ž‘ ๊ธฐ๊ฐ„

  • 2023.04.17 ~ 2023.04.28(1์ฐจ ์ œ์ž‘๊ธฐ๊ฐ„, ์ตœ์†Œ ๊ธฐ๋Šฅ ๊ตฌํ˜„)
  • 2023.04.29 ~ 2023.05.20(2์ฐจ ์ œ์ž‘๊ธฐ๊ฐ„, ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ๋ฆฌํŒฉํ„ฐ๋ง)

 

ํŒ€ ๊ตฌ์„ฑ

  • ๋‹ด๋‹น ํฌ์ง€์…˜ : ํŒ€์›, ํ”„๋ก ํŠธ์—”๋“œ
  • Frontend(3๋ช…) : ์ด์„ฑํ˜ธ, ์œค์šฐ์ •, ๊น€์œค์ค‘
  • Backend(3๋ช…) : ์œ ํ•˜์˜, ์ด๋ฏผ์˜, ์ •ํ˜œ๋ฆฐ

 

๊ธฐ์ˆ  ์Šคํƒ

 

๊ตฌํ˜„ ๊ธฐ๋Šฅ

  • ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ํšŒ์›์ •๋ณด ์ˆ˜์ • ๋ฐ ํƒˆํ‡ด ๋“ฑ ์‚ฌ์šฉ์ž ๊ด€๋ จ CRUD
  • ์ƒํ’ˆ(์ œํ’ˆ) ๊ด€๋ จ CRUD, ์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ จ CRUD, ์ฃผ๋ฌธ ๊ด€๋ จ CRUD
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ๊ธฐ๋Šฅ(์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋Š” ํ”„๋ก ํŠธ๋‹จ์—์„œ ๊ด€๋ฆฌ)
  • ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€(์ฃผ๋ฌธ์กฐํšŒ, ์ƒํ’ˆ๊ด€๋ฆฌ, ์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ฆฌ)
  • ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ, ํŽ˜์ด์ง€๋„ค์ด์…˜, ๋ฌดํ•œ์Šคํฌ๋กค, ๊ฒ€์ƒ‰, ๋ฐ˜์‘ํ˜• ๋“ฑ๋“ฑ)

 

๋‹ด๋‹น ์—…๋ฌด

*(ํŽ˜์ด์ง€์˜ ์ „์ฒด์ ์ธ UI ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„)

  • ์ƒํ’ˆ ๋ชฉ๋ก(ํ•„ํ„ฐ ๋ฐ ๊ฒ€์ƒ‰, ๋ฌดํ•œ์Šคํฌ๋กค ๋‹ด๋‹น)
  • *์ƒํ’ˆ ์ƒ์„ธ
  • *์žฅ๋ฐ”๊ตฌ๋‹ˆ
  • *์ฃผ๋ฌธ/๊ฒฐ์ œ
  • *์ฃผ๋ฌธ์™„๋ฃŒ
  • ๋งˆ์ดํŽ˜์ด์ง€(์ฃผ๋ฌธ์กฐํšŒ ๋‹ด๋‹น)
  • axios interceptor ์ ์šฉ

 

๊ฒฐ๊ณผ๋ฌผ ์‚ด์ง(๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ๋ถ€๋ถ„) ๐Ÿ‘€

์ƒํ’ˆ ๋ชฉ๋ก(ํ•„ํ„ฐ ๋ฐ ๊ฒ€์ƒ‰ ๊ด€๋ จ ๊ธฐ๋Šฅ)

 

์ƒํ’ˆ ์ƒ์„ธ

 

์žฅ๋ฐ”๊ตฌ๋‹ˆ

 

์ฃผ๋ฌธ/๊ฒฐ์ œ

 

์ฃผ๋ฌธ์™„๋ฃŒ

 

๋งˆ์ดํŽ˜์ด์ง€(์ฃผ๋ฌธ์กฐํšŒ)

 

ํ›„๊ธฐ

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

 

์ข‹์•˜๋˜ ์ 

1. ํ˜‘์—…

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

 

2. ๋ฌธ์ œํ•ด๊ฒฐ ๋Šฅ๋ ฅ ํ–ฅ์ƒ

ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฌธ์ œํ•ด๊ฒฐ ๋Šฅ๋ ฅ์ด ๋งŽ์ด ํ–ฅ์ƒํ–ˆ์Œ์„ ๋Š๊ผˆ๋‹ค. ์š”์ฆ˜ ์›Œ๋‚™ ChatGPT์— ๋งŽ์ด ๋ฌผ์–ด๋ณด๊ธฐ๋„ ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๋ถ€๋ถ„์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ console๋กœ ์ถœ๋ ฅํ•ด ๋ณด๋ฉด์„œ ์–ด๋””๊ฐ€ ์ž˜๋ชป๋๋Š”์ง€ ์ฐพ๊ณ  ์Šค์Šค๋กœ ๊ณ ์น˜๋Š” ๊ณผ์ •์—์„œ ํฌ์—ด์„ ๋Š๊ผˆ๊ธฐ ๋•Œ๋ฌธ์— ChatGPT๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค. ํŠนํžˆ ์Šค์Šค๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ JavaScript์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ํ•œ ๋ฒˆ ๋” ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ด์ „์—๋Š” ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๋ฉด ๊ตฌ๊ธ€์— ๋ฐ”๋กœ ์ฐพ์•„๋ณด๊ณ  ๊ทธ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ”๋นด๋‹ค๋ฉด ์ง€๊ธˆ์€ ๋จผ์ € ์—๋Ÿฌ ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์žˆ๋Š” ๋‚˜์˜ ๋ชจ์Šต์„ ๋ณด๋ฉฐ ์กฐ๊ธˆ์€ ์„ฑ์žฅํ•˜์ง€ ์•Š์•˜๋‚˜? ๋ผ๋Š” ์ƒ๊ฐํ•œ๋‹ค. (์ฐฉ๊ฐ์ผ ์ˆ˜๋„ ์žˆ๋‹ค๐Ÿ˜…)

 

์•„์‰ฌ์šด ์ 

1. ํ˜‘์—… ๋„๊ตฌ ํ™œ์šฉ

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

 

2. Git ๋ธŒ๋žœ์น˜ ํ™œ์šฉ

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

 

ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ์ž‘์„ฑํ•œ ๊ธ€

 

[Axios] Axios ์ธํ„ฐ์…‰ํ„ฐ ์ ์šฉํ•˜๊ธฐ

์ธํ„ฐ์…‰ํ„ฐ(Interceptors)๋ž€? then ๋˜๋Š” catch๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ์ „์— ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ๋‹ค. Axios ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ ์šฉํ•˜๋ ค๋Š” ์ด์œ โ“ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์„œ๋ฒ„์— ํ† ํฐ ์ธ์ฆ์„ ํ•„์š”๋กœ ํ•˜๋Š” API ์š”์ฒญ

leeseong010.tistory.com

 

[JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ๊ตฌํ˜„ํ•˜๊ธฐ(Intersection Observer API)

๋ฌดํ•œ ์Šคํฌ๋กค(Infinite Scroll)์ด๋ž€? ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ, ์ฝ˜ํ…์ธ ๊ฐ€ ๊ณ„์† ๋กœ๋“œ๋˜๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX) ๋ฐฉ์‹์ด๋‹ค. ํ•œ ํŽ˜์ด์ง€ ์•„๋ž˜๋กœ ์Šคํฌ๋กค ํ•˜๋ฉด ๋์—†์ด ์ƒˆ๋กœ์šด ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋˜๊ณ  ์ด

leeseong010.tistory.com