객체지향 프로그래밍이란 무엇인가? 알면서도 깔끔하게 말하기 어려울 것 같다.
객체지향 프로그래밍은 문제를 여러 개의 객체 단위로 나눠 작업하는 방식이다.
현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 떄에도 객체들을 조립해서 작성할 수 있는 기법을 말한다
객체지향 프로그래밍 장점
객체지향 프로그래밍의 가장 큰 특징은 클래스를 이용해 연관 있는 처리부분(함수)과 데이터 부분(변수)를 하나로 묶어 객체(인스턴스)를 생성해 사용한다는 점이다.
그리고 객체지향 프로그래밍에서는 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에 여러 개발자와 협업해 규모가 큰 프로젝트를 진행할 수 있으며 유지보수측면도 뛰어나다는 장점이 있다.
객체지향 주요 구성 요소와 개념
객체 | 데이터와 데이터를 처리하는 함수를 묶어 놓은(캡슐화한) 하나의 소프트웨어 모듈이다. |
클래스 | 클래스는 공통된 속성과 연산을 갖는 객체의 집합으로, 객체의 일반적인 타입을 의미한다. |
캡슐화 | 캡슐화는 데이터와 데이터를 처리하는 함수를 하나로 묶는 것을 의미한다. 캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은닉되어 외부에서의 접근이 제한적이다. |
상속 | 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것이다. |
다형성 | 다형성은 메시지에 의해 객체가 연산을 수행하게 될 때 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 의미한다. |
연관성 | 연관성은 두 개 이상의 객체들이 상호 참조하는 관계를 말하며 is member of, is instance of, is part of, is a 등의 종류가 있다. |
대표적인 객체지향 프로그래밍 언어들이다.(wikipedia)
'IT정보 > 북마크털기 📚' 카테고리의 다른 글
[북털] CORS란? CORS 에러 (0) | 2022.02.16 |
---|---|
[Javascript] var, let, const 차이, Hoisting(호이스팅) (0) | 2022.02.15 |
[북털] HTML vs PHP (0) | 2022.02.15 |
[북털] async & await, Promise와 차이 (0) | 2022.02.15 |
[북털] Promise와 Callback의 차이 (0) | 2022.02.15 |