Oop
title: 2026-02-16 author: 강병호 (이름) date: 2026-02-16 (날짜) category: TIL/강병호/2026/02 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —
객체 지향 프로그래밍(OOP, Object-Oriented Programming) 은 상태(필드)와 행위(메서드)를 가진 객체를 중심으로 프로그램을 설계하는 프로그래밍 패러다임입니다. 객체에 역할과 책임을 부여하고, 이 객체들이 서로 협력하는 방식으로 프로그램을 구성합니다.
캡슐화(Encapsulation): 객체의 상태와 행위를 하나의 단위로 묶는 것을 말합니다. 내부 구현은 숨기고 외부에서 접근할 수 있는 인터페이스만 제공함으로써 객체의 무결성을 보호하고 코드의 유지보수성을 높일 수 있습니다.
추상화(Abstraction): 세부 사항을 감추고 핵심적인 기능만 간추려내는 것을 말합니다. 객체의 공통적인 특징은 추출하여 인터페이스 또는 추상 클래스로 정의하고, 구체적인 세부 사항은 구현체에게 위임함으로써 객체의 핵심 기능에만 집중할 수 있습니다.
다형성(Polymorphism): 하나의 인터페이스가 여러 형태로 동작할 수 있는 것을 말합니다. 오버로딩과 오버라이딩을 사용하여 같은 메서드명이더라도 객체에 따라 다르게 동작하도록 할 수 있습니다.
상속(Inheritance): 상위 클래스의 특징을 하위 클래스가 물려받아 확장하는 것을 말합니다. 기존 기능을 수정하지 않고 새로운 기능을 추가할 수 있어 확장성이 뛰어나고, 중복을 제거하여 코드의 재사용성을 높일 수 있습니다.