Today I Learned - OOP, Prototype

JS · 2020. 2. 6. 14:57

객체지향 프로그래밍(OPP)이란?

 

객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜

상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

 

 

 

  • OOP
    1. 프로그램을 유연하고 변경이 용이하게 만든다
    2. 코드의 재사용성과 중복제거가 가장 큰 목적이다.

 

  • 추상화
    1. 객체들이 가진 공통의 속성이나 기능을 묶어 이름을 붙이는 것
    2. 관련 없는 부분을 제거하여 필요한 부분만 표현하기 위한 개념

 

  • 캡슐화
    1. 객체의 데이터를 외부에서 직접 접근하지 못하게 막고, 함수를 통해서만 조작이 가능하도록 만드는 작업이다. (은닉)
    2. 데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶는 것. 다시 한번 말하자면 변수와 함수를 하나로 묶는 것을 말한다.

 

  • 상속
    1. 상속 관계에 있는 두 클래스에 대해, 부모 클래스가 자손 클래스에게 속성을 물려주는 것
    2. 코드의 중복 및 재사용이 주목적

 

  • 다형성
    1. 같은 형태이지만 다른 기능을 하는 것
    2. 부모 클래스에서 물려받은 가상 함수를 자식 클래스 내에서 오버 라이딩되어 사용되는 것

 

 

 

 

 

 

 

객체지향을 사용하는 이유

 

  • 코드 재사용이 용이
  • 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있음.

 

  • 유지보수가 쉬움
  • 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 있기 때문에 해당 부분만 수정하면 됨. 

 

  • 대형 프로젝트에 적합
  • 클래스단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러명, 여러회사에서 개발이 필요할 시 업무 분담하기 쉽다.

 



 

 

 

 

 

'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