프로젝트 디렉토리 구조 및 설명
CorpusTools/
├── CorpusTools/
│ ├── __init__.py
│ ├── corpus.py
│ ├── data/
│ │ ├── example_corpus.txt
│ │ └── ...
│ ├── interface/
│ │ ├── main_window.py
│ │ └── ...
│ ├── helpers/
│ │ ├── file_operations.py
│ │ └── ...
│ └── ...
├── documentation/
│ ├── index.md
│ └── ...
├── setup.py
├── README.md
└── ...
디렉토리 구성 요약
- CorpusTools/: 핵심 소스 코드가 위치한 기본 폴더입니다.
- __init__.py: Python 패키지로 인식되도록 하는 초기화 스크립트입니다.
- corpus.py: 텍스트 코퍼스 처리와 관련된 주요 기능을 담당합니다.
- data/: 샘플 데이터 및 기타 리소스 파일들을 저장합니다.
- interface/: GUI(Graphical User Interface) 관련 모듈들이 포함되어 있습니다.
- helpers/: 유틸리티 함수들과 보조적인 도구들을 제공합니다.
- documentation/: Markdown 형식의 문서 자료를 관리하는 공간입니다.
- setup.py: 설치 설정과 의존성 관리를 위한 메타데이터 파일입니다.
- README.md: 프로젝트 개요, 설치 방법, 사용법 등에 대한 정보를 담고 있습니다.
실행 진입점 파일 설명
시작 스크립트
GUI 애플리케이션을 시작하는 주요 진입점은 CorpusTools/interface/ 경로에 있는 main_window.py 파일입니다. 이 스크립트는 응용프로그램의 메인 창을 생성하고 표시합니다.
# CorpusTools/interface/main_window.py
import sys
from PyQt5.QtWidgets import QApplication
from CorpusTools.interface.main_window import AppMainWindow
def launch_application():
application = QApplication(sys.argv)
main_window = AppMainWindow()
main_window.show()
sys.exit(application.exec_())
if __name__ == "__main__":
launch_application()
핵심 컴포넌트 설명
- QApplication: Qt 응용프로그램의 생명주기와 전반적인 동작을 제어합니다.
- AppMainWindow: 메인 화면을 구성하고 렌더링하는 클래스입니다.
- launch_application(): 애플리케이션을 초기화하고 실행하는 역할을 수행합니다.
설정 파일 상세
배포 설정 스크립트
setup.py 파일은 프로젝트의 배포 및 설치 과정에서 필요한 모든 메타정보를 정의하며, 루트 디렉토리에 존재합니다.
# setup.py
from setuptools import setup, find_packages
setup(
name='CorpusTools',
version='1.0',
packages=find_packages(),
install_requires=[
'PyQt5',
'numpy',
'pandas'
],
entry_points={
'console_scripts': [
'corpus_toolkit=CorpusTools.interface.main_window:launch_application'
]
}
)
속성 정의 설명
- name: 패키지 이름으로 식별자 역할을 합니다.
- version: 현재 버전 정보를 나타냅니다.
- packages: 배포에 포함될 파이썬 패키지를 지정합니다.
- install_requires: 필요한 외부 라이브러리 목록입니다.
- entry_points: CLI(Command Line Interface) 명령어를 통해 실행 가능한 엔트리 포인트를 설정합니다.
위 설정을 기반으로 사용자는 pip install . 명령어로 프로젝트를 설치하고, corpus_toolkit 명령어를 통해 GUI 애플리케이션을 실행할 수 있습니다.