
IBM Bob으로 COBOL TODO 앱을 만들어 보았다
요약
IBM Bob AI 코딩 어시스턴트를 활용하여 60년 역사의 COBOL 언어로 TODO 앱을 제작한 과정을 다룹니다. GnuCOBOL 설치부터 코드 생성, 버그 수정 및 데이터 저장 방식까지 실습 위주로 설명합니다.
핵심 포인트
- IBM Bob을 이용한 COBOL 코드 생성 및 실행 가능성 확인
- 무한 루프 발생 시 AI를 통한 정확한 버그 원인 진단
- COBOL의 명시적인 구문과 고정 길이 레코드 저장 방식 이해
- 오래된 레거시 언어도 AI 어시스턴트로 충분히 대응 가능
COBOL은 1959년에 탄생한, **60년 이상의 역사를 가진 프로그래밍 언어 (Programming Language)**입니다. 지금도 은행이나 보험 회사의 시스템에서 현역으로 작동하고 있습니다.
직접 쓰는 것은 어려워 보이지만, 읽는 것은 가능할 것 같다. 그렇게 생각하여, **IBM Bob (AI 코딩 어시스턴트)**에게 COBOL로 TODO 앱을 작성하게 하여 실제로 실행하고 읽어보기로 했습니다.
Mac에서 GnuCOBOL을 설치합니다:
$ brew install gnu-cobol
GnuCOBOL은 오픈 소스 COBOL 컴파일러입니다. 무료로 사용할 수 있으며 macOS, Linux, Windows에서 동작합니다.
GitHub 리포지토리:
심플한 CLI TODO 앱입니다. 메뉴 형식으로 조작하며, 데이터는 todos.dat 파일에 저장됩니다. 일본어도 지원합니다.
$ cobc -x -free TODO-APP.cob -o TODO-APP
$ ./TODO-APP
-free 옵션으로 자유 형식 (열 위치를 신경 쓰지 않는 형식)으로 작성할 수 있습니다.
$ ./TODO-APP
================================
COBOL TODO 애플리케이션
...
"COBOL로 TODO 앱을 만들어줘"라고 의뢰하자, 기본 구조를 갖춘 코드를 생성해 주었습니다.
IDENTIFICATION DIVISION.
PROGRAM-ID. TODO-APP.
ENVIRONMENT DIVISION.
...
개발 중, 무한 루프에 빠지는 버그가 발생했습니다. Bob에게 상담하니 원인을 특정해 주었습니다:
문제: 파일 상태 변수 (File Status Variable)가 리셋되지 않음
수정:
MOVE '00' TO WS-TEMP-STATUS ← 이것을 추가!
PERFORM UNTIL WS-TEMP-STATUS = '10'
READ TEMP-FILE
...
MOVE 'Y' TO WS-FOUND
IF TODO-ID = WS-TODO-ID-INPUT
PERFORM UNTIL WS-FILE-EOF
다른 언어와 비교했을 때, 비즈니스 문서처럼 읽힙니다.
01 TODO-RECORD.
05 TODO-ID PIC 9(4).
05 TODO-STATUS PIC X.
...
데이터 형식을 명시적으로 정의합니다 (PIC 9(4): 4자리 숫자, PIC X(70): 70자).
$ cat todos.dat
0001D買い物に行く
0002Pレポートを書く
고정 길이 레코드 (Fixed-length Record) 형식으로 저장됩니다.
오래된 언어라도 대응: COBOL에서도 코드 생성 가능 -
정확한 버그 진단: 무한 루프의 원인을 정확히 특정 -
일본어 대응: 일본어 문서도 생성 가능
- 최초 생성 코드에 버그가 있었음
IBM Bob을 사용하여 60년 전의 언어인 COBOL로 TODO 앱을 만들 수 있었습니다.
직접 쓰는 것은 어려워 보였지만, AI에게 생성을 부탁하고 읽어보니 COBOL의 높은 가독성과 명시적인 구문을 이해할 수 있었습니다.
COBOL에 대해 좋든 나쁘든 관심이 있는 분들은 꼭 한번 시도해 보세요. AI와 함께라면 의외로 재미있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기