카테고리 없음

객체지향 프로그래밍

그나 2026. 6. 18. 13:19

객체지향 프로그래밍에서 객체는 현실 세계의 사물이나 개념을 프로그램 안에 표현한 것입니다. 

객체는 단순히 데이터가 아니라 데이터와 기능 한마디로 상태와 행동을 묶은것입니다.

사람을 예로 들자면, 데이터로는 이름, 나이, 직업이 있고 행동으로는 걷기, 생각하기, 눕기 등이 있습니다.

여기서 객체는 이 모든걸 합친 사람이라고 할 수 있습니다.

 

객체지향 프로그래밍 사용 전에는 주로 절차지향 프로그래밍을 사용했습니다.

절차지향 프로그래밍에서는 데이터와 기능이 따로 있기 때문에 기능이 분리되어 관리가 어렵다는 점이 있습니다.

예를들어 위와 같은 코드에서는 동아리 이름과 1학년 학생 수가 흩어져 있기 때문에 동아리 정보가 수정되면 관련되어있는 학생 수도 찾아서 수정해야합니다.

그러나 위와 같이 하나의 객체로 묶으면 동아리와 관련된 데이터와 기능을 한곳에서 관리할 수 있습니다.

그러므로 관리가 더 쉬워집니다.

 

클래스는 객체를 만들기 위한 설계도입니다.

객체가 실제로 만들어진 대상이라면, 클래스는 그 객체가 어떤 데이터와 기능을 가질지 설정하는 설계도라고 볼 수 있습니다.

강아지를 예로 들었을 때, 데이터인 이름, 나이와 기능인, 짖기, 뛰기 같은 정보들을 미리 설정해놓는게 클래스입니다.

클래스는 위와 같이 설계도 안에 동아리 목록을 넣어서 사용할 수 있습니다.

 

객체지향에서 클래스는 속성과 매서드로 구분됩니다.

속성은 객체의 데이터를 말하고, 매서드는 객체의 기능을 말합니다.

객체지향에는 캡슐화, 상속, 다형성, 추상화와 같이 핵심 4가지 기능이 있습니다.

첫번째로 캡슐화는 데이터와 기능을 알약처럼 묶고, 외부에서 접근하지 못하도록 막는것입니다.

두번째로 상속은 기존의 클래스를 기반으로 새로운 클래스를 만드는 것입니다.

세번째로 다형성은 같은 이름의 기능이 상황에 따라 다르게 동작하는것입니다.

마지막으로, 추상화는 복잡한 내부는 숨기고 필요한 핵심 기능만 보여주는것 입니다.