Skip to content

개발 환경과 인프라 세팅하기!

Sangjin Yoon edited this page Dec 10, 2024 · 14 revisions

🤔 배경

먼저 간단(?)한 저희 왓치덕스의 아키텍처를 확인하고 넘어갑시다.

cf. 각 구성요소의 역할은 사이드바의 각 주제별 개발일지를 확인해주시면 감사하겠습니다!

특출나게 구현하기 어려운 기능은 없지만, 위 그림에 보이는 백엔드 서버만 3개가 존재해 복잡한 구조가 예상되었습니다.

혼선을 방지하기 위해 개발 환경 및 인프라 세팅을 문서로 남기며 활발하게 공유하였습니다. 프로젝트 초반 주차에는 페어 프로그래밍으로 초기 세팅을 함께하기도 했습니다.

아래에 간단하게 저희가 수행한 개발 환경 및 인프라 구축을 설명 드리겠습니다.

🏛️ 인프라 세팅

초기 개발 단계부터 각 서버에 Grafana & Prometheus를 통한 리소스 모니터링을 수행하였습니다. 사이드바 아래에서 확인할 수 있는 부하테스트 등을 거치며, 낭비되고 있는 메모리 리소스를 확인해 서버 사양을 적절히 조절하였습니다.

아키텍처 그림에서 확인할 수 있듯, 모든 서버 프로세스는 도커 컨테이너로서 실행되고 있습니다. 특히나 네임서버/프록시서버는 다른 서비스가 의존하는 요소입니다. 저희 팀의 변경 사항이 다른 서비스에 영향을 끼치지 않게 2개의 컨테이너로 Blue-Green 배포를 수행하고 있습니다.

⚒️ 개발 환경 세팅

부스트캠프 환경상 모노레포지토리를 사용하지만, 각 서버의 역할이 상이하여 복잡한 패키지 매니저 툴은 적용하지 않았습니다. 기존에 익숙한 npm을 사용하여 빠른 작업을 지향하였습니다.

콘솔 (메트릭 확인) API 서버는 NestJS CLI를 적극적으로 사용하는 등 프레임워크에서 권장하는 개발 환경을 적용했습니다. 유지·보수를 위해 NestJS에서 관리하고 있는 개발 환경을 선택하였습니다.

정형화된 프레임워크를 고려하지 않은 네임서버/프록시서버는 저희가 필요한 기능과 개발 편의성을 고려하며 함께 개발 환경을 설정해 주었습니다.

🔗 참고 자료

📚 개발 일지

개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기

🗄️ 문서 보관함

📚 회의록
1주차
2주차
3주차
4주차
5주차
6주차
📆 데일리 스크럼
1주차
2주차
3주차
4주차
5주차
6주차
📝 그룹 회고
  • 1주차 그룹회고
  • 2주차 그룹회고
  • 4주차 그룹회고
  • 📝 멘토링 일지

    📒 릴리즈 노트

    🧑‍🧑‍🧒‍🧒 팀 및 커뮤니티

    About Team Watchducks

    📢 발표 자료

    1️⃣ 1주차: 기획 현황

    2️⃣ 2주차: 발표자료

    3️⃣ 3주차: 발표자료

    4️⃣ 4주차: 발표자료

    5️⃣ 5주차: 발표자료

    6️⃣ 6주차: 최종 발표 ✨

    Clone this wiki locally