본문 바로가기
프로그래밍/golang

함수형 코딩2 - 계층화, 추상화

by 나도한강뷰 2022. 9. 22.

함수형 코딩은 '부수효과를 없애는 것'을 슬로건으로 가지고 있다.

 

이전에는 부수효과, 액션, 계산, 데이터에대해서 간략하게 얘기해보았다.

 

그리고 액션, 계산등은 하나의 컴퍼넌트이면, 그것들을 관리하는 계층을 구성하는게 중요하다. 모든 프로그래밍이 그렇듯이, 아키텍쳐를 명확하게 구성하는것이 중요하듯이, 함수형 코딩에서도 계층을 잘 구성하는것이 중요하다. 

 

그럼 잘 구성하는게 무엇이냐?

A계층                              ↓
B계층                              ↓
C계층                              
copy-on-write 계층          ↓
언어 계층                        

도메인 관련 계층부터 점점 구체적이고 상세한 역할을 하게되는 식으로 계층을 구성하고 그것들이 서로 하향식으로 참조하고 있는 구성을 의미한다고 생각합니다. 그걸 일관되게 지키는 것이 함수형 코딩의 중요한 부분이 아닐까 싶다. 예를 들어 A계층이 B계층을 호출하는것 뿐만아니라, 그 외로 직접 C계층, copy-on-write계층등을 동시에 호출한다면 그것들을 새로운 B계층 액션으로 묶어서 추상화해야된다는 의미이다.

 

여기서 우리는 계층구조를 명확하게 하기위해서는 추상화를 필수적으로 해야된다는 것을 알 수 있다. 그래야지만 명확한 계층 구조를 만들 수 있기 때문이다. 또한 추상화를 하게된다면, 추상화를 통해서 위에 계층이 추상화 아래의 계층의 작동방식을 고려하지 않도록 만들 수 있다는 장점이 있다.