it 서적 독후감

함수형 코딩

데일리코딩 2024. 7. 30. 23:02

개요

앞으로 읽은 책은 it 서적 독후감을 통해서 내가 읽은 내용을 요약하고 나만의 생각을 정리하고자 해당 포스팅을 하게 되었습니다.

 

 왜 이책을 읽게 되었는가..

인프런이라는 온라인 강의 사이트가 있는데 해당 플랫폼에서는 "멘토링" 이라는 서비스가 존재한다
해당 서비스는 내가 관심있는 분야에 오랫동안 일한 분들과 1시간 남짓 이야기를 할 수 있는 서비스인데

그분이 추천해준 여러 책중에 하나 였다.

객체지향 이라는 패러다임과 더불어 클린코드가 개발자의 칼퇴와 높은 연봉을 안겨준다고 생각한다면 

익혀두는게 좋다고 생각해서 읽게 되었다.

 

내용

어느 서적이나 마찬가지로 책 혹은 글을 잘쓰는 사람들의 특징은 가장 중요한 내용을 앞에 서술하고

그 다음 중요한 내용 순으로 서술 하고는 한다

내가 읽고 있는 함수형 코딩 이라는 책의 저자는 함수형 프로그래밍에서 제일 먼저 말한것은

코드를 3가지로 분류하는것이였다

데이터, 함수(순수함수), 액션

함수형 프로그래밍에서 코드를 바라볼때 위 3가지 요소 관점으로 바라보는것이 함수형 코딩의 시작이라고 한다

여기서 의문점은 함수면 그냥 함수지 "순수함수" 가 무엇을 말하는건지 이해가 어려웠는데

 

이책에서 말하기를 순수함수란 말 그대로 어떠한 사이드 이팩트를 발생시키지 않고 "명시적 입력" 과 "명시적 출력" 만이 존재하며
해당 함수를 언제 어디서나 호출해도 항상 같은 값을 리턴하는 함수를 뜻한다고 한다. 

쉽게 풀어서 순수함수란 입력값으로 출력값을 만드는것이 순수함수다

 

여기서 중요한 내용이 나오는데

모든 함수를 순수함수로 유지하고 "원자" (더이상 쪼갤 수 없는 값) 단위로 쪼개서 작고 믿을 수 있는 모듈을 만들고 

전역변수를 참조하지 않아 해당 컴포넌트에 의존성을 줄이며, 재사용성을 올리고 

1가지의 책임만 전가하여 명확하게 하는것이 핵심 아닌가 싶다.

 

마치 객체지향의 단일책임 원칙과 비슷한 개념인것 같다

한 객체의 1가지 책임만 주어지는것 ..

실제로 자바스크립트에서는 함수도 1급시민으로 써 객체로 인정되는곳이기 때문에

자바의 객체지향의 단일책임원칙으로 봐도 거의 무방하다고 생각이 들었다..

이렇게 작고 강력한 모듈들은 복잡하지 않고 조합하여 사용할 수 있다는 큰 장점이 있다.!

 

이렇게 오늘은 함수 프로그래밍에서 함수를 어떻게 작성해야 더 좋은 함수 
더 좋은 코드로 개선 할지에 대해 알아보는 시간이였다.