[Java] 코딩 컨벤션의 개념과 활용

김찬미·2024년 10월 17일

Java

목록 보기
4/20

✅ BackGround: 코딩 컨벤션이란?

코딩 컨벤션(Coding Conventions)이란 코드의 가독성유지보수성을 높이기 위해 개발자들이 따르는 규칙을 의미한다.

만약 같은 프로젝트를 진행하는데 각자 다른 스타일로 코드를 작성한다면 가독성이 떨어질 것이다. 이렇듯, 코딩 컨벤션은 프로젝트 팀이 일관된 방식으로 코드를 작성하도록 유도하며 협업 시 코드의 이해도를 높이는 데 큰 역할을 한다.

여기서는 Java의 코딩 컨벤션에 대한 전반적인 개념과 필요성, 활용 방법에 대한 내용을 정리해 보도록 하겠다.


자바 코드 컨벤션

자바 코드 컨벤션(Java Code Conventions)은 자바 프로그래밍 언어를 사용할 때 따르는 일련의 규칙과 관행이다. 주로 작성 시의 스타일, 포맷팅, 네이밍 규칙, 주석 처리 방법 등을 포함한다.

대표적으로는 Google Java Style GuideOracle Java Code Conventions가 있다.

💡 Google Java Style Guide

🤔 왜 필요할까?

위에서 간단하게 서술한 것처럼 코딩 컨밴션에는 다양한 장점이 있지만, 그 중 중요한 것들을 특별히 정리하자면 다음과 같다.

  • 가독성 향상 📖: 일관된 코드 스타일은 코드를 읽기 쉽게 만들어, 다른 개발자가 이해하고 수정하는 데 도움을 준다.

  • 유지보수성 증대 🔧: 코드의 구조가 일관되면, 버그 수정이나 기능 추가가 용이해진다.

  • 팀워크 향상 🤝: 여러 개발자가 함께 작업할 때, 코드의 일관성은 협업을 원활하게 하며 커뮤니케이션을 쉽게 만든다.

  • 코드 리뷰 효율성 👀: 일관된 코드는 코드 리뷰 과정에서 쉽게 식별할 수 있어, 피드백을 더 효율적으로 받을 수 있다.


주요 규칙

자바 코딩 컨벤션에는 여러 가지 규칙이 포함되며, 이 게시물에서는 Google Java Style Guide을 기반으로 몇몇 규칙을 정리해 보도록 하겠다.

1. 네이밍 규칙

  • 클래스 이름: 클래스 이름은 명사로 작성하고, 각 단어의 첫 글자를 대문자로 작성한다. (ex: MyClass, BankAccount)

  • 메서드 이름: 메서드 이름은 동사로 작성하고, 소문자로 시작하며 각 단어의 첫 글자를 대문자로 작성한다. (ex: calculateTotal(), printReport())

  • 변수 이름: 변수 이름은 소문자로 시작하고, 각 단어의 첫 글자를 대문자로 작성한다. (ex: totalAmount, customerName)

  • 상수 이름: 상수는 모두 대문자로 작성하고, 단어 사이에 언더스코어(_)를 사용한다. (ex: MAX_CONNECTIONS, DEFAULT_TIMEOUT)

2. 주석 처리

  • 일반 주석: 코드의 각 부분이나 복잡한 로직에 대한 설명을 작성한다. 주석은 코드 위에 위치시키고, 적절한 길이로 작성한다.

  • Javadoc: 공용 클래스 및 메서드에 대한 설명을 Javadoc 형식으로 작성한다. 메서드의 매개변수, 반환 값, 예외 사항 등을 기술한다.

/**
 * Calculates the total amount.
 *
 * @param itemPrices an array of item prices
 * @return the total amount
 */
public double calculateTotal(double[] itemPrices) {
    // ...
}

💡 Javadoc이란?
Javadoc은 자바에서 코드 문서화를 위한 도구이자 형식이다. 주석을 사용하여 클래스, 메서드, 필드 등의 설명을 작성하고 자동으로 HTML 형식의 API 문서를 생성해 다른 개발자들이 쉽게 참고할 수 있도록 한다.

  • 주석 형식:
    • /**로 시작하고 */로 끝난다.
    • 여러 태그(@param, @return, @throws 등)를 사용하여 정보를 구조화한다.

3. 포맷팅

  • 들여쓰기: 코드 블록은 2칸 또는 4칸의 스페이스로 들여쓰기 한다. Google Java Style Guide에서는 2칸을 권장한다.

  • 한 줄의 길이: 한 줄의 길이는 100자 이내로 제한하며, 필요 시 적절한 위치에서 줄바꿈을 한다.

  • 빈 줄: 논리적 블록 간에는 빈 줄을 사용하여 코드의 가독성을 높인다. (ex: 메서드 간에는 한 줄의 빈 줄을 사용)

4. 예외 처리

  • 예외를 처리할 때는 구체적인 예외 클래스를 사용하여 처리하며, 불필요한 예외를 잡지 않도록 한다.

  • try-catch 블록 내에서는 예외를 적절히 로깅하고, 사용자에게 의미 있는 오류 메시지를 제공한다.

try {
    // 예외가 발생할 수 있는 코드
} catch (IOException e) {
    System.err.println("파일을 읽는 중 오류 발생: " + e.getMessage());
}

활용 방법

  • 코드 리뷰 및 팀 합의 🤔: 팀 내에서 코딩 컨벤션을 합의하고, 코드 리뷰 과정에서 이를 적용한다.

  • 도구 사용 🛠️: IntelliJ IDEA, Eclipse 등과 같은 IDE에서 코딩 컨벤션을 설정하여 자동으로 코드를 포맷팅할 수 있도록 한다. 또한, Checkstyle과 같은 도구를 사용하여 코드의 규칙 준수 여부를 점검한다.

💡 Checkstyle이란?
Checkstyle은 자바 코드의 스타일과 품질을 검증하는 도구로, 일관된 코딩 규칙을 유지하고 코드 품질을 향상시키기 위해 사용된다. 이를 통해 코드 작성자가 정의한 규칙을 자동으로 검사하고, 위반 사항을 보고하여 수정할 수 있도록 돕는다.

  • 주요 기능:
    • 코드 스타일 검사: 공백, 들여쓰기, 네이밍 규칙 등 다양한 스타일 규칙을 검사한다.
    • 커스터마이징: 사용자가 정의한 규칙을 설정하여 팀의 코딩 스타일에 맞출 수 있다.
    • 통합: Maven, Gradle, IDE와 통합하여 사용 가능하다.
profile
백엔드 지망 학부생

0개의 댓글