Skip to content

개발 규칙

JeroCaller edited this page Aug 18, 2025 · 3 revisions

개발 규칙

1. 자바 (Java)

1.1 코드 스타일

  • 네이밍 규칙

    • 클래스명: PascalCase (예: MyClass)
    • 메서드명: camelCase (예: myMethod)
    • 변수명: camelCase (예: myVariable)
    • 상수명: UPPER_SNAKE_CASE (예: MAX_VALUE)
  • 들여쓰기

    • 탭 공백 4칸
  • 주석

    • 클래스, 메서드, 복잡한 로직에 대한 설명은 Javadoc 형식으로 작성
    • 코드 블록에 대한 설명은 인라인 주석 사용
    /** * ex. Javadoc 형식 */
    
    // 인라인 주석

1.2 패키지 구조

  • 기본 패키지 구조: com.acorn
  • 기능별 패키지 구분 (controller, service, repository, … )

2. DB (MySQL)

2.1 데이터베이스 설계

  • 네이밍 규칙
    • 테이블명: snake_case, 복수형으로 작성 (예: members)

    • 컬럼명: snake_case, 테이블명 없이 풀네임으로 작성 (예: no, name, address, … ) 외래키 참조 시 ‘테이블명 단수형’_’필드명’ (예: member_id)

    • PK: no, 자동증가 설정 (예: no INT PRIMARY KEY AUTO_INCREMENT)

    • 불분명한 표현 사용 X

      (예: product_B)

2.2 SQL 쿼리 작성

  • 형식
    • 대문자로 SQL 키워드 작성 (예: SELECT, FROM, WHERE)
    • 쿼리의 각 절은 새로운 줄에 작성

3. Spring Boot

3.1 프로젝트 구조

  • 기본 구조: src/main/java, src/main/resources, src/test/java
  • 설정 파일: application.properties 또는 application.yml 사용

3.2 의존성 관리

  • Gradle 사용
  • 의존성 추가 시 주석으로 설명 추가
// gradle 주석# properties.application 주석 (UTF-8 인코딩 설정)

4. Git ⚠️

4.1 브랜치

  • 브랜치 전략
    • Git flow 기반
    • main, develop, feat 세 브랜치를 사용
    • main: 배포 준비 완료된 소스 코드 업로드용
    • develop: 개발 중에 있는 브랜치. develop에서 배포 준비 완료 시 main으로 merge.
    • feat: 기능 개발용 브랜치. develop에서 생성하여 develop으로 merge한다. 이미 merge된 브랜치는 삭제한다.
forklog-git-flow-ex forklog-git-graph
  • 브랜치 네이밍

    • 기능 개발: feature/기능명
    • 버그 수정: fix/버그명
  • 커밋 메시지

    • 형식: 타입: 간단한 설명

      • 타입: feat, fix, docs, style, refactor, test, chore
    • feat (새로운 기능 추가)

    예시)

    feat: 사용자 로그인 기능 추가
    feat: 상품 페이지에 검색 필터 기능 구현
    feat: 다크 모드 전환 기능 추가
    
    • fix (버그 수정)

    예시)

    fix: 폼 유효성 검사 문제 해결
    fix: 사용자 프로필 사진 로딩 오류 수정
    fix: 대용량 파일 업로드 시 발생하는 충돌 해결
    
    • docs (문서 수정)

    예시)

    docs: 설치 방법 README 업데이트
    docs: 새로운 API 엔드포인트에 대한 문서 추가
    docs: 기여 가이드라인의 오타 수정
    
    • style (코드 스타일 관련 변경, 로직은 변경 없음)

    예시)

    style: utils.js에서 코드 들여쓰기 수정
    style: 사용되지 않는 컴포넌트의 import 제거
    style: main.scss에 누락된 세미콜론 추가
    
    • refactor (코드 리팩토링, 기능 변화 없음)

    예시)

    refactor: 서비스 레이어에서 API 요청 처리 간소화
    refactor: 큰 함수 분리하여 작은 메소드로 재구성
    refactor: 레거시 인증 로직을 새로운 모듈로 이전
    
    • test (테스트 코드 추가 또는 수정)

    예시)

    test: 사용자 서비스에 대한 단위 테스트 추가
    test: 예약 모듈의 기존 통합 테스트 리팩토링
    test: API 테스트 케이스에 대한 Mock 데이터 구현
    
    • chore (빌드 관련 작업 및 기타 잡무)

    예시)

    chore: 로그 제외를 위해 .gitignore 업데이트
    chore: 배포를 위한 버전 업데이트
    chore: package.json에서 의존성 업데이트
    

    참고 사이트 : [ Git | git 커밋 컨벤션 설정하기 ]

4.2 Pull Request (PR)

  • PR 제목은 간단명료하게 작성
  • PR 설명에 변경 사항 및 리뷰 요청 사항 기재

Clone this wiki locally