자바에서는 유틸성 함수를 만들 때 특정 클래스에 static 메소드를 정의해놓고 사용하곤 한다. 반복적으로 자주 사용되는 함수이기 때문에 별도의 객체 생성 단계 없이 메모리 상주시켜 사용하기 위함이다. 코틀린에서는 유틸성 함수를 만드는데 세 가지 방법을 제공하는데 object, companion object, top-level-function 를 활용한다. 우선 세 가지 방식 모두 자바로 디컴파일 해보면 static 자원이다. top-level-function 은 자바에서 흔하게 사용하던 유틸 메소드와 같이 class 에 static 메소드로 정의된다. object, companion object 는 객체 자체가 static 변수에 할당되는데 모두 어플리케이션 실행시 클래스 로더에 의해 초기화 된다. 차..