[kotlin] 순수 함수와 부작용

프로그래밍에서 함수는 순수 함수부작용을 가질 수 있습니다. 이 둘은 함수가 외부 상태에 영향을 미치는 정도에 따라 구분됩니다.

순수 함수

순수 함수는 입력 값에만 의존하고 외부 상태에 영향을 주지 않는 함수입니다. 즉, 같은 입력에 대해 항상 동일한 결과를 반환합니다. 순수 함수는 부작용이 없으며 예측 가능하고 안정적입니다.

다음은 Kotlin에서의 순수 함수 예시입니다.

fun add(a: Int, b: Int): Int {
    return a + b
}

위의 add 함수는 동일한 입력 값에 대해 항상 같은 결과를 반환하므로 순수 함수입니다.

부작용

부작용은 함수가 외부 상태를 변경하거나 다른 부수 효과를 일으키는 것을 의미합니다. 예를 들어, 파일에 쓰기, 데이터베이스 엑세스, 네트워크 요청 등이 부작용에 해당됩니다.

fun printMessage(message: String) {
    println(message)
}

위의 printMessage 함수는 콘솔에 메시지를 출력하므로 부작용을 일으키는 함수입니다.

순수 함수를 사용하면 코드의 안정성과 예측 가능성이 향상되며, 테스트하기 쉽고 유지보수가 용이해집니다. 따라서 가능한한 순수 함수를 설계하고 부작용을 최소화하는 것이 좋습니다.

결론

순수 함수는 외부 상태에 의존하지 않고 예측 가능하며 안정적입니다. 부작용을 최소화하여 순수 함수를 적절히 활용하면 코드의 안정성과 유지보수성을 향상시킬 수 있습니다.

내부 상태 변경이 필요한 경우에는 부작용을 최소화하고, 외부 상태를 변경하는 함수를 명확히 구분하여 사용함으로써 코드의 가독성과 유지보수성을 개선할 수 있습니다.