웹 풀사이클 데브코스 TIL [Day 80] - Web Editor 프로젝트 구조 설계

JaeKyung Hwang·2024년 3월 20일
0

2024.03.20(수)

💡프로젝트 결과물 예시

🔧사용하는 기술 스택

💾Backend

  • Main framework: Express.js (v4.18)
  • DB: MariaDB 10.6.16

🖥️Frontend

🚀Production deployment

  • AWS, Kubernetes, Minikube
  • Jenkins, Terraform, Selenium

📑요구사항 명세서

  • Software Requirement Specification (SRS)
    • 소프트웨어 구현물의 기능적/비기능적 요구사항을 기술한 문서
      • 기능적 요구사항: 소프트웨어가 갖추어야(제공해야) 하는 기능
      • 비기능적 요구사항: 성능, 자원 사용량 등에 존재하는 여러 측면의 제약
    • 워터폴(Waterfall) 모델의 소프트웨어 개발 프로세스에서 필수 산출물로 정의하는 것이지만, 애자일(Agile) 방법론을 적용하는 경우 민첩성을 높이기 위해 산출을 생략하는 경우도 꽤 있음

⬇️워터폴(Waterfall) vs 🔄️애자일(Agile)

TDD(Test-Driven Development): 요구사항 → 테스트 케이스 → 코드

🏰서비스 모델 아키텍처

💡 Forward Proxy와 Reverse Proxy

  • Forward Proxy
    • 클라이언트 시스템 그룹 앞에 위치
    • 컴퓨터가 인터넷의 사이트 및 서비스에 요청하면 프록시 서버가 이러한 요청을 가로채고 중개자처럼 해당 클라이언트를 대신하여 웹 서버와 통신
    • 📍클라이언트 앞에 위치하며 원본 서버가 해당 특정 클라이언트와 직접 통신하지 못하도록 하는 것 → 클라이언트 보호 & 특정 사이트 액세스 제어
  • Reverse Proxy
    • 하나 이상의 웹 서버 앞에 위치
    • 클라이언트가 웹 사이트의 원본 서버에 요청을 보낼 때 역방향 프록시 서버가 네트워크 에지에서 해당 요청을 가로채서 원본 서버에 요청을 보내고 응답을 받음
    • 📍원본 서버 앞에 위치하며 어떤 클라이언트도 원본 서버와 직접 통신하지 못 하도록 하는 것 → 원본 서버 보호 & 부하 분산
  • 로컬 테스트 환경
    • Web Server X
    • 인터넷 domain name 사용 X (localhost)
    • DB 인스턴스도 동일한 k8s 클러스터 내에 배치
    • SSL 인증 X (http, JWT 쿠키 처리 방식에 차이)
profile
이것저것 관심 많은 개발자👩‍💻

0개의 댓글