Skip to content

narang-trip/frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๋ชฉ์ฐจ

  1. ์„œ๋น„์Šค ์†Œ๊ฐœ
  2. ๊ธฐํš ๋ฐฐ๊ฒฝ
  3. ๊ฐœ๋ฐœ ๋ฉค๋ฒ„
  4. ๊ธฐ๋Šฅ ์†Œ๊ฐœ
  5. ์‹œ์—ฐ ์˜์ƒ
  6. ๊ธฐ์ˆ  ์Šคํƒ
  7. ํ”„๋กœ์ ํŠธ ์ผ์ • ๋ฐ ์‚ฐ์ถœ๋ฌผ
  8. ํšŒ๊ณ 



๐Ÿ›ซ์„œ๋น„์Šค ์†Œ๊ฐœ

์„œ๋น„์Šค ์„ค๋ช…

๊ฐœ์š”

  • ํ•œ์ค„ ์†Œ๊ฐœ : ์‚ฌ์šฉ์ž ๋งž์ถคํ˜• ์—ฌํ–‰ ๋™ํ–‰ ๋ชจ์ง‘ ํ”Œ๋žซํผ
  • ์„œ๋น„์Šค ๋ช… : ๋‚˜๋ž‘

ํƒ€๊ฒŸ ๐ŸŽฏ

  • ์‹œ๊ฐ„๊ณผ ๋ˆ์€ ์ค€๋น„๋˜์–ด ์žˆ๋Š”๋ฐ ์ง€์ธ๊ณผ ์‹œ๊ฐ„ ๋งž์ถ”๊ธฐ ํž˜๋“  ์‚ฌ๋žŒ๋“ค

  • ์ž์‹ ์ด ๋ถ€์กฑํ•œ ์—ญํ• ์„ ์ฑ„์›Œ ์™„์„ฑ๋„ ์žˆ๋Š” ์—ฌํ–‰์„ ๊ฐ€๊ณ ์‹ถ์€ ์‚ฌ๋žŒ๋“ค

  • ์žฌ๋ฏธ์žˆ๊ณ  ์ƒˆ๋กœ์šด ์—ฌํ–‰์„ ๊ฐ€๊ณ ์‹ถ์€ ์‚ฌ๋žŒ๋“ค

    ๐Ÿ‘‰ ์—ฌํ–‰์„ ๊ฐ€๊ณ  ์‹ถ์€ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค!

๐Ÿ›ซ๊ธฐํš ๋ฐฐ๊ฒฝ

๋ฐฐ๊ฒฝ

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

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

๋ชฉ์  โ˜

์—ฌํ–‰์„ ๋– ๋‚˜๊ณ  ์‹ถ์„ ๋•Œ, ์–ธ์ œ๋“  ๋‚˜์—๊ฒŒ ํ•„์š”ํ•œ ๋™ํ–‰์„ ๊ตฌํ•ด์„œ ๋– ๋‚˜์ž!

์˜์˜

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

๐Ÿ›ซ๊ฐœ๋ฐœ ๋ฉค๋ฒ„ ๋ฐ ์ผ์ • ์†Œ๊ฐœ

๐Ÿ“† ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

24.01.08 ~ 24.02.16

  • ๊ธฐํš ๋ฐ ์„ค๊ณ„ : 24.01.08 ~ 24.01.17
  • ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„ : 24.01.18 ~ 24.02.15
  • ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์‚ฐ์ถœ๋ฌผ ์ •๋ฆฌ : 24.02.14 ~ 24.02.16
  • ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง : 24.02.23 ~ 24.02.29



๐Ÿ‘‘ ์กฐ์šฉํ™˜



โ›‘ ๊ตฌ๋ณธ์Šน
(Front-End)



โ›‘ ๋…ธ์„ธํฌ
(Front-End)



โ›‘ ๊น€์˜์„ญ
(Back-End)



โ›‘ ์†ก์œค์žฌ
(Back-End)



โ›‘ ์กฐ์˜ˆ์ง„
(Back-End)

