Python/Class 12

[객체 지향 프로그래밍 4개의 기둥] 상속화

**상속(Inheritance)**은 기존 클래스(부모 클래스)의 기능을 물려받아 새로운 클래스(자식 클래스)를 만드는 개념입니다.이를 통해 코드를 재사용하고 유지보수를 쉽게 할 수 있습니다. 또한, **super()**를 사용하면 부모 클래스의 메서드를 자식 클래스에서 호출할 수 있습니다. 상속의 기본 개념✔ 부모 클래스(Parent Class) → 공통 기능을 정의하는 클래스✔ 자식 클래스(Child Class) → 부모 클래스를 상속받아 기능을 확장하는 클래스 예제: 기본적인 상속 구현class Animal: def speak(self): return "소리를 낸다"class Dog(Animal): # Animal 클래스를 상속받음 def speak(self): ..

Python/Class 2025.03.20

[객체 지향 프로그래밍 4개의 기둥] 추상화와 파이썬 타입 힌팅 예제

파이썬은 타입을 미리 지정하지 않아도 되는 동적 타입 언어입니다. 하지만 타입을 명확하게 알 수 없으면 코드의 가독성이 떨어지고, 실수로 잘못된 타입을 사용할 가능성이 높아집니다. 이런 문제를 해결하기 위해 파이썬 3.5부터 타입 힌팅(Type Hinting) 기능이 추가되었습니다. 이번 글에서는 타입 힌팅의 다양한 활용 방법을 예제와 함께 살펴보겠습니다.   기본적인 타입 힌팅def add(x: int, y: int) -> int: return x + y 설명x: int, y: int → x, y는 정수(int) 타입-> int → 반환값도 정수(int) 타입✔ 가독성이 좋아지고, IDE에서 자동으로 타입 오류를 감지할 수 있습니다.   컬렉션(Collection) 타입 힌팅 리스트(List), ..

Python/Class 2025.03.20

[객체 지향 프로그래밍 4개의 기둥] 추상화와 파이썬 타입 힌팅(Type Hinting)

파이썬은 변수를 선언할 때 타입을 미리 지정하지 않아도 되는 동적 타입 언어입니다. 이 덕분에 코드를 간결하게 작성할 수 있지만, 반대로 어떤 타입을 사용해야 하는지 명확하지 않아 혼란을 줄 수도 있습니다. 이러한 문제를 보완하기 위해 파이썬 3.5부터 타입 힌팅(Type Hinting) 기능이 추가되었습니다. 이번 글에서는 타입 힌팅이 무엇인지, 어떻게 사용하는지 간단한 예제를 통해 알아보겠습니다.  타입 힌팅이란? 타입 힌팅(Type Hinting)은 변수나 함수의 타입을 명시적으로 표시하는 기능입니다. 이를 통해 코드를 읽고 사용할 때 타입을 명확하게 파악할 수 있으며, IDE에서 타입 오류를 미리 감지할 수 있습니다.  타입 힌팅 적용 전 코드 아래는 타입 힌팅을 적용하지 않은 BankAccoun..

Python/Class 2025.03.20

[객체 지향 프로그래밍 4개의 기둥] 추상화와 문서화 스타일

파이썬에서 코드를 문서화(docstring) 하는 것은 매우 중요합니다. 특히, 협업 시 함수나 클래스의 동작을 쉽게 이해할 수 있도록 일관된 스타일의 문서화가 필요합니다. 여러 포맷이 있지만, 이번 글에서는 Google Docstring 스타일을 사용하여 함수 문서화를 작성하는 방법을 살펴보겠습니다. Google Docstring 스타일이란?함수나 클래스의 동작을 명확하고 간결하게 문서화하는 방식가독성이 높고 협업에 유용한 포맷 📝 기본 구조 def 함수명(파라미터): """설명 Parameters: 파라미터명 (자료형): 설명 Returns: 반환값 자료형: 설명 """  ✨ 예제: 추천 영상 찾기 함수def find_suggestion_vide..

Python/Class 2025.03.20

🧐 스페셜 메소드(Special Method)란?

**스페셜 메소드(Special Method)**는 파이썬에서 특정 상황에서 자동으로 호출되는 특별한 메소드입니다. 우리가 +, -, *, / 같은 연산자나 ()로 함수를 호출할 때, 실제로는 특정 메소드가 실행되고 있는 것입니다. 쉽게 말해, **"우리가 자주 사용하는 기능을 파이썬이 내부적으로 실행하도록 미리 만들어 놓은 메소드"**라고 생각하면 됩니다.  스페셜 메소드의 역할 자동 실행 : 특정 동작을 수행할 때 우리가 직접 호출하지 않아도 실행됨연산자 재정의 : +, -, *, / 같은 연산자를 직접 정의할 수 있음객체 표현 방식 변경 : print()나 str()을 사용할 때 출력되는 형식을 조정 가능  예제: 스페셜 메소드가 없으면? 예를 들어, 우리가 만든 Number 클래스를 사용해 두 숫..

