Google Java Style - 1 [Java / 자바]

공부/Java  2016.04.01 00:11

안녕하세요. 명월입니다.
이번 포스트는 구글에서 제시하는 Java 코딩 규약에 대해서 알아보겠습니다.
(코딩규약 내용이 꽤 많으므로 포스트를 두 개로 나누어서 게재합니다.)


코딩 규약이란 프로그램 작성을 하면서 성능과 최적화에는 관계가 없고, 오로지 개발자가 이해하기 쉽게 정해놓은 규칙입니다. 예를 들면 변수명일 「sdfasdgfd」식으로 써도 프로그램은 컴파일되고 실행하면서 아무런 문제가 없으나 나중에 프로그래머가 해당 변수만 보았을 때 무슨 변수인지 알아차리기가 힘듭니다. 그래서 누가 봐도 간결하고 이해하기 쉽게 정해 놓은 규칙이며 반드시는 아니지만 될 수 있는 대로 규칙에 맞게 프로그램을 작성해야 하겠습니다.(소스 가독성의 중요)


코딩 규약은 제시하는 IT 회사마다 조금씩 차이가 있으나 저는 Google에서 제시하는 가이드라인을 학습하고 따르려고 합니다.


링크 - 구글 자바 스타일(Google java Style>


1. 소스 파일 기본사항

1.1. 소스 파일 이름이 포함된 최상위 클래스의 대소문자로 구분 이름을 명명한다. 확장자는 .java로 지정한다.
    예) ExampleSource.java
1.2. 파일의 인코딩은 UTF-8로 지정한다.
1.3. 공백문자는 소스 파일에서 아무렇게나 쓸 수 있는 유일한 문자이다.
1.4. 모든 특수 문자를 사용할 때 이스케이프 시퀀스(예를 들어 \b , \t , \n , \f , \r , \" , \' 와 \\ )를 사용한다.
    그러나 그 문자의 진수(\012 ). 유니코드 (예 : \u000a ) 는 사용하지 않는다.
1.5. 코드 가독성이 좋다면 비 ASCII문자(\u221e)를 사용해도 무방하다.
String unitAbbrev = "μs";					Best!
String unitAbbrev = "\u03bcs"; // "μs"					Allowed. 이렇게 할 필요가 없다.
String unitAbbrev = "\u03bcs"; // Greek letter mu, "s"			Allowed. 실수 할 수 있다.
String unitAbbrev = "\u03bcs";						Poor. 이해할 수가 없다.
return '\ufeff' + content; // byte order mark				Good. 인쇄할수 없는 언어를 사용안하고, 필요시 코멘트


2. 소스 파일 구조

소스 파일의 구조의 순서는 다음과 같다
1. 라이센스 또는 저작권 정보, 존재하는 경우.
2. 패키지 문
3. 가져오기 문
4. 정확히 하나의 최상위 클래스


3. 서식

3.1. 중괄호

- 여는 중괄호 전에는 줄 바꿈이 없다.
- 여는 중괄호 후에는 줄 바꿈이다.
- 닫는 중괄호 전에는 줄 바꿈이다.
- 줄에 닫는 중괄호만 있는 경우는 메소드, 생성자, 클래스가 종료될 때이다.
- 빈 블록 : 중괄호 사이에 아무 문자가 없으면 즉시 닫을 수 있다. ({})


3.2. 블록 들여쓰기 :+2 공간

새로운 블록과 같은 구조는 두 개의 공백으로 들여쓰기가 열린다. 문의 종료 시 이전 쓰기 수준으로 들여쓰기는 돌아간다


3.3. 열 제한 : 80

프로젝트 중 80 또는 100문자의 열 제한을 한다.

3.4. Line-wrapping

정해진 규칙은 없고, 일반적으로 열 제한을 방지하기 위해 적용한다.
  3.4.1. 열이 바뀌는 지점
  - 일반 연산자 앞에서 줄 바꿈이 일어난다.
  - 대입 연산자의 경우는 뒤에서 줄 바꿈이 일어난다.
  - 메소드, 생성자의 이름에는 괄호「(」를 부착한 상태로 유지한다.
  - 쉼표는 앞에 토큰에 연결된 상태를 유지한다.
  3.4.2. 들여쓰기는 적어도 +4 공간


3.5. 공백

  3.5.1. 수직 공백
  - 필드, 생성자, 중첩 메소드, 클래스 사이
  - 여러 줄의 빈 줄은 허용하지만, 추천하지 않는다.
  3.5.2. 수평 공백
  - if, for, catch와 그다음에 오는 '(' 사이에 공백문자
  - else, catch와 그 이전에 오는 '}' 사이에 공백문자
  - ',', ':', ';'의 다음이나 타입 캐스트시의 ')' 다음에 공백문자
  - 연산자 앞뒤로는 공백문자 삽입
  - 연산자와 비슷한 심볼에서도 앞뒤로 공백문자 삽입


3.6. 그룹화 권장

소스의 그룹화를 통해 가독성을 높일 수 있습니다.


댓글 0개가 달렸습니다.
댓글쓰기