Skip to content

๐Ÿ ๋ฒ”๋ธ”๋น„ํŒ€ ์Šคํ„ฐ๋””๋ฃธ ์˜ˆ์•ฝ ํ”Œ๋žซํผ[ROOM:IT]

Notifications You must be signed in to change notification settings

prgrms-web-devcourse-final-project/WEB1_2_BUMBLEBEE_FE

Repository files navigation

๐Ÿ“š ์Šคํ„ฐ๋””๋ฃธ ์˜ˆ์•ฝ ํ”Œ๋žซํผ[ROOM:IT] ๐Ÿ“š

BUMBLEBEE_ROOMIT

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

Room:it์€ ๊ธฐ์กด ์˜ˆ์•ฝ ์‹œ์Šคํ…œ์— ๋ฌธ์ œ์ ์„ ํŒŒ์•…ํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ์ง๊ด€์ ์ธ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์Šคํ„ฐ๋””๋ฃธ ์˜ˆ์•ฝ ๋ฐ ๊ด€๋ฆฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๐Ÿ™‹๐Ÿปโ€โ™€ ROOM:IT ์ด์šฉํ•˜๊ธฐ


โœจ ๊ธฐํš ๋ฐฐ๊ฒฝ

์ตœ๊ทผ ์Šคํ„ฐ๋””๋ฃธ์— ๋Œ€ํ•œ ์ˆ˜์š”๋Š” ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ์กด ์˜ˆ์•ฝ ์‹œ์Šคํ…œ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ์ ์˜ ๊ณต๊ฐ„์„ ์ถ”์ฒœํ•˜๊ฑฐ๋‚˜, ์˜ˆ์•ฝ ๊ณผ์ •์—์„œ์˜ ํŽธ์˜์„ฑ์„ ์ถฉ๋ถ„ํžˆ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

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

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

์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ตœ์ ํ™”๋œ ํ•™์Šต ๊ณต๊ฐ„์„, ์Šคํ„ฐ๋””๋ฃธ ์ œ๊ณต์ž์—๊ฒŒ๋Š” ํšจ์œจ์ ์ธ ์šด์˜ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์œˆ-์œˆ ํ”Œ๋žซํผ์„ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.


โœจ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

  • ๊ธฐํš ๋ฐ ์„ค๊ณ„ : 2024.11.06 ~ 2024.11.17
  • ๊ฐœ๋ฐœ : 2024.11.18 ~ 2024.12.09

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

BUMBLEBEE_ROOMIT (1)

โœ… ์œ„์น˜ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ

์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทผ์ฒ˜์— ์žˆ๋Š” ์Šคํ„ฐ๋””๋ฃธ์„ ์ง€๋„์— ํ‘œ์‹œํ•˜์—ฌ, ์œ„์น˜๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋„๋ฅผ ์ด๋™์‹œํ‚ค๋ฉด, ํ•ด๋‹น ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทผ์ฒ˜ ์Šคํ„ฐ๋””๋ฃธ์„ ๋ฆฌ์ŠคํŠธ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BUMBLEBEE_ROOMIT (1)

โœ… ๋งž์ถคํ˜• ์ถ”์ฒœ ์‹œ์Šคํ…œ

์‚ฌ์šฉ์ž์˜ ์ด์šฉ ๋‚ด์—ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ์Šคํ„ฐ๋””๋ฃธ์„ ์ถ”์ฒœ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BUMBLEBEE_ROOMIT (1)

โœ… ๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋ง

์›ํ•˜๋Š” ์žฅ์†Œ / ๋‚ ์งœ / ์‹œ๊ฐ„ / ์ธ์›์ˆ˜๋ฅผ ์„ ํƒํ•˜์—ฌ ์˜ˆ์•ฝ ๊ฐ€๋Šฅํ•œ ์Šคํ„ฐ๋””๋ฃธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ„ฐ๋””๋ฃธ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ๋„ ์˜ˆ์•ฝ ๊ฐ€๋Šฅํ•œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„, ์ธ์›์ˆ˜๋ฅผ ์„ ํƒ ๋ฐ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BUMBLEBEE_ROOMIT (1)