UI/UX
์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ & ์ฑ„ํŒ… ๊ธฐ๋Šฅ
WebSocket & Stomp ํ†ต์‹ 
FE ์ธํ”„๋ผ ๋‹ด๋‹น
ํ”„๋กœ์ ํŠธ ๊ณ„ํš ์ˆ˜๋ฆฝ & ์ผ์ • ๊ด€๋ฆฌ
UI/UX
React
UI/UX
React
REST API
CI/CD
Infra
REST API
Database
REST API
Database

๐Ÿ›ซ๊ธฐ๋Šฅ ์†Œ๊ฐœ

๊ธฐ๋Šฅ์†Œ๊ฐœ-01 ๊ธฐ๋Šฅ์†Œ๊ฐœ-02 ๊ธฐ๋Šฅ์†Œ๊ฐœ-03 ๊ธฐ๋Šฅ์†Œ๊ฐœ-04 ๊ธฐ๋Šฅ์†Œ๊ฐœ-05 ๊ธฐ๋Šฅ์†Œ๊ฐœ-06 ๊ธฐ๋Šฅ์†Œ๊ฐœ-07 ๊ธฐ๋Šฅ์†Œ๊ฐœ-08 ๊ธฐ๋Šฅ์†Œ๊ฐœ-09 ๊ธฐ๋Šฅ์†Œ๊ฐœ-10 ๊ธฐ๋Šฅ์†Œ๊ฐœ-11

๐Ÿ›ซ์‹œ์—ฐ ์˜์ƒ

ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ

์‹œ์—ฐ์˜์ƒ_01_๋กœ๊ทธ์ธ

๋ฉ”์ธํ™”๋ฉด

์‹œ์—ฐ์˜์ƒ_02_๋ฉ”์ธ

๋งˆ์ดํŽ˜์ด์ง€

์‹œ์—ฐ์˜์ƒ_03_๋งˆ์ดํŽ˜์ด์ง€

๋™ํ–‰๊ธ€ ์ž‘์„ฑ

์‹œ์—ฐ์˜์ƒ_04_๋™ํ–‰๊ธ€์ž‘์„ฑ

๋™ํ–‰๊ธ€ ํ•„ํ„ฐ๋ง

์‹œ์—ฐ์˜์ƒ_05_๋™ํ–‰๊ธ€ํ•„ํ„ฐ๋ง

๋™ํ–‰ ์‹ ์ฒญํ•˜๊ธฐ

์‹œ์—ฐ์˜์ƒ_06_๋™ํ–‰์‹ ์ฒญ

์‹ ์ฒญ ํ˜„ํ™ฉ ๋ณด๊ธฐ

์‹œ์—ฐ์˜์ƒ_07_์‹ ์ฒญํ˜„ํ™ฉ

์•Œ๋ฆผ ํ›„ ์‹ ์ฒญ ์ˆ˜๋ฝ

์‹œ์—ฐ์˜์ƒ_08_์‹ ์ฒญ์ˆ˜๋ฝ

๊ณ„ํšํ‘œ ๋งŒ๋“ค๊ธฐ

์‹œ์—ฐ์˜์ƒ_09_๊ณ„ํšํ‘œ

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ

์‹œ์—ฐ์˜์ƒ_10_์ฑ„ํŒ…

๋ฆฌ๋ฒ„์Šค ์ธํ”ผ๋‹ˆํ‹ฐ ์Šคํฌ๋กค์„ ํ†ตํ•œ ๊ณผ๊ฑฐ ์ฑ„ํŒ… ๋ฐ์ดํ„ฐ ์กฐํšŒ

์‹œ์—ฐ์˜์ƒ_11_์—ญ์ธํ”ผ๋‹ˆํ‹ฐ

๋งˆ์ผ๋ฆฌ์ง€ ์ถฉ์ „

์‹œ์—ฐ์˜์ƒ_12_๋งˆ์ผ๋ฆฌ์ง€

๐Ÿ›ซ๊ธฐ์ˆ  ์Šคํƒ

1. Web Socket

Web Socket์ด๋ž€?

webSocket

์›น ์†Œ์ผ“์€ ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ๋ฉ”์„ธ์ง€๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

