프로그래밍에서 데이터, 계산, 액션의 중요성
프로그래밍에서는 데이터, 계산 및 액션의 세 가지 핵심 요소를 명확히 구분하는 것이 중요합니다. 이 구분은 코드의 테스트 가능성을 향상시키고, 재사용성을 높이며, 관리를 용이하게 합니다.
데이터
- 정의: 데이터는 정보의 원시 형태로, 사용자 입력이나 API 호출로부터 얻은 결과와 같은 값입니다.
- 특성: 데이터는 불변성을 가지며, 외부에 어떠한 영향도 미치지 않습니다.
계산 (순수 함수)
- 정의: 계산은 입력 데이터를 받아 처리하고 결과를 반환하는 순수 함수입니다.
- 특성: 일관된 출력: 동일한 입력에 대해 항상 같은 결과를 반환합니다.
부수 효과 없음: 실행이 외부 상태를 변경하지 않으며 외부 환경에 영향을 주지 않습니다.
액션
- 정의: 액션은 외부 세계와의 상호작용을 포함하는 동작으로, 외부 상태의 변경 또는 외부 상태 변경에 의존합니다.
- 특성: 외부 상태 변경: 함수 실행이 외부의 상태를 변경할 수 있습니다.
일관성 없는 출력: 같은 입력에도 실행 환경이나 외부 상태에 따라 다른 결과를 반환할 수 있습니다.
좋은 개발 관행
계산과 액션의 분리: 액션으로부터 계산을 분리하여, 계산을 활용해 액션의 접촉면을 최소화하는 것이 바람직합니다. 이로써 액션의 부수 효과를 관리하기 쉽고, 순수 함수의 재사용성과 테스트 용이성을 최대화할 수 있습니다.