코틀린은 모듈로 프로그램 설계
상태를 정의할 때는 변수와 프로퍼티의 스코프를 최소화 하는 것이 좋음
널 안정성(null-safety)은 코틀린의 주요 기능 중 하나
코틀린의 타입 추론(type inference)은 JVM 세계에서 가장 널리 알려진 특징
require 블록: 아규먼트를 제한할 수 있음check 블록: 상태와 관련된 동작을 제한할 수 있음assert 블록: 어떤 것이 true 인지 확인 할 수 잇음assert 블록은 테스트 모드에서만 작동return 또는 throw와 함께 활용하는 Elvis 연산자🛠️
표준 라이브러리에는 이를 나타내는 적절한 오류가 없으므로, 사용자 정의 오류를 사용했지만 가능한 표준 라이브러리를 사용
null 또는 '실패를 나타내는 sealed 클래스(일반적으로 Failure라는 이름을 붙임)'를 리턴예외를 throw