Socket Connection์„ ์œ ์ง€ํ•œ ์ฑ„, ์‹ค์‹œ๊ฐ„์œผ๋กœ ์–‘๋ฐฉํ–ฅ ํ†ต์‹  ํ˜น์€ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์ƒํƒœ ํ”„๋กœํ† ์ฝœ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ•œ ๋ฒˆ ์—ฐ๊ฒฐ๋˜๋ฉด ๊ฐ™์€ ์—ฐ๊ฒฐ์„ ์ด์šฉํ•ด ํ†ต์‹ ํ•˜๊ธฐ ๋Œ€๋ฌธ์— TCP ์ปค๋„ฅ์…˜ ๋น„์šฉ์„ ์•„๋‚„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์šฉ

๋‚˜๋ž‘ ์—์„œ๋Š” ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ๊ณต์œ ๋ฅผ ์œ„ํ•ด ๋ชจ์ง‘๊ธ€ ๋ณ„ ์ฑ„ํŒ…๋ฐฉ ๊ธฐ๋Šฅ์— webSocket์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

2. SSE(Server-Sent Event)

SSE๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹จ๋ฑกํ–ฅ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ๋ฅผ ์ „์†กํ•˜๋Š” ์›น ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

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

์ ์šฉ

๋‚˜๋ž‘ ์—์„œ๋Š” ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ๊ณต์œ ๋ฅผ ์œ„ํ•ด ์‹ ์ฒญ ์š”์ฒญ, ์ˆ˜๋ฝ, ๊ฑฐ์ ˆ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์— SSE๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

3. gRPC

gRPC

gRPC๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ ์†Œ์Šค ์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ(RPC) ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค

๊ฐ Service๋Š” ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋…์ ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ๋‹ค๋ฅธ Service๋Š” ํ•ด๋‹น ์„œ๋น„์Šค์— ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

gRPC๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋Š” ํšจ์œจ์ ์ธ ์ด์ง„ ์ง๋ ฌํ™” ํฌ๋งท์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ํšจ์œจ์  ์ „์†ก๊ณผ ์ €์žฅ์„ ๋„์™€์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋ฅผ ํ†ตํ•ด Server์˜ ์ž์›์„ Client(Stub)๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gRPC๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์„œ๋น„์Šค ๊ฐ„์—๋„ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. gRPC๋Š” ์–‘๋ฐฉํ–ฅ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•˜์—ฌ ์š”์ฒญ ์—†์ด๋„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์ŠคํŠธ๋ฆผ์„ ์—ด์–ด ๋‹ค์ค‘ Stub ์ŠคํŠธ๋ฆฌ๋ฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ ์šฉ

๋‚˜๋ž‘ ์—์„œ๋Š” ๊ฐ ์„œ๋น„์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ๊ฐ€ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ž์›์˜ ํšจ์œจ์  ์‚ฌ์šฉ์„ ์œ„ํ•ด์„œ Micro Service ์‚ฌ์ด ํ†ต์‹ ์— gRPC๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

3. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ





์ƒ์„ธ ๊ธฐ์ˆ ์Šคํƒ ๋ฐ ๋ฒ„์ „
๊ตฌ๋ถ„ ๊ธฐ์ˆ ์Šคํƒ ์ƒ์„ธ๋‚ด์šฉ ๋ฒ„์ „
๊ณตํ†ต ํ˜•์ƒ๊ด€๋ฆฌ Gitlab -
์ด์Šˆ๊ด€๋ฆฌ Jira -
์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ Mattermost, Notion -
BackEnd DB MySQL
DB MongoDB
JPA -
Java OpenJDK 17.0.9
Spring Spring 5.3.6
Spring Boot 3.2.1
IDE IntelliJ 23.3.2
Cloud Storage AWS S3 -
Build Gradle 7.3.2
WebRTC Kurento Media Server 6.16
WebRTC Kurento -
gRPC gRPC 1.35.0
protobuf 3.14.0
protobufPlugin 0.8.14
API Docs Swagger2 3.0.0
FrontEnd HTML5 -
CSS3 -
JavaScript(ES6) -
React React 18.2.0
React react-router-dom 6.21.2
@reduxjs/toolkit 2.0.1
react-beautiful-dnd 13.1.1
react-calendar 4.8.0
react-datepicker 5.0.0
tailwindCSS 3.4.1
WebSocket @stomp/stompjs -
WebSocket stompjs -
WebSocket sockjs-client 1.6.1
IDE Visual Studio Code 1.85.2
Server ์„œ๋ฒ„ AWS EC2 -
๋ฐฐํฌ Docker 25.10.1
๋ฐฐํฌ Jenkins 2.444

