액션과 계산, 데이터
액션, 계산, 데이터
액션
- 실행 시점과 횟수에 의존
- 그렇다는 것은, 언제 호출했고 몇 번 호출했는지에 따라 결과값이 계속 바뀐다는 뜻
- 부수효과, 순수하지 않은 함수 등등 이라고 하기도 한다
- 예시: 이메일 보내기, 데이터베이스 접근해서 읽기 등
계산
- 입력으로 출력을 계산한다
- 언제 호출했고 몇 번 호출했는지는 전혀 상관이 없다 (참조 투명하다)
- 순수함수, 수학함수 등으로 불린다
- 예시: 최댓값 찾기, 이메일 주소 형식 검증 등
데이터
- 이벤트에 대한 사실
- 예시: 사용자가 입력한 이메일 주소
액션, 계산, 데이터를 구분하는 기술을 적용하는 곳
- 문제에 대해 생각할 때
- 코드를 작성할 때 특별히 주의해야 할 부분 (액션)
- 데이터로 처리해야 할 부분
- 결정을 내려야 할 부분 (계산)
- 코딩할 때
- 액션에서 계산 분리, 계산에서 데이터 분리
- 액션이 계산이 될 수 있는지? 계산이 데이터가 될 수 있는지?
- 코드를 읽을 때
- 어떤 코드가 액션이고 계산이고 데이터인지 잘 살펴봐야 한다
- 액션은 시간에 의존하기 때문에 더 조심해야 한다 (숨어있는 액션까지도 찾아야 한다)
액션, 계산, 데이터는 어디에나 적용할 수 있다