자바 고급(JAVA)

객체지향 프로그래밍의 이해 - 객체지향 프로그래밍이란?

beginner-development 2026. 5. 6. 18:24

- 객체

속성(state)과 행동(behavior)을 가진 독립적인 단위(사람과 동물, 개념이나 사상까지도 프로그래밍에서는 객체로 표현될 수 있다.)

예) 레고 블록 - 각각은 독립적인 역할과 기능을 가진다(객체)

     레고로 만든 구조물 - 객체 간에 협력하여 하나의 프로그램이 완성된다.

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

'세계는 수많은 객체로 이루어져 있으며, 객체 간 상호작용을 통해 사건이 발생한다' 라는 철학을 기반으로 한다.

필요한 정보를 한 곳에 모아 상태와 행동을 가지는 객체를 만든다.→객체들이 서로 협력하며 하나의 프로그램을 완성한다.

※객체지향 프로그래밍의 중요 개념들

구분 설명
객체(Object) 상태(state)과 행동(behavior)을 가진 독립적인 존재
클래스(Class) 객체를 만들기 위한 설계도
메시지 객체 간의 상호작용 방식 (메서드 호출)
협력 여러 객체가 상호작용하며 프로그램을 구성

- 절차지향 VS 객체지향

-객체지향적 사고방식 : 기능 중심이 아닌 책임 중심의 사고

항목 절차지향(Procedural) 객체지향(OOP)
중심(초점) 순서와 함수 중심 객체 중심(역할과 책임)
재사용성 낮음 높음
유지보수 어렵고 반복이 많음 유연하고 모듈화 쉬움
예시 언어 C, 초기 Python Java, Kotlin, C#

절차지향 → 객체지향으로의 리팩토링 여습을 많이 해두자.

 

↓객체지향이 유리한 상황

상황 객체지향이 유리한 이유
기능이 계속 추가되는 프로젝트 설계 변경 없이 객체 추가만으로 확장 가능
여러 개발자가 동시에 개발 각자의 책임이 명확하여 충돌 없이 개발 가능
테스트 및 유지보수가 필요한 시스템 단위 객체 테스트가 가능하고, 코드 수정 범위가 제한됨
재사용 가능한 라이브러리나 프레임워크 객체 단위로 분리되어 다양한 상황에서 재활용 가능