모닥불 | EP.2 함수형 프로그래밍, 프론트엔드 개발에 진짜 도움 될까?
toss.tech
프론트엔드 개발에서는 함수형 프로그래밍(FP)과 객체지향 프로그래밍(OOP)이라는 두 가지 주요 패러다임이 서로 상호보완적으로 사용될 수 있습니다. 따라서 이러한 두 패러다임의 본질적 특성을 이해하고, 프론트엔드 개발에서 어떻게 적용되는지를 아는 것이 매우 중요한데요.
객체지향 프로그래밍 (OOP)
객체지향 프로그래밍은 현실 세계의 개체를 추상화하여 행위와 속성으로 표현하는 방법론입니다. 이는 시스템을 거시적 관점에서 설계하고 모듈화하는 데 강점을 지니며, 주로 아키텍처 설계의 주요 도구로 사용됩니다. 객체지향 프로그래밍은 각 개체 간의 상호작용을 정의하고, 책임을 분배함으로써 구조적이고 명확한 시스템을 구축하는 데 도움을 줍니다.
함수형 프로그래밍 (FP)
함수형 프로그래밍은 수학적이고 추상적인 개념을 기반으로 접근하는 방식입니다. 작은 순수 함수들을 조합하여 프로그램을 구성함으로써 코드의 가독성, 유지보수성, 테스트 용이성을 향상시키는 데 중점을 둡니다. 함수형 프로그래밍은 불변성과 순수 함수를 강조하여, 보다 예측 가능하고 디버깅이 용이한 코드를 작성할 수 있게 합니다.
React 생태계에서의 FP 개념
React에서는 함수형 프로그래밍의 개념이 널리 적용됩니다. 함수형 컴포넌트와 훅을 통해 상태를 관리하며, 불변성과 순수 함수의 중요성을 강조합니다. 또한, 고차 함수, 커링, 합성 등의 FP 기법이 적극적으로 활용됩니다. 이러한 FP 기법들은 코드의 모듈화와 재사용성을 높이고, 복잡한 상태 관리와 데이터 흐름을 단순화하는 데 큰 도움을 줍니다.
OOP와 FP의 상호보완성 - 거시적 OOP, 미시적 FP
객체지향 프로그래밍은 전체 시스템 구조와 모듈 간의 관계를 정의하는 데 유리합니다. 반면에 함수형 프로그래밍은 개별 함수와 로직의 구현에 적합합니다. 이 두 패러다임을 조화롭게 사용하면 더 효과적인 설계와 구현이 가능합니다. 예를 들어, 시스템의 큰 틀은 OOP로 설계하고, 세부적인 로직은 FP로 구현하는 방식이 가능합니다.
흔한 오해 바로잡기
프론트엔드 개발에서 클래스 컴포넌트를 사용한다고 해서 반드시 객체지향 프로그래밍을 하는 것은 아닙니다. OOP의 핵심은 객체 간 상호작용과 책임 분배에 있습니다. 마찬가지로, 함수형 컴포넌트는 상태를 가질 수 있으며, 순수 함수형 프로그래밍을 따르지 않을 수도 있습니다.
프론트엔드 개발에서 객체지향 프로그래밍과 함수형 프로그래밍은 대립되는 개념이 아닌 상호보완적인 도구입니다. 각 패러다임의 장점을 이해하고 적절히 활용함으로써, 더 효율적이고 유지보수가 용이한 코드를 작성할 수 있습니다. 그리고, 궁극적으로 프로그래밍의 본질인 사용자 가치 창출과 비즈니스 목표 달성에 초점을 맞추어 유연하게 접근하는 것이 중요합니다. 이번 토스 모닥불 2편도 재미있고 유익하게 보았는데요. 다음편도 벌써 기대가 되네요 ~!
https://toss.tech/article/firesidechat_frontend_2
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 7월 2일 오전 1:05
r
... 더 보기S
... 더 보기공통점을 찾기 위해 노력하죠. 사소한 관심사 하나라도 비슷하면 대화의 물꼬를 트기 편하니까요.
... 더 보기코
... 더 보기