Skip to content

๐Ÿ‡ ํ† ๋‹ฅํ† ๋‹ฅ (Todak-Todak) / ๋™๋ณ‘์ƒ๋ จ์˜ ์•„ํ””์„ ๊ฐ€์ง„ ์œ ์ €๋“ค์˜ ์‚ฌํšŒ์  ์—ฐ๋Œ€ ๊ฐ•ํ™”๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์ง€์—ญ ๊ธฐ๋ฐ˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค

Notifications You must be signed in to change notification settings

JeongHwan-dev/todak-todak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation


ํ† ๋‹ฅํ† ๋‹ฅ

ํ† ๋‹ฅํ† ๋‹ฅ (Todak-Todak)

NGINX

๋ชฉ์ฐจ

  1. ์›น ์„œ๋น„์Šค ์†Œ๊ฐœ
  2. ์›น ์„œ๋น„์Šค ๋ชฉํ‘œ
  3. ๊ธฐ์ˆ  ์Šคํƒ
  4. ์ฃผ์š” ๊ธฐ๋Šฅ
  5. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ๋„
  6. ๋ฐ๋ชจ ์˜์ƒ
  7. ์„œ๋น„์Šค ์ฐจ๋ณ„์  ๋ฐ ๊ธฐ๋Œ€ ํšจ๊ณผ
  8. ๊ฐœ๋ฐœ ํŒ€ ์†Œ๊ฐœ
  9. ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋ฐ ์ผ์ •
  10. ์‹คํ–‰ ๋ฐฉ๋ฒ•
  11. FAQ

๐Ÿ’๐Ÿปโ€โ™‚ ์›น ์„œ๋น„์Šค ์†Œ๊ฐœ

ย ย ๋™๋ณ‘์ƒ๋ จ์˜ ์•„ํ””์„ ๊ฐ€์ง„ ์œ ์ €๋“ค์˜ ์‚ฌํšŒ์  ์—ฐ๋Œ€ ๊ฐ•ํ™”๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์ง€์—ญ ๊ธฐ๋ฐ˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค


๐Ÿ”— 79๊ฐœ์˜ 1์ฐจ ๋ฐ์ดํ„ฐ์„ธํŠธ


๐ŸŽฏ ์›น ์„œ๋น„์Šค ๋ชฉํ‘œ

