티스토리 뷰

반응형

내가 만든 파이썬 프로그램이 있다. 자동으로 엑셀의 내용을 가져와서 ezdxf 라이브러리로 dxf파일을 만드는 구조이다.

기본적으로 PC에서 일반 vs코드로 실행해서 제작하거나, pyinstaller로 exe를 만들어서 실행한다.

그런데, 나는 웹사이트 php나 javascript로 된 나의 웹사이트가 있다.

이 웹사이트에서 이렇게 도면을 그려주는 서비스를 상용화해서 돈을 벌고 싶다.

그렇다면 파이썬 프로그램 코드를 웹사이트에서 동작하게 하려면 복잡한 과정을 거치는 것인가?

이렇게 하려면 어떤 방법을 써야 할까? 대한민국 제조업에 어떤 좋은 영향을 미치고 싶은 것도 있다. 물론 돈도 벌고 싶고 말이다.

파이썬 프로그램을 웹사이트에서 동작하도록 통합하는 것은 기술적으로 가능하지만 몇 가지 과정을 거쳐야 합니다. 특히, 대한민국 제조업에 긍정적인 영향을 미치면서 상용화하려는 목표가 있다면 안정성, 확장성, 보안을 염두에 두고 진행해야 합니다.

  1. 파이썬 프로그램을 웹으로 통합하는 방법 파이썬 기반 프로그램을 PHP 또는 JavaScript 기반 웹사이트에서 동작시키기 위해선 다음과 같은 방법을 고려할 수 있습니다.

(1) 파이썬 백엔드 서버 구성 Flask/Django 사용 파이썬으로 웹 프레임워크(Flask나 Django)를 사용하여 REST API를 개발합니다. 이 API를 통해 엑셀 파일을 업로드하거나 도면을 생성하는 요청을 처리할 수 있습니다.

예: 사용자가 웹사이트에서 엑셀 파일을 업로드 Flask API에서 파일을 받아 도면 생성 생성된 DXF 파일을 다시 클라이언트로 반환하거나 서버에 저장 FastAPI FastAPI는 고성능 REST API를 구축할 수 있는 현대적인 파이썬 프레임워크로, 빠른 응답성과 비동기 작업에 강점이 있습니다. 향후 확장성을 고려한다면 추천합니다.

(2) PHP와 파이썬 연동 PHP에서 exec()나 shell_exec()를 사용하여 파이썬 스크립트를 실행하는 방법입니다. 간단한 초기 테스트에 적합하지만, 프로덕션 환경에서는 관리와 확장에 한계가 있습니다.

(3) Docker 활용 파이썬 프로그램을 Docker 컨테이너로 패키징하여 웹 서버와 독립적으로 실행합니다. 예: PHP 웹사이트는 컨테이너 내부에서 Flask API에 요청을 보내 DXF 파일을 생성.

(4) 서버리스(Serverless) 아키텍처 AWS Lambda, Google Cloud Functions 등을 사용하여 도면 생성 과정을 서버리스 방식으로 구현할 수 있습니다. 엑셀 파일을 업로드하면 Lambda가 파이썬 스크립트를 실행하여 결과물을 저장하고 반환합니다.

웹사이트에서 제공될 서비스 흐름 사용자 인터페이스(UI)

사용자 업로드 폼: 엑셀 파일 업로드 및 파라미터 입력 결과물 다운로드: 생성된 DXF 파일을 사용자에게 제공 백엔드 로직

엑셀 파일을 파이썬 API로 전송 DXF 파일 생성 후 저장 결과를 PHP나 JavaScript로 사용자에게 전달 파일 저장/관리

생성된 DXF 파일을 Google Drive API나 AWS S3에 저장하여 다운로드 링크를 제공

기술적 고려 사항 확장성

예상되는 사용량에 따라 서버를 스케일링해야 합니다. 예: AWS Elastic Beanstalk, Kubernetes 등을 사용. 보안

업로드된 엑셀 파일의 악성 코드 방지 HTTPS를 통한 안전한 데이터 전송 파일 및 결과물의 접근 제한 성능 최적화

파이썬 프로그램이 CPU를 많이 사용하는 경우 비동기로 처리하거나 워커(worker) 프로세스를 설정.

상용화를 위한 추가 제안 결제 시스템 통합

웹사이트에 PG사 연동(이니시스, 카카오페이 등)을 통해 사용자가 생성된 도면에 대해 비용을 결제하도록 구현. 사용자별 데이터 관리

각 사용자별로 업로드된 데이터와 생성된 도면을 관리. 대한민국 제조업과의 연결

B2B 서비스 제공:

중소 제조업체와의 계약을 통해 맞춤형 도면 생성 서비스 제공.

