자바에서는 메서드를 분리하기 쉽지 않다 너무 많이 나눠서 분리하게 되면 각 메서드 사이의 관계가 파악하기 어려워져 코드가 어려워진다. -> 내부 클래스로 어느 정도 해결되지만 이것도 부가적인 코드가 늘어난다 코틀린에서는 함수에서 추출한 함수를 원 함수 내부에 중첩시킬 수 있다. class User(val id: Int, val name: String, val address: String) { } fun saveUser(user: User){ if(user.name.isEmpty()){ throw IllegalArgumentException("Can't save user ${user.id} : empty name") } if(user.address.isEmpty()){ throw IllegalArgumen..