- 🌟 Starmix Organization GitHub : https://github.com/Starmix-ajou
- ♟ checkmate URL : https://checkmate.it.kr
- 🖥 Project Manager 전용 뷰 : https://manager.checkmate.it.kr
- 📘 API Docs : https://api.checkmate.it.kr
checkmate는 소규모 주니어 개발팀을 위한 프로젝트 관리 및 협업툴입니다.
AI를 활용한 프로젝트 생성과 Sprint 구성, 회의록 자동 요약 기능을 제공하여 팀의 초기 기획부터 실행까지의 과정을 효율적으로 지원합니다.
회의 내용을 실시간으로 정리할 수 있는 공동 편집 기능을 통해 주요 논의 사항을 요약하고, 이를 실행 가능한 액션 아이템(Task)으로 전환할 수 있습니다.
Task는 Epic 단위로 구조화할 수 있으며, Gantt Chart, Kanban Board, Calendar를 통해 관리할 수 있습니다.
또한 상세 Task 페이지의 댓글 기능을 통해 팀 내부 이해관계자 간의 원활한 소통이 가능하도록 하여, 개발 과정 전반에서 협업의 생산성을 높입니다.
| Solution 1. AI 기반 Sprint Backlog 자동 생성으로 초기 계획 수립 |
|---|
![]() |
| Solution 2. 시각화된 프로젝트 진행률 및 작업 상태 공유 |
|---|
![]() |
| Solution 3. AI 기반 회의록 요약 및 액션 아이템 도출 후 적용 |
|---|
![]() |
| Solution 4. AI 기반 Sprint 자동 재구성으로 Task 우선순위 조정 |
|---|
![]() |
| Solution 5. Burndown Chart 및 프로젝트 진행 현황 공유 |
|---|
![]() |
| Java | Spring | Spring Boot |
Spring Security |
JWT | Spring Cloud OpenFeign |
|---|---|---|---|---|---|
![]() |
![]() |
| MongoDB | Redis | Spring Data |
|---|---|---|
| Gmail API | Google OAuth API |
Slack API |
|---|---|---|
![]() |
| Kubernetes | Docker | ArgoCD | GitHub Actions |
|---|---|---|---|
![]() |
![]() |
| JUnit | Swagger |
|---|---|
Hexagonal Architecture를 통해 도메인 로직과 외부 시스템 간의 의존성을 최소화하고, 테스트 용이성을 높였습니다. 어댑터 계층을 통해 외부 시스템과의 통신을 분리하여, 도메인 로직이 외부 시스템에 영향을 받지 않도록 설계하였습니다.
Domain Driven Design을 적용하여 도메인 모델을 중심으로 설계를 진행하였습니다. 각 도메인에 대한 명확한 경계를 설정하고, 도메인 서비스로 비즈니스 로직을 구현하였습니다. 이를 통해 코드의 가독성과 유지보수성을 높였습니다.
Spring Cloud OpenFeign을 사용하여 외부 API 호출을 간편하게 처리하였습니다. 이를 통해 REST API 호출을 인터페이스로 정의하고, 구현체를 자동으로 생성하여 코드의 일관성을 유지하였습니다.
- 브랜치 명: Jira 태스크 ID 기반 ex)
CM-123 - Rebase Merge 방식으로 main 브랜치에 병합
- 최소 1명 이상의 approve 필요
src/main/java/com.starmix.checkmate
├── adapter # 외부 시스템과의 입출력을 담당하는 어댑터 계층
│ ├── in # 외부에서 들어오는 요청 처리 (API)
│ │ ├── common # 공통적으로 사용되는 DTO
│ │ ├── rest # REST API Controller / DTO
│ │ └── sse # SSE Controller / DTO
│ └── out # 외부 시스템 호출 (예: DB, 외부 API)
│ ├── ai # AI 서버 연동
│ ├── mail # 이메일 발송 API 연동 (예: Gmail API)
│ ├── oauth # OAuth 인증 관련 외부 연동
│ ├── persistence # 데이터베이스 영속성 구현체 (MongoDB)
│ ├── redis # Redis 연동 구현체
│ └── slack # Slack Webhook 또는 API 연동 구현체
├── application # 도메인 로직을 실행하는 UseCase 계층
│ ├── service # UseCase 서비스 구현체
│ └── port # 어댑터-애플리케이션 계층 연결 포트 정의
│ └── out # 어댑터에서 구현해야 할 인터페이스 정의
│ ├── ai # AI 서버 연동을 위한 포트
│ ├── mail # 메일 발송 포트
│ ├── oauth # OAuth 인증 포트
│ ├── persistence # 영속성 포트 (Repository)
│ ├── redis # Redis 연동 포트
│ └── slack # Slack 연동 포트
├── domain # 도메인 모델 및 도메인 서비스 계층
│ ├── comment # 댓글 도메인
│ ├── dailyScrum # 데일리 스크럼 관련 도메인
│ ├── epic # 에픽 도메인
│ ├── feature # 기능(feature) 도메인
│ ├── meeting # 회의 관련 도메인
│ ├── notification # 알림 도메인
│ ├── project # 프로젝트 도메인
│ ├── sprint # 스프린트 도메인
│ ├── task # 태스크 도메인
│ └── user # 사용자 도메인
├── global # 전역적으로 사용되는 설정/처리 계층
│ └── exception # 전역 예외 처리 및 예외 정의
└── infrastructure # 설정 및 보안 등 인프라 관련 구성
├── config # 애플리케이션 설정 클래스 (ex: Bean 설정, 메시지 설정 등)
└── security # Spring Security 및 인증/인가 관련 설정JUnit을 기반으로 Domain / Mapper 유닛 테스트를 수행






















