객체지향 프로그래밍(OPP)이란?
객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜
상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
- OOP
- 프로그램을 유연하고 변경이 용이하게 만든다
- 코드의 재사용성과 중복제거가 가장 큰 목적이다.
- 추상화
- 객체들이 가진 공통의 속성이나 기능을 묶어 이름을 붙이는 것
- 관련 없는 부분을 제거하여 필요한 부분만 표현하기 위한 개념
- 캡슐화
- 객체의 데이터를 외부에서 직접 접근하지 못하게 막고, 함수를 통해서만 조작이 가능하도록 만드는 작업이다. (은닉)
- 데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶는 것. 다시 한번 말하자면 변수와 함수를 하나로 묶는 것을 말한다.
- 상속
- 상속 관계에 있는 두 클래스에 대해, 부모 클래스가 자손 클래스에게 속성을 물려주는 것
- 코드의 중복 및 재사용이 주목적
- 다형성
- 같은 형태이지만 다른 기능을 하는 것
- 부모 클래스에서 물려받은 가상 함수를 자식 클래스 내에서 오버 라이딩되어 사용되는 것
객체지향을 사용하는 이유
- 코드 재사용이 용이
- 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있음.
- 유지보수가 쉬움
- 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 있기 때문에 해당 부분만 수정하면 됨.
- 대형 프로젝트에 적합
- 클래스단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러명, 여러회사에서 개발이 필요할 시 업무 분담하기 쉽다.
'JS' 카테고리의 다른 글
Today I Learned - Tree, Binary Search Tree (0) | 2020.02.10 |
---|---|
Today I Learned - Graph (0) | 2020.02.10 |
Today I Learned - HashTable (0) | 2020.02.08 |
Today I Learned - Linked List (0) | 2020.02.07 |
Today I Learned - Stack, Queue (0) | 2020.02.06 |