코드는 세가지 종류로 구분할 수 있다.
1. 동작(Action)
- 실행 시간과 횟수에 영향을 받음
- 같은 코드라 해도, 나오는 결과가 다를 수 있다.
- ex) 메일을 보내는 코드, DB 에 기록하는 코드
- 명시적 입/출력(함수 파라미터, 리턴값)과 암묵적 입/출력이(전역변수, 객체변수 등의 비지역변수) 섞여있음
2. 계산(Calculation)
- 입/출력이 모두 명시적입
- 출력값은 입력값에 대해서만 영향을 받음
- 입력값이 같으면 항상 같은 값을 출력함
3. 데이터
- 이벤트 실행의 결과,
- 우리가 흔히 아는 변수(리스트, 값 등...)
소프트웨어 개발에서 '액션' 이 갖는 특징
1. 구현 / 설계가 상대적으로 용이함
- C/C++, JAVA 구현하듯이 절차적으로 구현하면 됨
2. 유지보수 및 테스트의 어려움
- 소프트웨어 규모가 증가할수록 많은 암묵적 입력이 존재(복잡성이 증가함)
- 테스트 자동화 진행 시, 모든 암묵적 입력값을 설정해줘야 함.
소프트웨어 개발에서 '계산' 이 갖는 특징
1. 구현의 상대적인 까다로움
- 초반 적응의 어려움 (방어적 복사 등... )
2. 유지보수 및 테스트의 상대적인 용이함
- 입력값이 같으면 출력값 또한 같다. (-> 유닛 테스트 용이)
때문에, 소프트웨어 개발 시, '액션' 의 갯수는 최소화하고, 가능하면 '계산' 을 사용하는게
유지보수에 편할 수 있음.
'프로그래밍 > 함수형 코딩' 카테고리의 다른 글
함수형 코딩 - 3. 동작을 계산으로 바꾸는 두번째 방법 (1) | 2022.09.12 |
---|---|
함수형 코딩 - 2. 암묵적 입출력을 명시적 입출력으로 (0) | 2022.09.12 |