클래스 레이아웃 일반적으로 클래스의 내용은 다음의 순서로 정렬된다. 1. Property declartions and initializer block 2. Secondary constructors 3. Method declarations 4. Companion object 관련된 것들을 한데 모아 클래스를 읽는 사람이 위에서 아래로 무슨 일이 일어나고 있는지 로직을 따라갈 수 있도록 해라. 중첩 클래스들이 외부에서 사용되도록 의도되었고 클래스 내부에서 참조되지 않는다면 companion object 다음의 마지막에 위치시켜라. 콜론 아래와 같은 경우에 콜론 앞에 공백을 넣어라 - 타입과 슈퍼 타입을 분리할 때 - 동일한 클래스의 다른 생성자 또는 슈퍼 클래스의 생성자에게 위임할 때 - object 키워드..