-
Notifications
You must be signed in to change notification settings - Fork 0
Code Convention
OiJs edited this page Jul 19, 2026
·
1 revision
이 페이지는 Notion(AIOT-Team3-InsightON)에서 정리해 옮긴 내용입니다. 최신 원본은 Notion에서 확인하세요. (일회성 정리 — 자동 동기화 아님)
1. 개요
- 이 문서는 구글의 Java 언어 코딩 표준을 정의합니다. 자바 소스는 본 문서의 규칙을 지켜야 Google Style로 간주됩니다.
- 포매팅 같은 심미적 요소뿐 아니라 관습과 코딩 규칙도 포함하며, 실행 불가능한 조언은 지양합니다.
1.1 용어 노트
- "class": 일반 클래스, enum, 인터페이스, 애노테이션 타입을 포괄
- "member": 중첩 클래스, 필드, 메서드, 생성자 등 최상위 내용(초기화·주석 제외)
- "comment": 구현 주석을 의미. 문서 주석은 "Javadoc"으로 표기
-
파일명: 최상위 클래스명과 동일한 대소문자 이름 +
.java확장자 - 인코딩: UTF-8
- 특수 문자: 공백은 ASCII space(0x20)만 사용, 탭 들여쓰기 금지. Non-ASCII는 실제 유니코드 문자 또는 동등 이스케이프 사용.
순서: 1) 라이선스/저작권 2) package 구문 3) import 구문 4) 정확히 하나의 최상위 클래스
- 패키지·임포트는 줄 바꿈하지 않음
- 와일드카드 import 사용 금지. static/non-static 블록 분리 후 ASCII 순 정렬
- 클래스당 최상위 클래스는 하나
- 괄호: if/else/for/do/while는 한 줄이어도 중괄호 사용. K&R 스타일.
- 들여쓰기: 블록 시작 시 +2 스페이스
- 열 제한: 100자 (개행 불가 URL, package/import 등 예외)
- 줄 바꿈: 비대입 연산자는 앞에서, 대입은 뒤에서 바꿈 허용. 최소 +4 스페이스 들여쓰기 유지
- 공백: 멤버·초기화 사이 1줄. 키워드 뒤 여는 괄호, 연산자 양쪽 등 필수 위치에만 단일 공백
- Enum, 변수 선언(정의당 하나), 배열(
String[] args만 허용), switch(default 필수), 애노테이션 등 세부 규칙 포함 - 숫자 리터럴: long 접미사는 대문자
L사용
- 패키지: 전부 소문자 연결 (
com.example.deepspace) - 클래스: UpperCamelCase, 명사형 (테스트 클래스는
FooTest) - 메서드: lowerCamelCase, 동사형
- 상수: CONSTANT_CASE (진정한 상수에만)
- 필드/파라미터/지역변수: lowerCamelCase
- 타입 변수: 단일 대문자(E, T, X, T2) 또는
NameT - 두문자어:
XmlHttpRequest,newCustomerId,supportsIpv6OnIos처럼 일반 캐멀 규칙 따름
-
@Override: 가능하면 항상 붙임(부모@Deprecated예외) - 예외 처리: 빈 catch 금지. 불가피하면 주석으로 의도 명시
- 정적 멤버 참조: 인스턴스가 아니라 클래스명으로 호출
- 기본 형태
/** ... */. 문단은 빈 줄로 구분. 블록 태그(@param,@return,@throws,@deprecated)는 빈 설명 금지 - 각 Javadoc은 간단한 요약 문장으로 시작 ("Returns ..." 같은 완전한 문장 권장)
- 최소 범위: public class와 그 public/protected 멤버
인텔리제이용 코드 스타일 XML: woowacourse/woowacourse-docs 저장소에서 다운로드.
주요 설정값: INDENT_SIZE=4, CONTINUATION_INDENT_SIZE=8, TAB_SIZE=4, RIGHT_MARGIN=120, KEEP_BLANK_LINES_IN_CODE=1, 각종 *_WRAP 옵션은 1(필요할 때만 줄바꿈)로 설정. 상세 값은 Notion 원본의 XML 스니펫 참고.
- IntelliJ 좌측 상단 Settings → Editor → Code Style → Java
- Scheme 옆
...→ Import Scheme → IntelliJ IDEA code style XML 선택 → 다운로드한 포매터 파일 지정 - 저장할 때마다 자동 포맷 적용: Tools → Actions on Save →
Reformat code,Optimize imports체크
원본에 있던 설정 화면 스크린샷은 임시 서명 URL이라 여기 옮기지 못했습니다. 필요하면 Notion 원본에서 확인해주세요.