코딩/코드스테이츠 45기(FE)

블로깅 챌린지 5주차 - [JS] 객체 지향 프로그래밍

2워노 2023. 5. 11. 23:57

⚡️ 객체 지향 프로그래밍 이란?

  • 하나의 모델이 되는 청사진을 만들고, 그 청사진을 바탕으로 객체를 만들어나가는 프로그래밍 패턴이다.
  • 그러면 객체란 무엇인가?
  • 객체란 프로그램에서 사용되는 변수들과 값, 그리고 작업을 수행할 메소드를 서로 연관된 것들끼리 묶어서 만든것
  • 쉽게 비유하자면, 객체는 레고 조각이고 레고 조각을 조립하여 무엇을 만드는 방식이 객체 지향 프로그래밍이다.
  • 이러한 객체 지향 프로그래밍은 레고와 같이 부품화 할 수 있고, 재사용이 가능하다는 특징이 있다.

 

⚡️ 객체 지향 프로그래밍의 특징

 ❗️ 캡슐화

  • 데이터와 기능을 하나의 느슨한 결합으로 묶는 것이다.
  • 속성과 기능을 정의하는 변수와 메서드를 클래스라는 캡슐에 넣어서 분류하는 것으로, 재사용이 쉽다는 장점이 있고,
  • 내부 데이터나 내부 구현이 외부로 노출되지 않도록 은닉화하는 기능을 가진다.

 ❗️ 추상화

  • 공통적인 속성이나 기능들을 묶어서 타입을 정의하는 것이다.
  • 불필요한 정보는 숨기고 중요한 정보면 표현함으로써 프로그램을 단순화 시킨다.

 ❗️ 상속

  • 클래스의 속성과 행위를 하위 클래스에 물려주거나,
  • 상위 클래스의 속성과 행위를 물려받는 것이다.
  • 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능이다.

 ❗️ 다형성   

  • 하나의 클래스 내부에 같은 이름의 행위를 여러개 정의하거나,
  • 상위 클래스의 행위를 하위 클래스에서 재정의하여 사용 할 수 있다.

 

⚡️ 객체 지향 프로그래밍의 장, 단점

 ❗️ 장점

  • 클래스 단위로 모듈화시켜 개발하기 때문에 업무 분담이 편리하다
  • 대규모 소프트웨어 개발에 적합하다
  • 클래스 단위로 수정이 가능하여 유지보수가 편리하다.
  • 클래스를 재사용하고나 상속을 통해 확장함으로써 코드 재사용이 용이하다.

 ❗️ 단점

  • 처리속도가 상대적으로 느리다.
  • 객체의 수가 많아지면서 용량이 커질 수 있다.
  • 설계시 많은 시간과 노력이 요구된다.