객체 지향 프로그래밍

김동찬·2021년 7월 19일
0

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

객체 지향 프로그래밍이란?
간단하게 객체 데이터의 접근과, 데이터 처리 과정을 주로 삼는 프로그래밍 방법론이다.

객체 지향 프로그래밍 특징

객체 지향 프로그래밍은 "객체"의 형식으로 그룹화가 되어있고, 직관적이며, 재사용성이 편리해 데이터 관리에 용이하다.

객체지향 프로그래밍을 직관적으로 사용하기 위해선 클래스와 인스턴스, 그리고 생성자 함수을 알아야 합니다. (ES6 Class문법!)

객체지향 프로그래밍의 주요 특징은 4가지 입니다.
1. 캡슐화(Encapsulation)
2. 추상화(Abstraction)
3. 상속(Inheritance)
4. 다형성(Polymorphism)

캡슐화(Encapsulation)

  1. 데이터와 기능을 하나의 단위로 묶는것!
  2. 은닉(hiding): 구현은 숨기고, 동작은 노출시키는것!
  3. 느슨한 결합(Loose Coupling)에 유리: 언제든 구현을 수정할 수 있음

캡슐화는 데이터와 기능들을 관련있는 것들 끼리 묶는 것을 의미하고, 하나의 객체 안에 넣어 묶어 주기 때문에 데이터와 기능들이 느슨하게 결합된다.
느슨한 결합은 코드 실행 순서에 따라 절차적으로 코드를 작성하는 것이 아니라, 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합 하는 것을 의미한다.

캡슐화는 "은닉화" 특징이 있다. 은닉화는 내부 데이터나 내부 구현이 외부로 노출되지 않도록 만드는 것입니다.

추상화(Abstraction)

추상화는 내부 구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념!

핵심적인 특징만 가져와 내가 구현하고자 하는 프로그램을 인터페이스를 단순화 시킬 수 있습니다 핵심적인 특징만 있다면 프로그램을 구현하기에 문제가 없다.

이렇게 공통적인 특징들을 뽑아내면 데이터(속성)과 기능(메서드) 로 나뉜다. 이것들을 묶어 놓는 것을 위에 정리한캡슐화라고 하고, 이것을 클래스(class) 라고 한다.

상속(Inheritance)

상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것입니다.

부모/자식으로 이야기를 하기도 하지만, 보다 그 특징을 자세하게 설명하는 용어는 "기본 클래스(base class)의 특징을 파생 클래스(derive class)가 상속 받는다"로 표현하는 것이 적합하다.

부모 클래스로 부터 특징들을 물려 받게 이미 구현된 세부 내용들을 다시 구현할 필요가 없기 때문에 코드의 재사용이 용이한게 특징이다!

다형성(Polymorphism)

다형성의 Polymorphism 이란 단어의 Poly는 "많은", 그리고 morph는 "형태"라는 뜻을 가지고 있다. 즉 "다양한 형태"를 가질수 있다는 말이다.

다형성은 하나의 속성이나 행위가 상황에 따라 다른 의미로 해석 될 수 있는 특징을 말한다.또한 다형성은 객체 지향 프로그래밍에 아주 핵심이 되는 중요 개념이다.

다형성은 위에서 정리한 상속을 이용해서 상위 클래스의 메소드를 하위 클래스에서 재정의 하여 사용이 가능하다.
다형성은 상속의 재정의를 통해 효과적으로 기능을 구현할수 있으며, 클래스를 추가하여 효율적으로 관리를 할수 있다.

profile
프론트엔드 지망 개발공부를 하는 김동찬입니다 ^^7 코드스테이츠

0개의 댓글