- 모링 Server 팀은 성공적인 모임 활동을 위한 서비스, 모링의 서버를 개발 및 운영합니다.
- 모링의 서버는 NCP 환경에 기반하여 운영됩니다.
- 한 장비 내 docker-compose 기반으로 운영함으로써 비용 절감을 도모합니다.
- 사용자 증가 시, k8s 기반 시스템으로 전환 가능하도록 구상 중에 있습니다.
- DDD(Domain Driven Design) 및 Multi Module 방식을 채택하였습니다.
- 애플리케이션 내 패키지는 특정 도메인 또는 서브 도메인을 기준으로 나뉩니다.
- 각 도메인 패키지는 application, domain, infrastructure, presentation의 네 가지 주요 레이어로 일관된 구조를 따릅니다.
├── meeting
│ ├── answer
│ │ ├── application
│ │ │ ├── MeetingAnswerRepository.java
// ...
│ │ ├── domain
│ │ │ └── MeetingAnswer.java
│ │ ├── infrastructure
│ │ │ ├── MeetingAnswerJpaRepository.java
// ...
│ │ └── presentation
│ │ ├── MeetingAnswerController.java
// ...
│ ├── comment
│ │ ├── application
// ...
- DDD의 가장 큰 장점은, 도메인 모델을 강조함으로써 소프트웨어가 비즈니스 목표 및 프로세스와 밀접하게 일치하도록 할 수 있다는 점입니다.
- 이러한 장점으로 인해 효율적이고 빠르며 정확한 개발이 가능토록 합니다.
- Multi Module 아키텍처는 프로젝트를 여러 모듈로 분리하여 각각의 모듈이 독립적으로 개발되고 관리될 수 있도록 합니다.
- 이 방식은 코드의 모듈성과 재사용성을 높이며, 독립적인 배포와 테스트가 가능하게 해줍니다.
├── auth
│ ├── src
│ └── build.gradle
├── meeting-api
│ ├── src
│ └── build.gradle
├── admin-api
│ ├── src
│ └── build.gradle
// ...
- 다양한 지표와 로그를 효과적으로 수집하고 시각화하여 서비스 가용성과 성능 최적화에 기여합니다.
- 각 도구는 독립적이면서도 통합적으로 관리되어 유연한 확장성과 효율적인 문제 진단을 지원합니다.
-
대시보드
- 사용 기술:
Prometheus,Grafana,Micrometer - 시스템 및 애플리케이션 지표를 실시간으로 시각화하며, Slack 알림 설정 가능.
- 사용 기술:
-
애플리케이션 추적
- 사용 기술:
Naver Pinpoint - HTTP 요청 및 마이크로서비스 간 분산 추적.
- 성능 병목을 빠르게 파악.
- 사용 기술:
-
로그
- 사용 기술:
Loki Stack (Promtail + Loki + Grafana) - 로그 데이터를 효율적으로 수집하고 필요 시 커스터마이징 가능.
- Grafana에서 로그를 시각화하고, 검색 및 분석을 지원.
- 사용 기술:
-
에러 모니터링
- 사용 기술:
Sentry - 실시간 오류 모니터링 및 분석을 통해 빠른 대응 가능.
- 사용 기술:

