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

발행: (2026년 2월 5일 오후 11:07 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Class

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

Object

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

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

Data Abstraction

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

Encapsulation

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

Inheritance

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

Polymorphism

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

Back to Blog

관련 글

더 보기 »

SOLID & OOP 디자인 비즈니스 케이스

객체지향 프로그래밍(OOP) 설계 원칙은 유용한가, 아니면 불필요한 복잡성만을 추가하는가? OOP 설계 원칙 Encapsulation Encapsulation은 데이터를 메타...

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...

클래스와 상속

!Lahari Tennetihttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads...

JavaScript 객체와 메서드

객체에서 메서드란 무엇인가? 메서드는 객체 내부에 존재하는 함수이다. 객체를 도구 상자에 비유하면, 메서드는 그 안에 들어 있는 도구와 같다. javasc...