Skip to content

Team-Deep-Diver/dashboard-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

91 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์นด๋“œ๋“ค์„ ํ•œ ๋ˆˆ์— ์‹œ๊ฐ์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋Œ€์‹œ๋ณด๋“œ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” ์นด๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฉ”๋ชจ, ์‚ฌ์ง„, ํ•ด์•ผํ•  ์ผ๋“ค์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์นด๋“œ๋Š” ์ˆ˜์ •ํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์นด๋“œ๋“ค์€ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ๋งํฌ: https://www.slh-dashboard.online
Server repository : https://github.com/Team-Deep-Diver/dashboard-server

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-11-02 แ„‹แ…ฉแ„’แ…ฎ 5 15 02


๋ชฉ์ฐจ

1. ย  ๐Ÿ“† ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

2. ย  ๐Ÿ‘ฉโ€๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ

3. ย  ๐Ÿ’ป ์‹คํ–‰ ๋ฐฉ๋ฒ•

4. ย  ๐Ÿ”ฅ ๋„์ „ ๊ณผ์ œ

5. ย  ๐Ÿ“ฃ ์ฃผ์š” ๊ธฐ๋Šฅ

6. ย  ๐Ÿ™ ์†Œ๊ฐ


๐Ÿ“† ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

๊ธฐ๊ฐ„ : 2022.10.10 ~ 2022.10.28 (์ด 19์ผ)

  • Week1
    • ์•„์ด๋””์–ด ์ˆ˜์ง‘ ๋ฐ ํ™•์ •
    • ๊ธฐ์ˆ ์Šคํƒ ๊ฒ€์ฆ
    • DB ๋ชจ๋ธ๋ง, ์Šคํ‚ค๋งˆ ๊ฒ€ํ† 
    • API ๋ฌธ์„œ ์ž‘์„ฑ
    • User Flow ์‹œ๋‚˜๋ฆฌ์˜ค ์ž‘์„ฑ
    • Figma๋ฅผ ์‚ฌ์šฉํ•œ Mockup ์ œ์ž‘
    • ์นธ๋ฐ˜ ํ‹ฐ์ผ“ ์ƒ์„ฑ
  • Week 2 ~ Week 3
    • ๊ฐœ๋ฐœ
    • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
    • ๋ฒ„๊ทธ ์ˆ˜์ •
  • Week 4
    • ์œ ์ง€ ๋ณด์ˆ˜ ๋ฐ ๋ฆฌํŒฉํ† ๋ง

๐Ÿ‘ฉโ€๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ

Frontend

  • React
  • React-router-dom
  • react-redux
  • styled-components
  • framer-motion

Backend

  • Node.js
  • Express
  • MongoDB
  • Mongoose

Etc

  • socket.io

๐Ÿ’ป ์‹คํ–‰ ๋ฐฉ๋ฒ•

Front

ํด๋ผ์ด์–ธํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ๋ฐ›์Šต๋‹ˆ๋‹ค.

git clone https://github.com/Team-Deep-Diver/dashboard-client.git

ํ”„๋กœ์ ํŠธ ํด๋” root ์œ„์น˜์— .env ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

REACT_APP_SERVER_REQUEST_HOST
REACT_APP_SOCKET_SERVER_HOST

client ํ”„๋กœ์ ํŠธ ํด๋” ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

npm install
npm start

Back

์„œ๋ฒ„ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ๋ฐ›์Šต๋‹ˆ๋‹ค.

git clone https://github.com/Team-Deep-Diver/dashboard-server.git

ํ”„๋กœ์ ํŠธ ํด๋” root ์œ„์น˜์— .env ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

PORT
SOCKET_CLIENT_HOST
MONGOOSE_URL
JWT_SECRET
SESSION_SECRET

server ํ”„๋กœ์ ํŠธ ํด๋” ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

npm install
npm run dev

๐Ÿ”ฅ ๋„์ „ ๊ณผ์ œ

