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

발행: (2026년 2월 5일 오후 11:07 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

Class

예시: Car는 클래스이다. 서로 다른 자동차는 이름과 브랜드가 다를 수 있지만, 모두 네 개의 바퀴, 제한 속도, 연비와 같은 공통 속성을 가진다.

Object

객체는 객체‑지향 프로그래밍의 기본 요소로, 현실 세계의 실체를 나타낸다. 클래스에서 생성되며, 객체가 인스턴스화될 때 메모리가 할당된다. 모든 객체는 정체성, 상태, 행동을 가진다.

예를 들어, “Dog”는 현실 세계의 객체이며 색상, 품종, 짖음, 잠, 먹기와 같은 특성을 가진다.

Data Abstraction

예시: 자동차를 운전하는 사람은 가속 페달을 밟으면 속도가 증가하고 브레이크를 잡으면 차가 멈춘다는 것은 알지만, 내부 시스템이 어떻게 작동하는지는 모른다. 이를 추상화라고 한다.

Encapsulation

캡슐화는 데이터와 메서드를 하나의 단위로 결합하는 과정이다. 코드와 그 코드가 작동하는 데이터를 함께 묶는다. 캡슐화에서는 클래스 변수들이 다른 클래스에 숨겨지고, 클래스의 멤버 함수를 통해서만 접근할 수 있다. 데이터가 외부 접근으로부터 보호되기 때문에 캡슐화는 데이터 은닉이라고도 불린다.

Inheritance

상속은 객체‑지향 프로그래밍에서 중요한 개념이다. 한 클래스가 다른 클래스의 속성과 메서드를 사용할 수 있게 해준다. 즉, 새로운 클래스가 기존 코드를 재사용하여 모든 것을 다시 작성할 필요가 없다는 뜻이다. 결과적으로 상속은 중복을 줄이고 프로그램을 더 쉽게 유지·재사용할 수 있게 만든다.

Polymorphism

다형성은 “다양한 형태”를 의미한다. 객체‑지향 프로그래밍에서 이는 하나의 동작이나 메시지가 상황에 따라 다르게 동작할 수 있는 능력을 말한다. 예를 들어, 한 사람이 아버지, 남편, 직원 등 여러 역할을 가질 수 있으며, 상황에 따라 다른 행동을 보인다. 이 개념을 다형성이라고 한다.

0 조회
Back to Blog

관련 글

더 보기 »

Python과 메모리 관리, 파트 1: 객체

Python의 객체 모델 이해하기: ==, is, 그리고 id 들어본 적이 있을 겁니다: Python에서는 모든 것이 객체입니다—정수, 문자열, 심지어 여러분이 작성하는 함수까지....

클래스란 무엇인가

클래스는 데이터와 함수를 함께 그룹화하는 사용자 정의 구조입니다. 인스턴스 객체를 생성함으로써 이러한 멤버에 접근하고 사용할 수 있습니다. 그것은...

Java의 특징

Java 기능에 대한 표지 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.am...