Skip to content
Dongmin Kim edited this page Sep 21, 2024 · 12 revisions

Run Together!

혼자 하는 러닝의 지루함을 덜고, 가까운 지역에서 비슷한 목표를 가진 러너들과 쉽게 연결되어 함께 운동할 수 있는 플랫폼입니다.

설계 목표

  • 보안 매커니즘을 통한 사용자 정보 보호
  • 분산 환경에서도 확장 가능한 아키텍처를 적용
  • 객체지향 원칙을 준수하여 재사용 가능하고 유지보수에 용이한 코드 구조 설계
  • 테스트 커버리지 90% 이상을 유지하는 단위 테스트 작성으로 안정성 보장

기술 스택 결정과 그 이유들

사용 기술

  • Java 21
  • Spring 6.1.12
  • SpringBoot 3.3.3
  • Gradle 8.8

브랜치 규칙

Github-flow (Feature Brach Workflow)

  • 빠르고 효율적인 기능 개발 및 배포가 가능하고, 작은 규모의 프로젝트에 적합하다고 생각하여 결정하게 되었습니다. image

커밋 규칙

<타입>: <짧은 설명>

[본문 - 선택사항]
  • 타입: 커밋의 유형을 나타내며, 종류는 다음과 같습니다.
    • feat: 새로운 기능 추가
    • fix: 버그 수정
    • dosc: 문서 수정
    • style: 코드의 기능이나 동작에 영향을 주지 않는 변경 사항(공백, 포맷팅 등)
    • refactor: 리펙토링 (버그를 수정하거나 기능을 추가하지 않는 코드 변경)
    • test: 누락된 테스트 추가 또는 기존 테스트 수정
    • build: 빌드 시스템, 외부 종속성에 영향을 미치는 변경 사항
    • chore: 코드 또는 테스트 파일을 수정하지 않는 기타 변경 사항
  • 짧은 설명: 30자를 넘지 않도록 간략한 설명을 작성합니다.
  • 본문: 추가적인 설명이 필요할 때 사용하며, 어떻게보다는 를 중심으로 작성합니다.

GitHub Issue 및 PR Label 관리 방법

Issue와 Pull Request에 Label을 적용하면 작업의 종류, 진행 상태 등을 표시해 프로젝트 관리의 가시성을 높이고자 합니다.

작업 종류별 Label

  • feature: 새로운 기능을 추가하는 작업
  • bug: 버그 수정 작업
  • documentation: 문서 작업이나 문서 업데이트
  • test: 테스트 코드 관련 작업
  • refactor: 코드 리팩토링 작업

상태별 Label

  • in progress: 현재 작업이 진행 중인 상태
  • blocked: 작업이 특정 이유로 중단된 상태
  • needs review: 코드 리뷰가 필요한 상태
  • ready for merge: 병합 준비가 완료된 상태

이슈 템플릿

📋 Description
작업에 대해 명확하고 간결한 설명을 작성합니다.

✅ Todo
[ ] todo1
[ ] todo2
[ ] todo3

📚 References (선택사항)
참고한 문서, 코드 샘플, 외부 링크 등이 있다면 첨부합니다.

PR 템플릿

📌 Summary
이 PR이 어떤 문제를 해결하고, 어떤 기능을 추가하는지 변경 사항을 간단하게 설명합니다.

📝 Description
코드의 주요 부분이 어떻게 변경되었는지, 왜 이런 변경이 필요한지를 자세한 설명을 작성합니다.

📚 References (선택사항)
참고한 문서, 코드 샘플, 외부 링크 등이 있다면 첨부합니다.

✅ Checklist
[ ] 새로운 기능이나 수정된 기능에 대해 충분한 테스트를 작성했습니다.
[ ] 코딩 스타일 가이드를 준수했습니다.
[ ] 문서(주석, README 등)가 필요하다면 업데이트했습니다.

코드 스타일

네이버의 hackday-conventions-java를 사용합니다.