1. ํšจ์œจ์ ์ธ DB ๊ด€๋ฆฌ

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

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ๋‹ฌ(30์ผ)์ด๋ผ๋Š” ๊ธฐ๊ฐ„์ด ์„ค์ •๋œ ์นด๋“œ๋ฅผ ์ƒ์„ฑํ•œ ํ›„, 28์ผ์ด ์ง€๋‚œ ์‹œ์ ์— ๋‹ค์‹œ ์›น์„ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด, ์œ„ ๋‘ ๋กœ์ง์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฐจ์ด๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Snapshot ๋ชจ๋‘ ์ƒ์„ฑ ( ๊ธฐ์กด ๋กœ์ง ) Snapshot ๋ณ„๋„ ์ƒ์„ฑ ( ์ˆ˜์ • ๋กœ์ง )
์ƒ์„ฑ๋œ Snapshot ๊ฐœ์ˆ˜ 30๊ฐœ 2๊ฐœ
Snapshot ์ƒ์„ฑ ์‹œ์  Card ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋‹น์‹œ, ์นด๋“œ์— ์„ค์ •๋œ ๊ธฐ๊ฐ„(30์ผ) ๋งŒํผ Snapshot ๋ฐ์ดํ„ฐ ๋ชจ๋‘ ์ƒ์„ฑ Card ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ์—๋Š” ํ•ด๋‹น ๋‚ ์งœ์˜ Snapshot๋งŒ ์ƒ์„ฑ. ์ดํ›„ ์‚ฌ์šฉ์ž์˜ ์žฌ๋ฐฉ๋ฌธ์‹œ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ Snapshot ๋ฐ์ดํ„ฐ(1์ผ์ž)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•ด๋‹น ๋‚ ์งœ(28์ผ์ž)์˜ Snapshot ์ƒ์„ฑ
์นด๋“œ์˜ ์ˆ˜์ • ์‚ฌํ•ญ ๋ฐ˜์˜ 28์ผ์ž Snapshot์— ์ˆ˜์ • ๋ฐ˜์˜. (1~27์ผ์ž Snapshot์€ ์ค‘๋ณต๋œ ๋‚ด์šฉ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง) 28์ผ์ž Snapshot์— ์ˆ˜์ • ๋ฐ˜์˜. (๋‹ฌ๋ ฅ ๋‚ด ๋‚ ์งœ ์ด๋™์‹œ, 2~27์ผ์ž ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ 1์ผ์ž Snapshot์„ ๋ฐ”ํƒ•์œผ๋กœ ์ œ๊ณต๋จ)

์œ„ ๊ณผ์ •์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ๋‹ค๋ค„๋ณด๋Š” ๊ธฐํšŒ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. mongoose query์˜ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ ์šฉํ•ด๋ณด๋ฉฐ, ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ๋กœ ํšจ์œจ์ ์ธ DB ๊ด€๋ฆฌ๋ฅผ ์ด๋ฃจ๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ผผ๊ผผํ•˜๊ฒŒ DB ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‹ค๋ฃจ๋Š” ์ž์„ธ ์—ญ์‹œ ์ค‘์š”ํ•˜๋‹ค๋Š” ์ ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


2. DND ๊ตฌํ˜„ ( Drag and Drop )

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

DND๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉฐ ์ €ํฌ๊ฐ€ ์ง‘์ค‘ํ–ˆ๋˜ ํ•ต์‹ฌ 3๊ฐ€์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. drag and drop ์ด๋ฒคํŠธ : onDragStart์™€ onDrag, ๊ทธ๋ฆฌ๊ณ  onDragEnd ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์นด๋“œ์˜ ์›€์ง์ž„์„ ์บ์น˜ํ–ˆ์œผ๋ฉฐ, ์ตœ์ข… ์ขŒํ‘œ๋ฅผ DB์— ์—…๋ฐ์ดํŠธํ•จ์œผ๋กœ์จ ํŽ˜์ด์ง€๋ฅผ refresh ํ•˜์—ฌ๋„ ์นด๋“œ์˜ ์œ„์น˜๊ฐ€ ์œ ์ง€๋  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. grid์— ๋งž๊ฒŒ ์ขŒํ‘œ๊ฐ’ ์žฌ์„ค์ • : grid ํ•œ ์นธ ์‚ฌ์ด์ฆˆ์ธ 70px์„ ๊ธฐ์ค€์œผ๋กœ, dashboard ๋‚ด ์ขŒํ‘œ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์™ผ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๊ฐ€๋กœ 210px, ์„ธ๋กœ 140px ๊ฑฐ๋ฆฌ์— ์œ„์น˜ํ•œ ์นด๋“œ๋Š” (3, 2)์˜ ์ขŒํ‘œ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ์‚ฌ์šฉ์ž์˜ DND ์ด๋ฒคํŠธ๊ฐ€ ๋ฉˆ์ถ˜ ์ง€์ ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ขŒํ‘œ๊ฐ’์„ ์ฐพ์•„ ์นด๋“œ์˜ ์œ„์น˜๊ฐ’์„ ์žฌ์„ค์ •ํ•œ ํ›„ ๋ชจ์…˜์— ๋ฐ˜์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. ์นด๋“œ์˜ ๋ถ€๋“œ๋Ÿฌ์šด ์›€์ง์ž„ : Framer motion์˜ drag ์ œ์Šค์ฒ˜๋ฅผ ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ฌ ๋ฐ ์‚ฌ์ด๋“œ๋ฐ” ๋ชจ์…˜์— ์ ์šฉํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ ‰์…˜์— ํ†ต์ผ๊ฐ์„ ์ฃผ๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

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


