새소식

반응형
Java

자바 코드 컨벤션 (1)

  • -
반응형

아래의 글은 네이버 캠퍼스 핵데이 Java 코딩 컨벤션을 기준으로 작성된 글입니다.

📁파일 공통 요건


파일 끝에 개행 추가

  • 파일의 마지막은 새줄 문자 LF로 끝나야한다.
  • POSIX에 명시되어 있으며, 모든 표준이 이에 따르므로 오류가 발생할 수 있다.

🆕이름


대문자로 표기할 약어 명시

  • 약어의 중간단어를 소문자로 표기하고 프로젝트 별로 모두 대문자로 표기할 약어의 목록을 명시하는 방식이 가독성을 높이고 규칙을 단순화하는데 유리하다.

패키지 이름은 소문자로 구성

  • 패키지 이름은 소문자를 사용하여 작성한다.
  • 단어별 구분을 위해 언더바나 대문자를 섞지 않는다.
//Bad Example
package com.navercorp.apiGateway

package com.navercorp.api_gateway

//Good Example
package com.navercorp.apigateway

클래스 인터페이스 이름에 대문자 카멜포기법 적용

  • 클래스 이름은 첫글자를 대문자로 시작하는 대문자 카멜표기법을 사용한다.

→ 파스칼 표기법이라고도 불린다.

//Bad Example
public class reservation

public class Accesstoken

//Good Example
public class Reservation

public class AccessToken

클래스 이름에 명사 사용

  • 클래스 이름은 명사나 명사 절로 짓는다.

인터페이스 이름에 명사/형용사 사용

  • 인터페이스의 이름은 명사/명사절로 혹은 형용사/형용사절로 짓는다.
//Good Example
public interface RowMapper {

public interface AutoClosable {

🦾메서드


메서드 이름에 소문자 카멜표기법 사용

  • 메서드의 이름에는 첫 번째 단어를 소문자로 작성하고, 이어지는 단어의 첫 글자를 대문자로 작성하는 소문자 카멜표기법을 사용한다.
  • 테스트 클래스의 메서드 이름에서는 언더바를 허용한다.

메서드 이름은 동사/전치사로 시작

  • 메서드명은 기본적으로 동사로 시작한다.
  • 다른 타입으로 전환하는 메서드나 빌더 패턴을 구현한 클래스의 메서드에서는 전치사를 쓸 수 있다.

상수는 대문자와 언더스코어로 구성

  • “static final”로 선언되어 있는 필드일 때 상수로 간주한다.
  • 상수 이름은 대문자로 작성하며, 복합어는 언더바를 사용하여 단어를 구분한다.

변수에 소문자 카멜표기법 적용

  • 상수가 아닌 클래스의 멤버변수/지역변수/메서드 파라미터에는 소문자 카멜표기법을 적용한다.

임시 변수 외에는 1글자 이름 사용 금지

  • 메서드 블럭 범위 이상의 생명 주기를 가지는 변수에는 1글자로 된 이름을 쓰지 않는다.
  • 반복문의 인덱스나 람다 표현식의 파라미터 등 짧은 범위의 임시 변수에는 관례적으로 1글자 변수명을 사용할 수 있다.
//Bad Example
HtmlParser p = new HtmlParser();

//Good Example
HtmlParser parser = new HtmlParser();

👨‍⚖️선언


소스파일당 1개의 탑 레벨 클래스를 담기

  • 탑 레벨 클래스는 소스파일에 1개만 존재해야 한다.
//Bad Example
public class LogParser {
}

class LogType {
}

//Good Example
public class LogParser {
    // 굳이 한 파일안에 선언해야 한다면 내부 클래스로 선언
    class LogType {
    }
}

static import에만 와일드 카드 허용

  • 클래스를 import 할때는 와일드카드 없이 모든 클래스명을 다 쓴다.
  • static import에서는 와일드카드를 허용한다.
//Bad Example
import java.util.*;

//Good Example
import java.util.List;
import java.util.ArrayList;

제한자 선언의 순서

  • 클래스/메서드/멤버 변수의 제한자는 Java Language Specification에서 명시한 아래의 순서로 쓴다.
public protected private abstract static final transient volatile synchronized native strictfp

애너테이션 선언 후 새 줄 사용

  • 클래스, 인터페이스, 메서드, 생성자에 붙는 애너테이션은 선언 후 새 줄을 사용한다. 이 위치에서도 파라미터가 없는 애너테이션 1개는 같은 줄에 선언할 수 있다.
//Good Example
@RequestMapping("/guests")
public void findGuests() {}

@Override public void destroy() {}

배열에서 대괄호는 타입 뒤에 선언

  • 배열 선언에 오는 대괄호는 타입의 바로 두에 붙인다.
  • 변수명 뒤에 붙이지 않는다.

하나의 선언문에는 하나의 변수만

  • 변수 선언문은 한 문장에서 하나의 변수만을 다룬다.
//Bad Example
int base, weight;

//Good Example
int base;
int weight;

long형 값의 마지막에 ‘L’ 붙이기

  • long형의 숫자에는 마지막에 대문자 ‘L’을 붙인다.
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.