Skip to content

Blueming-PDA/Blueming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Blueming



logo-image

블루밍은 학생과 μ„ μƒλ‹˜ κ°„μ˜ μ›ν™œν•œ μ†Œν†΅μ„ μœ„ν•œ ν•™μŠ΅ 보쑰 λ„κ΅¬μž…λ‹ˆλ‹€.
더 μ΄μƒμ˜ ν•œκ³„ μ—†λŠ” ν•™μŠ΅μ˜ 정원, ν•¨κ»˜ 우리의 정원을 κ°€κΎΈμ–΄ λ‚˜κ°€μš”! 🌱🌼




logo-image

Service Introduction


μ €ν¬λŠ” κ΅μœ‘μ„ μˆ˜κ°•ν•˜λ©° μ΄λŸ¬ν•œ λΆˆνŽΈν•¨μ„ λŠκΌˆμŠ΅λ‹ˆλ‹€.

πŸ—£οΈ β€œλ’·μžλ¦¬λΌ μ½”λ“œκ°€ 잘 μ•ˆ λ³΄μ—¬μš”.β€œ
πŸ—£οΈ β€œλ„ˆλ¬΄ μ‘°μš©ν•΄μ„œ μ§ˆλ¬Έν•˜κΈ° μ–΄λ €μ›Œμš”.β€œ
πŸ—£οΈ β€œν•™μƒλ“€λΌλ¦¬ 읡λͺ…μœΌλ‘œ μ†Œν†΅ν•  수 μžˆλŠ” 창ꡬ가 있으면 μ’‹κ² μ–΄μš”.β€œ
πŸ—£οΈ β€œκ³΅μ§€μ‚¬ν•­μ„ μŠ¬λž™μ—μ„œ ν™•μΈν•˜λ‹€λ³΄λ‹ˆ μ°ΎκΈ° νž˜λ“€μ–΄μš”.β€œ

‼️ "이 λͺ¨λ“  것을 ν•œλ²ˆμ— ν•΄κ²°ν•  수 μžˆλŠ” ν”Œλž«νΌμ΄ μžˆλ‹€λ©΄ μ–΄λ–¨κΉŒ?"


λ”°λΌμ„œ ꡐ윑 톡합 관리 μ‹œμŠ€ν…œμ΄μž ν•™μƒλ“€μ˜ μˆ˜μ—…μ„ λ³΄μ‘°ν•΄μ£ΌλŠ” 도ꡬ인, 블루밍을 κ°œλ°œν–ˆμŠ΅λ‹ˆλ‹€!

πŸ”¨ 블루밍을 톡해 μ‚¬μš©μžλŠ”

  • μ½”λ“œ 곡유λ₯Ό κ°„νŽΈν™”ν•˜κ³ 
  • 적극적인 μ§ˆμ˜μ‘λ‹΅ μœ λ„ν•˜κ³ 
  • ν•™μƒλ“€μ˜ ν•™μŠ΅ 상황을 νŒ”λ‘œμš°ν•  수 μžˆμŠ΅λ‹ˆλ‹€!




logo-image

Project Architecture

architecture-image



logo-image

DB Modeling

DBmodeling-image



logo-image

Main Features

πŸ”” μ•Œλ¦Ό κΈ°λŠ₯

학생은 μˆ˜μ—…μ— κ΄€ν•œ ν”Όλ“œλ°± ν˜Ήμ€ μ§ˆλ¬Έμ„ μ•Œλ¦Ό κΈ°λŠ₯을 톡해 읡λͺ…μœΌλ‘œ 전달할 수 μžˆμŠ΅λ‹ˆλ‹€.
κ°•μ‚¬λŠ” μ•Œλ¦Όμ„ 톡해 ν•™μƒλ“€μ˜ 이해정도λ₯Ό μ•Œ 수 있고 μ§ˆλ¬Έμ„ 받을 수 μžˆμ–΄ μ΅œμ ν™”λœ μˆ˜μ—…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

πŸ“ λ³΄λ“œ κΈ°λŠ₯

κ²Œμ‹œνŒ, κ³Όμ œν•¨, 곡지사항 μ„Έκ°œμ˜ κ²Œμ‹œνŒμ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€.
κ²Œμ‹œνŒμ—λŠ” 읡λͺ…μœΌλ‘œ 글을 적을 수 있으며, κ³Όμ œν•¨μ€ μžμ‹ μ΄ 올린 κΈ€λ§Œ μ ‘κ·Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ’» μ½”λ“œ 곡유 κΈ°λŠ₯

