상태를 다루는 방식 차이로 가르는 결
두 패러다임을 저는 상태를 어떻게 다루느냐로 가릅니다. 객체지향은 상태와 그 상태를 바꾸는 동작을 한 덩어리로 묶어 관리하는 쪽입니다. 함수형은 반대로 상태를 바꾸지 않고, 입력을 받아 새 값을 내는 함수로 흐름을 만드는 쪽입니다. 그래서 적합한 문제가 갈립니다.
현실의 사물과 그 변화를 모델링해야 하는 도메인은 객체지향이 자연스럽고, 데이터를 단계마다 변형해 흘려보내는 처리는 함수형이 깔끔합니다. 학부 프로젝트에서 도메인 모델은 객체로 짜고, 데이터 가공 파이프라인은 함수 연결로 짰을 때 각자 더 단순해지는 걸 직접 겪었습니다. 둘은 배타적이지 않습니다. 한 코드에서 큰 구조는 객체로, 그 안의 변환 로직은 함수형으로 섞어 쓰는 게 오히려 흔합니다. 그래서 저는 둘을 경쟁이 아니라 문제에 따라 고르는 도구로 봅니다.