현실에서의 함수형 사고
함수형 프로그래밍은 이론뿐 아니라 실제 소프트웨어 구조와 동작을 바라보는 사고방식에도 도움을 줍니다. 여기서는 계층형 설계와 타임라인 다이어그램을 통해 현실에서 함수형 사고를 적용하는 방법을 살펴봅니다.
스터디 회차: 1회차 (2025년 8월 13일)
계층형 설계 (Stratified Design)
소프트웨어는 계층 구조를 통해 안정성과 변화 가능성을 균형 있게 다룰 수 있습니다.
예시
- 가장 위 계층: 자주 바뀌는 부분
- 가운데 계층: 바뀔 수도 있지만 자주 바뀌지 않는 부분
- 가장 아래 계층: 거의 변하지 않는 부분
특징
- 각 계층은 바로 아래 계층을 기반으로 만들어집니다.
- 아래 계층일수록 안정적이고 바꾸기 어렵지만, 자주 바뀌지 않습니다.
- 위쪽 계층일수록 쉽게 교체 가능하며, 변화에 유연합니다.
TIP
이런 구조 덕분에 안정적인 기반 위에서 변화하는 요구사항을 수용할 수 있습니다.
타임라인 다이어그램 (Timeline Diagram)
액션은 실행 시점에 의존하기 때문에 실행 순서를 이해하는 것이 중요합니다. 이를 시각적으로 표현하는 도구가 바로 타임라인 다이어그램입니다.
- 시간의 흐름에 따라 액션이 어떤 순서로 실행되는지 보여줍니다.
- 여러 타임라인이 동시에 진행될 때는 타임라인 '커팅' 기법을 사용하여 실행 순서를 맞출수 있습니다.
- 특히 분산 시스템처럼 동시에 실행되는 작업을 다루는 데 효과적입니다.
TIP
타임라인 다이어그램은 복잡한 액션의 관계를 단순하고 실행순서에 따라 직관적으로 보여줍니다.
정리하기
- 계층형 설계는 안정적인 기반 위에 변화하는 부분을 얹는 방식으로 소프트웨어를 구조화합니다.
- 타임라인 다이어그램은 액션의 실행 시점과 순서를 시각화하여 이해하기 쉽게 만듭니다.
- 결국 함수형 사고는 시간과 구조라는 두 가지 차원에서 소프트웨어를 더 잘 다루게 해줍니다.