사용자의 관점에서 애플리케이션 외부적으로 제대로 작동하는지 확인하는 것이 목표인 테스트는 개발자에게 유용하지만 충분하지는 않습니다. 이것만으로는 해당 요소가 올바르게 작동한다는 것을 완전하게 보증할 수는 없습니다. 그렇기 때문에 단위 테스트(Unit Test)가 필요합니다. 확인할 내용단위 테스트는 일반적으로 다음과 같은 내용을 확인합니다. 1. 일반적인 유스케이스이는 사용될 것이라고 예상되는 정상적인 입력 값에 대해 프로그램이 의도한 대로 작동하는지 확인하는 경우입니다.fun get(list: List, index: Int): Int { return list[index]}@Testfun `인덱스의 해당하는 값을 가져올 수 있어야 한다`() { val numbers = listOf(1, 2,..
상태(state)var을 사용하거나 mutable 객체를 사용하면 값이 변동될 여지가 생기게 됩니다. 이를 상태(state)라고 합니다. 상태를 가지게 되는 경우, 이제는 객체의 사용 방법뿐만이 아니라 객체의 상태에 대한 이력(history)에 의존하게 됩니다. 그렇기에 코틀린에서는 주로 3가지 방법을 사용해서 가변성을 제한합니다.val (읽기 전용 프로퍼티)가변 컬렉션과 읽기 전용 컬렉션 구분하기데이터 클래스의 copy valval을 사용해 읽기 전용 프로퍼티를 만들 수 있습니다. 다만 이러한 val의 값이 항상 변하지 않는다는 말은 아닙니다. val이 mutable 하거나 getter를 정의해서 다른 변경 가능한 프로퍼티를 참조한다면, val 값도 변할 수 있습니다. 아래의 예시에서 person은 ..