โœ… 1:1 ์ฑ„ํŒ…

์‚ฌ์šฉ์ž๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ˜ธ์ŠคํŠธ์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
์˜ˆ์•ฝ ๊ด€๋ จ ๋ฌธ์˜๋‚˜ ์ด์šฉ ์‹œ ์š”์ฒญ ์‚ฌํ•ญ์„ ์ฆ‰์‹œ ๋‹ต๋ณ€๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœจ ๊ธฐ์ˆ  ์Šคํƒ

์–ธ์–ด ย 
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ย 
๋นŒ๋“œ ย 
๋ผ์šฐํ„ฐ
์ƒํƒœ๊ด€๋ฆฌ ย  ย 
API ย 
์‹ค์‹œ๊ฐ„ ํ†ต์‹  ย  ย  ย  ย 
์Šคํƒ€์ผ๋ง ย 
ํฌ๋งคํ„ฐ ย 
๋ฆฐํ„ฐ
ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ย 
๋ฐฐํฌ ย  ย 
ํ˜‘์—… ๋„๊ตฌ ย  ย  ย  ย  ย 

โœจ ์•„ํ‚คํ…์ฒ˜

BUMBLEBEE_ROOMIT (1)


โœจ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

๐Ÿ“ฆWEB1_2_BUMBLEBEE_FE
 โ”ฃ ๐Ÿ“‚.github
 โ”ฃ ๐Ÿ“‚public
 โ”ฃ ๐Ÿ“‚src
 โ”ƒ โ”ฃ ๐Ÿ“‚apis //API ์š”์ฒญ ํ•จ์ˆ˜์™€ ๊ด€๋ จ ์„ค์ •์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚assets //ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ •์  ํŒŒ์ผ (์ด๋ฏธ์ง€, ํฐํŠธ, ์•„์ด์ฝ˜ ๋“ฑ)์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚icons
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚images
 โ”ƒ โ”ฃ ๐Ÿ“‚components //๊ณตํ†ต UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ด์€ ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚constants //๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ƒ์ˆ˜๋“ค์„ ์ •์˜ํ•œ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚layouts //์ „์ฒด ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ด์€ ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚pages //๋ผ์šฐํŒ… ๋‹จ์œ„์˜ ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚MainPage 
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚components //ํ•ด๋‹น ํŽ˜์ด์ง€ ๋‚ด ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚hooks //ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ๋˜๋Š” custom hooks๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œindex.tsx
 โ”ƒ โ”ฃ ๐Ÿ“‚routes //๋ผ์šฐํŒ… ๊ฒฝ๋กœ ์„ค์ •๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ ๋‹ด์€ ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚store //์ „์—ญ ์ƒํƒœ ๋กœ์ง์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚styles //์ „์—ญ ์Šคํƒ€์ผ์ด๋‚˜ ์Šคํƒ€์ผ ๊ด€๋ จ ์„ค์ • ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚typings //์ „์—ญ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํƒ€์ž…๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“‚utils //๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”
 โ”ƒ โ”ฃ ๐Ÿ“œindex.css
 โ”ƒ โ”ฃ ๐Ÿ“œmain.tsx
 โ”ƒ โ”— ๐Ÿ“œvite-env.d.ts
 โ”ฃ ๐Ÿ“œ.env
 โ”ฃ ๐Ÿ“œ.env.default
 โ”ฃ ๐Ÿ“œ.eslintrc.cjs
 โ”ฃ ๐Ÿ“œ.gitignore
 โ”ฃ ๐Ÿ“œ.prettierrc
 โ”ฃ ๐Ÿ“œREADME.md
 โ”ฃ ๐Ÿ“œindex.html
 โ”ฃ ๐Ÿ“œpackage-lock.json
 โ”ฃ ๐Ÿ“œpackage.json
 โ”ฃ ๐Ÿ“œpostcss.config.js
 โ”ฃ ๐Ÿ“œtailwind.config.ts
 โ”ฃ ๐Ÿ“œtsconfig.app.json
 โ”ฃ ๐Ÿ“œtsconfig.eslint.json
 โ”ฃ ๐Ÿ“œtsconfig.json
 โ”ฃ ๐Ÿ“œtsconfig.node.json
 โ”— ๐Ÿ“œvite.config.ts

