요리 레시피처럼 순서대로 실행
1. 물 끓이기
2. 면 넣기
3. 스프 넣기
4. 완성
요리사 객체 → 요리하는 역할
재료 객체 → 재료 정보 담당
주방도구 객체 → 도구 기능 담당
각자 역할이 있고, 서로 협력해서 요리 완성
객체지향 ↔ 절차지향
(OOP) (Procedural)
| 절차지향 | 객체지향 | |
|---|---|---|
| 중심 | 순서/기능 | 사물/역할 |
| 구성 | 함수 | 클래스 + 객체 |
| 대표 언어 | C, Pascal | 파이썬, 자바 |
| 비유 | 요리 레시피 | 요리사+재료+도구 |
# 기능 중심으로 순서대로 쭉 실행
name = "김철수"
age = 25
def greet(name, age):
print(f"안녕하세요 {name}입니다. 나이는 {age}살입니다.")
def birthday(age):
return age + 1
age = birthday(age)
greet(name, age)
# 사람이라는 객체가 기능을 가짐
class Person: # 설계도 (클래스)
def __init__(self, name, age):
self.name = name # 속성
self.age = age
def greet(self): # 기능 (메서드)
print(f"안녕하세요 {self.name}입니다.")
def birthday(self):
self.age += 1
# 객체 생성 (설계도로 실제 사람 만들기)
kim = Person("김철수", 25)
kim.greet() # 안녕하세요 김철수입니다.
kim.birthday() # 나이 +1
절차지향 = 혼자 처음부터 끝까지 다 하는 사람
"내가 설계하고, 내가 만들고, 내가 팔고..."
객체지향 = 회사 조직처럼 역할 분담
기획팀 → 개발팀 → 영업팀
각자 역할이 있고 서로 소통
1. 캡슐화 → 내부는 숨기고 필요한 것만 공개
(자동차 내부 몰라도 운전 가능)
2. 상속 → 부모 설계도를 자식이 물려받음
(동물 ← 개, 고양이)
3. 다형성 → 같은 명령, 다른 동작
(동물.소리내기 → 개는 멍멍, 고양이는 야옹)
4. 추상화 → 공통점만 뽑아서 단순하게
(모든 차는 핸들, 엑셀, 브레이크가 있다)
절차지향 = 순서대로 실행 (레시피)
객체지향 = 역할별로 나눠서 협력 (회사 조직)파이썬은 객체지향 언어라서
클래스로 설계도를 만들고, 객체로 실제 사용하는 방식이에요! 🎯