COBOL (1959)
COBOL (1959)
1. 한 줄 요약
COBOL(COmmon Business-Oriented Language)은 1959년 미국 CODASYL 위원회가 설계한 비즈니스 데이터 처리 전용 언어로, 영어에 가까운 문법과 4 단 DIVISION 구조를 통해 프로그래머가 아닌 사람도 코드를 읽을 수 있게 만든 첫 산업 언어이다.
2. 등장 시기·배경
위키피디아는 COBOL 의 설계 시점을 1959년 으로 명시하며, Mary K. Hawes 가 1959년 4월 8일 펜실베이니아 대학에서 학계·제조사·사용자 대표를 모은 회의에서 출발했다고 기록한다. 위원회 명칭은 CODASYL(Committee on Data Systems Languages).
탄생 동기는 비용 위기 였다. 위키피디아가 인용하는 1959년 조사는 "the programming cost US$800,000 on average" 즉 한 설치당 평균 80만 달러의 프로그래밍 비용이 들었음을 보여준다. 하드웨어 전환 때마다 60만 달러의 추가 비용. 미국 국방부는 225 대의 컴퓨터에 175 대 추가 주문 상태였고, "spent over $200 million" 즉 2억 달러 이상의 소프트웨어 비용을 이미 쓴 상태였다. 즉 이식 가능한(portable) 비즈니스 언어가 절실했다.
설계 철학은 두 가지로 압축된다.
- "making maximal use of English" — 영어를 최대한 활용해 프로그래밍 인구 자체를 확장 한다. 회계사·매니저·감사관도 코드를 읽을 수 있어야 한다.
- "machine-independent" — 기계 독립적이어야 한다. 하드웨어가 바뀌어도 코드를 다시 쓰지 않아도 되어야 한다.
핵심 인물은 위키피디아가 명시하는 Grace Hopper(기술 자문, 영향력 큰 FLOW-MATIC 설계자), Jean E. Sammet(주설계자), Mary Hawes(소집자), William Selden, Gertrude Tierney, Howard Bromberg, Vernon Reeves. Hopper 는 "the mother of COBOL" 이라는 별칭으로 알려졌으나, Sammet 는 정확하게는 기술 자문 이었다고 후일 정정했다.
3. 핵심 특징
- 영어에 가까운 문법 —
MOVE WAGE TO PAYROLL,ADD TAX TO SUBTOTAL GIVING TOTAL. 위키피디아 표현 "English-like Syntax: 'MOVE x TO y' statements designed for readability and self-documentation". 코드 자체가 문서 역할을 수행하도록 설계됨. - 4 단 DIVISION 구조 — 모든 COBOL 프로그램은 다음 4 부로 기록됨.
- IDENTIFICATION DIVISION — 프로그램 이름·작성자·날짜 등 메타데이터.
- ENVIRONMENT DIVISION — 하드웨어·파일 환경 명세.
- DATA DIVISION — 자료 구조 선언.
- PROCEDURE DIVISION — 실제 처리 로직.
- 계층적 자료 정의 (record-oriented) — 위키피디아 표현 "Hierarchical data declarations with level-numbers and group items". 01·05·10 같은 레벨 번호로 자료의 계층(예: 고객 레코드 안에 주소·전화·구매 이력 그룹)을 표현. 현대 JSON·XML 의 70년 전 원형.
- 십진수 산술 (decimal arithmetic) — 부동소수점 오차가 허용되지 않는 돈 계산 을 위해 BCD(Binary-Coded Decimal) 십진수를 언어 차원에서 지원. 99 센트가 정확히 0.99 로 표현됨.
- PICTURE 문법 —
PIC 9(7)V99같은 표기로 자료의 표시 형식 을 직접 명시. 7 자리 정수부 + 2 자리 소수부. 화면·보고서 출력이 코드와 분리.
4. 주 용도
위키피디아의 응용 분야 정리: "banking, government agencies (USDA, DHS, IRS, Treasury), insurance, utilities, and retail sectors". 즉 대규모 거래 처리(transaction processing).
가장 인상적인 통계: "As of 2020, COBOL ran background processes 95% of the time a credit or debit card was swiped". 카드 결제의 95%가 COBOL 코드를 거친다. ATM·은행 이체·항공권 예매·세무 처리·의료보험 청구 — 일상의 거래 인프라 대부분.
COBOL 의 영속성은 교체 비용 > 유지 비용 의 경제 논리에서 나온다. 60년 전 작성된 코드가 지금도 정확히 동작하는데, 재작성 위험 이 너무 크다. 강의 입장에서는 "잘 설계된 코드는 60년을 산다" 는 결정적 사례.
5. 그 시대의 설계 도구 매핑 ★
COBOL 시대(1959~1970년대)의 설계 도구는 비즈니스 규칙 을 어떻게 종이 위에서 정확히 표현할 것인가에 집중되었다. 이 시기에 SE 도구의 결정표 가 산업 표준으로 자리잡았다.
| 설계 도구 | 역할 |
|---|---|
| ★ 결정표 (decision table) | 1960년대 COBOL 환경에서 비즈니스 규칙 을 표 형태로 표현하는 표준 도구. 행: 조건 / 열: 규칙 케이스 / 셀: 액션. 모든 가능한 입력 조합을 빠짐없이 망라. 보험·세무·은행에서 결정표 없이 코드를 짜는 일은 상상할 수 없었다. |
| ★ 데이터 흐름도 (data flow diagram, DFD) | DeMarco·Yourdon (1970년대) 가 정식화. 입력 → 처리 → 출력의 흐름을 거품·화살표로 표현. COBOL 의 DATA DIVISION + PROCEDURE DIVISION 분리 사상과 정확히 대응. |
| ★ HIPO 다이어그램 (Hierarchy plus Input-Process-Output) | IBM 이 1970년대 정식 발표. 계층 구조 + 각 모듈의 IPO 명세 를 결합한 도식. 본 강의 HIAO 패턴의 직접적 선조. |
| 레코드 레이아웃 시트 | 자료 한 레코드의 80 칸 또는 132 칸 구성을 바이트 단위로 그린 도면. PIC 절을 작성하기 전 단계의 절대 필수 산출물. |
| 플로차트 | 여전히 알고리즘 설계 표준. |
핵심은 결정표 의 등장이다. 모든 비즈니스 규칙을 표 형태로 망라한 다음에 코드를 짠다 는 패턴은 강의 핵심 명제 — 설계 없이는 코딩이 안 된다 — 의 비즈니스 영역 표현이다. 이 패턴은 60년이 지난 지금도 보험사 언더라이팅·은행 신용 평가·세무 처리에서 그대로 사용된다.
6. 언어 그룹 분류
명령형(imperative)·절차형(procedural). 비즈니스 지향(business-oriented) 이라는 별도 분류를 갖는 사실상 유일한 산업 언어. FORTRAN 이 과학 계산 영역을 정의했다면, COBOL 은 비즈니스 데이터 처리 영역을 정의했다. 두 언어가 1957년·1959년에 거의 동시에 등장하면서 언어가 도메인을 정의한다 는 사실이 처음으로 분명해졌다.
7. 강의 도입 활용 포인트
COBOL 의 결정표 한 장과 DIVISION 4 단 구조를 보여주면, 비즈니스 로직 = 종이 위 표 + 4 단 기록된 코드 구조 라는 SE 의 본질이 한눈에 기록된다. 60년 후 마이크로서비스·DDD(Domain-Driven Design)·헥사고날 아키텍처가 등장해도 도메인 규칙을 먼저 표로 박고, 그 표를 코드로 옮긴다 는 핵심은 변하지 않았다. 강의의 결정적 한 줄: "AI 가 코드를 짜주는 시대에도, 결정표는 사람이 박아야 한다."
출처
- Wikipedia, COBOL, https://en.wikipedia.org/wiki/COBOL
- Wikipedia, Decision table, https://en.wikipedia.org/wiki/Decision_table
그룹 시리즈
→ synthesis/group-g2 (시대 그룹 종합 카드)