Python/Class 2025.03.20

파이썬은 순수 객체 지향 언어! 🐍✨

int1 = 5int2 = 10string1 = "우승자: "string2 = "강영훈"print(int1 + int2) # 15print(string1 + string2) # 우승자: 강영훈 파이썬을 사용하다 보면 다양한 기능을 객체를 통해 만들고 사용하게 됩니다. 사실 파이썬은 모든 것이 객체로 이루어진 순수 객체 지향 언어입니다. 정수, 문자열, 리스트, 딕셔너리, 함수, 모듈까지 모두 객체이며, 특정 클래스의 인스턴스로 만들어져 있습니다.  파이썬의 모든 것은 객체다!  우리가 평소에 사용하던 기본적인 요소들도 모두 객체인지 확인해 볼까요?import randomdef print_hello(): print("안녕하세요!")print(type(2)) # pr..

Python/Class 2025.03.20

인스턴스 메소드 vs 클래스 메소드

Python에서 클래스 메소드와 인스턴스 메소드는 어떤 차이가 있을까요? 특히, 클래스 변수와 인스턴스 변수를 다룰 때 어떻게 메소드를 정의해야 할까요?   클래스 메소드와 인스턴스 메소드의 차이 class User: count = 0 def __init__(self, name, email, password): self.name = name self.email = email self.password = password User.count += 1 def say_hello(self): print(f"안녕하세요! 저는 {self.name}입니다!") def login(self, email, password): i..

Python/Class 2025.03.20

[객체 지향 프로그래밍 4개의 기둥] 추상화를 통해 다형성을 구현하는 방법

객체지향 프로그래밍(OOP)에서 **추상화(Abstraction)와 다형성(Polymorphism)**은 중요한 개념입니다.특히, Python에서는 추상 클래스를 활용하여 다형성을 효과적으로 구현할 수 있습니다.이번 글에서는 추상화를 적용하여 다형성을 구현하는 방법을 알아보겠습니다.  추상화(Abstraction)란?추상화는 **"공통적인 인터페이스(틀)를 제공하고, 세부 구현은 나중에 하도록 하는 개념"**입니다.즉, 불필요한 세부 사항을 감추고, 꼭 필요한 기능만 정의하는 것입니다.Python에서는 ABC(추상 클래스)와 @abstractmethod(추상 메서드)를 사용하여 구현할 수 있습니다. 다형성(Polymorphism)이란?다형성은 **"같은 이름의 메서드가 여러 클래스에서 다르게 동작하는 것..

Python/Class 2025.03.18

[객체 지향 프로그래밍 4개의 기둥] 다형성

**다형성(Polymorphism)**은 같은 이름의 메서드가 여러 개의 다른 동작을 할 수 있도록 만드는 개념입니다.즉, "같은 인터페이스(메서드명)"를 유지하면서, 서로 다른 방식으로 구현이 가능하게 하는 것입니다.Python에서는 메서드 오버라이딩(Method Overriding)과 인터페이스(Abstract Class)를 활용하여 다형성을 구현할 수 있습니다. 다형성이 적용된 extract_email_info() 메서드의 의미**"extract_email_info() 메서드를 다른 방식으로 확장 가능하게 함"**이라는 말은 이 메서드를 다양한 방식으로 구현할 수 있도록 만들었다는 의미입니다. 즉, extract_email_info()의 기본 구조를 유지하면서도 다른 클래스에서 새로운 방식으로 구현..

Python/Class 2025.03.18

[객체 지향 프로그래밍 4개의 기둥] 캡슐화 그리고 프라이빗 메서드와 은닉화

"Python에서 _(언더스코어)를 붙이면 프라이빗(Private)인가요?""외부에서 접근할 수 없나요?""진짜 숨기는 방법은 없을까요?" Python을 사용하다 보면 클래스 내부에서만 사용하고 싶은 메서드나 변수가 생기기 마련입니다.이럴 때 "프라이빗(private)" 개념을 떠올리지만, 사실 Python에서는 완전한 은닉화(private)는 존재하지 않습니다.이번 글에서는 Python에서 프라이빗 메서드를 정의하는 방법과 진짜 숨기는 방법, 그리고 언더스코어(_, __)의 의미를 정리해 보겠습니다. Python에서 _(언더스코어)의 의미Python에서는 "완전한 private(비공개)" 메서드가 존재하지 않습니다.하지만, **관례(Convention)**적으로 _(언더스코어)를 사용하여 "이건 내부에..

Python/Class 2025.03.18