[면접준비] 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? (24/04/05)

2024. 4. 5. 09:17공부/면접 준비

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

소프트웨어 개발 프로그래밍 패러다임중 하나로, 현실 세계의 사물을 모델링하여 소프트웨어를 개발하는 방법이다.

 

핵심 개념

클래스와 객체

  • 클래스 : 객체를 생성하기 위한 설계도, 템플릿.  
  • 객체 : 클래스의 인스턴스. 데이터와 데이터를 처리하기 위한 메서드를 포함한다.
  1. 추상화
    • 여러 객체들의 공통적인 특징(속성과 기능)을 추출하여 정의하는것.
    • 클래스 정의 = 추상화.
  2. 상속
    • 상위 클래스의 특성과 메서드를 하위 클래스가 상속받는다.
    • 코드의 재사용성을 높일 수 있다.
  3. 다형성
    • 같은 이름의 메서드가 다양한 형태로 동작할 수 있는 능력을 가리킴.
    • 상위 클래스에 정의된 메서드가 하위 클래스에서 다르게 구현될 수 있음.
    • 오버라이딩 : 하위 클래스가 상위 클래스에서 상속받은 메서드를 재창조해서 사용하는 것
    • 오버로딩 : 하나의 클래스 안에서 같은 이름의 메서드가 다른 용도로 사용되며, 결과물도 다르게 구현하는 것.
  4. 캡슐화
    • 객체의 데이터와 메서드를 하나로 묶는 개념. 
    • 외부에서의 접근을 제어함으로서 데이터를 보호하고 은닉.(ex:readonly) 

 

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

  1. 코드 재사용성
    • 상송을 통해 프로그래밍시 코드의 재사용률을 높일 수 있다.
    • 개발 시간의 단축과 높은 유지보수성.
  2. 유연성과 확장성
    • 다형성을 통한 유연하고 확장 가능한 코드 작성.
    • 새로운 기능을 쉽게 추가 가능.
  3. 유지 보수성
    • 캡슐화를 통해 데이터를 보호.
    • 변경이 용이한 모듈화된 구조로 인한 높은 유지보수성.
  4. 대규모 프로젝트 관
    • 각 객체들이 독립적으로 작동하며, 이는 프로젝트의 복잡성을 줄여준다.

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

  1. 느린 실행 속도
  2. 큰 용량의 프로그램
  3. 설계에 많은 시간 소요

 

답변

객체 지향 프로그래밍(OOP)은 클래스 및 객체를 기반으로, 추상화, 상속, 다형성 및 캡슐화와 같은 핵심 개념을 통해 코드 재사용성, 유연성 및 유지 관리성을 향상시키는 소프트웨어 개발의 패러다임입니다.