소프트웨어 공학 원칙

케이스 스터디: Python으로 소프트웨어 만들기

Mark Pedigo

Principal Data Scientist

로드맵

프로젝트에서 완료한 부분과 시작할 부분을 보여주는 로드맵.

케이스 스터디: Python으로 소프트웨어 만들기

모듈화

모듈화: 핵심 소프트웨어 공학 원칙

  • 구분된 독립 모듈
  • 집중된 특정 기능
  • 명확하고 정의된 인터페이스
  • 개발·테스트·유지보수 분리
케이스 스터디: Python으로 소프트웨어 만들기

DRY 원칙

"반복 금지(DRY)": 핵심 소프트웨어 공학 원칙

  • 중복 최소화
  • 재사용 가능한 컴포넌트·클래스
  • 한 번 작성해 널리 공유
  • 깔끔하고 유지보수 용이, 오류 감소
케이스 스터디: Python으로 소프트웨어 만들기

패키징

패키징: 핵심 소프트웨어 공학 원칙

  • 체계적인 폴더 계층
  • 코드를 효율적으로 관리·구조화
  • 모듈 초기화를 위한 __init__.py
케이스 스터디: Python으로 소프트웨어 만들기

패키지 만들기

  • 최소 구조: 패키지 폴더 + 파이썬 파일
  • 패키지: 폴더 + __init__.py 파일
  • 짧고 소문자, 밑줄 포함 디렉터리 이름
  • __init__.py: 폴더를 패키지로 식별
케이스 스터디: Python으로 소프트웨어 만들기

절대/상대 임포트

  • 다음과 같은 프로젝트 구조를 가정하세요
project \
   |--- package
   |    |--- module1.py
   |    |--- module2.py
   |--- main.py
  • 절대 임포트: 루트부터 전체 경로
    • from package import module1
    • from package.module1 import function
  • 상대 임포트: 현재 위치 기준 경로 (.=현재, ..=상위)
    • from . import module1
    • from .module1 import function
  • 절대: 명확하지만 이식성 낮음
  • 상대: 유연하지만 컨텍스트 의존
케이스 스터디: Python으로 소프트웨어 만들기

연습해 봅시다!

케이스 스터디: Python으로 소프트웨어 만들기

Preparing Video For Download...