객체지향의 특징

hyxoo·2023년 3월 15일
0

코드스테이츠

목록 보기
18/37
post-thumbnail

📝 [Section2_Unit2] 객체 지향 프로그래밍 #2

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

OOP (객체 지향적 프로그래밍)는 데이터가 객체 내에 캡슐화되고 구성 요소 부분이 아닌 객체 자체가 운용되는 프로그래밍 방식이다.


📌 객체지향의 특징 4가지

✔️ 캡슐화(Encapsulation)

데이터(속성)과 기능(메서드)을 하나의 객체 안에 묶어 넣음으로써 결합도를 느슨하게 한다. 느슨한 결합이란 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합하는 것을 의미한다.
캡슐화에는 정보의 은닉화, 즉 내부 데이터나 구현 코드를 밖으로 보이지 않게 한다는 특징을 포함하고 있다.

✔️ 추상화(Abstraction)

추상화란 뒷편 시스템의 기술적 복잡함을 단순한 API 뒤에 숨김으로써 복잡한 시스템을 효율적으로 설계하고 구현할 수 있는 방법이다. 캡슐화가 데이터의 은닉에 초점이 맞춰져있다면, 추상화는 클래스를 이용할 때 필요하지 않은 메서드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 의의가 있다.

✔️ 상속(Inheritance)

상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것이다. 즉, 부모 클래스에서 정의된 속성과 메서드를 자식 클래스에서 사용할 수 있다.

📎 JavaScript에서의 상속프로토타입(prototype)을 기반으로 구현된다.

✔️ 다형성(Polymorphism)

다형성은 많은(poly) 형태(morph)를 의미한다. 즉, 다양한 형태를 가질 수 있다는 특징이다.
특정 기능을 선언(설계)부분과 구현(동작)부분으로 분리한 후 구현부분을 다양한 방법으로 만들어 선택해서 사용할 수 있게 함으로써 같은 클래스의 같은 메서드를 사용하더라도 사용하는 인스턴스에 따라 다르게 동작할 수 있다.


🔥 객체지향 프로그래밍의 장점

  • 코드 재사용성이 높아짐
  • 디버깅이 쉬움
  • 변화에 따른 영향을 최소화함
  • 쉬운 모델링
  • 보안성이 높아짐

💦 객체지향 프로그래밍의 단점

  • 실행 속도가 느려짐
  • 필요 메모리 양이 증가
profile
hello world!

0개의 댓글