백엔드
코드 스타일
네이버 캠퍼스 핵데이 코딩 스타일 컨벤션을 준수한다 ⇒ https://naver.github.io/hackday-conventions-java/
요약:
- Unix 형식의 새줄 문자 LF 사용(윈도우 형식인 CRLF가 섞이지 않도록 편집기와 git 설정 확인)
- 모든 소스, 텍스트 문서 파일의 인코딩 → UTF-8
- Git을 쓴다면
.gitattributes
파일 안에 정책을 선언해서 지정된 새줄 문자로 강제 변환하거나 예외가 될 확장자를 지정할 수 있다. 전체 프로젝트 ⇒ 최상위 디렉토리
- 네이밍
- 식별자에는 영문/숫자/언더스코어만 허용
- 한국어 발음대로의 표기 금지
- 대문자로 표기할 약어 명시
- 패키지 이름은 소문자로 구성
- 클래스/인터페이스 이름에 대문자 카멜표기법 적용
- 클래스 이름에 명사 사용
- 인터페이스 이름에 명사/형용사 사용
- 테스트 클래스는 'Test’로 끝남
- 메서드 이름에 소문자 카멜표기법 적용
- 메서드 이름은 동사/전치사로 시작
- 상수는 대문자와 언더스코어로 구성
- 변수에 소문자 카멜표기법 적용
- 임시 변수 외에는 1 글자 이름 사용 금지
- 선언
- 소스파일당 1개의 탑레벨 클래스를 담기
- static import에만 와일드 카드 허용
- 제한자 선언의 순서
- public
- protected
- private
- abstract
- static
- final
- transient → volatile → synchronized → native → strictfp
- 애너테이션 선언 후 새줄 사용
- 한 줄에 한 문장
- 하나의 선언문에는 하나의 변수만
- 배열에서 대괄호는 타입 뒤에 선언
long형 값의 마지막에 L붙이기
- 특수 문자의 전용 선언 방식을 활용
- 들여쓰기
- 하드탭 사용
- 탭의 크기는 4개의 스페이스
- 블럭 들여쓰기
- 중괄호
- K&R 스타일로 중괄호 선언
- 닫는 중괄호와 같은 줄에
else, catch, finally, while 선언
- 빈 블럭에 새줄 없이 중괄호 닫기 허용
- 조건/반복문에 중괄호 필수 사용
- 줄바꿈
- 최대 줄 너비는 120
package,import 선언문은 한 줄로
- 줄바꿈 후 추가 들여쓰기
- 줄바꿈 허용 위치
- 빈 줄
package 선언 후 빈 줄 삽입
import 선언의 순서와 빈 줄 삽입
- 메소드 사이에 빈 줄 삽입
- 공백
- 공백으로 줄을 끝내지 않음
- 대괄호 뒤에 공백 삽입
- 중괄호의 시작 전, 종료 후에 공백 삽입
- 제어문 키워드와 여는 소괄호 사이에 공백 삽입
- 식별자와 여는 소괄호 사이에 공백 미삽입
- 타입 캐스팅에 쓰이는 소괄호 내부 공백 미삽입
- 제네릭스 산괄호의 공백 규칙
- 콤마/구분자 세미콜론의 뒤에만 공백 삽입
- 콜론의 앞 뒤에 공백 삽입
- 이항/삼항 연산자의 앞 뒤에 공백 삽입
- 단항 연산자와 연산 대상 사이에 공백을 미삽입
- 주석문 기호 전후의 공백 삽입