Skip to content

Latest commit

 

History

History
62 lines (51 loc) · 2.26 KB

File metadata and controls

62 lines (51 loc) · 2.26 KB

프로젝트 001 - 데이터 내보내기 시스템

프로젝트 개요

이 프로젝트는 다양한 형식으로 데이터를 내보내는 시스템을 구현한 Python 프로젝트입니다. 세 가지 다른 접근 방식을 통해 동일한 기능을 구현하는 방법을 보여줍니다.

파일 구조

1. main001.py - 기본적인 조건문 방식

  • 기능: if-elif-else 문을 사용한 기본적인 데이터 내보내기
  • 특징:
    • 각 형식별로 개별 함수 정의 (export_pdf, export_csv, export_excel, export_json)
    • export_data 함수에서 조건문으로 형식 선택
    • 간단하고 직관적인 구조

2. main002.py - 딕셔너리 기반 방식

  • 기능: 딕셔너리를 사용한 함수 매핑 방식
  • 특징:
    • export_functions 딕셔너리에 형식별 함수 저장
    • get() 메서드를 사용한 안전한 함수 호출
    • 조건문보다 깔끔한 코드 구조

3. main003.py - 데코레이터 기반 레지스트리 방식

  • 기능: 데코레이터를 사용한 동적 함수 등록
  • 특징:
    • @register_exporter 데코레이터로 함수 자동 등록
    • 확장성이 뛰어난 구조
    • 새로운 내보내기 형식 추가가 용이

4. registry.py - 범용 레지스트리 시스템

  • 기능: 그룹과 이름을 가진 명령어 레지스트리
  • 특징:
    • @register_command 데코레이터 사용
    • 그룹별 명령어 관리 가능
    • 범용적인 레지스트리 패턴 구현

5. pyproject.toml - 프로젝트 설정

  • Python 버전: >=3.12
  • 프로젝트명: 001
  • 버전: 0.1.0

공통 기능

모든 main 파일들은 다음 형식으로 데이터를 내보낼 수 있습니다:

  • PDF
  • CSV
  • Excel
  • JSON

실행 방법

python main001.py  # 기본 방식
python main002.py  # 딕셔너리 방식
python main003.py  # 데코레이터 방식

설계 패턴

이 프로젝트는 다음과 같은 설계 패턴을 보여줍니다:

  1. Strategy Pattern - 다양한 내보내기 전략
  2. Registry Pattern - 함수 등록 및 관리
  3. Decorator Pattern - 함수 등록을 위한 데코레이터 사용

타입 힌트

모든 파일에서 Python의 타입 힌트를 적극 활용하여 코드의 가독성과 안정성을 높였습니다.