코딩 스타일과 협업 방식/Code Convention

Code Conbention + Naming Convention

Dev.99_tale 2025. 2. 15. 00:14

스프링 팀 프로젝트 진행하면서 처음으로 코드 컨벤션 활용해보았다. 프로젝트를 시작하기 전 가장 중요한 점이 바로 일관적인 코드가 유지될 수 있도록 하는 것이다.

이는 코드 관점에서는 아키텍처와 규칙이 될 수 있겠고 컨벤션 관점에서는 포맷팅이 있을 수 있다.

스프링 프로젝트를 하면서Java Project, Method, Exception Handling, File Structure, ERD Database, API 명세서(URI), REST API, 주석 등 각각의 명명법을 정했다.

코드 컨벤션이란

  • 코드 스타일 (네이밍 규칙, 들여쓰기, 코드 정렬 방식 등)
  • 팀 협업에 있어서 컨벤션을 지키면 팀 프로젝트에 코드의 일관성을 유지하기 좋을 뿐만 아니라 읽기도 수월해진다.

(참고로 표준은 없다. 세세한 부분은 회사마다 혹은 팀마다, 사람마다, 나라마다, 문화마다 다르기에 정답은 없다.)

 

✔  코드 컨벤션의 주요 요소

  1. 네이밍 컨벤션(Naming Convention) → 변수, 메서드, 클래스 등의 이름 짓는 규칙
  2. 코드 스타일(Code Style) → 들여쓰기, 공백, 중괄호 {} 위치
  3. 주석 스타일(Commenting Style) → Javadoc, TODO 주석 등
  4. 파일 구조(File Structure) → 패키지 구성, 클래스 배치 순서
  5. 예외 처리(Exception Handling) → 예외를 어떻게 처리할 것인지 규칙

 코드 컨벤션 주요 요소 중 하위 개념인 네이밍 컨벤션(Naming Convention)을 다뤄보도록 하겠다

✔  네이밍 컨벤션이란

  • 변수, 함수, 클래스 등 코드를 작성할 때 일관성 있고 가독성 높은 이름을 정의하기 위한 규칙
  • 팀원 간의 협업을 원활하게 진행 할 수 있다.
  • 4가지 Case가 존재 - camelCase, PascalCase, snake_case, kebab-case

 

✔  네이밍 컨벤션 예시

네이밍 대상 네이밍 컨벤션 예시
변수 & 메서드 camelCase userName, getUserData()
클래스 & 인터페이스 PascalCase UserService, OrderRepository
상수 UPPER_SNAKE_CASE MAX_RETRY_COUNT
패키지명 lowercase.with.dots com.example.project.service
DB 테이블 & 컬럼 snake_case user_table, order_date
API URL kebab-case /api/v1/user-info

 

네이밍 컨벤션에 4가지 Case가 존재한다.

1. camelCase

  • 정의: 첫 글자는 소문자, 그 이후 단어의 첫 글자는 대문자
  • 사용 용도: 변수명, 메서드명 등에서 사용
  • 예시:
    • firstName, getUserData(), totalAmount

규칙: 첫 번째 단어는 소문자, 이후 각 단어는 첫 글자만 대문자로

 

2. PascalCase

  • 정의: 각 단어의 첫 글자를 대문자로 작성
  • 사용 용도: 클래스 이름, 인터페이스 이름 등에서 사용
  • 예시:
    • UserService, OrderController, PaymentGateway

규칙: 모든 단어의 첫 글자는 대문자

 

3. snake_case

  • 정의: 모든 글자는 소문자로, 단어 사이를 언더스코어(_)로 구분
  • 사용 용도: 파일 이름, 변수명, 리소스 파일 등에서 사용
  • 예시:
    • max_retry_count, user_name, order_details

규칙: 모든 단어는 소문자로 작성하고, 단어 사이에 언더스코어(_)를 사용

 

4. kebab-case

  • 정의: 모든 글자는 소문자로, 단어 사이를 하이픈(-)으로 구분
  • 사용 용도: URL 경로, 슬러그(slug) 등에서 사용
  • 예시:
    • user-profile, order-details, product-list

규칙: 모든 단어는 소문자로 작성하고, 단어 사이에 하이픈(-)을 사용

정리

케이스 정의 사용 예시
camelCase 첫 글자는 소문자, 이후 단어 첫 글자는 대문자 firstName, getUserData(), totalAmount
PascalCase 각 단어의 첫 글자는 대문자 UserService, OrderController, PaymentGateway
snake_case 모든 글자는 소문자, 단어 사이에 언더스코어(_) 사용 max_retry_count, user_name, order_details
kebab-case 모든 글자는 소문자, 단어 사이에 하이픈(-) 사용 user-profile, order-details, product-list

 

 

 

마지막으로 스프링 관련 컨벤션은 밑에 링크들을 참고하길 추천한다.

https://cocobi.tistory.com/27

 

[Guide]스프링 네이밍 컨벤션(Coding convention)

▶ Controller - 컨트롤러 클래스 안에서 메서드 명을 작성 할 때는 아래와 같은 접미사를 붙인다. orderList() – 목록 조회 유형의 서비스 orderDetails() – 단 건 상세 조회 유형의 controller 메서드 orderSav

cocobi.tistory.com

 

https://javamin.tistory.com/entry/%ED%85%8C%EC%8A%A4%ED%8A%B8

 

코드 컨벤션 작성규칙 (Coding Conventions) for Spring(Java)

이번엔... 사내에서 스프링 관련하여, 인프라 재구성을 위해서.. 컨벤션 등 소스들을 재정비하는 시간을 가지기로.. 했는데여기저기 필요한 내용들 작성규칙 참조해서 붙여보니 아래처럼 만들었

blog.mingty.com