강사 ν˜Ήμ€ ν•™μƒμ˜ μ½”λ“œλ₯Ό 각자의 화면에 λ„μ›Œ λͺ¨λ‘ ν•¨κ»˜ κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
슀크린과 λ©€μ–΄ κ°•μ‚¬μ˜ 화면이 μ•ˆλ³΄μ΄κ±°λ‚˜, ν•™μƒμ˜ μ½”λ“œλ₯Ό 보며 μ„€λͺ…ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ— ν•΄λ‹Ή κΈ°λŠ₯을을 μ‚¬μš©ν•¨μœΌλ‘œμ¨ 보닀 질 높은 μˆ˜μ—…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€


logo-image

Team Member


κΉ€λ―Έλž˜ κΉ€μ‹œμ€ λ°•μ„œν¬ 000
@allllfo @lvolzdev @seohee99 @ekgus9701
Full-stack Full-stack Full-stack Full-stack
βœ”οΈ AWS EC2 배포
βœ”οΈ 둜그인, νšŒμ›κ°€μž… κΈ°λŠ₯ 및 UI κ΅¬ν˜„
βœ”οΈ λ§ˆμ΄νŽ˜μ΄μ§€ κΈ°λŠ₯ 및 UI κ΅¬ν˜„
βœ”οΈ 기타 UI κ΅¬ν˜„
βœ”οΈ AWS EC2 배포 및 CICD κ΅¬ν˜„
βœ”οΈ λ©”μΈνŽ˜μ΄μ§€ UI 및 컀리큘럼 κΈ°λŠ₯ κ΅¬ν˜„
βœ”οΈ κ²Œμ‹œκΈ€ μž‘μ„±/μˆ˜μ • νŽ˜μ΄μ§€ κ΅¬ν˜„
βœ”οΈ 둜고 λ””μžμΈ 포함 기타 λ¬Έμ„œ μž‘μ—…
βœ”οΈ κΈ°λ³Έ λ ˆμ΄μ•„μ›ƒ 섀계 및 κ΅¬ν˜„
βœ”οΈ Iframe, VSCode Liveshare Extension을 ν™œμš©ν•œ ν™”λ©΄ 곡유 κΈ°λŠ₯ κ΅¬ν˜„
βœ”οΈ Socket.ioλ₯Ό ν™œμš©ν•œ 질문, μ•Œλ¦Ό κΈ°λŠ₯ κ΅¬ν˜„
βœ”οΈ κ²Œμ‹œκΈ€ 리슀트 νŽ˜μ΄μ§€ κ΅¬ν˜„
βœ”οΈ κ²Œμ‹œκΈ€ 상세 νŽ˜μ΄μ§€ κ΅¬ν˜„
βœ”οΈ 헀더 문ꡬ λ³€κ²½ κΈ°λŠ₯ κ΅¬ν˜„
βœ”οΈ 기타 UI κ΅¬ν˜„




logo-image

Case Study

문제 1, ν™”λ©΄ 곡유 κΈ°λŠ₯ : Iframe에 링크 μ‚½μž… μ‹œ CORS μ—λŸ¬

상황

vscode μ½”λ“œ 곡유λ₯Ό μœ„ν•΄ live share extension을 μ„€μΉ˜ν•΄μ„œ Iframe의 src 속성에 ν™”λ©΄ 곡유 링크λ₯Ό μ‚½μž…

문제

λΆ€λͺ¨(blueming), μžμ‹(vscode~~.com) 은 같은 μΆœμ²˜κ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— CORS μ—λŸ¬κ°€ λ°œμƒ

CORS
- CORS : cross origin resource sharing, λ™μΌν•œ 좜처(ν”„λ‘œν† μ½œ, 호슀트λͺ…, 포트)의 λ¦¬μ†ŒμŠ€μ—λ§Œ μ ‘κ·Όν•˜λ„λ‘ μ œν•œν•˜λŠ” μ •μ±…

- λ”°λΌμ„œ CORSλŠ” μ„œλ‘œ λ‹€λ₯Έ 좜처(Origin) 간에 λ¦¬μ†ŒμŠ€λ₯Ό μ „λ‹¬ν•˜λŠ” 방식을 μ œμ–΄ν•˜λŠ” 체제이며,CORS μš”μ²­μ΄ κ°€λŠ₯ν•˜λ €λ©΄ μ„œλ²„μ—μ„œ νŠΉμ • 헀더인 Access-Control-Allow-Originκ³Ό ν•¨κ»˜ 응닡할 ν•„μš”κ°€ μžˆλ‹€!

ν•΄κ²°