4. CI/CD ๋ฐฐํฌ ํ™˜๊ฒฝ

๊ธฐ์ˆ ์Šคํƒ_02

๐Ÿ›ซํ”„๋กœ์ ํŠธ ์‚ฐ์ถœ๋ฌผ

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

1. Git flow


Git flow ์‚ฌ์šฉ์„ ์œ„ํ•ด ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค์˜ git flow์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. front ์™€ back ์œผ๋กœ ๋‚˜๋ˆ„์–ด faature์˜ ํ•˜์œ„ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ develop ๋ธŒ๋žœ์น˜์™€ develop_frontend ๋ธŒ๋žœ์น˜๋กœ merge ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
commit message๋Š” feat: ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋‚ด์šฉ ๊ณผ ๊ฐ™์ด ํ†ต์ผํ•˜์—ฌ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

2. Jira


๋งค์ฃผ ์›”์š”์ผ ์˜ค์ „ ๊ธˆ์ฃผ์˜ ์ง„ํ–‰ ์ด์Šˆ๋ฅผ ๋ฐฑ๋กœ๊ทธ์— ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ์ „์ฃผ์— ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•œ ์ด์Šˆ๋‚˜, ์•ž์œผ๋กœ ์ง„ํ–‰ํ•  ์ด์Šˆ๋“ค์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • ์—ํ”ฝ์€ ๊ฐœ๋ฐœ, ๋ฏธํŒ…, ํ•™์Šต ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํ† ๋ฆฌ๋Š” ๋ช…ํ™•ํ•œ ์ „๋‹ฌ์„ ์œ„ํ•˜์—ฌ API ๋ช…์„ธ์„œ ์ž‘์„ฑ์™€ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž‘์—…ํ˜„ํ™ฉ์„ ์ง€๋ผ์— ๋ฐ˜์˜ํ•จ์œผ๋กœ์จ ๊ฐ ํŒ€์›์ด ์–ด๋–ค ์ž‘์—…์„ ํ•˜๊ณ ์žˆ๋Š”์ง€, ์ผ์ •์— ๋”œ๋ ˆ์ด๊ฐ€ ์žˆ๋Š”์ง€ ํ•œ ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์‚ฐ์ถœ๋ฌผ

1. Figma

figma

2. ERD

erd


3. API ๋ฌธ์„œ

api

4. Frontend Refactoring

โœ… ์„ฑ๋Šฅ

depCheck : ์“ฐ์ง€ ์•Š๋Š” dependency check ํ›„ uninstall ๋กœ ์ „์ฒด ํ”„๋กœ์ ํŠธ ๊ฐ€๋ณ๊ฒŒ ํ•˜๊ธฐ
vite-plugin-compression2 : ์„ค์น˜ํ›„ vite.config.js ์„ค์ • ๋ณ€๊ฒฝ

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import compression from 'vite-plugin-compression2';

export default defineConfig({
  server: {
    host: true,
    port: 3000,
  },
  define: {
    global: {},
  },
  plugins: [
    react(),
    compression( {
      include: [/\.(js)$/, /\.(css)$/],
      threshold: 1000,
    })
  ],
});

์ดํ›„ ์••์ถ•์ด ์ž˜ ๋˜์ง€ ์•Š์•„ ํ›„์ˆ ํ•œ nginx.conf gzip setting์„ ์ถ”๊ฐ€ํ•ด์„œ ํ•ด๊ฒฐํ•ด์คŒ nginx.conf gzip setting: ํ…์ŠคํŠธ ์••์ถ• ํ™œ์„ฑํ™”๋กœ ์ดˆ๊ธฐ ๋กœ๋”ฉ text ์šฉ๋Ÿ‰์„ ์ค„์—ฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ nginx.conf gzip : ํ…์ŠคํŠธ ์••์ถ• ํ™œ์„ฑํ™”๋กœ ์ดˆ๊ธฐ ๋กœ๋”ฉ text ์šฉ๋Ÿ‰์„ ์ค„์—ฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ event-source ๋ฐ datepicker ์— ์‚ฌ์šฉ๋˜๋Š” babel ๋ฐ polyfill๋กœ ์ธํ•ด ์„ฑ๋Šฅ์ด ์กฐ๊ธˆ ๋–จ์–ด์ง

