Guidelines

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄λž€?

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(Object-Oriented Programming, OOP)은 ν˜„μ‹€ μ„Έκ³„μ˜ 사물과 좔상적 κ°œλ…μ„ ν”„λ‘œκ·Έλž¨ μ•ˆμ—μ„œ 객체(Object)둜 ν‘œν˜„ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° λ°©λ²•λ‘ μž…λ‹ˆλ‹€.

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ€ ν”„λ‘œκ·Έλž¨μ„ 속성과 λ™μž‘μ„ 가진 λ…λ¦½λœ 객체둜 κ΅¬μ„±ν•˜κ³ , 이 객체듀 κ°„μ˜ μƒν˜Έμž‘μš©μ„ 톡해 ν”„λ‘œκ·Έλž¨μ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€.

νŒŒμ΄μ¬μ€ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ μ§€μ›ν•˜λŠ” μ–Έμ–΄λ‘œ, 클래슀(Class)와 객체(Object)λΌλŠ” κ°œλ…μ„ μ‚¬μš©ν•΄ ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•©λ‹ˆλ‹€.

이번 μˆ˜μ—…μ—μ„œλŠ” 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 기초 κ°œλ…μ„ ν•™μŠ΅ν•˜κ³ , νŒŒμ΄μ¬μ—μ„œ 이λ₯Ό μ–΄λ–»κ²Œ ν™œμš©ν•˜λŠ”μ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.


ν΄λž˜μŠ€μ™€ 객체, 그게 λ­˜κΉŒμš”?

ν˜„μ‹€ 세계λ₯Ό ν”„λ‘œκ·Έλž¨μœΌλ‘œ ν‘œν˜„ν•˜κΈ°

μš°λ¦¬κ°€ 맀일 μ‚¬μš©ν•˜λŠ” μžλ™μ°¨, μ±…, 컴퓨터와 같은 사물듀은 각기 λ‹€λ₯Έ νŠΉμ§•κ³Ό κΈ°λŠ₯을 가지고 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž˜λ°μ—μ„œλ„ 이와 같은 사물을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ ν΄λž˜μŠ€μ™€ κ°μ²΄λΌλŠ” κ°œλ…μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.


클래슀

μžλ™μ°¨λ‚˜ μ±…κ³Ό 같은 μ‚¬λ¬Όμ˜ 섀계도와 같은 역할을 ν•©λ‹ˆλ‹€.

이 μ„€κ³„λ„λŠ” ν•΄λ‹Ή 사물이 μ–΄λ–€ νŠΉμ§•(속성)을 κ°–κ³ , μ–΄λ–€ κΈ°λŠ₯(λ©”μ„œλ“œ)을 μˆ˜ν–‰ν•˜λŠ”μ§€λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.


객체

클래슀λ₯Ό λ°”νƒ•μœΌλ‘œ λ§Œλ“€μ–΄μ§„ μ‹€μ œ μ‚¬λ¬Όμž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ μžλ™μ°¨ 클래슀(섀계도)둜 λ§Œλ“€μ–΄μ§„ κ°μ²΄λŠ” μ‹€μ œ μžλ™μ°¨λ₯Ό λ‚˜νƒ€λ‚΄λ©°, μžλ™μ°¨μ˜ λΈŒλžœλ“œ, λͺ¨λΈ, 연식 λ“±μ˜ 속성을 κ°–μŠ΅λ‹ˆλ‹€.


객체의 섀계도, 클래슀

ν΄λž˜μŠ€λŠ” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μƒˆλ‘œμš΄ 데이터 νƒ€μž…μ„ μ •μ˜ν•˜λ©°, 클래슀λ₯Ό 톡해 μƒμ„±λ˜λŠ” 객체의 속성과 λ™μž‘μ„ μ •μ˜ν•©λ‹ˆλ‹€.

μ•„λž˜ μ½”λ“œλŠ” μžλ™μ°¨λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°„λ‹¨ν•œ 클래슀λ₯Ό μ •μ˜ν•œ μ˜ˆμ‹œμž…λ‹ˆλ‹€.

μžλ™μ°¨ 클래슀 μ •μ˜ν•˜κΈ°
class Car: def __init__(self, brand, model, year): # μžλ™μ°¨μ˜ λΈŒλžœλ“œ, λͺ¨λΈ, 연식 속성 μ •μ˜ self.brand = brand self.model = model self.year = year # μžλ™μ°¨μ˜ 엔진을 μΌœλŠ” λ©”μ„œλ“œ def start_engine(self): print(f"{self.brand} {self.model}의 엔진 μ‹œλ™") # μžλ™μ°¨μ˜ 엔진을 λ„λŠ” λ©”μ„œλ“œ def stop_engine(self): print(f"{self.brand} {self.model}의 엔진 꺼짐")