ν•΄κ²° 방법 1

iframe 에 λ‹€λ₯Έ 좜처의 μ‚¬μ΄νŠΈλ₯Ό λ„£μ—ˆλ‹€λŠ” 글을 μ°Έκ³ ν•˜μ—¬ 같은 방법을 μ‚¬μš©
λ‹€λ₯Έ μ‚¬λžŒμ΄ λ§Œλ“  ν”„λ‘μ‹œ μ„œλ²„(λŒ€ν‘œμ μΈ 예:https://cors-anywhere/herokuapp.com)λ₯Ό μ‚¬μš©ν•˜λŠ” 것 :: μš”μ²­ν•΄μ•Όν•˜λŠ” url μ•žμ— ν”„λ‘μ‹œ μ„œλ²„ url을 λΆ™μ—¬ μš”μ²­ν•˜λ©΄ ν•΄κ²°ν•  수 있음
ν•˜μ§€λ§Œ 이 방법은 μ‚¬μš©μžκ°€ 직접 ν”„λ‘μ‹œ μ„œλ²„ μ‚¬μ΄νŠΈμ— λ“€μ–΄κ°€μ„œ μž μ‹œ μ‚¬μš©ν•˜κ² λ‹€λŠ” μš”μ²­ λ²„νŠΌμ„ λˆŒλŸ¬μ•Όλ§Œ κ°€λŠ₯ν•˜κΈ°μ— 이건 μž„μ‹œμ μΈ λ°©λ²•μ΄μ—ˆκ³ , 개발용으둜만 κ°€λŠ₯ν•΄μ„œ λ°°ν¬ν–ˆμ„ λ•ŒλŠ” μ‚¬μš©ν•˜μ§€ λͺ»ν•œλ‹€λŠ” λ‹¨μ μœΌλ‘œ μ‚¬μš©ν•˜μ§€ μ•ŠμŒ

ν•΄κ²° 방법 2

μ„œλ²„μ—μ„œ 직접 Access-Control-Origin 헀더λ₯Ό μ„ΈνŒ…
Iframe에 λ„£κ³  싢은 링크λ₯Ό μ„œλ²„λ‘œ λ³΄λ‚΄μ„œ μ„œλ²„μ—μ„œ 헀더λ₯Ό λ„£μ–΄ 응닡을 λ³΄λ‚΄μ£Όμ—ˆκ³ , κ·Έ 응닡받은 데이터 자체λ₯Ό iframeμ—μ„œ srcDoc 속성에 λ„£μ–΄μ£Όμ—ˆλ‹€. (srcDoc은 html같은 ν˜•νƒœλ₯Ό 넣을 수 μžˆλŠ” 속성)
μ„œλ²„, ν”„λ‘ νŠΈ μ‚¬μ΄μ˜ ν”„λ‘μ‹œλŠ” 이미 μ„€μ •ν•΄λ‘μ—ˆκΈ°λ•Œλ¬Έμ— μœ„ 방법을 μ‚¬μš©ν•΄μ„œ λ‹€λ₯Έ 좜처의 μ‚¬μ΄νŠΈλ₯Ό iframe에 넣을 수 있게 λ˜μ—ˆλ‹€!


문제 2, 배포 : μ†ŒμΌ“ 톡신 μ‹œ CORS μ—λŸ¬

상황

AWS EC2 μΈμŠ€ν„΄μŠ€μ— Socket 톡신 κ΅¬ν˜„ν•œ λ²„μ „μ˜ 배포 μ‹œλ„.

문제

λ‘œμ»¬μ—μ„œλŠ” λ¬Έμ œμ—†μ΄ μž‘λ™λμ§€λ§Œ, λ°°ν¬ν•˜μž corsμ—λŸ¬ λ°œμƒν•˜λ©° μ†ŒμΌ“ 톡신 μž‘λ™ν•˜μ§€ μ•ŠμŒ.
μ„œλ²„λŠ” 3000번 포트, ν΄λΌμ΄μ–ΈνŠΈλŠ” 5173번 포트 μ‚¬μš© 쀑.
λ”°λΌμ„œ κΈ°μ‘΄ 파일의 경우,

  • ν”„λ‘ νŠΈμ—”λ“œ socket νŒŒμΌμ—μ„œλŠ” http://elasicIP:3000 μ„œλ²„ 포트둜 μ†ŒμΌ“μ„ λ³΄λ‚΄κ²Œλ” κ΅¬ν˜„.
  • λ§ˆμ°¬κ°€μ§€λ‘œ λ°±μ—”λ“œ socket νŒŒμΌμ—μ„œλŠ” Serverλ₯Ό μƒˆλ‘œ λ§Œλ“€ λ•Œ cors origin에 http://elasicIP:5173 μΆ”κ°€ν•΄μ€¬μŒ.

해결방법

EC2 μΈμŠ€ν„΄μŠ€ λ‚΄μ—μ„œλŠ” nginx μ›Ήμ„œλ²„λ₯Ό 톡해 톡신함.
고둜 μ†ŒμΌ“ 톡신 μ‹œμ—λ„ 직접 ν”„λ‘ νŠΈ/λ°± 포트둜 μ „μ†‘ν•˜λŠ” 것이 μ•„λ‹Œ, null 값을 λ³΄λ‚΄μ£Όλ‹ˆ μ •μƒμ μœΌλ‘œ 톡신이 λ™μž‘ν•¨.

Code 스크란샷 2024-02-29 α„‹α…©α„Œα…₯ᆫ 9 31 17




logo-image

Folder Structure


폴더 ꡬ쑰
πŸ“‚ frontend
β”œβ”€ .eslintrc.cjs
β”œβ”€ .gitignore //  .gitignore 파일
β”œβ”€ package-lock.json
β”œβ”€ package.json // package 관리 파일
β”œβ”€ public // image 관리 폴더
β”œβ”€ README.md
β”œβ”€ src
β”‚  β”œβ”€ App.css
β”‚  β”œβ”€ App.jsx
β”‚  β”œβ”€ assets // 데이터, 폰트 λ“± 관리 폴더
β”‚  β”‚  β”œβ”€ data
β”‚  β”‚  β”œβ”€ fonts
β”‚  β”œβ”€ components // λ ˆμ΄μ•„μ›ƒ 관리 폴더
β”‚  β”œβ”€ lib
β”‚  β”‚  β”œβ”€ apis // λ°±μ—”λ“œμ™€ 톡신을 μœ„ν•œ 폴더
β”‚  β”‚  └─ hooks
β”‚  β”œβ”€ main.jsx
β”‚  β”œβ”€ routers // λΌμš°ν„° 관리 폴더
β”‚  β”œβ”€ routes
β”‚  β”‚  β”œβ”€ board // 메인 κΈ°λŠ₯ 1. board
β”‚  β”‚  β”‚  β”œβ”€ assignment // 1-1. κ³Όμ œν•¨
β”‚  β”‚  β”‚  β”‚  β”œβ”€ detail
β”‚  β”‚  β”‚  β”‚  └─ write
β”‚  β”‚  β”‚  β”œβ”€ board // 1-2. μžμœ κ²Œμ‹œνŒ
β”‚  β”‚  β”‚  β”‚  β”œβ”€ detail
β”‚  β”‚  β”‚  β”‚  └─ write
β”‚  β”‚  β”‚  └─ notice // 1-3. 곡지사항
β”‚  β”‚  β”‚     β”œβ”€ detail
β”‚  β”‚  β”‚     └─ write
β”‚  β”‚  β”œβ”€ codeShare // 메인 κΈ°λŠ₯ 2. ν™”λ©΄ 곡유
β”‚  β”‚  β”œβ”€ question // 메인 κΈ°λŠ₯ 3. 질문/μ•Œλ¦Ό
β”‚  β”‚  β”œβ”€ socket // μ†ŒμΌ“ 톡신을 μœ„ν•œ 폴더
β”‚  β”‚  └─ user // μœ μ € κΈ°λŠ₯ 관리λ₯Ό μœ„ν•œ 폴더
β”‚  β”‚     β”œβ”€ login
β”‚  β”‚     β”œβ”€ mypage
β”‚  β”‚     └─ signup
β”‚  └─ store
β”‚     β”œβ”€ reducers // redux μƒνƒœ 관리λ₯Ό μœ„ν•œ 폴더
β”‚     └─ store.js
└─ vite.config.js

πŸ“‚ backend
β”œβ”€ .gitignore
β”œβ”€ app.js
β”œβ”€ bin // μ„œλ²„ μ‹œμž‘ 파일
β”‚  └─ www
β”œβ”€ middlewares // 둜그인 관리 미듀웨어
β”œβ”€ models // DB λͺ¨λΈ
β”œβ”€ package.json
β”œβ”€ routes // λΌμš°ν„° 관리 폴더
β”œβ”€ utils // 인증, μ†ŒμΌ“ 관리 폴더
β”‚  β”œβ”€ auth.js
β”‚  └─ socket
└─ views

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages