Skip to content

๐Ÿงพ ์บ ํ•‘ ๊ฑฐ๋ž˜ SNS | ๐Ÿ† SSAFY ํŠนํ™” ํ”„๋กœ์ ํŠธ ์šฐ์ˆ˜์ƒ

Notifications You must be signed in to change notification settings

pushedRak/CampForest

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

CampForest

image.png

CampForest๋Š” ์บ ํ•‘์„ ์‚ฌ๋ž‘ํ•˜๋Š” ๋ชจ๋“  ์ด๋“ค์„ ์œ„ํ•œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ €๋ ดํ•œ ์žฅ๋น„ ๋Œ€์—ฌ, ์žฅ๋น„๋ฅผ ํ†ตํ•œ ์žฌํ…Œํฌ, ์บ ํ•‘์žฅ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ •๋ณด ์ œ๊ณต, ๊ทธ๋ฆฌ๊ณ  ์บ ํผ๋“ค ๊ฐ„์˜ ํ™œ๋ฐœํ•œ ์ •๋ณด ๊ต๋ฅ˜๋ฅผ ํ†ตํ•ด ๋” ์ฆ๊ฒ๊ณ  ๊ฒฝ์ œ์ ์ธ ์บ ํ•‘ ๋ฌธํ™”๋ฅผ ์ฆ๊ฒจ๋ณด์„ธ์š”!

ERD

image.png

๋„์‹ํ™”

image.png

System Architecture

image.png

Sequence Diagram

์žฅ๋น„ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ

sequenceDiagram
    actor User
    participant Client
    participant Server
    participant Database

    Note over User,Database: ์žฅ๋น„ ๊ฒŒ์‹œ๋ฌผ CRUD ์ž‘์—…

    User->>Client: ์žฅ๋น„ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ์š”์ฒญ
    Client->>Server: POST /product
    Server->>Database: INSERT ๊ฒŒ์‹œ๋ฌผ ๋ฐ์ดํ„ฐ
    Database-->>Server: ์‚ฝ์ž… ๊ฒฐ๊ณผ
    Server-->>Client: ์ž‘์„ฑ ์„ฑ๊ณต ์‘๋‹ต
    Client-->>User: ์ž‘์„ฑ ์™„๋ฃŒ ํ‘œ์‹œ

    User->>Client: ์žฅ๋น„ ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ์š”์ฒญ
    Client->>Server: PUT /product/{id}
    Server->>Database: UPDATE ๊ฒŒ์‹œ๋ฌผ ๋ฐ์ดํ„ฐ
    Database-->>Server: ์ˆ˜์ • ๊ฒฐ๊ณผ
    Server-->>Client: ์ˆ˜์ • ์„ฑ๊ณต ์‘๋‹ต
    Client-->>User: ์ˆ˜์ • ์™„๋ฃŒ ํ‘œ์‹œ

    User->>Client: ์žฅ๋น„ ๊ฒŒ์‹œ๋ฌผ ์‚ญ์ œ ์š”์ฒญ
    Client->>Server: DELETE /product/{id}
    Server->>Database: DELETE ๊ฒŒ์‹œ๋ฌผ ๋ฐ์ดํ„ฐ
    Database-->>Server: ์‚ญ์ œ ๊ฒฐ๊ณผ
    Server-->>Client: ์‚ญ์ œ ์„ฑ๊ณต ์‘๋‹ต
    Client-->>User: ์‚ญ์ œ ์™„๋ฃŒ ํ‘œ์‹œ

    User->>Client: ์žฅ๋น„ ๊ฒŒ์‹œ๋ฌผ ์กฐํšŒ ์š”์ฒญ
    Client->>Server: GET /product/{id}
    Server->>Database: SELECT ๊ฒŒ์‹œ๋ฌผ ๋ฐ์ดํ„ฐ
    Database-->>Server: ์กฐํšŒ ๊ฒฐ๊ณผ
    Server-->>Client: ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด ์‘๋‹ต
    Client-->>User: ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด ํ‘œ์‹œ

    Note over User,Database: ๋™์  ์ฟผ๋ฆฌ ๊ฒ€์ƒ‰

    User->>Client: ๋™์  ๊ฒ€์ƒ‰ ์š”์ฒญ
    Client->>Server: GET /product/search
    Note right of Client: ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ: ์นดํ…Œ๊ณ ๋ฆฌ, ๊ฒ€์ƒ‰์–ด, ์ง€์—ญ, ๋Œ€์—ฌ/ํŒ๋งค, ํŽ˜์ด์ง€
    Server->>Database: ๋™์  ์ฟผ๋ฆฌ ์‹คํ–‰
    Database-->>Server: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ
    Server-->>Client: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์‘๋‹ต
    Client-->>User: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํ‘œ์‹œ
Loading

์‚ฌ์šฉ์ž ์žฅ๋น„ ๊ฑฐ๋ž˜

sequenceDiagram
    participant ๊ตฌ๋งค์ž
    participant ์ฑ„ํŒ…๋ฐฉ
    participant ํŒ๋งค์ž
    participant ๊ฑฐ๋ž˜์‹œ์Šคํ…œ

    ๊ตฌ๋งค์ž->>์ฑ„ํŒ…๋ฐฉ: ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ ์š”์ฒญ
    ์ฑ„ํŒ…๋ฐฉ->>ํŒ๋งค์ž: ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ ์•Œ๋ฆผ
    
    alt ๊ตฌ๋งค์ž๊ฐ€ ๊ฑฐ๋ž˜ ์š”์ฒญ
        ๊ตฌ๋งค์ž->>๊ฑฐ๋ž˜์‹œ์Šคํ…œ: ๊ฑฐ๋ž˜ ์š”์ฒญ
        ๊ฑฐ๋ž˜์‹œ์Šคํ…œ->>ํŒ๋งค์ž: ๊ฑฐ๋ž˜ ์š”์ฒญ ์ „๋‹ฌ
    else ํŒ๋งค์ž๊ฐ€ ๊ฑฐ๋ž˜ ์š”์ฒญ
        ํŒ๋งค์ž->>๊ฑฐ๋ž˜์‹œ์Šคํ…œ: ๊ฑฐ๋ž˜ ์š”์ฒญ
        ๊ฑฐ๋ž˜์‹œ์Šคํ…œ->>๊ตฌ๋งค์ž: ๊ฑฐ๋ž˜ ์š”์ฒญ ์ „๋‹ฌ
    end

    alt ๊ฑฐ๋ž˜ ์š”์ฒญ ์ˆ˜๋ฝ
        ํŒ๋งค์ž->>๊ฑฐ๋ž˜์‹œ์Šคํ…œ: ๊ฑฐ๋ž˜ ์š”์ฒญ ์ˆ˜๋ฝ
        ๊ฑฐ๋ž˜์‹œ์Šคํ…œ->>๊ตฌ๋งค์ž: ์˜ˆ์•ฝ ์„ฑ์‚ฌ ์•Œ๋ฆผ
        ๊ฑฐ๋ž˜์‹œ์Šคํ…œ->>ํŒ๋งค์ž: ์˜ˆ์•ฝ ์„ฑ์‚ฌ ์•Œ๋ฆผ
    else ๊ฑฐ๋ž˜ ์š”์ฒญ ๊ฑฐ์ ˆ
        ํŒ๋งค์ž->>๊ฑฐ๋ž˜์‹œ์Šคํ…œ: ๊ฑฐ๋ž˜ ์š”์ฒญ ๊ฑฐ์ ˆ
        ๊ฑฐ๋ž˜์‹œ์Šคํ…œ->>๊ตฌ๋งค์ž: ๊ฑฐ๋ž˜ ๊ฑฐ์ ˆ ์•Œ๋ฆผ
    end

    ๊ตฌ๋งค์ž->>๊ฑฐ๋ž˜์‹œ์Šคํ…œ: ๊ฑฐ๋ž˜ ํ™•์ •
    ํŒ๋งค์ž->>๊ฑฐ๋ž˜์‹œ์Šคํ…œ: ๊ฑฐ๋ž˜ ํ™•์ •
    
    alt ์–‘์ชฝ ๋ชจ๋‘ ๊ฑฐ๋ž˜ ํ™•์ •
        ๊ฑฐ๋ž˜์‹œ์Šคํ…œ->>๊ตฌ๋งค์ž: ํ›„๊ธฐ ์ž‘์„ฑ ํ™œ์„ฑํ™”
        ๊ฑฐ๋ž˜์‹œ์Šคํ…œ->>ํŒ๋งค์ž: ํ›„๊ธฐ ์ž‘์„ฑ ํ™œ์„ฑํ™”
    end

    alt ๊ตฌ๋งค์ž๊ฐ€ ์ฑ„ํŒ…๋ฐฉ ๋‚˜๊ฐ€๊ธฐ
        ๊ตฌ๋งค์ž->>์ฑ„ํŒ…๋ฐฉ: ์ฑ„ํŒ…๋ฐฉ ๋‚˜๊ฐ€๊ธฐ ์š”์ฒญ
        ์ฑ„ํŒ…๋ฐฉ->>๊ตฌ๋งค์ž: ์ด์ „ ๋Œ€ํ™” ์ˆจ๊น€ ์ฒ˜๋ฆฌ
        ์ฑ„ํŒ…๋ฐฉ->>ํŒ๋งค์ž: ์ฑ„ํŒ… ๋‚ด์—ญ ์œ ์ง€
    else ํŒ๋งค์ž๊ฐ€ ์ฑ„ํŒ…๋ฐฉ ๋‚˜๊ฐ€๊ธฐ
        ํŒ๋งค์ž->>์ฑ„ํŒ…๋ฐฉ: ์ฑ„ํŒ…๋ฐฉ ๋‚˜๊ฐ€๊ธฐ ์š”์ฒญ
        ์ฑ„ํŒ…๋ฐฉ->>ํŒ๋งค์ž: ์ด์ „ ๋Œ€ํ™” ์ˆจ๊น€ ์ฒ˜๋ฆฌ
        ์ฑ„ํŒ…๋ฐฉ->>๊ตฌ๋งค์ž: ์ฑ„ํŒ… ๋‚ด์—ญ ์œ ์ง€
    end
Loading

์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ—ฃ๏ธย ์ปค๋ฎค๋‹ˆํ‹ฐ

1. ํ”ผ๋“œ

์žฅ๋น„ ํ›„๊ธฐ, ๋ ˆ์‹œํ”ผ ์ถ”์ฒœ, ์บ ํ•‘์žฅ ์–‘๋„, ์ž์œ ๊ฒŒ์‹œํŒ, ์งˆ๋ฌธ ๊ฒŒ์‹œํŒ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„๋กœ ์›ํ•˜๋Š” ํ”ผ๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค๊ณผ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์–ด์š”!

2. ํŒ”๋กœ์šฐ/ํŒ”๋กœ์ž‰

์›ํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ํŒ”๋กœ์šฐํ•˜๊ณ  ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒŒ์‹œ๊ธ€์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”!

3. ์ฑ„ํŒ…

๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ ์ง์ ‘ ์ฑ„ํŒ…์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์–ด์š”!

โ›บ๏ธ ์žฅ๋น„ ๋Œ€์—ฌ/๊ฑฐ๋ž˜

1. ์žฅ๋น„ ๋Œ€์—ฌ

์บ ํ•‘ ํ•œ ๋ฒˆ์„ ์œ„ํ•ด ์บ ํ•‘ ์žฅ๋น„๋ฅผ ๊ตฌ์ž…ํ•˜๊ธฐ ๋ถ€๋‹ด๋˜์ง€ ์•Š๋‚˜์š”? ํ˜น์€, ์ง‘์— ๋ฐฉ์น˜๋˜์–ด ์žˆ๋Š” ์บ ํ•‘ ์žฅ๋น„๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ์›ํ•˜๋Š” ์บ ํ•‘ ์žฅ๋น„๋ฅผ ์ฐพ์•„๋ณด๊ณ  ๋Œ€์—ฌํ•ด๋ณด์„ธ์š”!

2. ์žฅ๋น„ ํŒ๋งค

์ด์ œ๋Š” ํ•„์š” ์—†์–ด์ง„ ๋‚˜์˜ ์บ ํ•‘ ์žฅ๋น„๋ฅผ ํŒ๋งคํ•ด๋ณด์„ธ์š”!

๐Ÿ”Žย ์บ ํ•‘์žฅ ๊ฒ€์ƒ‰&ํ›„๊ธฐ

1. ์บ ํ•‘์žฅ ๊ฒ€์ƒ‰

์ฃผ๋ณ€ ์‹œ์„ค, ๋ฐ˜๋ ค๋™๋ฌผ ๋™๋ฐ˜ ์—ฌ๋ถ€ ๋“ฑ ์›ํ•˜๋Š” ์กฐ๊ฑด๊ณผ ํ•จ๊ป˜ ๋‚˜์—๊ฒŒ ๋งž๋Š” ์ตœ์ ์˜ ์บ ํ•‘์žฅ์„ ๊ฒ€์ƒ‰ํ•ด๋ณด์„ธ์š”!

2. ์บ ํ•‘์žฅ ํ›„๊ธฐ

๋ฐฉ๋ฌธํ–ˆ๋˜ ์บ ํ•‘์žฅ์— ๋Œ€ํ•œ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ธฐ๊ณ , ๊ฐ€๊ณ  ์‹ถ์€ ์บ ํ•‘์žฅ์˜ ํ›„๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ํ™•์ธํ•ด๋ณด์„ธ์š”!

About

๐Ÿงพ ์บ ํ•‘ ๊ฑฐ๋ž˜ SNS | ๐Ÿ† SSAFY ํŠนํ™” ํ”„๋กœ์ ํŠธ ์šฐ์ˆ˜์ƒ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 58.2%
  • Java 39.5%
  • Python 1.1%
  • CSS 0.6%
  • JavaScript 0.4%
  • HTML 0.1%
  • Dockerfile 0.1%