객체 지향 프로그래밍 (OOP)

2023-12-22

  • FE
  • BE
  • General
  • CS

객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 실세계를 모델링하는 프로그래밍 패러다임으로, 객체들의 상호작용을 통해 소프트웨어를 구성합니다. 객체 지향의 핵심 특징은 추상화, 캡슐화, 상속, 다형성입니다.

1. 추상화 (Abstraction):

  • 정의: 추상화는 복잡한 실세계 문제를 단순화하는 과정입니다. 필요한 정보만을 추출하여 프로그램에서 사용하는 객체의 모델을 만드는 것입니다.
  • 예시: 자동차를 예로 들면, 실제 자동차에는 수많은 부품과 세부적인 기능이 있지만, 프로그래밍에서는 필요한 기능(운전, 가속, 정지 등)만을 가진 자동차 객체를 생성할 수 있습니다.

2. 캡슐화 (Encapsulation):

  • 정의: 캡슐화는 객체의 데이터(속성)와 그 데이터를 처리하는 함수(메소드)를 하나로 묶는 것입니다. 또한, 객체의 세부 구현 내용을 외부로부터 숨기고, 외부에는 필요한 기능만을 제공하는 것도 캡슐화의 일부입니다.
  • 예시: 계좌(Account) 객체가 있을 때, 계좌의 잔액(balance)은 외부에서 직접 접근할 수 없도록 하고, 입금(deposit)이나 출금(withdraw) 같은 메소드를 통해서만 잔액을 변경할 수 있도록 하는 것입니다.

3. 상속 (Inheritance):

  • 정의: 상속은 한 클래스가 다른 클래스의 속성과 메소드를 이어받는 것입니다. 이를 통해 코드의 재사용성을 높이고, 중복을 줄일 수 있습니다.
  • 예시: '동물' 클래스가 일반적인 속성(이름, 나이)과 기능(먹기, 자기)을 가지고 있고, '개' 클래스는 '동물' 클래스로부터 이러한 속성과 기능을 상속받아 추가적인 기능(짖기)을 가질 수 있습니다.

4. 다형성 (Polymorphism):

  • 정의: 다형성은 같은 이름의 메소드가 다른 클래스에서 다양한 방식으로 동작할 수 있음을 의미합니다. 이는 오버로딩(Overloading, 같은 이름의 메소드가 다른 매개변수를 가지는 경우)과 오버라이딩(Overriding, 상속받은 메소드를 하위 클래스에서 재정의하는 경우)을 통해 구현됩니다.
  • 예시: '동물' 클래스에 '소리내기' 메소드가 있을 때, '개' 클래스와 '고양이' 클래스는 '소리내기' 메소드를 각각 짖기와 야옹하기로 오버라이딩할 수 있습니다.

객체 지향 프로그래밍의 이러한 특징들은 소프트웨어의 유지보수와 확장을 용이하게 하며, 더욱 구조적이고 체계적인 프로그래밍을 가능하게 합니다.

Cypress 기본...

프로토 타입이란 i...