3. ๊ถŒํ•œ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„

๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ GUEST, MEMBER, ADMIN 3๊ฐœ์˜ ๊ถŒํ•œ์œผ๋กœ ๋‚˜๋ˆ„์–ด CRUD๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐํš ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ๋Š” MEMBER ๊ถŒํ•œ๋งŒ ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค.

MEMBER ๊ถŒํ•œ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํšŒ์› ๊ฐ€์ž… ํ›„์— ๋ถ€์—ฌ๋˜๋Š” ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๋Š” ํšŒ์› ๊ฐ€์ž…์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํ—ˆ๋“ค์„ ๋‚ฎ์ถ”๊ณ ์ž ํšŒ์›๊ฐ€์ž… & ๋กœ๊ทธ์ธ ํ•˜์ง€ ์•Š๊ณ ๋„ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” GUEST ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ์œ ์ €๋“ค์ด ๋ชจ์ธ ๊ทธ๋ฃน์ด ์žˆ๊ณ  ๊ทธ๋ฃน์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ํŒ€ ๋‚ด ๋…ผ์˜๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋Œ€์‹œ๋ณด๋“œ ์„œ๋น„์Šค์—์„œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๋ฉค๋ฒ„๋ฅผ ์Šน์ธํ•˜๊ณ  ํƒˆํ‡ด์‹œํ‚ค๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ €ํฌ๋„ ์‹ค์ œ ์„œ๋น„์Šค์™€์˜ ์œ ์‚ฌ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ADMIN ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ถŒํ•œ์ด ๋Š˜์–ด๋‚จ์— ๋”ฐ๋ผ ๊ฐ ๊ถŒํ•œ์— ๋”ฐ๋ผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์„ ์ƒ์ดํ•˜๊ฒŒ ์„ค์ •ํ•  ํ•„์š”๋ฅผ ๋А๊ผˆ๊ณ  ๊ทธ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ๋“ค๋„ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ฐ ๊ถŒํ•œ์˜ ์—ญํ• ๊ณผ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๊ถŒํ•œ ์—ญํ•  ๊ธฐ๋Šฅ
GUEST ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์•„๋„ ์„œ๋น„์Šค์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์†๋‹˜ ๊ถŒํ•œ ์นด๋“œ ์ƒ์„ฑ, ์นด๋“œ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ, ํŽ˜์ด์ง€ ์ดํƒˆ ์‹œ ์ƒ์„ฑํ•œ ์นด๋“œ ์ •๋ณด ์‚ญ์ œ, ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๋กœ ์ด๋™
MEMBER ์›ํ•˜๋Š” ๊ทธ๋ฃน์— ์‹ ์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ธ ๊ทธ๋ฃน ๊ฒ€์ƒ‰, ๊ทธ๋ฃน ์ฐธ๊ฐ€ ์‹ ์ฒญ, ์นด๋“œ ์ƒ์„ฑ, ์นด๋“œ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ, ๋‚ด ๊ทธ๋ฃน ํ˜„ํ™ฉ ๋ณด๊ธฐ, ๊ทธ๋ฃน ํƒˆํ‡ด, ๊ณต์ง€ ์ฝ๊ธฐ
ADMIN ๊ทธ๋ฃน์˜ ๊ด€๋ฆฌ์ž, ๊ฐœ์ธ ์œ ์ €๋กœ๋„ ํ™œ๋™ ๊ฐ€๋Šฅ ๊ณต์ง€ ์ƒ์„ฑ ๋ฐ ์ฝ๊ธฐ, ๊ทธ๋ฃน์— ์‹ ์ฒญํ•œ ์ฐธ๊ฐ€์ž ์ˆ˜๋ฝ ๋ฐ ๊ฑฐ์ ˆ, ์นด๋“œ ์ƒ์„ฑ, ์นด๋“œ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ

๊ทธ๋ฃน๊ณผ ADMIN ๊ถŒํ•œ์ด ์ƒ๊ธฐ๋ฉด์„œ User ๋ชจ๋ธ๊ณผ Group ๋ชจ๋ธ ๊ฐ„ ์–‘๋ฐฉํ–ฅ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ฐ ๋ชจ๋ธ์˜ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

