본문 바로가기

분류 전체보기

(97)
[Python] backoff 재시도 모듈 사용법 Python Backoff 모듈은 재시도 (retries)를 수행하여 일시적인 오류 (transient errors)를 처리하는 데 사용할 수 있는 파이썬 라이브러리입니다. 이 모듈을 사용하면 일시적인 오류로 인해 실패할 수 있는 작업을 안전하게 수행할 수 있습니다. 1. 설치 backoff 모듈을 설치하기 위해서는 pip를 사용합니다. pip install backoff 2. 재시도 데코레이터 backoff 모듈의 핵심 기능은 재시도 데코레이터입니다. 재시도 데코레이터를 사용하면 일시적인 오류가 발생할 경우 지정된 시간 후에 재시도를 수행합니다. 예를 들어, 다음과 같이 함수를 정의하고 재시도 데코레이터를 적용할 수 있습니다. import backoff import requests @backoff.on..
[파이썬] 상속성 (Inheritance) 상속성(Inheritance)은 객체지향 프로그래밍에서 중요한 개념 중 하나로, 이미 존재하는 클래스를 기반으로 새로운 클래스를 정의하는 것을 의미합니다. 상속을 사용하면, 이미 존재하는 클래스의 모든 속성과 메소드를 새로운 클래스에서 사용할 수 있습니다. 예를 들어, 자동차 클래스와 스포츠카 클래스를 생각해보겠습니다. 자동차 클래스는 자동차의 기본적인 속성과 메소드를 갖고 있고, 스포츠카 클래스는 자동차 클래스를 상속받아서 자신만의 추가적인 속성과 메소드를 갖게 됩니다. 1. 예제 코드 이제 Python 코드로 간단한 예제를 살펴보겠습니다. class Car: def __init__(self, make, model, year): self.make = make self.model = model self...
[파이썬] 캡슐화 (Encapsulation) 캡슐화는 객체지향 프로그래밍에서 중요한 개념 중 하나로, 객체의 상태를 외부에서 직접적으로 접근하지 못하도록 보호하는 것을 말합니다. 이를 통해 객체의 내부 구현을 외부에서 숨기고, 객체가 제공하는 인터페이스를 통해 상호작용할 수 있도록 합니다. 이를 통해 코드의 안정성과 유지보수성을 높일 수 있습니다. Python에서는 캡슐화를 구현하는 가장 간단한 방법은 클래스 내에서 멤버 변수와 멤버 메소드의 접근 제어를 통해 구현하는 것입니다. 파이썬에서는 멤버 변수와 멤버 메소드의 이름 앞에 언더스코어(_)를 붙여서 접근 제어를 구현할 수 있습니다. 1. 예제코드 다음은 캡슐화를 구현한 예시 코드입니다. class BankAccount: def __init__(self, name, balance): self._..
[파이썬] 레이어드 (layered) 아키텍처 레이어드 아키텍처(Layered Architecture)는 소프트웨어를 구성하는 아키텍처 중 하나로, 서로 다른 계층으로 구성되어 있습니다. 이 아키텍처에서 각 계층은 다른 계층과 상호작용하여 전체 시스템을 구성합니다. 각 계층은 자신이 책임져야 할 기능을 수행하며, 다른 계층에 대한 인터페이스를 제공합니다. 1. 설명 레이어드 아키텍처의 가장 일반적인 예는 3계층 아키텍처입니다. 이 아키텍처는 다음과 같은 세 개의 계층으로 구성됩니다. 프레젠테이션 계층 (Presentation Layer): 사용자 인터페이스(UI)를 담당하는 계층입니다. 사용자와 시스템 간의 상호작용을 처리하며, 사용자가 시스템을 조작할 수 있도록 UI를 제공합니다. 비즈니스 계층 (Business Layer): 비즈니스 로직을 처리..
[파이썬] 포트와 어댑터 패턴 포트와 어댑터 패턴은 소프트웨어 디자인 패턴 중에서, 소프트웨어 컴포넌트간의 연결을 관리하고, 서로 다른 인터페이스를 갖는 객체들간의 상호작용을 가능하게 해주는 패턴입니다. 포트(Port)는 인터페이스를 나타내며, 송수신 가능한 통신 채널을 제공합니다. 어댑터(Adapter)는 서로 다른 인터페이스를 가진 객체들 간의 상호작용을 가능하게 해주는 중간 역할을 수행합니다. 어댑터는 포트를 통해 객체들 간의 상호작용을 담당합니다. 1. 예제 코드 다음은 파이썬 예제 코드로 포트와 어댑터 패턴을 설명하겠습니다. # 포트 인터페이스 정의 class PaymentPort: def process_payment(self, amount): pass # 포트 구현체1: 신용카드 결제 class CreditCardPayme..
[파이썬] 저장소 패턴 (Repository Pattern) 에 대해서 파이썬에서 Repository Pattern은 데이터 저장소의 독립성을 보장하고 비즈니스 로직을 데이터 액세스 코드로부터 분리하는 디자인 패턴입니다. Repository Pattern을 사용하면 데이터베이스, 파일 시스템 또는 다른 데이터 저장소와 같은 데이터 저장소를 변경하더라도 비즈니스 로직의 변경 없이 쉽게 전환할 수 있습니다. 이 패턴은 데이터 액세스 계층과 비즈니스 로직 계층 사이의 의존성을 제거하여, 코드를 보다 관리하기 쉽게 만들고, 유지 보수성을 높이며, 코드 재사용성을 높이는 데 도움이 됩니다. 1. 구성 요소 Repository Pattern은 다음과 같은 요소로 이루어집니다. Interface: Repository 인터페이스는 데이터 액세스 계층과 비즈니스 로직 계층 간의 상호 작용을..
[Python] filter() 함수 사용법 파이썬의 filter() 함수는 iterable 객체에서 지정된 함수를 이용하여 원소를 걸러내는 함수입니다. filter() 함수는 두 개의 인자를 받습니다. 첫 번째 인자는 필터링 함수이고, 두 번째 인자는 필터링 함수를 적용할 iterable 객체입니다. 필터링 함수는 인자로 iterable의 각 원소를 받으며, True 또는 False 값을 반환합니다. 반환값이 True인 원소만 남기고 필터링을 수행합니다. 1. 예제 예를 들어, 아래와 같은 리스트가 있습니다. numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] 이 리스트에서 짝수만 남기고 싶으면 다음과 같이 filter() 함수를 사용할 수 있습니다. def is_even(num): return num % 2 == 0 filter..
[Python] reduce() 함수 사용법 reduce() 함수는 파이썬 내장 함수 중 하나로, 리스트나 튜플 등의 iterable 객체에 차례로 함수를 적용하여 하나의 결과값을 얻는 함수입니다. reduce() 함수는 functools 모듈에 포함되어 있습니다. 1. 사용법 reduce() 함수의 기본 문법은 다음과 같습니다. reduce(function, sequence[, initial]) 여기서 function은 iterable 객체에 차례로 적용할 함수이며, sequence는 iterable 객체입니다. initial은 선택적으로 지정할 수 있는 초깃값입니다. reduce() 함수는 다음과 같은 동작을 수행합니다. sequence의 첫 번째 원소와 initial 값을 가지고 function 함수를 호출합니다. function 함수의 반환..