lateinit 은 반드시 명시적으로 초기화 코드를 클래스 내에 적시해야하며 var 로만 선언이 가능

by lazy 를 사용하는 방법은 by lazy 이후 블럭의 내용이 객체가 처음 참조되는 시점에 호출되어 초기화. val 에만 사용이 가능

상세 내용은 아래 글 참고