User ๋ชจ๋ธ: ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถŒํ•œ์— ๋”ฐ๋ผ userType์—๋Š” MEMBER ๋˜๋Š” ADMIN ์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์œ ์ € ๊ถŒํ•œ์ด MEMBER ์ผ ๊ฒฝ์šฐ, ๊ทธ๋ฃน ์ง€์› ํ˜„ํ™ฉ์— ๋”ฐ๋ผ PARTICIPATING / PENDING / REJECTED์˜ ์ƒํƒœ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

Group ๋ชจ๋ธ: ๊ทธ๋ฃน์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. userType์ด ADMIN ****์ธ _id ๊ฐ’์ด Group ๋ชจ๋ธ์˜ admin ์†์„ฑ์— ์ €์žฅ๋˜๋ฉฐ, ๊ทธ๋ฃน ์ง€์› ํ˜„ํ™ฉ์— ๋”ฐ๋ผ members/applicants ํ•„๋“œ์— ๊ฐ’์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

User, Group ๋ชจ๋ธ ์Šคํ‚ค๋งˆ ๊ด€๊ณ„๋„

user-group-schema

์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ถŒํ•œ์„ ์ •์˜ํ•˜๊ณ  ์‹ค์ œ ๊ตฌํ˜„์„ ํ•˜๋ฉด์„œ ๊ฐ ๊ถŒํ•œ์˜ ์—ญํ• ๊ณผ ๊ถŒํ•œ์˜ ๊ด€๊ณ„(MEMBER - ADMIN)์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๊ธฐ๋Šฅ๋“ค์„ ์ •์˜ํ•ด์•ผํ•  ์ง€์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋™์ผํ•œ API ์š”์ฒญ์ด๋ผ๋„ ๊ถŒํ•œ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์„ ๋‹ฌ๋ฆฌํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฒช์œผ๋ฉด์„œ ๊ถŒํ•œ ํ•˜๋‚˜ ๋Š˜์–ด๋‚œ๋‹ค๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ์ด ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐ๋Šฅ๋“ค์ด ๊ถŒํ•œ์— ๋”ฐ๋ผ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.


๐Ÿ“ฃ ์ฃผ์š” ๊ธฐ๋Šฅ

1 แ„†แ…ฆแ„‹แ…ตแ†ซแ„’แ…ชแ„†แ…งแ†ซ 2 แ„’แ…ฌแ„‹แ…ฏแ†ซแ„€แ…กแ„‹แ…ตแ†ธ
1. ๋ฉ”์ธ ํ™”๋ฉด: Guest์™€, User ์ค‘ ์„ ํƒํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. ํšŒ์› ๊ฐ€์ž…: ๊ถŒํ•œ ์ค‘ member, admin์„ ์„ ํƒํ•˜์—ฌ ํšŒ์›๊ฐ€์ž…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3 แ„…แ…ฉแ„€แ…ณแ„‹แ…ตแ†ซ 4 แ„€แ…ณแ„…แ…ฎแ†ธแ„Žแ…กแ†ทแ„€แ…กแ„’แ…กแ„€แ…ต
3. ๋กœ๊ทธ์ธ: ๊ฐ€์ž…ํ•œ ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 4. ๊ทธ๋ฃน ์ฐธ๊ฐ€ํ•˜๊ธฐ: ๊ถŒํ•œ์ด ๋ฉค๋ฒ„์ธ user๋Š” ๊ทธ๋ฃน์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๊ทธ๋ฃน์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
5 แ„‚แ…ขแ„€แ…ณแ„…แ…ฎแ†ธแ„’แ…งแ†ซแ„’แ…ชแ†ผแ„‡แ…ฉแ„€แ…ต 6 แ„€แ…ณแ„…แ…ฎแ†ธแ„€แ…ชแ†ซแ„…แ…ต
5. ๋‚ด ๊ทธ๋ฃน ํ˜„ํ™ฉ ๋ณด๊ธฐ: member ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์ด ์ฐธ์—ฌํ•œ ๊ทธ๋ฃน, ์‹ ์ฒญํ•œ ๊ทธ๋ฃน ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 6. ๊ทธ๋ฃน ๊ด€๋ฆฌํ•˜๊ธฐ: admin ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๋ฃน์— ์‹ ์ฒญํ•œ member ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ ์ฒญํ•œ ๋ฉค๋ฒ„๋“ค์„ ์ˆ˜๋ฝ ๋˜๋Š” ๊ฑฐ์ ˆ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
7 แ„€แ…ฉแ†ผแ„Œแ…ตแ„‡แ…ฉแ„‚แ…ขแ„€แ…ต 8 แ„แ…กแ„ƒแ…ณแ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผ
7. ๊ณต์ง€๋ณด๋‚ด๊ธฐ: ์†Œ์ผ“์„ ์ด์šฉํ•˜์—ฌ ๊ณต์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ทธ๋ฃน์— ์†ํ•œ ๋ฉค๋ฒ„๋“ค์€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณต์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 8. ์นด๋“œ ์ƒ์„ฑํ•˜๊ธฐ: ํ”Œ๋Ÿฌ์Šค ๋ฒ„ํŠผ์„ ์ด์šฉํ•˜์—ฌ ์นด๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
9 แ„แ…กแ„ƒแ…ณแ„‰แ…ฎแ„Œแ…ฅแ†ผแ„‰แ…กแ†จแ„Œแ…ฆ 10 แ„แ…กแ„ƒแ…ณแ„‹แ…ตแ„ƒแ…ฉแ†ผ
9. ์นด๋“œ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ: ์ƒ์„ฑ๋œ ์นด๋“œ๋ฅผ ๋”๋ธ” ํด๋ฆญํ•˜์—ฌ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์นด๋“œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 10. ์นด๋“œ ์ด๋™: ์นด๋“œ๋ฅผ ์›ํ•˜๋Š” ๊ณณ์— ๋“œ๋ž˜๊ทธ๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
11 แ„‚แ…กแ†ฏแ„แ…กแ„‹แ…ตแ„ƒแ…ฉแ†ผ
11. ๋‚ ์งœ ์ด๋™: ์ด์ „ ๋‚ ์งœ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด์ „ ๋‚ ์งœ์˜ ์นด๋“œ ์ƒํƒœ์™€ ์˜ค๋Š˜ ๋‚ ์งœ์˜ ์นด๋“œ ์ƒํƒœ๋ฅผ ๋น„๊ตํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ™ ์†Œ๊ฐ