โœจ ๊ฐœ๋ฐœ ๋ฌธ์„œ

ERD

BUMBLEBEE_ROOMIT (1)

API ๋ช…์„ธ์„œ
์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ
์ปจ๋ฒค์…˜

โœจ ํŒ€ ์†Œ๊ฐœ

FE FE FE
Team Leader Git Admin Developer & Clerk
์ด์€์ˆ˜ ์กฐํ˜„์ง„ ์ตœ์„ฑ๋ น
๋ฉ”์ธ ํŽ˜์ด์ง€ (์ง€๋„)
์Šคํ„ฐ๋””๋ฃธ ๊ฒ€์ƒ‰ ๋ฐ ์กฐํšŒ ํŽ˜์ด์ง€
์˜ˆ์•ฝ ๋ฐ ๊ฒฐ์ œ ํŽ˜์ด์ง€
1:1 ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
์‚ฌ์šฉ์ž / ์‚ฌ์—…์ž ๋งˆ์ดํŽ˜์ด์ง€
๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€
์•Œ๋ฆผ ํŽ˜์ด์ง€
์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ
์‚ฌ์šฉ์ž / ์‚ฌ์—…์ž ํšŒ์›๊ฐ€์ž…
์‚ฌ์šฉ์ž (์†Œ์…œ) / ์‚ฌ์—…์ž ๋กœ๊ทธ์ธ
์‚ฌ์—…์žฅ ๋“ฑ๋ก ๋ฐ ์ˆ˜์ • ํŽ˜์ด์ง€
์‚ฌ์—…์žฅ ์ƒ์„ธ ํŽ˜์ด์ง€
BE BE BE BE
Team Leader PM AWS Admin Developer & Clerk
๊ฐ•์‹œ์˜ ์ด์ค‘ํ˜ธ ์ด์‹œํ˜„ ์ด์šฉ์ค€
์‚ฌ์—…์ž ๊ด€๋ฆฌ
์Šคํ„ฐ๋””๋ฃธ ์ž‘์„ฑ ๋ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€
(๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋ง)
Docker ์ปจํ…Œ์ด๋„ˆํ™”
ํ…Œ์ŠคํŠธ ํˆด ์—ฐ๊ฒฐ (K6, Grafana)
SSL ์ธ์ฆ
SpringSecurity / OAuth2
Refresh Token
Rotation ๋ ˆ๋””์Šค ์ €์žฅ
๋ถ„์‚ฐ๋ฝ์„ ํ†ตํ•œ ๋™์‹œ์„ฑ ์ œ์–ด
๊ฒฐ์ œ ์‹œ์Šคํ…œ
์‚ฌ์šฉ์ž ๋งˆ์ดํŽ˜์ด์ง€
๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€
์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ (SSE)
CI/CD
๋จธ์‹  ๋Ÿฌ๋‹ ์ถ”์ฒœ ์‹œ์Šคํ…œ
(Hybrid filtering)
์‚ฌ์—…์žฅ ๋“ฑ๋ก ๋ฐ ์ƒ์„ธ ํŽ˜์ด์ง€
(์นด์นด์˜ค ์ง€๋„ api)
๋ ˆ๋””์Šค pub/sub, ์ž„์‹œ ์ €์žฅ์†Œ
ํ™œ์šฉํ•œ ์‹ค์‹œ๊ฐ„ 1๋Œ€ 1 ์ฑ„ํŒ…
(WebSocket, STOMP)

About

๐Ÿ ๋ฒ”๋ธ”๋น„ํŒ€ ์Šคํ„ฐ๋””๋ฃธ ์˜ˆ์•ฝ ํ”Œ๋žซํผ[ROOM:IT]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages