카테고리 없음

OPP(Object-Oriented programming)

jackjanghan 2025. 5. 29. 18:39

OPP(객체 지향 언어)

 

OPP란?

프로그래밍의 개념과 구조를 '객체(Object)' 중심으로 구성하는 프로그래밍 언어이다.

객체, **데이터와 그 데이터를 처리하는 기능(메서드)**를 하나로 묶은 단위

캡슐화 (Encapsulation)

  • 정의
    데이터(변수)와 메서드(기능)를 하나의 클래스로 묶고, 외부에서 내부 데이터에 직접 접근하지 못하게 막는 것. 보호된 인터페이스를 제공함. 
  • 왜 "캡슐"인가?
    객체의 내부(데이터)는 보호되고, 꺼내거나 변경하는 방법은 **인터페이스(메서드)**를 통해 통제된다. 
  • 객체 내부를 보호하는 방법
    변수 이름 앞에 밑줄 두 개(__)를 붙이면, 해당 변수는 클래스 외부에서 직접 접근할 수 없게 된다. 

 

추상화 (Abstraction)

  • 정의
    추상화란 복잡한 시스템에서 핵심적인 부분만 추려내어 보옂는 것이다. 사용자는 복잡한 내부 구조를 몰라도, 필요한 기능만 사용할 수 있도록 만든다. 
  • 왜 "추상화"인가? 
    복잡한 내용을 모두 드러내지 않고, 핵심적인 기능만 노출 시켜 사용성을 높인다. 
    마치 지도를 통해 복잡한 실제 도시를 단순하게 요약해 보여주듯이, 프로그램의 내부 복잡성을 감춘다. 

상속 (Inheritance)

  • 정의
    기존 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스가 물려받는 기능. 코드 재사용성과 유지보수성 향상
  • 왜 "상속"인가? 
    부모가 가진 재산이나 특성을 자식에게 넘겨주는 현실의 상속 개념과 유사하다. 
    기존 코드를 재사용하고, 새로운 기능만 추가하면 되므로 유지보수에도 효과적이다. 

다형성 (Polymorphism)

  • 정의
    같은 이름의 메서드가 객체에 따라 다르게 동작하는 것. 즉, 하나의 인터페이스로 여러 구현을 할 수 있다.
  • 왜 "다형성"인가?
    "형태가 다양하다"는 뜻으로, 동일한 명령이나 함수 호출이 다양한 방식으로 실행될 수 있는 성질을 말한다.