제조업 특화 기능 추가: 도면 최적화, 다양한 규격 지원 등.

  1. 도입 과정 요약 현재 파이썬 프로그램을 웹 API 형태로 변환(Flask/FastAPI 등). PHP 웹사이트와 API 연동. Docker나 AWS 같은 클라우드 서비스로 배포. 사용자 친화적인 인터페이스 및 결제 시스템 통합. 지속적인 유지보수 및 기능 개선.
  2. 대한민국 제조업에 미칠 수 있는 영향 생산성 향상: 도면 작업을 자동화하여 시간과 비용 절감. 중소기업 지원: IT 인프라가 부족한 제조업체들에게 도면 생성 서비스를 저렴하게 제공. 산업 표준화: 효율적인 도면 작성 프로세스를 통해 품질 개선. 이와 같은 과정을 통해 상용화가 가능하며, 초기 투자(시간 및 기술 개발)를 통해 안정적인 수익 모델을 구축할 수 있을 것입니다. 

FastAPI는 파이썬으로 작성된 웹 프레임워크입니다. 웹 애플리케이션(예: REST API)을 빠르고 간편하게 개발할 수 있도록 도와줍니다. 초보자를 위한 설명으로 하나씩 풀어보겠습니다.


1. FastAPI란 무엇인가요?

FastAPI는 아래와 같은 특징을 가진 파이썬 기반의 웹 프레임워크입니다:

  • 빠르다(Fast): FastAPI는 내부적으로 Python의 비동기 기능(Asyncio)을 사용해 고성능의 API 서버를 만들 수 있습니다.
  • 간단하다(Simple): 사용하기 쉽고 직관적인 코드를 작성할 수 있어 초보자도 금방 익힐 수 있습니다.
  • 자동 문서화(Auto Documentation): API를 만들면 자동으로 문서를 생성해줍니다. (Swagger UI, ReDoc 지원)
  • 유효성 검사: 입력 데이터(요청)와 출력 데이터를 자동으로 검증해줍니다.

2. 왜 FastAPI를 사용할까요?

FastAPI는 다음과 같은 이유로 추천됩니다:

  • 빠른 개발: 적은 코드로도 강력한 API를 만들 수 있습니다.
  • 입출력 검증: 데이터를 자동으로 확인하고 오류를 방지합니다.
  • 초보자 친화적: 기본적인 Python만 알아도 쉽게 사용할 수 있습니다.
  • 비동기 처리: 많은 사용자를 동시에 처리할 수 있어 효율적입니다.

3. FastAPI 기본 예제

(1) FastAPI 설치

FastAPI는 Python 패키지로 설치할 수 있습니다.

pip install fastapi uvicorn
  • FastAPI: 프레임워크
  • Uvicorn: FastAPI 앱을 실행하는 서버

(2) 간단한 "Hello World" API

다음은 "Hello World"를 반환하는 간단한 API 예제입니다.

코드:

from fastapi import FastAPI

app = FastAPI()  # FastAPI 앱 생성

@app.get("/")  # HTTP GET 요청에 반응하는 경로 정의
def read_root():
    return {"message": "Hello World"}

실행 방법:

  1. 이 파일을 main.py로 저장합니다.
  2. 다음 명령어로 실행합니다:
    uvicorn main:app --reload
    
  3. 브라우저에서 http://127.0.0.1:8000에 접속하면 {"message": "Hello World"}라는 결과를 확인할 수 있습니다.

4. FastAPI의 주요 기능

(1) 경로(Route)

FastAPI에서는 요청 경로를 @app.get() 또는 @app.post()와 같은 데코레이터로 설정합니다.

@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}
  • /items/42와 같은 경로 요청에 대해 item_id: 42를 반환합니다.

(2) 입력 데이터 유효성 검사

FastAPI는 Pydantic을 사용해 입력 데이터를 검증합니다.

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None

@app.post("/items/")
def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price}
  • 클라이언트가 잘못된 데이터를 보내면 FastAPI가 자동으로 오류를 반환합니다.

(3) 자동 문서화

FastAPI는 작성된 API에 대한 문서를 자동으로 생성합니다.

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

5. 초보자를 위한 팁

  • Python만 알면 된다: Python의 기본 문법만 익혀도 FastAPI로 웹 애플리케이션을 쉽게 만들 수 있습니다.
  • 단계적으로 배우기: 먼저 간단한 API를 만들고, 점차적으로 비동기 처리, 데이터베이스 연동 등을 추가하세요.
  • 공식 문서 활용: FastAPI의 공식 문서는 매우 친절합니다. FastAPI 공식 문서

6. FastAPI로 무엇을 할 수 있을까요?

  • RESTful API 개발
  • 간단한 웹 애플리케이션
  • 데이터 처리 및 AI 모델 배포
  • IoT 장치와의 통신

FastAPI는 가볍고 간단하면서도 강력한 프레임워크입니다. 초보자도 금방 적응할 수 있으니, 간단한 API를 만들어보는 것부터 시작해보세요! 😊

반응형
댓글