Kotlin Best Practices

    [Kotlin] if, require 메서드를 활용해 메서드 실행 제한하기

    블록이 실행되지 말아야 할 때의 Best Practice Kotlin에서는 if-else 문으로 코드 블록을 실행할지 결정한다. 하지만 if-else 문을 중첩해서 쓰면 블록이 계속 블록이 중첩되기 때문에 가독성이 떨어진다. 특히 오랫동안 유지보수된 레거시 코드들을 보면 이러한 상황이 매우 잘 나타난다. 보통 이러한 코드들은 null이 아님을 확인하기 위해 1번 if 문을 쓰는 것을 기본으로 한다. 예를 들어 다음 코드와 같이 사용된다. fun blockExecuteExample(apple : Apple?) { if (apple != null) { if(apple is Fruit) { eat() } } } 여기서 끝나면 괜찮겠지만 보통 이런 코드들은 if문을 여러 번 중첩한다. if 문을 여러 번 중첩하..

    [Kotlin] 변수의 변경 가능 지점 최소화를 통한 코드 안정성 증대 전략

    변수의 변경 가능 지점을 최소화 해야 하는 이유 프로그래밍을 하다보면, 이곳 저곳에서 변수의 값이 변화되는 것을 볼 수 있다. 코드의 양이 작을 때는 이런 것이 문제가 안되지만 코드의 양이 많아질 수록 문제가 된다. 특히 특정 클래스에 속한 변수가 외부에서 직접 접근된 다음 수정되면 해당 클래스 상태(State)의 변경 가능 지점이 늘어나기 때문에 문제가 생긴다. 예를 들어 ExampleView와 ExampleView의 데이터를 저장하는 ExampleViewModel이 있고 ExampleViewModel의 viewData는 서버에서 가져온다고 해보자. 이때 viewData는 초기화 시 한 번만 가져오고 이후에 바뀌면 안된다. 그러면 다음과 같이 코드가 만들어질 수 있다. class ExampleView(..