OOP vs FP

turnaroundwoo·2023년 3월 10일
0

11st Blogs

목록 보기
41/52

객체 지향 프로그래밍(Object-Oriented-Programming)

객체 지향 프로그램 이란, 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위를 말합니다. 즉 "객체"들의 모임으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임 중 하나인 것입니다.

✅ 객체 지향 프로그래밍(OOP)의 4가지 특징

1. 추상화(Abstraction) : 객체들이 공통적으로 필요로 하는 속성이나 동작을 하나로 추출해내는 과정입니다.
2. 캡슐화(Encapsulation) : 하나의 객체에 대해 그 객체가 특정한 목적을 위해 필요한 변수나 메서드를 하나로 묶는 것입니다.
3. 상속성(Inheritance) : 기존 상위클래스(Superclass)에 근거하여 새로운 하위 클래스(Subclass)와 행위를 정의할 수 있는 속성입니다.
4. 다형성(polymorphism) : 서로 다른 클래스의 객체가 같은 동작 수행 명령을 받았을 때, 각자의 특성에 맞게 동작하는 것을 말합니다.

✅ 객체 지향 프로그래밍(OOP)의 장단점

장점
1️⃣ 재사용성을 높이고 유지보수가 용이합니다.
2️⃣ 어떻게 동작하는지 몰라도 여러 기능을 사용할 수 있습니다.
3️⃣ 객체 단위로 데이터를 모델링하여 요구사항을 보다 명확하게 파악할 수 있습니다.

단점
1️⃣ 객체 간의 정보 교환이 메시지 교환을 통해 일어나 실행 시간의 오버헤드가 큽니다.(실행이 느림)
2️⃣ 객체의 설계가 쉽지 않습니다.

함수형 프로그래밍(Functional Programming)

함수형 프로그래밍(Functional Programming) 은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해줍니다.

✅ 함수형 프로그래밍(FP)의 특징

부수 효과가 없는 순수 함수를 1급 객체로 간주하여 파라미터나 반환값으로 사용할 수 있으며, 참조 투명성을 지킬 수 있습니다.

🗒 출처


0개의 댓글