Home / AI / AI 용어사전 / 객체(Object) — AI 코딩의 핵심 단위, 데이터와 기능을 묶는 방법
TERM
객체(Object) — AI 코딩의 핵심 단위, 데이터와 기능을 묶는 방법
On this page
코드로 현실 세계를 모델링할 때, 개별 개체를 표현하는 기본 단위가 객체(Object)다. 자동차를 표현한다면 색상·속도는 데이터(속성)이고, 달리기·멈추기는 기능(메서드)이다. 객체는 이 둘을 하나로 묶은 캡슐이다.
정의
객체(Object)는 데이터(속성, Attribute)와 그 데이터를 다루는 기능(메서드, Method)을 하나의 단위로 묶은 프로그래밍 개념이다. 객체지향 프로그래밍(OOP, Object-Oriented Programming)의 핵심 단위이며, 클래스(class)를 설계도로 삼아 실제 객체(인스턴스, Instance)를 생성한다. Python, JavaScript, Java, TypeScript 모두 객체를 기반으로 코드를 구성한다.
클래스와 인스턴스
클래스(Class)는 객체의 설계도다. 클래스에서 실제 데이터를 담은 객체를 만드는 과정을 인스턴스화(Instantiation)라고 한다.
class AIModel: # 클래스 = 설계도
def __init__(self, name, version):
self.name = name # 속성
self.version = version
def describe(self): # 메서드
return f"{self.name} v{self.version}"
claude = AIModel("Claude", "4.7") # 인스턴스 = 실제 객체
gemini = AIModel("Gemini", "2.5")
print(claude.describe()) # Claude v4.7
print(gemini.describe()) # Gemini v2.5claude와 gemini는 동일한 AIModel 클래스로 만든 서로 다른 객체다. 속성 값만 다를 뿐 구조는 공유한다.
객체지향의 네 가지 원칙
| 원칙 | 의미 | |---|---| | 캡슐화(Encapsulation) | 내부 구현을 숨기고 외부에는 메서드만 공개 | | 상속(Inheritance) | 부모 클래스의 속성·메서드를 자식 클래스가 물려받음 | | 다형성(Polymorphism) | 같은 메서드 이름으로 다른 동작 구현 가능 | | 추상화(Abstraction) | 복잡한 내부를 단순한 인터페이스(interface)로 노출 |
AI 개발에서 객체의 활용
AI 파이프라인에서 객체는 모델, 데이터셋, 학습 설정을 각각 독립된 단위로 관리하는 데 쓰인다. LangChain 라이브러리에서 ChatOpenAI, ChatAnthropic은 모두 같은 인터페이스를 가진 서로 다른 객체다. 객체를 교체해도 파이프라인 나머지 코드가 동일하게 동작한다.
JSON 역시 객체 형태를 채택한다. {"model": "claude-sonnet-4-6", "temperature": 0.7} 은 속성을 담은 객체 리터럴이다. Anthropic API 요청·응답 모두 JSON 객체 구조로 주고받는다.
Python의 dict, JavaScript의 {} 리터럴도 객체의 일종으로, 속성 접근(obj.key 또는 obj["key"]) 방식이 클래스 인스턴스와 동일하다.
관련 용어
- class — 객체를 만드는 설계도
- interface — 객체가 외부에 노출하는 계약
- inheritance — 클래스 간 속성·메서드 상속
- json — 자바스크립트 객체 표기법, 데이터 교환 형식
- encapsulation — 내부 상태를 보호하고 메서드로만 접근하는 원칙