Skip to content

2023-Summer-BootCamp-Team-I/MemoryCapsule

Repository files navigation

๐Ÿ’Š MemoryCapsule

ํƒ€์ž„์บก์Š ์ƒ์„ฑ ํ›„ ์นœ๊ตฌ๋“ค์„ ์ดˆ๋Œ€ํ•ด ์‚ฌ์ง„๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๊ณต์œ ํ•˜๊ณ , ์ง€์ •๋œ ๋‚ ์งœ์— ํ•ฉ์ณ์ง„ ์ปจํ…์ธ ๋ฅผ ๋ชจ๋‘์—๊ฒŒ ์ „์†กํ•˜๋Š” ํ”Œ๋žซํผ


Medium:

Features


Login


Main Page

Create Capsule

๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ์บก์Š์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Unopened Capsule

๊ฐœ๋ด‰์ผ์ด ์ง€๋‚˜์ง€ ์•Š์€ ์บก์Š์—์„œ๋Š” ์Šคํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ถ”์–ต์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บก์Š์—๋Š” ์นœ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์Šคํ† ๋ฆฌ๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ ๊ฐœ๋ด‰์ผ ์ „๊นŒ์ง€๋Š” ์ž์‹ ์ด ์˜ฌ๋ฆฐ ์Šคํ† ๋ฆฌ์˜ ๋‚ด์šฉ๋งŒ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Create Story



Invitation


Opened Capsule

๊ฐœ๋ด‰์ผ์ด ์ง€๋‚œ ์บก์Š์—์„œ๋Š” ์‚ฌ์ง„ ํŽ˜์ด์ง€์™€ ๋น„๋””์˜ค ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์‚ฌ์ง„ ํŽ˜์ด์ง€๋Š” ์บก์Š ์ƒ์„ฑ ๋•Œ ์„ ํƒํ•œ ํ…Œ๋งˆ์—์„œ ์Šคํ† ๋ฆฌ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜์ƒ ํŽ˜์ด์ง€์—์„œ๋Š” ์Šคํ† ๋ฆฌ์˜ ์‚ฌ์ง„์œผ๋กœ ์ œ์ž‘๋œ ๋น„๋””์˜ค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„์— ์Šคํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ถ”๊ฐ€ ๋น„๋””์˜ค ์ œ์ž‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค




๐Ÿ’ป System Architecture




๐Ÿ’ก Tech Stack

Area Tech Stack
Frontend
Backend
DevOps
Monitoring
etc



๐Ÿ’ฝ ERD

Z




๐Ÿ“ˆ API

swagger๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ช…์„ธ์„œ๋ฅผ ์ž‘์„ฑ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.


user

capsule

story

video




๐Ÿ“š Asynchronous

๋น„๊ต์  ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ๋น„๋””์˜ค ์ƒ์„ฑ ์ž‘์—…์€ Celery๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.



๐Ÿ“Š Monitoring

Grafana + Prometheus ELK


Prometheus๋กœ Django ๋งคํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜์—ฌ request,response๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์‹œ๊ฐํ™” ํ•˜์˜€๊ณ  node exporter๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ, cpu ์‚ฌ์šฉ๋Ÿ‰, network traffic ๋“ฑ์„ ๋ถ„์„ํ•˜์—ฌ ์‹œ๊ฐํ™” ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ELK๋ฅผ ํ™œ์šฉํ•˜์—ฌ Nginx log๋ฅผ ์ˆ˜์ง‘ํ•ด ์š”์ฒญ๋ณ„ ํšŸ์ˆ˜๋‚˜ ์‘๋‹ต์ฝ”๋“œ ๋“ฑ์„ ์ž์„ธํžˆ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

alertmanager ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ cpu ๊ณผ๋ถ€ํ•˜๊ฐ€ ์˜ค๊ฑฐ๋‚˜ ์„ค์ •ํ•ด ๋†“์€ instance๊ฐ€ ์˜ˆ์ƒ์น˜ ๋ชปํ•˜๊ฒŒ ์ข…๋ฃŒ๋  ๊ฒฝ์šฐ slack์œผ๋กœ ์•Œ๋ฆผ์„ ๋ณด๋‚ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.


Django

Node exporter

ELK




๐ŸŽฅ Video

๋น„๋””์˜ค ์ œ์ž‘์—๋Š” OpenCV, NumPy, MoviePy๊ฐ€ ์‚ฌ์šฉ ๋ฉ๋‹ˆ๋‹ค.



์บก์Š์ด ๊ฐœ๋ด‰๋˜๋ฉด ์œ ์ €๊ฐ€ ์ถ”๊ฐ€ํ•œ ์ด๋ฏธ์ง€๋Š” opencv๊ฐ€ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์ง„ ์ด๋ฏธ์ง€๋“ค์€ numpy๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ๊ท ์ผํ•˜๊ฒŒ resizeํ•˜๊ณ , ์ƒ‰์ƒ ์ฒ˜๋ฆฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ์ฒ˜๋ฆฌ ์™„๋ฃŒ๋œ ์ด๋ฏธ์ง€๋Š” MoviePy๋ฅผ ํ†ตํ•ด mp3 ํŒŒ์ผ๊ณผ ํ•ฉ์ณ์ง€๋ฉด์„œ ์˜์ƒ ์ œ์ž‘์ด ์™„๋ฃŒ ๋ฉ๋‹ˆ๋‹ค.



๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Team

Name ๋ฐ•๊ฒฝ์€ ๊น€์„ฑํ›ˆ ๊น€์œค์•„ ์ •์žฌ๋นˆ ์œ ์žฌ์œค ์ด๋ฏผ๊ธฐ
Profile
role Leader
Frontend
Frontend Frontend Backend
DevOps
Backend
DevOps
Backend
DevOps
GitHub @devGEP @koreaGorilla @1-yuna @JaeBin2019 @yoojaeyoonGit @kiminni