클래스형과 함수형은 프로그래밍에서 두 가지 다른 접근 방식을 나타내며, 주로 객체지향 프로그래밍과 절차지향 프로그래밍의 차이로 이해할 수 있습니다. 다음은 클래스형과 함수형 프로그래밍의 주요 차이점을 설명한 것입니다
1. 구조
- 클래스형: 클래스를 사용하여 객체 지향 프로그래밍 방식으로 코드를 구성합니다. 클래스는 데이터와 관련 메서드(함수)를 포함하며, 객체를 만들고 객체의 상태를 변경하는 데 사용됩니다.
- 함수형: 함수를 중심으로 코드를 구성하며, 함수는 입력을 받아서 출력을 생성하는 데 사용됩니다. 함수는 부수 효과 없이 데이터를 처리하려는 불변성을 강조합니다.
2. 상태 관리
- 클래스형: 객체는 상태를 가질 수 있으며, 객체의 상태를 변경하는 메서드를 호출하여 상태를 조작합니다.
- 함수형: 불변성을 강조하며, 상태 변경을 피하려고 합니다. 대신, 새로운 데이터 구조를 생성하거나 입력을 변환하는 함수를 사용하여 작업합니다.
3. 부수 효과
- 클래스형: 객체의 메서드를 호출하면 객체의 상태가 변경될 수 있으므로 부수 효과가 발생할 수 있습니다.
- 함수형: 부수 효과를 최소화하고 함수가 주어진 입력에서 항상 동일한 출력을 생성하도록 하는 것을 목표로 합니다.
4. 유지보수성
- 클래스형: 클래스와 객체는 코드를 구조화하고 모듈화하는 데 도움이 될 수 있으나, 복잡성을 추가하고 유지보수를 어렵게 할 수 있습니다.
- 함수형: 함수의 순수성과 불변성은 코드의 예측 가능성과 테스트 용이성을 향상시키며, 유지보수를 단순화할 수 있습니다.
5. 병렬 처리
- 클래스형: 병렬 처리가 어려울 수 있으며, 상태 공유로 인한 복잡성과 버그가 발생할 수 있습니다.
- 함수형: 함수형 프로그래밍은 상태 공유를 피하고 불변성을 강조하므로 병렬 처리 및 동시성을 더 쉽게 다룰 수 있습니다.
거의 함수형을 사용했던 것 같다.
보이는대로 유지보수가 조금 더 쉽다는 점이 더욱 자주 사용하게 했던 것 같다.
프로젝트가 커질수록 클래스형 함수가 유지보수가 좋을 것 같다