ย ย ์‚ฌํšŒ์  ์—ฐ๊ฒฐ๋ง์˜ ๊ฐ•ํ™”๊ฐ€ ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€๋ฅผ ํ•ด์†Œํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ œ์˜ ์ธ์‹
  1. ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€์— ๋†“์ธ ์‚ฌ๋žŒ๋“ค์˜ ์‹ค์งˆ์  ๋ฐ์ดํ„ฐ๋Š” ์ง‘๊ณ„๋˜์ง€ ์•Š๋Š”๋‹ค.
  2. ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€์˜ ํ•ด์†Œ๋ฅผ ์œ„ํ•ด ๋ฒ”์ •๋ถ€์  ์ฐจ์›์—์„œ ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋“ค์ด ์ด๋ฏธ ํˆฌ์ž…๋˜๊ณ  ์žˆ๋‹ค.
  3. ์‹ค์งˆ์  ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€์˜ ํ•ด์†Œ์—๋Š” ์˜คํ”„๋ผ์ธ์˜ ๋„์›€์ด ํ•„์š”ํ•˜๋‹ค.
  4. ์ƒ์‹œ์ ์œผ๋กœ ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€ ํ•ด์†Œ์˜ ์š•๊ตฌ์™€ ํ•ด์†Œ๊ฐ€ ์ˆœํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•˜๋‹ค.
  5. ํ˜„๋Œ€์‚ฌํšŒ์—์„œ ์ง€์—ญ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์‚ฌํšŒ์  ์—ฐ๊ฒฐ์„ฑ์ด ์•ฝํ™”๋˜์–ด ์žˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•œ ๊ฐ€์„ค ๊ฒ€์ฆ ๋ฐฉ๋ฒ•
  1. ์‹ค์งˆ์  ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€์˜ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์€ ์„œ๋น„์Šค ์‹คํ–‰์œผ๋กœ ์ง‘๊ฒŒ๋œ ์œ ์ € ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๋ถ„์„ํ•˜์—ฌ ๊ฒ€์ฆํ•œ๋‹ค.
  2. ์ง€์—ญ๋ณ„ ์ข…ํ•ฉ์š”์†Œ[๋…๋ฆฝ๋ณ€์ˆ˜]์™€ ์ง€์—ญ๋ณ„ ๋ฏธ์ถฉ์กฑ์˜๋ฃŒ๋ฅ [์ข…์†๋ณ€์ˆ˜]๋ฅผ ํšŒ๊ท€/์ธ๊ณต์‹ ๊ฒฝ๋ง ๋ถ„์„์„ ํ†ตํ•ด ์ฃผ์š” ๋…๋ฆฝ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  3. ๋„์ถœ๋œ ์ฃผ์š” ๋…๋ฆฝ๋ณ€์ˆ˜์— ์งˆํ™˜ ๋ถ„๋ฅ˜๋ฅผ ์ถ”๊ฐ€ํ•œ ํšŒ๊ท€/์ธ๊ณต์‹ ๊ฒฝ๋ง ๋ถ„์„ ๊ฒฐ๊ณผ๋Š” ๋ถˆ์ผ์น˜๋„๊ฐ€ ๋†’์€์ง€ ํ™•์ธํ•œ๋‹ค.
  4. ์‚ฌํšŒ์  ํ™œ๋™์š”์†Œ[๋…๋ฆฝ๋ณ€์ˆ˜]์™€ ์ง€์—ญ๋ณ„ ์‚ฌํšŒ์ ๋งŒ์กฑ๋„[์ข…์†๋ณ€์ˆ˜]๋ฅผ ํšŒ๊ท€๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๋Š” ๋‚ฎ์€ ์†์‹คํ•จ์ˆ˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์ง€ ํ™•์ธํ•œ๋‹ค.
  5. ์˜๋ฃŒ ์„œ๋น„์Šค ๊ฐœ์„ ์„ ์œ„ํ•ด ํˆฌ์ž…๋œ ์˜ˆ์‚ฐ๊ณผ ์˜๋ฃŒ ์„œ๋น„์Šค ๋งŒ์กฑ๋„, ๋ฏธ์ถฉ์กฑ์˜๋ฃŒ๋ฅ [์ „๊ตญ ์‹œ๊ณ„์—ด๋ฐ์ดํ„ฐ] ๋ถ„์„ ๊ฒฐ๊ณผ ์˜ˆ์‚ฐ ์ƒ์Šน ๋ถ„์— ๋น„ํ•ด ๋‚ฎ์€ ์ง€ํ‘œ ๊ฐœ์„ ์„ ๋ณด์ด๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  6. ์ง€์—ญ๋ณ„ ์‚ฌํšŒ์  ์—ฐ๊ฒฐ๋ง๊ณผ ์ง€์—ญ๋ณ„ ์˜๋ฃŒ ์„œ๋น„์Šค ๋งŒ์กฑ๋„, ๋ฏธ์ถฉ์กฑ์˜๋ฃŒ์œจ[์ง€์—ญ๋ณ„ ์‹œ๊ณ„์—ด๋ฐ์ดํ„ฐ] ๋ถ„์„ ๊ฒฐ๊ณผ ์–‘์˜ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ์ง€ ํ™•์ธํ•œ๋‹ค.
๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์ž๋ฃŒ ํ•ด์„๊ณผ ๊ฐ€์„ค ์ œ์‹œ
  1. ์‹ค์งˆ์  ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€๋Š” ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋กœ ์ง‘๊ณ„๋˜์ง€ ์•Š๋Š”๋‹ค.
  2. ๋ช…๋ชฉ์  ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€์˜ ํ†ต๊ณ„๋Š” ์ง€์—ญ๋ณ„ ๋ฏธ์ถฉ์กฑ์˜๋ฃŒ๋ฅ ๋กœ ๊ฐ€๋Š ํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ์ง€์—ญ๋ณ„ [์†Œ๋“/๊ฒฝ์ œํ™œ๋™์œ ํ˜•/๊ต์œก/ํ˜ผ์ธ/์ฃผ๊ฑฐํ˜•ํƒœ/์‚ฌํšŒ์ ๋งŒ์กฑ๋„ ๋“ฑ]์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšŒ๊ท€๋ถ„์„/์ธ๊ณต์‹ ๊ฒฝ๋ง๋ถ„์„ํ•˜์—ฌ ์ฃผ์š” ๋…๋ฆฝ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
  4. ์งˆํ™˜๋ณ„ ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ”์ฃผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋‹ค.
  5. ์‚ฌํšŒ์  ํ™œ๋™ [์ง€์—ญ ๋‚ด ๋‹จ์ฒดํ™œ๋™/์ง€์—ญ ์ปค๋ฎค๋‹ˆํ‹ฐ ์‹œ์„ค์˜ ์ˆ˜/๋ด‰์‚ฌํ™œ๋™]์ด ํ™œ๋ฐœํ•œ ์ง€์—ญ์ผ์ˆ˜๋ก ์‚ฌํšŒ์  ๋งŒ์กฑ๋„๊ฐ€ ๋†’์„ ๊ฒƒ์ด๋‹ค.
  6. ๋ฒ”์ •๋ถ€ ์ฐจ์›์—์„œ ํˆฌ์ž…๋˜๋Š” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋“ค์€ ์ •๋ณด ๋ถˆ๊ท ํ˜• ๋ฐ ์ •๋ณด ๋ฏธ์ˆ˜์ง‘์˜ ์š”์ธ์œผ๋กœ ํ™•์‚ฐ๋˜์ง€ ๋ชปํ•ด ๋ถˆ๊ท ํ˜•์„ ์ดˆ๋ž˜ํ•œ๋‹ค.
  7. ์‚ฌํšŒ์  ์—ฐ๊ฒฐ๋ง์˜ ๊ฐ•ํ™”๊ฐ€ ์ •๋ณด ๋ถˆ๊ท ํ˜• ๋ฐ ์ •๋ณด ๋ฏธ์ˆ˜์ง‘์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  8. ์‚ฌํšŒ์  ์—ฐ๊ฒฐ๋ง์˜ ๊ฐ•ํ™”๊ฐ€ ์˜๋ฃŒ ์‚ฌ๊ฐ์ง€๋Œ€๋ฅผ ํ•ด์†Œํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”— ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฒฐ๊ณผ


๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

Front-end

HTML5 CSS3 JavaScript
HTML5 CSS3 JavaScript(ES6)
React.js Bootstrap Material UI
React.js Bootstrap Material UI

Back-end

Python
Python
Flask socket io
Flask socket.io
MySQL mongoDB
MySQL mongoDB

Data Analysis

Pandas Scikit learn Neo4j D3.js Folium
Pandas Scikit learn Neo4j D3.js Folium

DevOps

Docker NGiNX Azure
Docker NGiNX Azure

Version Control

Git GitLab
Git GitLab

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

๊ธฐ๋Šฅ ๋‚ด์šฉ
์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ ์ž์‹ ๊ณผ ๊ฐ™์€ ์œ ํ˜•์œผ๋กœ ๋ถ„๋ฅ˜๋œ ํ˜น์€ ์œ ์‚ฌ ์œ ํ˜•์œผ๋กœ ๋ถ„๋ฅ˜๋œ ์ธ๊ทผ ์ง€์—ญ ์œ ์ €๋“ค๊ณผ์˜ ๊ฒŒ์‹œ๋ฌผ ํฌ์ŠคํŒ…์„ ํ†ตํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์ถ•
๊ฐ™์ดํ•ด์š” ๊ธฐ๋Šฅ ์ง€์—ญ ๋‚ด์—์„œ 1ํšŒ์„ฑ ์šด๋™ ๋ชจ์ž„์„ ๊ฐœ์ตœํ•˜๊ณ  ์ฐธ๊ฐ€์‹ ์ฒญ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
์ฑ„ํŒ… ๊ธฐ๋Šฅ ์œ ์ €๊ฐ„ 1:1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ
์ง€์—ญ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์ง€์—ญ์˜ ์œ ์ € ๋ฐ์ดํ„ฐ์™€ ์˜๋ฃŒ ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์ œ๊ณต
์œ ์ € ์‚ฌํšŒ๋ง ์‹œ๊ฐํ™” ์ž์‹ ๊ณผ ๋„คํŠธ์›Œํ‚น์ด ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋Š” ์œ ์ €๋“ค๊ณผ์˜ ์‚ฌํšŒ์  ์—ฐ๊ฒฐ๋ง์„ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์ œ๊ณต

