경험 중심 1인칭 답변
졸업 프로젝트에서 구인구직 매칭 서비스를 만들면서 OOP와 FP를 함께 사용했습니다. 도메인 모델링 단계에서는 OOP를 기반으로 Job, Applicant, Application을 클래스로 설계하고 상태와 행동을 묶었습니다. 반면 필터링과 점수 계산 로직에는 FP 방식을 적용했는데, 순수 함수로 만들면 테스트가 훨씬 쉬웠고 파이프라인 형태로 이어 붙이기 편했습니다. 예를 들어 applicants.filter(meetsSkillRequirements).map(calcMatchScore).sortBy(score) 형태로 체이닝이 명확하게 읽혔고, 조건이 바뀔 때 해당 함수 하나만 교체하면 됐습니다.
OOP는 모델의 경계를 잡는 데 강하고, FP는 변환 로직을 명확하게 만드는 데 강하다는 것을 이 프로젝트에서 실감했습니다. 두 방식을 용도에 맞게 구분해서 쓰는 것이 한 가지 패러다임만 고집하는 것보다 코드 가독성과 유지보수 모두에서 유리하다는 결론을 얻었습니다.