์‚ฌ๊ณต์€ํ˜œ

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

DND(Drag and Drop) ๊ตฌํ˜„ ๋‹น์‹œ, ์†Œํ†ต๊ณผ ํ˜‘์—…์˜ ํž˜์„ ๋ชธ์†Œ ๋А๋‚„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. DND๋Š” ์ €ํฌ๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ํ•ต์‹ฌ ์ธํ„ฐ๋ž™์…˜ ๊ธฐ๋Šฅ์ด์ž ๋ฉ”์ธ ์ฑŒ๋ฆฐ์ง€ ์ค‘ ํ•˜๋‚˜๋กœ, ๊ฐ์ž ๋งก์•„ ๊ฐœ๋ฐœํ–ˆ๋˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„๊ณผ๋Š” ๋‹ฌ๋ฆฌ ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ dashboard ๋‚ด grid๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์นด๋“œ์˜ ์ขŒํ‘ฏ๊ฐ’์„ ์žฌ์„ค์ •ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ๋งŽ์•˜๋Š”๋ฐ, ์„œ๋กœ๊ฐ€ ์ฐพ์€ ์ž๋ฃŒ๋ฅผ ๊ณต์œ ํ•˜๊ณ , ์ง„ํ–‰ ๋„์ค‘ ๋ง‰ํžŒ ๋ถ€๋ถ„์€ ํ•จ๊ป˜ ๊ทธ ์›์ธ๊ณผ ์†”๋ฃจ์…˜์„ ์ฐพ์Œ์œผ๋กœ์จ ์กฐ๊ธˆ์”ฉ ํ•ด๊ฒฐํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐฉํ–ฅ ์†Œํ†ต์ด ์•„๋‹ˆ๋ผ, ํ•‘ํ์œผ๋กœ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ๋‚˜์•„๊ฐ€๋˜ ์ด ์ˆœ๊ฐ„์ด ์ €์—๊ฒŒ๋Š” ์ „์ฒด ํ”„๋กœ์ ํŠธ ์ค‘ ๊ฐ€์žฅ ์žฌ๋ฐŒ๊ณ  ๋˜ ๊ธฐ์–ต์— ๋‚จ์„ ๊ฒฝํ—˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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


์ด์„ธ์˜

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

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

ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ํŒ€์›๋“ค์˜ ์žฅ์ ์„ ์ง์ ‘ ๋А๋ผ๊ณ , ๋ฐฐ์šฐ๋ฉฐ, ์ ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๊ณ , ๋˜ ๊ทธ์— ๋Œ€๋น„๋œ ์ €์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์— ๋Œ€ํ•ด์„œ๋„ ๊ณ ๋ฏผํ•ด ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ ์ •๋ง ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.


ํ•œ์•„๋ฆ„

์ €๋Š” ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์†Œํ†ต์˜ ์ค‘์š”์„ฑ, ์†Œํ†ต์˜ ํž˜์„ ๋งŽ์ด ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

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

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors