
45초 프로덕션: InterSystems IRIS와 PyProd를 사용하여 ChatGPT의 한계 테스트하기
요약
ChatGPT를 활용하여 InterSystems IRIS와 PyProd 패키지를 이용한 상호운용성 프로덕션 코드를 생성할 수 있는지 테스트한 사례입니다. 다단계 프롬프트를 통해 도메인 설정부터 데이터 생성, SQL 테이블 작성, Python 어댑터 및 비즈니스 프로세스 구현까지의 과정을 실험했습니다.
핵심 포인트
- 다단계 프롬프트를 통한 복잡한 엔지니어링 작업 수행 가능성 확인
- PyProd 패키지를 활용한 Python 기반 InterSystems IRIS 연동 구현
- 데이터 생성부터 비즈니스 로직 작성까지의 자동화 워크플로우 테스트
모든 것은 부모님을 뵙기 위해 기차를 타고 가던 중, 제 칸에 있는 이웃과 대화를 나누면서 시작되었습니다. 평소처럼 대화는 기술로 흘러갔고, 그녀는 매우 구체적인 질문을 던졌습니다: ChatGPT를 사용하여 인간 게놈(human genome)을 분석할 수 있을까요? 저는 ChatGPT가 그렇게 복잡한 일을 해낼 수 있을지에 대해 매우 회의적이었습니다. 하지만 그 질문은 머릿속을 떠나지 않고 계속 맴돌았습니다. 집에 도착했을 때쯤, 저의 회의론은 하나의 도전 과제로 변해 있었습니다. 당장 손에 쥐고 있는 게놈 시퀀싱(genome sequencing) 데이터셋은 없었지만, 표준 ChatGPT가 PyProd 패키지를 사용하여 처음부터 기능적인 상호운용성 프로덕션(Interoperability Production)을 구축할 수 있는지 확인해보고 싶었습니다. 게다가 이는 세 번째 아이디어를 구현함으로써 Community Bounty Program "Idea to Application"의 1라운드에 참여할 기회이기도 했습니다.
저는 다단계 프롬프트(multi-step prompt)를 사용하여 이를 테스트해 보기로 결정했습니다:
다음의 문서들과 GitHub 저장소의 정보를 사용하여, PyProd 패키지를 이용해 Python으로 작성된 완전한 InterSystems 프로덕션 (Production) 코드를 작성하세요:
1단계: 이 프로덕션의 도메인 (domain)을 설정하세요.
2단계: 1단계에서 설정한 도메인에 대해 각각 30개의 레코드가 포함된 4개의 CSV 파일을 생성하세요.
3단계: CSV 파일의 구조를 바탕으로 SQL 테이블 생성 문 (create table statement)을 작성하세요.
4단계: 파일을 읽는 PyProd 패키지 기반의 Python 인바운드 어댑터 (inbound adapter)를 작성하세요.
5단계: 2단계 파일의 구조를 분석하고 1단계 도메인에 적합한 1가지 계산을 수행하는 Python 비즈니스 프로세스 (business process)를 작성하세요.
6단계: 4단계에서 읽어들인 모든 데이터와 5단계의 계산 결과를 3단계에서 생성한 테이블에 저장하는 Python 비즈니스 오퍼레이션 (business operation)을 작성하세요.
사용해야 할 문서 및 GitHub 저장소는 다음과 같습니다:
https://community.intersystems.com/post/pyprod-pure-python-iris-interoperability
https://community.intersystems.com/post/csvgen-pyprod https://github.com/intersystems/pyprod
저는 이 모든 내용을 ChatGPT에 입력하고 전송 버튼을 눌렀습니다. 그러고 나서 기다렸습니다. 정확히 45초 동안 말이죠.
결과물과 "주의할 점 (Gotchas)"
그 결과, 바로 사용할 수 있는 코드가 담긴 smart_grid_pyprod.zip 파일을 받았습니다. 당연히 이것이 실제로 작동하는지, 아니면 그저 그럴싸한 환각 (hallucination)인지 미칠 듯이 궁금했습니다. 저는 완전히 초보자인 척하며, 모든 것을 어떻게 설정해야 하는지 물었습니다. ChatGPT는 즉시 필요한 모든 단계를 안내해 주었습니다.
- IRIS 터미널 (Terminal)을 통해
USER네임스페이스 (namespace)에서 상호운용성 (interoperability) 활성화하기:
zn "%SYS"
do ##class(%EnsembleMgr).EnableNamespace("USER")
- Windows 11을 위한 환경 변수 (environment variables) 설정 및 패키지 설치하기:
set IRISINSTALLDIR=C:\InterSystems\IRIS
set IRISUSERNAME=SuperUser
set IRISPASSWORD=SYS
...
-
intersystems_pyprod smart_grid.py를 사용하여 생성된 코드를 컴파일합니다. -
Management Portal을 열고, 프로덕션 (production)을 시작합니다.
바로 제대로 작동했을까요? 아니요, 그렇지 않았습니다. 대부분의 문제는 있어서는 안 될 곳에 쉼표(comma)가 있거나, 잘못 작성된 몇몇 비동기 요청 (async requests) 등의 문제였습니다. 문제를 해결하는 데 약 반나절이 걸렸습니다 (솔직히 말하면, Docker 빌드를 기다리는 동안 _Landman_을 병행해서 시청했는데, 상황에 아주 적절한 작품이었습니다 - 석유와 전기를 펌핑하는 내용이니까요 😉). 하지만 기본적인 Python 지식과 @gabriel이 제공한 결정적인 참조 예제 덕분에 실행에 성공했습니다.
AI 생성 프로덕션의 구조 (Anatomy)
코드를 수정한 후, ChatGPT가 (대부분) 작성한 프로덕션은 아주 훌륭하게 작동했습니다. 이는 세 가지 구성 요소로 이루어져 있습니다:
- 비즈니스 서비스 (business service)
SmartMeterFileService: 입력 파일을 읽습니다. - 비즈니스 프로세스 (business process)
SmartMeterAnalysisProcess: 파일별 총 kWh, 평균 kWh, 피크 미터 ID (peak meter id), 그리고 피크 kWh를 계산합니다. - 비즈니스 오퍼레이션 (business operation)
SmartMeterDBOperation: 계산된 결과와 함께 모든 CSV 행을 영구 저장 (persist) 합니다.

Management Portal의 Visual Trace를 살펴보면, 메시지가 서비스에서 프로세스로, 그리고 마지막으로 오퍼레이션으로 끊김 없이 흐르는 것을 볼 수 있습니다:
그리고 SQL Explorer에서 다음과 같이 쿼리하면
SELECT *
FROM EnergyOps.SmartMeterReadings
데이터가 적절히 계산되어 완벽한 구조로 저장되어 있는 것을 확인할 수 있습니다:
결론: 거의 성공적 (Almost a Success)
저는 이 실험을 **거의 성공적 (almost success)**이라고 부르고 싶습니다. '거의'라고 말한 이유는, 이것이 어떻게 작동하는지에 대해 최소한의 지식이 있어야 했기 때문입니다. 완전히 초보자라면 당황하거나(stumped) 많은 후속 질문을 던져야 했을 것입니다.
하지만 기초적인 지식이 있고, 문제를 해결하려는 의지(troubleshoot)가 있으며, 참고할 만한 좋은 커뮤니티 예시들이 있다면 충분히 작동시킬 수 있습니다. 이는 AI가 복잡한 엔터프라이즈급 유전체 시퀀싱 파이프라인 (genome sequencing pipelines)을 아직 완전히 스스로 설계할 준비는 되지 않았을지라도, 예시를 바탕으로 이를 확장하여 프로토타입 (prototype)을 궤도에 올리는 데에는 놀라운 도구라는 점을 증명합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

