제목: 모뉴(Monew)
소개: MongoDB 및 PostgreSQL 백업 및 복구 시스템
📰 흩어진 뉴스를 한 곳에, 관심 있는 주제만 모아볼 수 있는 플랫폼 **모뉴(MoNew)**는 다양한 뉴스 출처를 통합하여 관심사 기반으로 뉴스를 저장하는 뉴스 통합 관리 플랫폼입니다. 관심 있는 주제의 기사가 등록되면 실시간 알림을 받고, 댓글과 좋아요를 통해 다른 사용자와 의견을 나눌 수 있는 소셜 기능도 함께 제공됩니다.
| 팀원 | 주요 담당 |
|---|---|
| 김민형 | 팀장, 알림 기능 개발 |
| 김하은 | 관심사 기능 개발 |
| 김현민 | 댓글 기능 개발 |
| 조성진 | 뉴스 기능 개발 |
| 황준수 | 사용자 관리 기능, 활동 내역 조회 기능 개발 |
| 항목 | 기간 | 내용 |
|---|---|---|
| 기획 및 요구사항 정리 | 4/15 ~ 4/16 | 프로젝트 방향성 논의, DB 스키마 설계 |
| 공통 기능 개발 | 4/16 | 공통 예외, 로깅, 엔티티, S3 환경 설정, 테스트 자동화 설계 |
| 1차 개발 스프린트 | 4/17 ~ 4/23 | 주요 기능 개발(사용자, 뉴스, 알림 등 80% 구현) |
| 1차 점검 & 회고 | 4/24 9시 | 기능 시연 및 피드백, 진행상황 공유 |
| 중간 발표 | 4/27 14시 | |
| 2차 개발 스프린트 | 4/27 ~ 4/30 | 피드백 반영 및 코드 품질 향상(기본 기능 완성) |
| CI/CD 배포 | 4/27 ~ 4/28 | AWS 배포 파이프라인 구축 및 배포 자동화 |
| 2차 점검 | 4/30 16시 | 기능 시연 및 피드백 |
| 3차 개발 스프린트 | 4/30 ~ 5/7 | 추가 기능 개발 및 리팩토링 |
| 최종 점검 | 5/7 18시 | 기능 시연 및 최종 피드백 |
| 문서화 | 4/30 ~ 5/7 | 발표자료 및 최종 문서화 작업 |
| 최종발표 | 5/8 9시 |
| 분류 | 사용 예정 도구 |
|---|---|
| Backend | Spring Boot, Spring Batch |
| Database | PostgreSQL, MongoDB, AWS S3 |
| 배포 | AWS ECS, MongoDB Atlas |
| API 문서화 | Swagger |
| 협업 도구 | Discord, GitHub, Notion |
| 일정 관리 | GitHub Issues |
개발 컨밴션 및 팀 규칙을 수립해주세요.
| 항목 | 내용 | 비고 |
|---|---|---|
| 네이밍 컨벤션 | • 약어 사용 최소화 | |
| • camelCase (변수, 함수) | ||
| • PascalCase (클래스) | ||
| • lower-kebab-case (URL) | ||
| • UPPER_SNAKE_CASE(상수) 등 | ||
| • 테스트 코드 컨벤션 |
◦ shoud_when 구조
◦ 설명은 한글 서술식 + 마침표 | [‣](<https://www.notion.so/c00254ef76b682c496c3019f4db6413a>) |
| 코드 컨벤션 | • 연산자 사이 공백 추가
• 콤마 다음 공백 추가
• 한 줄에 한 문장
• Google Java Style Guide 적용 | ‣ |
| 커밋 컨벤션 | • feat, fix, refactor, docs, style, test, chore 등
• 커밋 컨벤션 템플릿 적용 | ‣ |
| 브랜치 전략 | • main: 배포가능 코드
• dev: 개발 환경 코드 모음
• feature/이슈번호-기능명: 기능 개발
• hotfix/이슈번호-변경내용: 간단한 수정사항
• release: 배포 브랜치 | ‣ |
| PR 컨벤션 | • 1명 이상 Approve 필수
• 코드래빗 리뷰 반영 필수
• test 통과(CodCov)
◦ 새로운 코드 테스트 커버리지 70% 필수
• dev 브랜치로 Merge 시 스쿼시 방식 적용
• 작업 내용과 변경사항, 체크리스트 등을 담은 템플릿 적용 | ‣ |
| 데일리 스크럼 | 오전 9시, 오후 6시에 팀 데일리 스크럼 진행 | ‣ |
| 이슈 컨벤션 | • 이슈 주요 작업 내용을 담은 이슈 템플릿 적용
• 카테고리 및 작업 상황, 작업 기간 설정 | ‣ |
| 기타 개발 규칙 | 개발 방식
• TDD 도입
Entity 생성
• 정적팩토리 메서드 사용(create() )
• Mapper 내부 생성X
DTO
• record로 생성
도메인 의존
• 생명주기와 관련된 경우 서비스 의존
• 단순 조회 - 레포지토리 의존
Mapper
• Mapstruct 활용
• 서비스에서 변환하여 반환
테스트
• 단위테스트 및 통합 테스트 필수
• 통합 테스트 작성 시, AWS 리소스를 사용하는 경우, @Tag 및
@EnabledIfEnvironmentVariable사용
• 컨트롤러 슬라이스 테스트 작성
• 작성한 코드에 대해 80% 커버리지 보장
• BDD
• 태그 활용(unit/integration/aws)
예외
• 도메인별로 패키지 생성
• 상위 도메인 예외를 상속하여 구현
로깅
• 서비스 레벨에 대해 로그 작성
• SLF4J 활용
• 서비스 종료와 주요 로직 외에는 debug로 작성
문서화
• 스웨거 문서화 코드 작성
• interface로 문서화 별도 작성 | ‣ |
| AWS 사용 컨벤션 | • 개별 IAM 계정 부여
• 사용자 그룹 활용
• 최소한의 권한 연결 | ‣ |
https://docs.google.com/spreadsheets/d/1wDdlF1cUaX2ReYMBSfZH6NytVy9-uuuVviT5A4RkpgY/edit?gid=0#gid=0