Skip to content

πŸ•―οΈ μ—°λ“±: 각자의 λΆˆλΉ›μ„ λͺ¨μ•„ κ±°λŒ€ν•œ ν–‰λ™μ˜ 물결둜, μ—°λŒ€ν™œλ™μ„ μ—°κ²°ν•˜λŠ” ν”Œλž«νΌ (BE)

Notifications You must be signed in to change notification settings

sm-solux/30th_2_WebBeing_yeondeung_back

Β 
Β 

Repository files navigation

πŸ•―οΈ μ—°λ“± - λ°±μ—”λ“œ λ ˆν¬μ§€ν† λ¦¬

γ€”  οΌΌβ”‚/  〕   흩어진 μ—°λŒ€λ₯Ό μž‡λŠ” λ”°λœ»ν•œ λΆˆλΉ›
(  μ—°  λ“±  )   μ—°λŒ€ ν™œλ™ μ •λ³΄μ˜ λͺ¨λ“  것, 
 "*. __ .*"    μ§€κΈˆ λ°”λ‘œ [μ—°λ“±]μ—μ„œ ν™•μΈν•˜μ„Έμš”.

πŸ‘₯ νŒ€μ› μ†Œκ°œ

ν™μ„œν˜„ κ³½ν•΄λ¦Ό μ†‘μ„œν˜„
BE Lead BE BE
@SH38038038 @Tulipurple @Hiimynameiss
πŸ”Ž 인증 Β· 검색 Β· 배포 πŸ€– LLM Β· 크둀링 Β· 메일 πŸ“ κ²Œμ‹œκΈ€ Β· μ•Œλ¦Ό Β· κ΄€λ¦¬μž

πŸ› οΈ 기술 μŠ€νƒ (Tech Stack)

Category Technology Reason
πŸ§‘β€πŸ’» Backend
REST API μ„œλ²„ ꡬ성 및 비동기 기반 κ³ μ„±λŠ₯ μš”μ²­ 처리
πŸ’Ύ Database / Cache
κ΄€κ³„ν˜• 데이터 μ˜μ†ν™” 및 인메λͺ¨λ¦¬ μΊμ‹œλ₯Ό ν†΅ν•œ 응닡 μ„±λŠ₯ κ°œμ„ 
πŸ”Ž Search ν•œκΈ€ ν˜•νƒœμ†Œ 뢄석 기반 λŒ€μš©λŸ‰ ν…μŠ€νŠΈ 인덱싱 및 검색 μ΅œμ ν™”
πŸ€– AI / Intelligence μ‚¬μš©μž μž…λ ₯ 뢄석 및 μžλ™ 응닡 Β· κ°€μ΄λ“œ 생성 κΈ°λŠ₯ κ΅¬ν˜„
☁️ Infra
μ»¨ν…Œμ΄λ„ˆ 기반 μ„œλΉ„μŠ€ 배포 및 격리된 μ‹€ν–‰ ν™˜κ²½ ꡬ성
🌐 Network ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­ ν”„λ‘μ‹œ 처리둜 λ°±μ—”λ“œ μ—”λ“œν¬μΈνŠΈ 은닉
πŸ”’ Security HTTPS μΈμ¦μ„œ μžλ™ λ°œκΈ‰ 및 갱신을 ν†΅ν•œ μ „ ꡬ간 μ•”ν˜Έν™”

🧩 μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

flowchart TD
    %% --- λ””μžμΈ μ‹œμŠ€ν…œ ---
    classDef edge fill:#E1F5FE,stroke:#01579B,stroke-width:2px
    classDef aws fill:#FFF3E0,stroke:#E65100,stroke-width:2px
    classDef logic fill:#F3E5F5,stroke:#7B1FA2,stroke-width:2px
    classDef data fill:#E8F5E9,stroke:#2E7D32,stroke-width:2px
    classDef ai fill:#E0F2F1,stroke:#00796B,stroke-width:2px,stroke-dasharray: 5 5

    subgraph Global_Edge ["🌍 Layer 7: Frontend & Masking"]
        User(("πŸ‘€ User\n(Browser)"))
        FB_H["πŸ”₯ Firebase Hosting\n(Static Assets)"]:::edge
        FB_R["πŸ›‘οΈ Cloud Rewrites\n(API Masking Proxy)"]:::edge
    end

    subgraph AWS_EC2 ["☁️ AWS Hardened Host (Docker Engine)"]
        direction TB
        
        subgraph Security_Gate ["πŸ”’ Security Layer"]
            Cert_Bot["πŸ”’ Certbot\n(SSL Auto-Renewal)"]:::aws
            DuckDNS["πŸ¦† DuckDNS\n(DDNS Endpoint)"]:::aws
        end

        subgraph Container_Mesh ["🐳 Isolated Docker Network"]
            direction TB
            subgraph App_Cluster ["🧠 Logic Tier"]
                Node_App["🧩 Node.js API\n(SSL Termination)"]:::logic
                AI_Logic["πŸ€– OpenAI Pipeline"]:::ai
            end
            
            subgraph Data_Tier ["πŸ’Ύ Persistence Tier"]
                direction LR
                MySQL[("🐬 MySQL 8.0")]:::data
                Redis[("πŸ”΄ Redis Cache")]:::data
                ES[("πŸ”Ž Elasticsearch")]:::data
            end
        end
    end

    Gemini_API[("🧠 OpenAI API")]:::ai

    %% --- 데이터 흐름 ---
    User -- "HTTPS / TLS 1.3" --> FB_H
    FB_H -- "Path Masking" --> FB_R
    FB_R == "Secure Tunnel" ==> DuckDNS
    
    DuckDNS --> Node_App
    Cert_Bot -. "SSL Certificate" .-> Node_App
    
    Node_App <--> AI_Logic
    AI_Logic -- "External Request" --> Gemini_API
    
    Node_App <--> MySQL
    Node_App <--> Redis
    Node_App <--> ES

    %% CI/CD
    GHA["βš™οΈ GH Actions"] -. "Deploy" .-> FB_H
    GHA -. "Docker Push/Up" .-> Node_App
Loading

About

πŸ•―οΈ μ—°λ“±: 각자의 λΆˆλΉ›μ„ λͺ¨μ•„ κ±°λŒ€ν•œ ν–‰λ™μ˜ 물결둜, μ—°λŒ€ν™œλ™μ„ μ—°κ²°ν•˜λŠ” ν”Œλž«νΌ (BE)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.0%
  • HTML 10.8%
  • Dockerfile 0.2%