์ƒ์„ธ ๊ธฐ๋Šฅ

  • ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์›๊ฐ€์ž…
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๊ธ€ CRUD(Create, Read, Update, Delete)
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๊ธ€ ๋Œ“๊ธ€ ๋ฐ ์ข‹์•„์š” ๊ธฐ๋Šฅ
  • ์œ ์ € ๊ฐ„์˜ 1:1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ
  • ์œ ์ € ์‚ฌํšŒ๋ง ์‹œ๊ฐํ™” ๋งต ๊ธฐ๋Šฅ

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

๐Ÿ”—์™€์ด์–ดํ”„๋ ˆ์ž„(Wireframe)
Wireframe
๐Ÿ”—์•„ํ‚คํ…์ฒ˜(Architecture)
Overall Flow
Sequence Flow

๐ŸŽฅ ๋ฐ๋ชจ ์˜์ƒ

ํšŒ์›๊ฐ€์ž… & ํ”„๋กœํ•„ ์ž‘์„ฑ ํŽ˜์ด์ง€
ํšŒ์›๊ฐ€์ž… & ํ”„๋กœํ•„ ์ž‘์„ฑ ํŽ˜์ด์ง€
๋กœ๊ทธ์ธ & ๋ฉ”์ธ ํŽ˜์ด์ง€
๋กœ๊ทธ์ธ & ๋ฉ”์ธ ํŽ˜์ด์ง€
๊ฒŒ์‹œ๋ฌผ ๋Œ“๊ธ€ ๋ฐ ์ข‹์•„์š” ๊ธฐ๋Šฅ
๊ฒŒ์‹œ๋ฌผ ๋Œ“๊ธ€ ๋ฐ ์ข‹์•„์š” ๊ธฐ๋Šฅ
์ƒˆ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๊ธฐ๋Šฅ
์ƒˆ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๊ธฐ๋Šฅ
์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ
์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ
์œ ์ € ์‚ฌํšŒ๋ง ๊ธฐ๋Šฅ
์œ ์ € ์‚ฌํšŒ๋ง ๊ธฐ๋Šฅ

๐Ÿ”† ์„œ๋น„์Šค ์ฐจ๋ณ„์  ๋ฐ ๊ธฐ๋Œ€ ํšจ๊ณผ

  1. ์ง€์†์ ์œผ๋กœ ์ง‘๊ณ„๋˜๋Š” ์œ ์ €๋“ค์˜ ๋ฐ์ดํ„ฐ์™€ ๊ณต๊ณต๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ์šฐ๋ฆฌ๋™๋„ค ์ด์Šˆ ํˆฌํ‘œ ๊ธฐ๋Šฅ์€ ์ •์ฑ… ์˜์‚ฌ ๊ฒฐ์ • ๊ณผ์ •์— ๊ทผ๊ฑฐ๋กœ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ง‘๊ณ„๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต๋ก ํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ) ํก์—ฐ๋ฅ ์ด ๋†’์€ ์ง€์—ญ, ๊ธˆ์—ฐ ์š•๊ตฌ๊ฐ€ ์žˆ์œผ๋‚˜ ์ง€์› ์‹œ์„ค์ด ์—†์Œ >> ์ง€์—ญ๋‚ด ๊ธˆ์—ฐ ์ง€์› ์‹œ์„ค ์„ค์น˜ ์˜๊ฒฌ ์ˆ˜๋ ด

  1. ์œ ์ €๋“ค์˜ ์„œ๋น„์Šค ๋‚ด ํ™œ๋™ ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์„ํ•˜์—ฌ(neo4j) ๋‚˜์˜ ์šฐ๋ฆฌ๋™๋„ค ๋„คํŠธ์›Œํฌ ์‹œ๊ฐํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์‹ฌ๋ฆฌ์ ์œผ๋กœ ์‚ฌํšŒ์  ์•ˆ์ „๋ง์„ ์ฒด๊ฐํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

  2. ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์—ฐ๋ น๋Œ€์˜ ์ฐธ์—ฌ๊ฐ€ ์ค‘์š”ํ•˜๋ฏ€๋กœ ์˜จ๋ผ์ธ ์„œ๋น„์Šค์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๋…ธ๋ น์„ธ๋Œ€๋ฅผ ์œ„ํ•œ UI/UX๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ‘ช ๊ฐœ๋ฐœ ํŒ€ ์†Œ๊ฐœ

ํ™ฉ์ •์šฐ ํ”„๋กœํ•„ ๋ฐ•์ •ํ™˜ ํ”„๋กœํ•„ ๊น€์ˆ˜์˜ ํ”„๋กœํ•„ ๊ฐ•์ธ์„  ํ”„๋กœํ•„ ์œค์ˆ˜์ง„ ํ”„๋กœํ•„
ํ™ฉ์ •์šฐ
(PM&Data Analysis)
๋ฐ•์ •ํ™˜
(Front-end)
๊น€์ˆ˜์˜
(Front-end)
๊ฐ•์ธ์„ 
(Back-end)
์œค์ˆ˜์ง„
(Back-end)

์ด๋ฆ„ ์—ญํ•  ๊ฐœ๋ฐœ ๋‚ด์šฉ
ํ™ฉ์ •์šฐ PM
Data Analysis
์™€์ด์–ด ํ”„๋ ˆ์ž„ ๋ฐ ์•„ํ‚คํ…์ฒ˜ ์ž‘์„ฑ
๋ฐ์ดํ„ฐ ๋ถ„์„
์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”
์œ ์ € ์‚ฌํšŒ๋ง ์‹œ๊ฐํ™” ์„œ๋น„์Šค ๊ฐœ๋ฐœ
์›น ์Šคํƒ€์ผ๋ง ์ž‘์—…
๋ฐ•์ •ํ™˜ Front-end ๋กœ๊ทธ์ธ&ํšŒ์›๊ฐ€์ž…&ํ”„๋กœํ•„ ์ž‘์„ฑ ํŽ˜์ด์ง€ ๊ตฌํ˜„
์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๋ฌผ ๋ฐ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„(CRUD)
์›น ์Šคํƒ€์ผ๋ง ์ž‘์—…
๊น€์ˆ˜์˜ Front-end 1:1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„
์ฑ„ํŒ… ํŽ˜์ด์ง€ ์›น ์Šคํƒ€์ผ๋ง ์ž‘์—…
๊ฐ•์ธ์„  Back-end ๋กœ๊ทธ์ธ&ํšŒ์›๊ฐ€์ž…&ํ”„๋กœํ•„ ์ž‘์„ฑ API ๊ตฌํ˜„
์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๋ฌผ ๋ฐ ๋Œ“๊ธ€ API ๊ตฌํ˜„
DB ์„ค๊ณ„
์œค์ˆ˜์ง„ Back-end 1:1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„

๋ฉค๋ฒ„๋ณ„ responsibility(R&R, Role and Responsibilities)

PM
  • ๊ธฐํš ๋‹จ๊ณ„ : ๊ตฌ์ฒด์ ์ธ ์„ค๊ณ„์™€ ์ง€ํ‘œ์— ๋”ฐ๋ฅธ ํ”„๋กœ์ ํŠธ ์ œ์•ˆ์„œ ์ž‘์„ฑ
  • ๊ฐœ๋ฐœ ๋‹จ๊ณ„ : ํŒ€์›๊ฐ„์˜ ์ผ์ • ๋“ฑ ์กฐ์œจ + ํ”„๋ก ํŠธ or ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ
  • ์ˆ˜์ • ๋‹จ๊ณ„ : ๊ธฐํš, ์Šคํฌ๋Ÿผ ์ง„ํ–‰, ์ฝ”์น˜๋‹˜ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜ํ•ด์„œ ์ˆ˜์ •, ๋ฐœํ‘œ ์ค€๋น„
Front-end
  • ๊ธฐํš ๋‹จ๊ณ„ : ํฐ ์ฃผ์ œ์—์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ ์•„์ด๋””์–ด ๋„์ถœ, ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ž‘์„ฑ
  • ๊ฐœ๋ฐœ ๋‹จ๊ณ„ : ์™€์ด์–ดํ”„๋ ˆ์ž„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ์‹œ๊ฐํ™” ๋‹ด๋‹น, UI ๋””์ž์ธ ์™„์„ฑ
  • ์ˆ˜์ • ๋‹จ๊ณ„ : ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜ํ•ด์„œ ํ”„๋ก ํŠธ ๋””์ž์ธ ์ˆ˜์ •
Back-end & Data Analysis
  • ๊ธฐํš ๋‹จ๊ณ„ : ๊ธฐํš ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ •์˜
  • ๊ฐœ๋ฐœ ๋‹จ๊ณ„ : ์›น ์„œ๋ฒ„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ฐฑ์—”๋“œ์— ์ €์žฅํ• ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„, ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ตฌ์ถ• ๋ฐ API ํ™œ์šฉ, ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฐœ๋… ์ด๋™์›ํ•˜๊ธฐ
  • ์ˆ˜์ • ๋‹จ๊ณ„ : ์ฝ”์น˜๋‹˜ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜ํ•ด์„œ ๋ถ„์„/ ์‹œ๊ฐํ™” ๋ฐฉ์‹ ์ˆ˜์ •

๐Ÿ“… ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋ฐ ์ผ์ •

๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

21.03.30 ~ 21.04.16 (3์ฃผ)

๊ฐœ๋ฐœ ์ผ์ •

์ฃผ์ฐจ ๋‚ด์šฉ
1์ฃผ์ฐจ ํ”„๋กœ์ ํŠธ ๊ธฐํš
์Šคํ† ๋ฆฌ๋ณด๋“œ&์‹œ๋‚˜๋ฆฌ์˜ค ์ž‘์„ฑ
๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™”
2์ฃผ์ฐจ ํšŒ์›๊ฐ€์ž…&ํ”„๋กœํ•„ ์ž‘์„ฑ ํŽ˜์ด์ง€ ๊ตฌํ˜„
๋กœ๊ทธ์ธ&๋กœ๊ทธ์•„์›ƒ ๊ตฌํ˜„
์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๋ฌผ(CREATE, READ, DELETE) ๊ตฌํ˜„
3์ฃผ์ฐจ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๋ฌผ(UPDATE) ๋ฐ ๋Œ“๊ธ€ ๊ตฌํ˜„
๊ฒŒ์‹œ๋ฌผ ๋“ฑ๋ก ์ผ์ž, ๋Œ“๊ธ€ ์ˆ˜, ์ข‹์•„์š” ์ •๋ณด ์ถœ๋ ฅ
1:1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„
์œ ์ € ์‚ฌํšŒ๋ง ์‹œ๊ฐํ™” ์„œ๋น„์Šค ๊ฐœ๋ฐœ
์›น ์Šคํƒ€์ผ๋ง ์ž‘์—…

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

  1. ์›๊ฒฉ ์ €์žฅ์†Œ ๋ณต์ œ
$ git clone https://github.com/todak-todak/todak-todak.git
  1. ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™ ํ›„ ์„œ๋ฒ„ ํด๋”๋กœ ์ด๋™
$ cd todak-todak
$ cd medical
  1. Flask ์„œ๋ฒ„ ์‹คํ–‰
$ export FLASK_APP=medical
$ export FLASK_ENV=development
$ flask run
  1. MongoDB ์„ค์น˜ (์ƒˆ ํ„ฐ๋ฏธ๋„ ์˜คํ”ˆ)
$ curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
$ sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
  1. MongoDB ์„ค์ • ๋ฐ ์‹คํ–‰ (project ํด๋”์— data/db ์ƒ์„ฑ)
$ mongod --dbpath data/db/
$ mongo
  1. client ํด๋”๋กœ ์ด๋™ (์ƒˆ ํ„ฐ๋ฏธ๋„ ์˜คํ”ˆ)
$ cd client
  1. ํ•„์š”ํ•œ node_modules ์„ค์น˜
$ npm install
  1. ๋ฆฌ์•กํŠธ ์•ฑ ์‹คํ–‰
$ npm start

๐Ÿ“ข FAQ

ํ™˜๊ฒฝ์„ค์ • ๋ฐ ์—๋Ÿฌ ๋Œ€์‘

Ubuntu 18.04 LTS๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

  • Flask ์„œ๋ฒ„ ๊ตฌ๋™ ์‹œ ์„ค์ • ์‚ฌํ•ญ

    Bash Script์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

~ % export FLASK_APP=medical
~ % export FLASK_ENV=development
~ % flask run

  • MongoDB ์„ค์น˜ ๋ฐ ์„ค์ •์‚ฌํ•ญ

    MongoDB ์„ค์น˜ ๋ฐ ์‹คํ–‰ ์„ค์ •

~ % curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
~ % sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/~ % mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
~ % sudo apt-get update
~ % sudo apt-get install -y mongodb-org
~ % mkdir data
~ % cd data
~ data % mkdir db
~ data % cd ..
~ % mongod --dbpath=data/db/

  • MySQL ๊ด€๋ จ ์ด์Šˆ

    MySQL ์‹คํ–‰๋ฒ•

~ % mysql -u root -r
# ์œ„ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ root@localhost permission denied ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”
~ % sudo mysql -u root

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
mysql> UPDATE user SET PLUGIN='mysql_native_password' WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> SELECT user, host, plugin FROM user;

git pull ์ดํ›„ ์‹คํ–‰ ์‹œ

~ % service mysql restart
# ์ƒˆ๋กœ git pull ํ›„์— ์œ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”

ERROR 2002 (HY000): Canโ€™t connect to local MySQL server through socket โ€˜/var/lib/mysql/mysql.sockโ€™ ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ

~ % service mysql restart
# ์œ„ ์ฝ”๋“œ๋กœ ์—๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐ ๋˜์ง€ ์•Š์„ ์‹œ ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”
~ % service mysql stop
~ % chmod 755 -R /var/lib/mysql
~ % chown mysql:mysql -R /var/lib/mysql
~ % service mysql start

SQLalchemy ์‹คํ–‰ ์„ค์ •

# SQLalchemy ์‹คํ–‰ ์ „ MySQL์—์„œ database๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”

# ์ตœ์ดˆ 1ํšŒ ์‹คํ–‰
~ % flask db init

# ๋ชจ๋ธ๋ง ์ดํ›„ 1ํšŒ
~ % flask db migrate

# ์ดํ›„ ์‹คํ–‰ ์‹œ ๋ชจ๋ธ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค
~ % flask db upgrade

SQLalchemy ๋ฆฌ๋ชจ๋ธ๋ง

# ์ด๋ฏธ ๋งŒ๋“  ๋ชจ๋ธ์„ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒฝ์šฐ ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”

mysql> DROP DATABASE medical;
mysql> CREATE DATABASE medical;

~ % flask upgrade

# ๋ฆฌ๋ชจ๋ธ๋ง์ด ์•ˆ๋œ๋‹ค๋ฉด migration ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œ ํ›„ SQLalchemy๋ฅผ ์ตœ์ดˆ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”

About

๐Ÿ‡ ํ† ๋‹ฅํ† ๋‹ฅ (Todak-Todak) / ๋™๋ณ‘์ƒ๋ จ์˜ ์•„ํ””์„ ๊ฐ€์ง„ ์œ ์ €๋“ค์˜ ์‚ฌํšŒ์  ์—ฐ๋Œ€ ๊ฐ•ํ™”๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์ง€์—ญ ๊ธฐ๋ฐ˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค

Topics

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •