서녕이네 개발단지

쏙쏙 들어오는 함수형 코딩 [CHAPTER 5] 본문

도서

쏙쏙 들어오는 함수형 코딩 [CHAPTER 5]

zero2-pooh 2023. 7. 29. 01:28

더 좋은 액션 만들기

🖐🏻이번 장에서 살펴볼 내용

  • 암묵적 입력과 출력을 제거해서 재사용하기 좋은 코드를 만드는 방법을 알아보자.
  • 복잡하게 엉킨 코드를 풀어 더 좋은 구조로 만드는 법을 배운다. 

암묵적 입력과 출력은 적을수록 좋다

인자가 아닌 모든 입력 ➡️ 암묵적 입력

리턴값이 아닌 모든 출력 ➡️ 암묵적 출력

 

👉🏻 앞에서 암묵적 입력과 출력이 없는 함수를 작성했고 이 함수를 '계산'이라고 불렀다.


어떤 함수에 암묵적 입력과 출력이 있다면 다른 컴포넌트와 강하게 연결된 컴포넌트라고 할 수 있다.

다른 곳에서 사용할 수 없기 때문에 모듈이 아님!❌

이런 함수의 동작은 연결된 부분의 동작에 의존한다. 

 

 

❗️암묵적 입력출력이 있는 함수는 조심해서 사용해야 한다.

 

- 암묵적 입력과 출력이 있는 함수는 아무 때나 실행할 수 없기 때문에 테스트하기 어렵다.

- 모든 입력값을 설정하고 테스트를 돌린 후에 모든 출력값을 확인해야 한다.

- 입력과 출력이 많을수록 테스트는 더 어려워진다.

 

🙌🏻 계산은 암묵적 입력과 출력이 없기 때문에 테스트하기 쉽다!

모든 암묵적 입력과 출력을 없애지 못해 액션을 계산으로 바꾸지 못해도 암묵적 입력과 출력을 줄이면 테스트하기 쉽고 재사용하기 좋다. 

 


설계는 엉켜있는 코드를 푸는 것이다

- 함수를 사용하면 관심사를 자연스럽게 분리할 수 있다.

- 함수는 인자로 넘기는 값과 그 값을 사용하는 방법을 분리한다. 

- 잘 분리된 것은 언제든 쉽게 조합할 수 있고 오히려 잘 분리하는 방법을 찾기가 더 어렵다!

 

재사용하기 쉽다
  • 함수는 작으면 작을수록 재사용하기 쉽다.
  • 하는 일도 적고 쓸 때 가정을 많이 하지 않아도 된다.

 

 

유지보수하기 쉽다
  • 작은 함수는 쉽게 이해할 수 있고 유지보수하기 쉽다. 
  • 코드가 작기 때문에 올바른지 아닌지 명확하게 알 수 있다.

 

 

테스트하기 쉽다
  • 작은 함수는 테스트하기 좋다. 한 가지 일만 하기 때문에 한 가지만 테스트하면 된다.
  • 함수에 특별한 문제가 없어도 꺼낼 것이 있다면 분리하는 것이 좋다.


🖐🏻 요점 정리

  • 일반적으로 암묵적 입력과 출력은 인자와 리턴값으로 바꿔 없애는 것이 좋다.
  • 설계는 엉켜있는 것을 푸는 것이다. 풀려있는 것은 언제든 다시 합칠 수 있다.
  • 엉켜있는 것을 풀어 각 함수가 하나의 일만 하도록 하면, 개념을 중심으로 쉽게 구성할 수 있다.