자바 코드 관례
코드 관례 표준화의 필요성
- 소스 코드의 가독성: 프로젝트 내 개발조직들이 코드 관례를 통일시키면 코드의 일관성이 높아지기 때문에 개발 업무 인수자, 코드 리뷰어, 기타 관련 개발자들이 코드를 이해하기가 쉬워진다.
- 글로벌 표준과의 호환성: 프로젝트에 타 프로젝트의 소스 코드 혹은 각종 오픈 소스 코드를 활용하는 경향이 높아지고 있으므로, 사실상의 글로벌 표준 코드 관례와 어긋나는 방식을 사용하게 되면 코드의 일관성이 떨어질 가능성이 높아져서 불편해진다.
오라클사의 자바 프로그래밍 언어 코드 관례 문서
- 많은 자바 프로젝트들이 이 코드 관례를 기반으로 한다.
- 문서: http://www.oracle.com/technetwork/java/codeconv-138413.html
자바 프로그램 명명 규칙 권장안
- 패키지 이름
- 자신이 속한 조직의 인터넷 도메인 이름을 뒤집은 이름을 사용하여 패키지 이름을 만든다.
- ⇒ 다른 조직의 패키지 이름과의 충돌을 피하게 해준다.
- 부서, 프로젝트, 컴퓨터, 로긴 이름 등을 부가해서 패키지 이름을 만들 수 있다.
- 예) com.objectspace.jgl
- java, javax는 자바 표준 패키지 이름에만 사용할 수 있도록 예약되어 있다.
- 자신이 속한 조직의 인터넷 도메인 이름을 뒤집은 이름을 사용하여 패키지 이름을 만든다.
- 클래스 이름
- 대문자로 시작하는 명사.
- 이름속에 포함된 각 단어 또한 대문자로 시작.
- 예) Thread, Properties, SecurityManager
- 인터페이스 이름 , ILoggerFactory
- 대문자로 시작하는 혹은 접두사 I(인터페이스를 의미)를 붙인 명사 혹은 형용사
- 이름속에 포함된 각 단어 또한 대문자로 시작.
- 예) DataInput, Runnable
- 메소드 이름
- 소문자로 시작하는 동사
- 이름속에 포함된 각 단어는 (첫번째 단어를 제외하고) 대문자로 시작
- 타입 T인 v라는 이름의 속성을 접근하기 위한 메소드 이름: T getV(), void setV(T val)
- 예) java.awt.Component의 void setName(String), String getName()
- ※ T가 boolean일 경우, getV() 대신 isV()일 수 있다.
- 예) java.awt.Component의 void setVisible(boolean), boolean isVisible()
- 객체의 내용을 타입 Type으로 변환하여 반환하는 메소드 이름: Type toType()
- 예) java.lang.Object 클래스의 String toString()
- 상수가 아닌 인스턴스 변수, 클래스 변수 이름
- 소문자로 시작하는 명사 (혹은 축약된 명사)
- 이름속에 포함된 각 단어는 (첫번째 단어를 제외하고) 대문자로 시작
- 파이널 변수 (기본 타입일 경우)
- 모두 대문자
- 이름속에 포함된 각 단어사이는 `_'을 삽입
- 예) MIN_VALUE, MAX_VALUE, PI
- 지역 변수, 매개 변수
- 의미 있는 짧은 이름
- 예) buf, len, c, i, j, ...
- 의미 있는 짧은 이름
들여쓰기(indentation) 규칙 권장안
- 들여쓰기
- 들여쓰기는 문맥이 깊어지거나 이어주는 아랫 줄이 윗 줄보다 얼만큼 안쪽으로 들여쓰여질 것을 나타낸다.
- 오라클사의 자바 들여쓰기 관례
- 들여쓰기는 4자리로 한다.
- 탭 문자의 표시: 탭 문자는 8개(4개가 아닌) 공백 문자 단위로 화면에 표시되어야 한다.
- 탭 문자의 생성: 소스 코드 작성시에 탭 문자를 사용할 지 공백 문자를 사용할지는 정해져 있지 않다.
- 들여쓰기의 크기: 4자리
- 자바, C#, C++, C 등의 언어에서는 일반적으로 4자리 들여쓰기가 기본이며, 오라클 사의 자바 들여쓰기 관례 문서에서도 4자리이다. 4자리 들여쓰기는 문장의 논리적 포함 관계를 눈에 쉽게 띄게 해주면서도 8자리 띄어쓰기 방식에 비해 들여쓰기가 너무 깊어지는 것을 방지해주기 때문이다.
- HTML, XML의 경우에는 일반적으로 2자리 띄어쓰기가 기본이다. 요소의 논리적 포함 단계가 종종 많아지기 때문에 4자리 들여쓰기로는 들여쓰기가 너무 깊어지기 때문이다.
- 탭 문자의 처리
-
- 탭 문자 사용 금지
- 탭 문자를 사용하지 않고, 대신 공백 문자를 사용한다.
- 탭 문자가 화면에 표시되는 크기가 편집기 및 도구, 그리고 그 설정마다 달라질 수 있어서, 화면상으로 보기에는 들여쓰기가 바르게 되어 있는 소스 코드가 다른 편집기, 도구, 다른 사용자에게는 엉망으로 보여질 수 있기 때문이다. 특히, 탭과 공백 문자가 임의의 섞여 있는 소스 코드는 작성자의 사용 환경과 탭 문자의 해석을 달리 하는 사용 환경에서 소스 코드의 가독성을 크게 떨어뜨리기 때문이다.
- 이 때문에 많은 자바 프로젝트의 코드 관례에서 탭 문자를 사용하지 말고, 대신 공백 문자를 사용하도록 하고 있다.
- 탭 문자 사용 금지
-
- 탭 문자의 화면 표시 크기
- 탭 문자는 8개 공백 문자로 표시되는 것이 사실상의 표준이 되어 왔으며 간단한 텍스트 편집기 등에서는 대개의 경우 8개 공백 문자로 표시하므로 8개 문자 표시로 설정해주는 것이 좋다. 프로젝트에서 탭 문자를 사용하지 않더라도 프로젝트 외부에서 작성된 소스 코드는 탭 문자가 사용되었을 수 있기 때문이다.
- 그러나, 프로젝트 외부에서 작성된 소스 코드는 탭 문자로 인하여 가독성이 크게 떨어지는 경우 탭 문자 크기를 적절히 변경 설정하여 사용한다.
- 탭 문자의 화면 표시 크기
- IDE의 자동 들여쓰기 기능 및 설정 방법
- 이클립스
- 들여쓰기를 4자리로 설정: 메뉴에서 "Preferences/Java/Code Style/Formatter/Edit/Indentation/Indentation size"를 "4"로 설정한다.
- 탭 문자 사용 금지(공백 문자 사용) 설정: 메뉴에서 "Preferences/Java/Code Style/Formatter/Edit/Indentation/Tab policy"를 "Spaces only"로 설정한다.
- 탭 문자 표시 크기를 8로 설정: 메뉴에서 "Preferences/Java/Code Style/Formatter/Edit/Indentation/Tab size"를 "8"로 설정한다.
- 다음행 자동 들여쓰기: 리턴 키를 입력하면, 다음 행의 문맥에 따라 적절히 들여쓰기한 위치로 커서를 이동시켜준다.
- 소스 파일 전체 자동 들여쓰기: 자바 소스 코드 편집기의 팝업 메뉴에서 "Source/Format"을 선택하면 소스 파일 전체 혹은 선택된 블럭에 대하여 자동 들여쓰기를 해준다.
- 이맥스
- 이클립스
'Study > Backend' 카테고리의 다른 글
Session 이란? (0) | 2020.11.02 |
---|---|
[자바] try, catch 구문 (0) | 2020.10.31 |
클래스와 메서드 (0) | 2020.10.28 |
[자바] 상속 (0) | 2020.10.27 |
내일까지 숙제 (0) | 2020.10.26 |