1주 차 미션 진행 중 Java Style Guide를 접하게 되었습니다.
전부 처음 보는 내용은 아니지만, 대부분의 내용이 처음 보는 내용이었습니다.
프로그래밍 요구사항에도 해당 스타일 컨벤션을 지키라는 문구가 있었습니다.
따라서, 해당 내용을 정리해서 눈에 익힐 필요가 있었고 공유해도 좋을 것 같아서 포스팅을 하게 되었습니다..!
Java Style Guide - 우테코 프리코스 7기 버전
소스 파일 구조
라이선스 또는 저작권 정보
- 파일에 저작권 정보가 포함되어 있다면, 해당 정보는 파일의 최상단에 위치합니다.
패키지 선언
- 패키지 선언은 줄바꿈하지 않으며, 120자 열 제한이 적용되지 않습니다.
임포트 문
와일드카드(*) 임포트 금지
- 정적 임포트를 포함한 와일드카드 임포트는 사용하지 않습니다.
줄바꿈 금지
- 임포트 문은 줄바꿈하지 않습니다. 예를 들어, 너무 긴 경로가 있어도 이를 줄바꿈하지 않고 한 줄로 작성합니다.
정렬 및 간격
- 정적 임포트와 비정적 임포트는 별도의 블록으로 나누어 정렬하며, 두 블록 사이에 한 줄을 띄웁니다.
- 각 블록 안에서 임포트는 알파벳 순서로 정렬합니다.
클래스 선언
- 소스 파일에는 하나의 상위 클래스만 선언합니다.
- 클래스 내부의 멤버와 초기화는 논리적인 순서에 따라 배치하며, 새로운 메소드는 클래스의 마지막에 추가하지 않습니다. 메소드의 오버로드는 항상 하나의 그룹으로 연속적으로 배치됩니다.
포매팅
중괄호
- 모든
if
,else
,for
,do
,while
구문에는 중괄호를 사용합니다. - 중괄호는 K&R 스타일을 따릅니다. 즉, 열리는 중괄호는 같은 줄에 위치하고, 닫히는 중괄호는 줄바꿈합니다.
블럭 들여쓰기: +4 스페이스
- 새 블록 또는 블록과 유사한 구조(block-like construct)가 열릴 때마다 들여쓰기가 네 칸씩 증가합니다. 블록이 끝나면 들여쓰기는 이전 들여쓰기 단계로 돌아갑니다.
- 들여쓰기는 스페이스 4칸을 사용하며, 탭 문자는 사용하지 않습니다.
한 줄에 하나의 문장
- 한 줄에 한 문장만 작성합니다. 각 문장은 반드시 세미콜론(;)으로 끝나야 합니다.
열 제한: 120
- Java 코드의 열 제한은 120자입니다. 120자를 초과할 경우 적절한 위치에서 줄바꿈을 사용합니다.
줄바꿈
- 연산자 또는 점(
.
) 앞에서 줄을 나눕니다. - 메소드 또는 생성자의 이름은 열림 괄호
(
와 함께 한 줄에 유지됩니다. - 람다 표현식에서 화살표(
->
)는 줄바꿈하지 않습니다. 단, 람다 본문이 길 경우 화살표 다음에서 줄을 나눌 수 있습니다.
들여쓰기 지속은 최소 +8 스페이스
- 줄 바꿈 시, 그 다음 줄은 원래 줄에서 +8 이상 들여씁니다.
공백
- 코드의 가독성을 높이기 위해 연산자 주변에 공백을 사용합니다.
- 콤마(
,
) 뒤에 공백을 사용하며, 캐스트 괄호 닫힘 뒤에도 공백을 넣습니다.
수직 빈 줄
- 메소드, 생성자, 필드 등 연속되는 멤버들 사이에는 빈 줄을 넣습니다. 필요에 따라 코드 논리 흐름을 구분하기 위해 빈 줄을 사용합니다.
네이밍
모든 식별자에 적용되는 규칙
- 식별자에는 ASCII 문자와 숫자만을 사용합니다.
- 특별한 접두사나 접미사는 사용하지 않습니다. 예:
name_
,mName
,kName
사용 금지.
식별자 유형별 규칙
패키지 이름
- 패키지 이름은 소문자만 사용하며, 단어를 연결할 때 밑줄(_)을 사용하지 않습니다. 예:
com.example.myproject
.
클래스 이름
- 클래스 이름은 UpperCamelCase를 사용합니다. 예:
MyClass
,InvestmentCalculator
.
메소드 이름
- 메소드 이름은 lowerCamelCase를 사용합니다. 예:
calculateTotal
,getName
.
상수 이름
- 상수는
UPPER_SNAKE_CASE
를 사용합니다. 예:MAX_VALUE
,DEFAULT_TIMEOUT
.
프로그래밍 관행
@Override 항상 사용
- 메소드가 상위 클래스의 메소드를 재정의할 때는 항상
@Override
어노테이션을 사용합니다.
예외 처리: 무시 금지
- 예외를 처리할 때는 절대로 무시하지 않으며, 반드시 적절한 처리를 합니다. 예외를 무시할 때는 그 이유를 명확히 주석으로 설명합니다.
Javadoc(주석)
포매팅
- 모든 Javadoc 블록은
/**
로 시작하고*/
로 끝납니다. 짧은 설명은 한 줄로 작성할 수 있습니다. 블록 설명은 다중 줄로 작성하고, 각 줄은*
로 시작합니다.
요약 부분
- 각 Javadoc 블록은 요약으로 시작하며, 요약은 짧고 명확한 문구로 작성됩니다. 요약은 문장처럼 시작 대문자와 마침표를 포함합니다.
Javadoc 사용 위치
- 모든 공개 클래스와 그 멤버에는 Javadoc을 작성합니다.
- Javadoc은
@param
,@return
,@throws
등의 블록 태그를 사용해 상세히 설명합니다.
예시
/**
* 두 숫자를 뺀 값을 반환합니다.
*
* @param a 뺄셈할 첫 번째 숫자
* @param b 뺄 두 번째 숫자
* @return 두 숫자의 차이
*/
public int subtract(int a, int b) {
return a - b;
}
'우아한테크코스[프리코스]' 카테고리의 다른 글
[2주 차] 객체 지향 생활 체조 원칙 (0) | 2024.10.26 |
---|---|
[1주 차] 회고 (4) | 2024.10.25 |
[1주 차] 정규표현식과 메타문자, 그리고 java.util.regex 패키지 (1) | 2024.10.19 |
[1주 차] Git Commit Message Conventions 정리 (3) | 2024.10.17 |
우테코 프리코스 시작! (1) | 2024.10.16 |