본문 바로가기
728x90

전체 글235

[파이썬][중급] Chapter08. contextlib와 with문 커스터마이징 파이썬의 with문은 자원 관리를 보다 명확하고 안전하게 처리할 수 있도록 도와주는 문법입니다. 파일 열기와 같이 자원을 열고 닫는 작업에 자주 사용되며, contextlib 모듈을 활용하면 이러한 with문의 동작을 커스터마이징할 수 있습니다.● with문의 기본 구조with문은 컨텍스트 매니저(Context Manager)를 기반으로 동작하며, __enter__와 __exit__ 메서드를 구현한 객체를 통해 자원 할당과 해제를 자동으로 수행합니다.with open("test.txt", "r") as f: data = f.read()이 코드는 파일을 열고 읽은 뒤 자동으로 파일을 닫습니다. 수동으로 close()를 호출할 필요가 없습니다.● 사용자 정의 컨텍스트 매니저클래스에 __enter__와 .. 2025. 5. 18.
[파이썬][중급] Chapter07. 예외 처리 패턴과 리팩토링 예외 처리는 프로그램의 안정성과 신뢰성을 높이기 위한 핵심 요소입니다. 단순히 try-except 블록을 사용하는 것에서 더 나아가, 예외 처리 패턴을 효과적으로 적용하고, 코드 중복을 줄이는 리팩토링 기법을 이해하면 더욱 견고한 코드를 작성할 수 있습니다.● 기본적인 예외 처리 구조파이썬의 예외 처리는 try, except, else, finally 블록을 조합하여 사용할 수 있습니다.try: result = 10 / xexcept ZeroDivisionError: print("0으로 나눌 수 없습니다.")else: print("정상적으로 실행되었습니다.")finally: print("항상 실행되는 블록입니다.")else 블록은 예외가 발생하지 않았을 때만 실행되며, finally.. 2025. 5. 18.
[파이썬][중급] Chapter06. 사용자 정의 예외 클래스 파이썬에서는 내장 예외 클래스만으로도 대부분의 오류 처리가 가능하지만, 보다 구체적인 상황을 처리하거나 명확한 예외 메시지를 제공하고 싶을 때는 사용자 정의 예외 클래스를 만드는 것이 좋습니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다.● 사용자 정의 예외란?사용자가 직접 예외 클래스를 정의하여 특정 조건에서만 발생하도록 만드는 것입니다. 보통 Exception 또는 ValueError와 같은 기존 예외 클래스를 상속받아 구현합니다.class NegativeNumberError(Exception): pass이제 raise NegativeNumberError("음수는 허용되지 않습니다.")처럼 직접 예외를 발생시킬 수 있습니다.● 예외 클래스에 메시지 추가예외 클래스에 메시지를 전달하.. 2025. 5. 18.
[파이썬][중급] Chapter05. 매직 메서드(__str__, __eq__, __lt__ 등) 파이썬의 클래스는 특별한 이름을 가진 메서드들을 통해 다양한 내장 기능을 커스터마이징할 수 있습니다. 이러한 메서드를 매직 메서드(Magic Method) 또는 던더 메서드(Dunder Method, Double Underscore)라고 부르며, 객체의 표현, 연산자 동작, 비교 동작 등을 제어할 수 있습니다.● __str__ 메서드객체를 print()하거나 str()로 문자열 변환할 때 호출되는 메서드입니다. 객체의 사람이 읽기 쉬운 표현을 정의할 수 있습니다.class User: def __init__(self, name): self.name = name def __str__(self): return f"User: {self.name}"u = User("Alice".. 2025. 5. 18.
[파이썬][중급] Chapter04. 다중 상속과 MRO 이해 파이썬은 다중 상속(Multiple Inheritance)을 지원하는 언어로, 하나의 클래스가 둘 이상의 부모 클래스를 상속받을 수 있습니다. 다중 상속은 유연한 설계가 가능하게 하지만, 메서드 호출 순서를 명확히 이해하지 않으면 예기치 않은 동작을 유발할 수 있습니다.● 다중 상속이란?하나의 클래스가 여러 클래스로부터 속성과 메서드를 상속받는 것을 말합니다. 파이썬에서는 클래스 정의 시 괄호 안에 여러 부모 클래스를 나열하면 됩니다.class A: def greet(self): print("Hello from A")class B: def greet(self): print("Hello from B")class C(A, B): pass위의 예제에서 C 클래스는 A와.. 2025. 5. 18.
[파이썬][중급] Chapter03. 추상 클래스와 ABC 모듈 파이썬은 객체지향 언어로서 추상 클래스(Abstract Class)를 정의하고 사용할 수 있습니다. 추상 클래스는 상속을 통해 구체적인 기능을 구현하게 만드는 '설계도'의 역할을 합니다. 파이썬에서는 abc 모듈을 통해 이를 지원합니다.● 추상 클래스란?추상 클래스는 하나 이상의 추상 메서드(구현되지 않은 메서드)를 포함하는 클래스입니다. 직접 인스턴스를 생성할 수 없으며, 이를 상속받은 하위 클래스에서 반드시 구현해야 합니다.파이썬에서는 ABC 클래스를 상속하고 @abstractmethod 데코레이터를 통해 추상 메서드를 지정합니다.from abc import ABC, abstractmethodclass Animal(ABC): @abstractmethod def sound(self): .. 2025. 5. 18.
728x90