객체 지향 프로그래밍 (Object-Oriented Programming, 이하 OOP)
는 이전에 자바스크립트가 무엇 인지에 대해 설명을 했을 때, 잠깐 본 적이 있을 것이다..
가볍게 넘어가기에는 여러 유명한 언어들의 기반이기 때문에 한 번 쯤은 조금 더 깊게 파고들 필요가 있고, 앞으로 배울 클래스
에 대해 공부할 때 이걸 이해하고 넘어가면 조금 더 쉽게 자바스크립트 언어를 이해 할 것 같아 적어 본다
객체 지향 프로그래밍은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
사실 여기 저기 둘러봐도 OOP에 대한 고정된 정의가 있지 않고 특성을 풀어 설명한 것만 찾을 수 있어 그나마 내가 조금 더 이해하기 쉬운 용어를 가져와 정리해왔다.
💡 OOP 기반의 언어는 다음과 같다. C++, C#, Java, Python, JavaScript, Ruby, Swift정의가 쉽게 이해하기 어려우면, 특징을 이해해보자.
프로퍼티
)과 행위(메서드
)를 추출 하는 것쉽게 생각해서 OOP는 하나의 커다란 통상적이자 추상적인 개념이 있고 그걸 본 떠 그 개념을 가진 조금 더 구체적인 무엇가를 찍어 낼 수 있게 한다.
결합 시켜 하나로 묶는 것
재활용
할 수 있다.만들어진 캡슐의 내용물을 하위 캡슐로 물려줘
부모와 자식 관계와 같은 상속 관계가 만들어진다.이러한 다양한 특징을 가지고 있으며, 현재 많이 쓰이고 있는 OOP임에도 장/단점을 가지고 있다.
객체 지향 프로그래밍 언어라고 해서 자동적으로 우리가 하는 코딩의 결과가 객체 지향적으로 설계되는 것은 아니기 때문에 다음과 같은 원칙을 준수하여 설계해야 한다.