객체 지향 프로그래밍과 함수형 프로그래밍

2020. 11. 23. 14:52개발 관련 학습정리/Web Front-end

반응형

 

 

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

줄여서 OOP라고 주로 부르며 크게 4가지 특징을 가지고 있다.

 

1. 캡슐화(Encapsulation)

캡슐화는 데이터, 그리고 데이터를 처리하는 함수를 하나로 묶은것을 말합니다.

캡슐화된 객체들은 재사용이 가능하며, 세부 내용이 은폐(정보 은닉)되어 오류가 적습니다.

덕분에 인터페이스가 단순해지고, 객체간의 결합도가 낮아집니다.

 

2. 정보은닉(Information Hiding)

다른 객체에게 자신의 정보를 숨기고 공개된 명령만을 통하여 접근을 허용하는 방식입니다.

외부 객체가 특정 객체의 데이터와 함수를 직접 접근하지 않기 때문에 유지보수를 하거나

소프트웨어를 확장할 때 오류를 줄일 수 있습니다.

 

3. 추상화(Abstraction)

불필요한 부분을 생략하고 객체의 가장 중요한 것에만 중점을 두는 것이다.

최소화 하여 실제 상황에 대처할 수 있고, 시스템의 구조를 가시적으로 볼 수 있습니다.

 

4. 상속성(Inheritance)

부모 클래스의 모든 속성을 자식 클래스가 물려받는 것이다.

상속받은 연상 외에 새로운 속성과 연산을 첨가하여 사용할 수 있으며, 재사용의 중요한 개념이 된다.

 

5. 다형성(Polymorphism)

객체가 연산을 수행하게 될 때 하나의 메세지로 각 객체가 다양하게 응답할 수 있는 능력을 다형성이라고 한다.

하나의 함수나 연산자가 두개 이상의 서로 다른 클래스에 들어있을때,

하나의 인스턴스처럼 수행할 수 있도록 하는것을 말합니다.

 

 

 

 

 

 

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

함수형 프로그래밍이란 순수함수와 보조 함수의 조합을 통해 복잡성을 해결하고 상태변경을 최소화하는 방법이다.

 

OOP와의 차이점

객체지향은 객체안에 데이터를 저장하고 저장한 데이터를 응용하여 설정하고 조정한다.

하지만 함수형 프로그래밍은 상태를 제어하기보다 빨리 처리하는데 초점을 둔다.

 

함수형 프로그래밍에서의 순수함수

같은 입력이 주어지면 항상 일관된 출력이 나와야하며, 예외가 없어야 한다.

순수함수를 통해 부작용을 최소화하고 안정성을 높이기 위하여 함수형 프로그래밍 기법을 사용한다.

 

 

 

 

반응형