μœ„ μ½”λ“œμ—μ„œ Car ν΄λž˜μŠ€λŠ” μžλ™μ°¨μ˜ λΈŒλžœλ“œ, λͺ¨λΈ, 연도 λ“±μ˜ 속성을 μ •μ˜ν•˜κ³ , 엔진을 μΌœκ±°λ‚˜ λ„λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

ν΄λž˜μŠ€μ—μ„œ __init__ λ©”μ„œλ“œλŠ” 객체가 생성될 λ•Œ μžλ™μœΌλ‘œ 호좜되며, 객체의 속성을 μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.

selfλŠ” 클래슀의 λ©”μ„œλ“œμ—μ„œ μ‚¬μš©λ˜λŠ” 첫 번째 인자둜, ν•΄λ‹Ή λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œ 객체 μžμ‹ μ„ κ°€λ¦¬ν‚΅λ‹ˆλ‹€.


객체: 섀계도λ₯Ό λ°”νƒ•μœΌλ‘œ λ§Œλ“€μ–΄μ§„ μ‹€μ œ 사물

이제 μ •μ˜ν•œ 클래슀의 섀계도λ₯Ό λ°”νƒ•μœΌλ‘œ 객체λ₯Ό λ§Œλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

객체λ₯Ό λ§Œλ“œλŠ” 것은 μžλ™μ°¨ 섀계도λ₯Ό λ°”νƒ•μœΌλ‘œ μ‹€μ œ 'μžλ™μ°¨'λ₯Ό λ§Œλ“œλŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” 클래슀λ₯Ό λ°”νƒ•μœΌλ‘œ 객체λ₯Ό μƒμ„±ν•˜κ³ , 이 객체λ₯Ό 톡해 ν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•œ 속성과 λ™μž‘μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

객체 μƒμ„±ν•˜κΈ°
class Car: def __init__(self, brand, model, year): self.brand = brand self.model = model self.year = year def start_engine(self): print(f"{self.brand} {self.model}의 엔진 μ‹œλ™") def stop_engine(self): print(f"{self.brand} {self.model}의 엔진 꺼짐") # Car 클래슀의 섀계도λ₯Ό λ°”νƒ•μœΌλ‘œ # λΈŒλžœλ“œλ‘œ 'λΈŒλžœλ“œA', λͺ¨λΈλ‘œ 'λͺ¨λΈB', μ—°μ‹μœΌλ‘œ 2024인 # my_car 객체λ₯Ό λ§Œλ“¦ my_car = Car("λΈŒλžœλ“œA", "λͺ¨λΈB", 2024) # 좜λ ₯: λΈŒλžœλ“œA λͺ¨λΈB의 엔진 μ‹œλ™ my_car.start_engine() # 좜λ ₯: λΈŒλžœλ“œA λͺ¨λΈB의 엔진 꺼짐 my_car.stop_engine() # μžλ™μ°¨μ˜ 연식 좜λ ₯ print(my_car.year) # 2024 좜λ ₯

μ—¬κΈ°μ„œ my_carλŠ” Car ν΄λž˜μŠ€μ—μ„œ λ§Œλ“€μ–΄μ§„ ν•˜λ‚˜μ˜ 객체둜 'λΈŒλžœλ“œA', 'λͺ¨λΈB', 연식 2024λ₯Ό κ°–λŠ” μžλ™μ°¨λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

이 κ°μ²΄λŠ” start_engineκ³Ό stop_engine λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€μ œλ‘œ λ™μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ 객체의 속성인 yearλ₯Ό my_car.year와 같이 μ ‘κ·Όν•΄ 값을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ μ‚¬μš©ν•˜λ©΄ 무엇이 μ’‹μ„κΉŒμš”?

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ μ‚¬μš©ν•˜λ©΄ μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ΄ κ°œμ„ ν•˜κ³ , ν”„λ‘œκ·Έλž¨μ˜ 논리적 λͺ¨λ“ˆν™”κ°€ μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ μžλ™μ°¨ 클래슀λ₯Ό μ •μ˜ν•˜λ©΄, 이 클래슀λ₯Ό λ°”νƒ•μœΌλ‘œ μ—¬λŸ¬ μ’…λ₯˜μ˜ μžλ™μ°¨ 객체λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

각 κ°μ²΄λŠ” μžλ™μ°¨μ˜ λΈŒλžœλ“œ, λͺ¨λΈ, 연식 λ“±μ˜ 속성을 κ°–κ³  있으며, 이 객체듀은 각자의 독립적인 λ™μž‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

Mission
0 / 1

ν΄λž˜μŠ€λŠ” 객체의 섀계도와 κ°™λ‹€.

O
X

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result