Skip to content

Coding Detail Convention

이소연 edited this page Jan 11, 2025 · 1 revision

1. 파일 구성 순서

  • 파일의 기본 순서:
    1. 패키지 선언
    2. import 문
    3. 상수 및 전역 변수
    4. 클래스 또는 함수 정의

2. 클래스와 함수 정렬

  • 클래스 내 선언 순서:
    1. companion object
    2. 프로퍼티
    3. 생성자
    4. 메소드

3. 서식 지정

  • 대부분의 경우 Java code convention을 따름
  • 4 spaces 사용, 탭은 사용하지 않는다.
  • 중괄호의 경우 구성 시작 부분의 끝줄에 여는 중괄호를 입력하고 열린 구성과 수직적으로 정렬된 별도의 줄을 닫는 중괄호를 입력한다.
  • 세미콜론은 선택사항이지만 생략하는 것을 권장
if (elements != null) {
    for (element in elements) {
        // ...
    }
}

3.1 가로 공백

  • 연산자 앞, 뒤에 공백을 추가한다.
  • a + b, a / b
  • 예외
  • “range to” 연산 주위에도 공백을 넣지 말아야 한다. (0..I)
  • 단항 연산 주위에도 공백을 넣지 말아야 한다. (a++)
  • 중괄호 앞에 공백을 추가한다.
  • if, when, for and while
  • 괄호 앞에는 공백을 추가하지 않는다.
class A(val x: Int)

fun foo(x: Int) { ... }

fun bar() {
    foo(1)
}
  • (, [ 뒤에 또는 ), ] 전에 공백을 추가하지 않는다.
  • . 또는 ?. 주위에 공백을 추가하지 않는다.
foo.bar().filter { it > 2 }.joinToString()  
foo?.bar()
  • 주석 // 뒤에 공백을 추가한다.
// 주석을 추가한다.

3.2 Property formatting

  • 매우 간단한 읽기 전용 속성의 경우 한 줄 형식을 고려하도록 한다.

val isEmpty: Boolean get() = size == 0

  • 복잡한 속성의 경우 항상 get 및 set 키워드를 별도의 줄에 넣는다.
val foo: String
    get() { /*...*/ }
  • initializer가 있는 속성의 경우 initializer가 길면 등호 다음에 줄 바꿈을 추가하고 initializer를 4칸만큼 들여쓴다.
private val defaultCharset: Charset? =
    EncodingRegistry.getInstance().getDefaultCharsetForPropertiesFiles(file)

Clone this wiki locally