Backend/Java & Spring

객체 지향

khu2172 2025. 6. 22. 01:43

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

객체 지향 프로그래밍(Object-Oriented Programming)은 현실 세계의 사물을 프로그램에 반영하는 방식으로, 프로그램을 객체 단위로 나누어 각 객체의 역할과 책임, 상호작용을 중심으로 구현하는 프로그래밍 패러다임이다.

 

즉, 프로그램에서 필요한 요소들을 객체로 파악하고, 이 객체들 간의 협력을 통해 전체 기능을 완성하는 방식이다.


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

객체 지향 프로그래밍은 다음의 4가지 주요 특징을 가지고 있다:

  1. 추상화 (Abstraction)
    • 공통된 속성과 동작을 추출하여 객체의 본질을 표현하는 것
    • 불필요한 세부 사항은 감추고 핵심적인 요소에 집중할 수 있음
  2. 캡슐화 (Encapsulation)
    • 데이터와 기능(메서드)을 하나로 묶고, 외부에는 꼭 필요한 정보만 공개
    • 객체 내부는 높은 응집도, 외부와는 낮은 결합도를 유지
  3. 상속 (Inheritance)
    • 기존 클래스(부모)의 속성과 기능을 새로운 클래스(자식)가 물려받아 재사용 가능
    • 코드의 재사용성확장성 향상
  4. 다형성 (Polymorphism)
    • 같은 이름의 메서드가 객체에 따라 다르게 동작하도록 구현
    • 예: 오버라이딩, 오버로딩

객체 지향의 장점

  • 코드 재사용성
    잘 만든 객체는 다양한 상황에서 재활용할 수 있어 생산성이 높아진다.
  • 유지보수 용이
    기능이 객체 단위로 잘 나뉘어 있어 수정이나 확장이 간편하다.
  • 설계 중심 개발 가능
    객체 간의 관계를 명확하게 정의함으로써 구조적인 개발이 가능하다.

객체 지향의 단점

  • 성능 이슈
    절차지향 방식보다 다소 느릴 수 있다(객체 간 메시지 전달 등으로 인해).
  • 초기 설계 부담
    객체 구조와 책임을 명확히 나누는 데 시간과 노력이 많이 든다.

정리

항목 설명
정의 객체 단위로 프로그램을 구성하는 개발 방법
핵심 특징 추상화, 캡슐화, 상속, 다형성
장점 코드 재사용, 유지보수 용이, 확장성
단점 느린 성능, 높은 설계 비용
 

객체 지향은 단순한 기술이 아니라 사고방식이다.


복잡한 시스템을 설계할 때 큰 힘을 발휘하므로, 원리를 잘 이해하고 적용하는 것이 중요하다.