โœ… ์ ‘๊ทผ์„ฑ

font-display: swap ์„ ํ†ตํ•ด ํฐํŠธ ์„ค์ • ์ „ textํ‘œ์‹œ๋กœ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ
์‚ฌ์ดํŠธ ๋ฒ„ํŠผ, ๋ฉ”์ธ ์ปจ์…‰ ์ƒ‰๊น” ๋ณ€๊ฒฝ์œผ๋กœ ์‚ฌ์šฉ์ž ์ ‘๊ทผ์„ฑ ํ–ฅ์ƒ

โœ… ๊ถŒ์žฅ์‚ฌํ•ญ

์ดˆ๊ธฐ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅ๋œ DB ์ƒ์˜ ์ด๋ฏธ์ง€์™€ front์—์„œ ํ‘œํ˜„ํ•˜๋Š” ๋น„์œจ์ด ๋‹ฌ๋ผ ์ ์ˆ˜๊ฐ€ ์กฐ๊ธˆ ๋–จ์–ด์ง

โœ… ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”

  1. ์ด๋ฏธ์ง€ ๋น„์œจ
  • ์›๋ณธ ์ด๋ฏธ์ง€ ๋น„์œจ๊ณผ ์„ค์ •ํ•œ ์ด๋ฏธ์ง€ ๋น„์œจ์ด ๋‹ฌ๋ผ์„œ, ์ด๋ฏธ์ง€ ๋น„์œจ์„ ๋งž์ถ”๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์„œ ํ•ด๊ฒฐ
<img
 src="/narang_logo.webp"
 className="w-11 h-auto hover:cursor-pointer"
 onClick={navigateHome}
 alt="Home"
/>
  1. meta ์„ค๋ช… ์ถ”๊ฐ€
  • ๋ฌธ์„œ์— ๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
  • ๋ช…์‹œ์ ์œผ๋กœ ๋ฉ”ํƒ€ ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด SEO (Search Engine Optimization) ์ธก๋ฉด์—์„œ ์œ ๋ฆฌ
  <meta name="description" content="๋‚˜๋ž‘์€ ์ปจ์…‰์— ๋งž์ถ˜ ์—ฌํ–‰ ๋™ํ–‰์„ ๋ชจ์ง‘ํ•˜๋Š” ์›น์‚ฌ์ดํŠธ ์ž…๋‹ˆ๋‹ค. ํ•จ๊ป˜ ๊ณ„ํš์„ ์ˆ˜์ •ํ•˜๋ฉฐ ์ตœ๊ณ ์˜ ์—ฌํ–‰์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”." />
  <meta name="keywords" content="๋‚˜๋ž‘, NARANG, ๋™ํ–‰ ๋ชจ์ง‘, ์—ฌํ–‰ ๊ณ„ํš ์ž‘์„ฑ, ์—ฌํ–‰ ์ •๋ณด" />
  1. robots.txt ํŒŒ์ผ ์ถ”๊ฐ€
  • ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— robots.txtํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์›น ํฌ๋กค๋Ÿฌ์—๊ฒŒ ์›น ์‚ฌ์ดํŠธ์˜ ์–ด๋–ค ๋ถ€๋ถ„์„ ํฌ๋กค๋งํ•  ์ˆ˜ ์žˆ๊ณ  ์–ด๋–ค ๋ถ€๋ถ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š”์ง€ ์•Œ๋ ค์ฃผ๋„๋ก ํ•จ

๐Ÿ’ก ๊ฒฐ๊ณผ

FCP 1.5์ดˆ -> 0.7์ดˆ๋กœ ์•ฝ 53%ํ–ฅ์ƒ

LCP 2.5์ดˆ -> 1.6์ดˆ๋กœ ์•ฝ 36%ํ–ฅ์ƒ

Total Blocking Time(TBT) 80ms -> 40ms ๋กœ 50%๋กœ ์‹œ๊ฐ„ ๋‹จ์ถ•

Speed Index 1.9s -> 1.4s ๋กœ ์•ฝ 26%ํ–ฅ์ƒ

About

narang-trip-frontend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages