Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tastekim/wealllie-be

๐Ÿ‘€We Are Lie๋Š” ๋ณด๋“œ๊ฒŒ์ž„ '์ŠคํŒŒ์ด ํด' ์„ ๋ชจํ‹ฐ๋ธŒ๋กœํ•œ ํ™”์ƒ์ฑ„ํŒ…์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ์˜จ๋ผ์ธ ๋ณด๋“œ๊ฒŒ์ž„ ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค !(~2022.12.22)
https://github.com/tastekim/wealllie-be

express javascript

Last synced: 11 days ago
JSON representation

๐Ÿ‘€We Are Lie๋Š” ๋ณด๋“œ๊ฒŒ์ž„ '์ŠคํŒŒ์ด ํด' ์„ ๋ชจํ‹ฐ๋ธŒ๋กœํ•œ ํ™”์ƒ์ฑ„ํŒ…์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ์˜จ๋ผ์ธ ๋ณด๋“œ๊ฒŒ์ž„ ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค !(~2022.12.22)

Awesome Lists containing this project

README

        

## ๐Ÿฑ์˜จ๋ผ์ธ ํ™”์ƒ์ฑ„ํŒ… ๋ณด๋“œ๊ฒŒ์ž„, We All Lion

![600](https://user-images.githubusercontent.com/113876583/207038393-fdc23118-2da2-4974-b46e-fbe5fc00956f.jpg)

**'We All Lion'** ์€ ๋ณด๋“œ๊ฒŒ์ž„ **'์ŠคํŒŒ์ด ํด'** ์„ ๋ชจํ‹ฐ๋ธŒ๋กœ ๋งŒ๋“  ์˜จ๋ผ์ธ ํ™”์ƒ ์ฑ„ํŒ… ๋ณด๋“œ๊ฒŒ์ž„ ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค.


> # 1. ์†Œ๊ฐœ

## ๐Ÿ“Notion

### ๐Ÿ‘‰ ['We All Lion' ๋…ธ์…˜ ์ฃผ์†Œ](https://bald-crop-238.notion.site/We-All-Lion-866ef71edc17476aaac679b81e1be6a7)

## ๐Ÿ“†๊ธฐ๊ฐ„
- ### 2022.11.04 ~ 2022.12.16 (6์ฃผ)

## ๐Ÿ‘จโ€๐Ÿ’ปํŒ€์›

|Position|ใ€€Nameใ€€|blog|Github|
|:------:|:------:|:-------:|:-------:|
|BE `L`|๊น€์—ฐ์„|[https://tastekim.notion.site/](https://tastekim.notion.site/tastekim_Devlog-fe856eb9ac6e416db3807c12fcab39c5)|https://github.com/tastekim|
|BE|๊น€ํ˜•์„|https://stone1207.tistory.com/ |https://github.com/kimhsno1|
|BE|์†ก๋ฏผํ˜•|[https://www.notion.so/Home](https://www.notion.so/Home-355200dabb9747fa93658bee658e23d2)|https://github.com/Minhyeong-S|
|BE|์ตœ์œค์ง„|https://velog.io/@yunjin5450|https://github.com/yunjin5450|
|FE `VL`|๊ฐ•์Šนํ›ˆ|https://velog.io/@deepthink|https://github.com/seunghoonKang|
|FE|๋ฐ•ํ•˜์€|https://haro-e.tistory.com/|https://github.com/parkharoi|
|FE|์ตœ์ง„์˜|[https://www.notion.so/yoooooooung/](www.notion.so/yoooooooung/6f65b151350f486f8696c9090504a15b)|https://github.com/yoooooooung|
|Design|์ด์ฃผ์€|https://cloudtraveljournal.tistory.com|**Gmail :** [email protected]|


> # 2. ์„œ๋น„์Šค

## ๐Ÿ‘จโ€๐Ÿซ์„œ๋น„์Šค ์†Œ๊ฐœ
- **์‚ฌ์ž๋“ค ์‚ฌ์ด์— ์ˆจ์–ด๋“  ๊ณ ์–‘์ด**๋กœ ๋””์ž์ธ ์ปจ์…‰์„ ์ •ํ•ด ๋ชจ๋“  ์—ฐ๋ น๋Œ€๊ฐ€ ์ ‘๊ทผํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
- ์ตœ์†Œ 4๋ช… ๋ถ€ํ„ฐ ์ตœ๋Œ€ 8๋ช… ๊นŒ์ง€ ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•œ ๊ฒŒ์ž„ ๊ทœ์น™์œผ๋กœ ์ฆ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ์šฐ๋ฆฌ๋ผ๋ฆฌ?! ์ง€์ธ๋“ค๊ณผ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋„๋ก **๋น„๋ฐ€๋ฐฉ ์„ค์ •**์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
- ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…๊ณผ ์บ ์œผ๋กœ ์œ ์ €๋“ค๊ณผ ์†Œํ†ตํ•˜๋ฉฐ ์˜จ๋ผ์ธ์œผ๋กœ **์ง€๊ธˆ ๋‹น์žฅ** ๊ฒŒ์ž„์„ ์ฆ๊ฒจ๋ณด์„ธ์š”!

### ๐Ÿ‘‰ [We All Lion ๋ฐ”๋กœ๊ฐ€๊ธฐ](https://we-all-lie.vercel.app/)

## ๐Ÿ“ฐํŽ˜์ด์ง€ ์†Œ๊ฐœ
| ๊ฒŒ์ž„์„ค๋ช… & ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ | ๋กœ๋น„ ํŽ˜์ด์ง€ |
|:----------:|:----------:|
| | |

| ์œ ์ € ํ”„๋กœํ•„ ๋ณ€๊ฒฝ | ๋ฐฉ ๋งŒ๋“ค๊ธฐ |
|:----------:|:----------:|
| | |

| ๋ฐฉ ์ž…์žฅ & ๋Œ€๊ธฐ ํŽ˜์ด์ง€ | ๊ฒŒ์ž„์‹œ์ž‘ ํŽ˜์ด์ง€ |
|:----------:|:----------:|
| |

| ๊ฒŒ์ž„ํˆฌํ‘œ ํŽ˜์ด์ง€ | ๊ฒŒ์ž„์ข…๋ฃŒ ํŽ˜์ด์ง€|
|:----------:|:----------:|
| | |

## ๐Ÿ”๊ธฐ๋Šฅ์†Œ๊ฐœ

**๊ฒŒ์ž„์„ค๋ช… & ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€**

- ์นด์นด์˜ค ์†Œ์…œ๋กœ๊ทธ์ธ ํšŒ์›๊ฐ€์ž…
- ๊ฒŒ์ž„ ์„ค๋ช… ๋ชจ๋‹ฌ

**๋กœ๋น„ ํŽ˜์ด์ง€**

- ๋ฐฉ ๋ชฉ๋ก (๋ฐฉ ์ •๋ณด ์‹ค์‹œ๊ฐ„ ํ™•์ธ ๊ฐ€๋Šฅ : ์ธ์›, ๋ชจ๋“œ, ๋ฐฉ ์ƒํƒœ ๋“ฑ)
- ๋ฐฉ ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ (๊ณต๊ฐœ & ๋น„๊ณต๊ฐœ / EASY & HARD)
- ๋กœ๋น„ ์ „์ฒด ์ฑ„ํŒ…

**์œ ์ € ํ”„๋กœํ•„ ๋ณ€๊ฒฝ**

- ์ด๋ฏธ์ง€, ์œ ์ €์ด๋ฆ„, ๊ฒŒ์ž„ ์Šน๋ฅ 
- ์œ ์ € ์ด๋ฆ„ ์ˆ˜์ •

**๋ฐฉ ๋งŒ๋“ค๊ธฐ**

- ๋ฐฉ ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ (๊ณต๊ฐœ & ๋น„๊ณต๊ฐœ / EASY & HARD)

**๋ฐฉ ์ž…์žฅ & ๋Œ€๊ธฐ ํŽ˜์ด์ง€**

- ๋ฐฉ ์ •๋ณด (๋ชจ๋“œ, ์ธ์› ๋“ฑ)
- ๊ฒŒ์ž„ ์ค€๋น„/ ๊ฒŒ์ž„ ์‹œ์ž‘
- ๋ฐฉ ์ „์ฒด ์ฑ„ํŒ…
- ๋งˆ์ดํฌ, ์นด๋ฉ”๋ผ ๊ธฐ๋Šฅ

**๊ฒŒ์ž„์‹œ์ž‘ ํŽ˜์ด์ง€**

- ๊ฐ์ž ์—ญํ•  ์นด๋“œ ๋ถ„๋ฐฐ / ์ œ์‹œ์–ด ์นดํ…Œ๊ณ ๋ฆฌ & ๋‹จ์–ด ๋ชจ๋‹ฌ
- ์‚ฌ์ „ ํˆฌํ‘œ ๊ธฐ๋Šฅ

**๊ฒŒ์ž„ํˆฌํ‘œ ํŽ˜์ด์ง€**

- ์ŠคํŒŒ์ด ํˆฌํ‘œํ•˜๊ธฐ
- ์ŠคํŒŒ์ด ์ •๋‹ต ์ œ์‹œ์–ด ์„ ํƒ

**๊ฒŒ์ž„์ข…๋ฃŒ ํŽ˜์ด์ง€**

- ์ŠคํŒŒ์ด ๋ฐํžˆ๊ธฐ
- ์žฌ์‹œ์ž‘ ๋ฐ ๋‚˜๊ฐ€๊ธฐ


> # 3. ๊ตฌ์กฐ

## ๐Ÿคนโ€โ™‚๏ธ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜


![KakaoTalk_20221215_222023461](https://user-images.githubusercontent.com/113876583/207871269-12500c1c-4a5b-4eda-9feb-be705d952304.png)

## ๐Ÿ“ŠERD

ERD

![erd](https://user-images.githubusercontent.com/113876583/207319448-35612007-56e3-478d-a503-17691fc2bfcd.jpg)

## ๐Ÿ“ˆํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ

ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ


```markup
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ nodemon.json
โ”œโ”€โ”€ package-lock.json
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ server.js
โ”œโ”€โ”€ src
โ”‚ย ย  โ”œโ”€โ”€ app.js
โ”‚ย ย  โ”œโ”€โ”€ chat
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ chat-socket.js
โ”‚ย ย  โ”œโ”€โ”€ game
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ game-provider.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ game-repo.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ game-socket.js
โ”‚ย ย  โ”œโ”€โ”€ middlewares
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ auth-middleware.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ exception.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ passport
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ kakao-stratege.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ socket-auth-middleware.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ test.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ user-error-handler.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ wrap-async-controller.js
โ”‚ย ย  โ”œโ”€โ”€ redis.js
โ”‚ย ย  โ”œโ”€โ”€ rooms
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ room-provider.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ room-repo.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ room-socket.js
โ”‚ย ย  โ”œโ”€โ”€ schemas
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ game.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ room.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ user.js
โ”‚ย ย  โ”œโ”€โ”€ socket.js
โ”‚ย ย  โ”œโ”€โ”€ users
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ user-controller.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ user-repo.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ user-route.js
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ user-service.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ util
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ jwt.js
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ user-function.js
โ”‚ย ย  โ””โ”€โ”€ webRTC
โ”‚ย ย  โ””โ”€โ”€ webRTC.js
โ”œโ”€โ”€ test
โ”‚ย ย  โ”œโ”€โ”€ mockData
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ user-data.js
โ”‚ย ย  โ””โ”€โ”€ user-test
โ”‚ย ย  โ”œโ”€โ”€ jwt.spec.js
โ”‚ย ย  โ”œโ”€โ”€ user-controller.spec.js
โ”‚ย ย  โ”œโ”€โ”€ user-function.spec.js
โ”‚ย ย  โ”œโ”€โ”€ user-repo.spec.js
โ”‚ย ย  โ””โ”€โ”€ user-service.spec.js
โ””โ”€โ”€ ์ œ๋ชฉ ์—†๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ.drawio
```

## ๐Ÿ› ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ 

- ### BackEnd


- ### FrontEnd



## โ‰๊ธฐ์ˆ ์  ์˜์‚ฌ ๊ฒฐ์ •

- ### BE

1. Nginx






ใ€€**์‚ฌ์šฉ์ด์œ **

- event-driven์˜ ๋น„๋™๊ธฐ ๊ตฌ์กฐ์ด๋ฏ€๋กœ ์ฑ„ํŒ… ๊ธฐ๋Šฅ์ด๋‚˜ RTC๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ํ•  ๋•Œ, ๋™์‹œ ์ ‘์†์ž ์ˆ˜๊ฐ€ ์ฆ๊ฐ€๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์ ํ•ฉํ•œ ๋ฐฉ์‹์˜ ์›น ์„œ๋ฒ„๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ NginX๋Š” ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹, ๋น„๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ, ๋…ผ๋ธ”๋กœํ‚น ๋ฐฉ์‹ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ณ ์†์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํŠน์ง•์ด ์žˆ์–ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
- ๋™์‹œ ์ ‘์†์ž ์ˆ˜๊ฐ€ ๋งŽ์•„์ ธ๋„ Apache์— ๋น„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ ์ด ๋‚ฎ๊ณ , ์ฒ˜๋ฆฌํ•˜๋Š” ์ดˆ ๋‹น ์š”์ฒญ ์ˆ˜๊ฐ€ ์•ž๋„์ ์œผ๋กœ ๋†’์€ ๋ชจ์Šต์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
- ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ–๊ณ  ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
- reverse proxy๋กœ ์„œ๋ฒ„ ํ™•์žฅ์— ์šฉ์ดํ•˜๊ณ  ๋ณด์•ˆ์ ์œผ๋กœ ๋›ฐ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.



2. Socket.io






ใ€€**์‚ฌ์šฉ์ด์œ **

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



3. Redis






ใ€€**์‚ฌ์šฉ์ด์œ **

- ๊ฐ ๊ฒŒ์ž„์— ๋Œ€ํ•ด ํˆฌํ‘œ ๊ฒฐ๊ณผ ์ง‘๊ณ„๋‚˜ ์ค€๋น„ ์ƒํƒœ ๋“ฑ DB์— ์ €์žฅํ•  ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
- I/O์— ๋นˆ๋ฒˆํ•œ ๊ฐ„๋‹จํ•œ ์•ก์…˜๋“ค์— ๋Œ€ํ•ด ๊ฐ€๋ณ๊ฒŒ ์ €์žฅํ•ด ๋‘˜ DB์— memcached๋ž‘ redis ๊ฐ€ ํ›„๋ณด์˜€์Šต๋‹ˆ๋‹ค. memcached๋ณด๋‹ค redis๊ฐ€ cloud์„œ๋น„์Šค๋กœ ์ œ๊ณต์ด ์ดˆ๊ธฐ ์„ธํŒ…ํ•˜๊ธฐ์— ๋” ๋นจ๋ผ์„œ ์„ ํƒํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค.
- ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…๋“ค๊ณผ key, value ํ˜•์‹์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” DB๋ผ์„œ I/O์„ ๋‹ค๋ฃจ๊ธฐ์—๋Š” redis๊ฐ€ ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
- redis๋ฅผ ์„ ํƒํ•  ๋•Œ local๊ณผ cloud ๋‘๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์—ˆ๋Š”๋ฐ ํ˜‘์—…ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ์•„๋ฌด๋ž˜๋„ local๋ณด๋‹จ cloud๊ฐ€ ๋” ํšจ์œจ์ ์ผ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.



4. JWT






ใ€€**์‚ฌ์šฉ์ด์œ **

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



5. MongoDB






ใ€€**์‚ฌ์šฉ์ด์œ **

- ํ”„๋กœ์ ํŠธ์—์„œ DB์— ์ €์žฅํ•˜๋Š” ๋Œ€์ƒ์€ ์œ ์ €(์ „์ , ๊ฐœ์ธ์ •๋ณด) / ๋ฃธ / ๊ฒŒ์ž„ ์ด๋ ‡๊ฒŒ ์„ธ ๊ฐ€์ง€ ํ…Œ์ด๋ธ”(์ฝœ๋ ‰์…˜) ๋ฐ–์— ํ•„์š”ํ•˜์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ ๊ฐ„์˜ ์ข…์†์„ฑ์ด ๋งŽ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
- ๊ฒŒ์ž„ ๋‚ด์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ•˜๋Š” ์ •๋ณด๋‚˜ ๋ฐฉ ์ƒํƒœ์˜ ๋ณ€ํ™”์˜ ๊ฒฝ์šฐ ์ผ์‹œ์ ์ธ ์ •๋ณด๋Š” Redis๋ฅผ ํ†ตํ•ด์„œ ์ €์žฅํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, Redis๋กœ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ „๋ถ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋Š” ์—†๊ธฐ์— DB๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ณ , ๋˜ ๊ต‰์žฅํžˆ ์ž์ฃผ DB์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
- ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์—ฐ๊ฒฐ์‹œ์ผœ์„œ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†๋‹ค์‹œํ”ผํ•˜๊ธฐ์— ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅธ NoSQL์ด ์šฐ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ์™€ ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.
- ์†Œ์ผ“์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋งŽ์€ ์ •๋ณด๊ฐ€ ์ƒ์„ฑ, ๋ณ€๊ฒฝ๋˜๋Š” ์„œ๋น„์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋นจ๋ฆฌ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ˆ˜์ง ๋ฐ ์ˆ˜ํ‰ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.



6. Prettier / ESLint / Babel






ใ€€**์‚ฌ์šฉ์ด์œ **

- prettier
๊น”๋”ํ•œ ์ฝ”๋“œ์™€ ํ˜‘์—…์„ ์œ„ํ•ด์„œ ์ผ๊ด€์„ฑ ์žˆ๋Š” ์ฝ”๋“œ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•ด์ค€๋‹ค ์ƒ๊ฐํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
- eslint
๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๋ฐฉ์‹์„ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค ์ƒ๊ฐํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
- babel
Babel์„ ์ด์šฉํ•˜๋ฉด ES6 ์ด์ƒ์˜ ์ตœ์‹  ๋ฌธ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ES5 ์ดํ•˜์˜ ์˜ˆ์ „ ๋ฌธ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•œ ๊ฒƒ ์ฒ˜๋Ÿผ ์†Œ์Šค ์ฝ”๋“œ ๋‚ด์˜ ๋ฌธ๋ฒ•์˜ ํ˜•ํƒœ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด ๋‹ค์–‘ํ•œ ์‹คํ–‰ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค ์ƒ๊ฐํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

ใ€€ใ€€๐Ÿ‘‰ [๊ธฐ์ˆ ์  ์˜์‚ฌ ๊ฒฐ์ •](https://github.com/tastekim/WeAllLie-BE/wiki/2.-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%84%A0%ED%83%9D)

## โšฝํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

- ### BE

ใ€€ใ€€๐Ÿ‘‰ [์นด์นด์˜ค์†Œ์…œ ๋กœ๊ทธ์ธ : ํ”„๋ก ํŠธ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ถˆ๊ฐ€](https://aluminum-root-238.notion.site/76b50c99bbd04d0a84b9952dec1a5996)


ใ€€ใ€€๐Ÿ‘‰ [socket.js ๊ธฐ๋Šฅ๋ณ„ ๋ถ„๋ฆฌ ์ค‘ ์—ฐ๊ฒฐ ์—๋Ÿฌ](https://github.com/tastekim/WeAllLie-BE/issues/27)

ใ€€ใ€€๐Ÿ‘‰ [ํŠน์ • ๋ฃธ์œผ๋กœ ์ฑ„ํŒ…๋ฉ”์„ธ์ง€ ์ „๋‹ฌ ๋ถˆ๊ฐ€ (Socket.io)](https://aluminum-root-238.notion.site/socket-io-d9151a97e0e54ad89c7062f78370a7c1)

ใ€€ใ€€๐Ÿ‘‰ [docker image๋กœ ์„œ๋ฒ„ ์‹คํ–‰ ์‹œ 'Javascript heap out of memory' ํ˜„์ƒ](https://github.com/tastekim/WeAllLie-BE/issues/105)

ใ€€ใ€€๐Ÿ‘‰ [docker์—์„œ openvidu ์„œ๋ฒ„๋ฅผ ํ™œ์šฉํ•œ SFU ๋ฐฉ์‹ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ๋‚ด์šฉ](https://github.com/tastekim/WeAllLie-BE/issues/132)


> # 4. ๊ธฐํƒ€

## ๐Ÿ’ปGitHub
- ### BackEnd: [WeAllLion-BE](https://github.com/tastekim/WeAllLie-BE)
- ### FrontEnd: [WeAllLion-FE](https://github.com/seunghoonKang/we-all-lie-fe)