user: 코볼의 역사 및 사양에 대해 설명해 줘.

gpt: ## 배경
1950년대 말 컴퓨터 사용자와 제조업체는 프로그래밍의 비용이 치솟는 것을 걱정하기 시작했다. 1959년 조사에 따르면 데이터 처리 설치에서 프로그래밍의 평균 비용은 $800,000 이고 새로운 하드웨어에서 실행할 수 있도록 프로그램을 변환하는데 드는 비용은 $600,000였다. 새로운 프로그래밍 언어들이 빠르게 확산되는 가운데, 동일 조사에서 하나로 통일된 사무 지향 언어가 사용된다면 변환은 훨씬 저렴해지고 빨라질 것이라는 결과가 나왔다.

1959년 4월 학계, 컴퓨터 사용자들, 제조업체들의 대표들이 펜실베니아 대학교에서 통일된 사무 언어에 대한 정식 회의를 조성하기에 이르렀다.

영어와 같은 데이터 처리 언어 FLOW-MATIC을 개발한 그레이스 호퍼를 포함하여 진 사멧, 솔 곤이 대표로 참석했다.

이 단체는 미국 국방부에 통일된 사무 언어를 만들기 위해 지원해줄 것을 요청하였다. 대표단은 미국 국방부의 데이터 시스템 연구 스태프 총괄을 맡던 찰스 A. 필립스에게 감명을 주었는데, 그는 이들이 미국 국방부의 문제들을 꼼꼼하게 이해하였다고 생각하였다. 미국 국방부는 225대의 컴퓨터를 운영했고 추가로 175대를 주문하였으며 이 컴퓨터들 상에 프로그램을 구현하는데 $200,000,000를 지출하였다. 이식 가능한 프로그램들은 시간을 절약하고, 비용을 줄이며 현대화를 쉽게 할 수 있었다.

필립스는 이 회의를 지원하는데 동의하였고 대표단에게 의제의 초안을 작성하는 일을 부여하였다.

## 코볼 60
취리히 알골 58 회의가 있은지 정확히 한 해 뒤인 1959년 5월 28, 29일에 펜타곤에서 회의가 열렸고 사무를 위한 공용 프로그래밍 언어를 만드는 것을 논의하였다. 41명의 사람들이 참석하였고 당시 의장은 필립스였다. 미국 국방부는 각기 다른 컴퓨터에서 동일한 데이터 처리 프로그램들을 실행할 수 있는지에 대해 걱정하였다. 당시 유일한 주류 언어였던 포트란은 이러한 프로그램들 작성에 필요한 기능들이 부족했다.

대표들은 은행업, 보험 분야에서 공과금, 재고 관리에 이르기까지 다양한 환경에서 동작할 수 있는 언어를 열정적으로 기술하였다. 더 많은 사람들이 프로그래밍할 수 있어야 하고 새로운 언어는 동시대 기술의 제약을 받아서는 안 된다는 데 대하여 대표자 전원이 동의하였다. 언어는 최대한 영어를 사용하여야 하고 변경이 가능해야 하며 기계와는 독립적이어야 하고 사용하기 쉬워야 한다는 데 대하여 다수가 동의하였다.

이 모임을 통해 운영 위원회와 중장기 위원회들이 설립되었다. 단기 위원회는 9월부터 3개월 동안 중간 언어를 위한 사양을 만들어냈으며 그 뒤 다른 위원회들에 의해 개선되었다. 그러나 공식 임무는 기존 프로그래밍 언어들의 장단점을 식별하는 것이었고 명백하게 이들에게 새로운 언어를 만들라고 지시하는 것은 아니었다.

기한은 단기 위원회에 의해 불신 속에 마감되었다. 베티 홀버튼이라는 한 구성원은 3개월 기한을 둔 것이 역겨울 만큼 낙천주의적이라고 기술했으며 이 언어가 임시방편이 될지에 대해서는 의심을 품었다.

운영 위원회는 6월 4일 만나 협의회를 CODASYL라는 이름으로 정하고, 집행 위원회를 설립할 것을 동의하였다.

단기 위원회는 여섯 곳의 컴퓨터 제조업체와 세 군데의 정부 기관으로 이루어져 있었다. 여섯 곳의 제조업체들은 버로스, IBM, 미니애폴리스-하니웰 , RCA, 스페리 랜드, 실베이니아 일렉트릭 프로덕츠였다. 세 군데의 정부 기관들은 미국 공군, 해군의 데이비드 테일러 모델 베이슨, 국립표준국이었다. 이 위원회의 위원장은 미국 국립표준국의 조지프 웨그스타인이었다. 데이터 설명, 문, 기존의 응용 프로그램, 사용자 경험을 조사하면서 작업이 개시되었다.

이 위원회는 주로 FLOW-MATIC, AIMACO, COMTRAN이라는 프로그래밍 언어들을 조사하였다. FLOW-MATIC 언어는 특히 영향력이 있었는데 그 까닭은 그것이 내부에 구현되었기 때문이기도 하지만 그 밖의 이유로는 AMIACO가 단지 사소한 변경만으로 그것을 파생시켰기 때문이다.
FLOW-MATIC의 발명가 그레이스 호퍼는 또한 그 위원회에 기술 고문 역할을 하였다. FLOW-MATIC이 코볼에 기여한 주된 사항으로는 긴 변수 이름, 명령어를 위한 영어 낱말, 데이터 기술 및 명령의 구분이다.

밥 베머가 발명한 IBM의 COMTRAN 언어는 그레이스 호퍼의 동료들이 만든 단기 위원회에 의해 FLOW-MATIC의 경쟁 언어로 간주되었다. 기능들 중 일부는 코볼에 포함되지 않았는데, IBM이 설계 과정을 지배한 것처럼 보이지 않게 하기 위함이었고, 1981년에 진 사멧은 그녀 자신을 포함해서 "강력한 반IBM 편견"이 일부 위원회 구성원들에게 있음을 언급했다. 한 사례로 COMTRAN 설명서의 저자이자 중기 위원회 구성원이었던 로이 골드핑거가 그의 언어를 지원하고 대수식 이용을 장려하기 위해 소위원회 회의에 참석했는데, 그 뒤 그레이스 호퍼는 단기 위원회에 메모를 보내면서 영어가 기반이 되는 언어를 만들겠다는 스페리 랜드의 노력을 재차 강조했다. 1980년에 그레이스 호퍼는 코볼 60이 95% FLOW-MATIC으로 되어 있으며 COMTRAN은 매우 적은 부분에서 영향을 주었다고 언급하였다.

곧 이 위원회는 너무 방대해져 진행 속도를 더 낼 수 없었다. 실망감을 느낀 하워드 브롬버그는 COBOL이라 새겨진 $15의 묘비를 구매하고 찰스 필립스에게 보내 그의 불만을 드러냈다.
소위원회가 구성되어 기존 언어들을 분석하였는데, 여기에는 6명의 인원으로 이루어졌다:

소위원회는 사양을 만드는 일로 대부분을 보냈고, 최종 사양을 생산하기 앞서 단기 위원회가 그들의 일을 검토하고 수정하는 일을 맡았다.

1960년 1월 3일 집행 위원회는 이 사양을 승인하였고 정부 인쇄소에 전달되어 "COBOL 60"으로 인쇄되었다. 이 언어에 언급된 목적은 효율적이고 이식 가능한 프로그램들이 쉽게 작성될 수 있게 함으로써 사용자들이 적은 노력과 비용을 들여 새로운 시스템으로 이전할 수 있게 하고 미숙한 프로그래머들도 적절히 쓸 수 있게 하기 위함이다. CODASYL 집행 위원회는 사용자들과 업체들로부터의 질문에 답하고 사양을 확장하고 개선할 목적으로 나중에 코볼 유지보수 위원회를 창설하였다.

1960년 동안 코볼 컴파일러를 만들 예정인 제조업체의 수가 늘어났다. 9월까지 다섯 곳 이상의 제조업체가 CODASYL , 내셔널 캐시 레지스터, 필코)에 참여하였고 대표되는 모든 제조업체들이 코볼 컴파일러를 발표하였다. GE와 IBM은 코볼을 자신들의 언어들인 GECOM과 COMTRAN에 각각 통합하였다. 반면, 인터내셔널 컴퓨터스 앤드 태뷸레이터스는 그들의 언어인 CODEL을 코볼로 대체할 예정이었다.

그 와중에 RCA와 스페리 랜드는 코볼 컴파일러를 만드는 일을 하였다. 최초의 코볼 프로그램은 8월 17일 RCA 501에서 수행되었다. 12월 6일, 7일에 동일한 코볼 프로그램이 RCA 컴퓨터, Remington-Rand 유니박 컴퓨터에서 실행되어 이들의 호환성을 입증하였다.

오늘날 모든 코볼 참조 매뉴얼에는 다음과 같이 인쇄되어 있다:

프로그래밍 시스템과 언어의 정확성과 기능에 관해 기여한 자나 CODASYL 코볼 위원회가 표현, 암시한 부분에 대해서는 어떠한 보증도 없다. 또, 이와 연관된 어떠한 기여자나 위원회에 의해 어떠한 책임도 물을 수 없다. 여기에 사용된, 저작권 보호를 받는 자료의 저자와 저작권자는 아래와 같다:

이들은 코볼 사양의 일부나 전체에 대해 이 자료의 이용을 허가함. 이러한 권한은 프로그래밍 설명서나 비슷한 출판물의 코볼 사양의 재생산 및 이용으로 확장됨.}}

## 코볼-61 ~ 코볼-65
수많은 논리적 결함들이 코볼 60에 발견되었는데, GE의 찰스 캐츠는 이에 대해 모호하게 해석되지 않는다고 경고하였다. 마지못한 단기 위원회는 완전한 정리를 단행하였고 1963년 3월 코볼의 문법이 알골의 것처럼 정의가 가능해졌으나 의미적인 모호성은 여전히 남아있다고 보고되었다.

초기 코볼 컴파일러들은 원시적이었고 속도가 느렸다. 1962년 미국 해군 평가는 분당 3-11개 문의 컴파일 속도를 지적했다. 1964년 중순에는 분당 11-1000개의 문으로까지 증가하였다.
메모리가 늘어나면서 속도가 급격하게 빨라졌고 컴파일 비용이 다양해졌다. 문 당 비용은 $0.23에서 $18.91 사이였다.

1962년 말에 IBM은 코볼이 그들의 주 개발 언어가 되고 COMTRAN의 개발은 중단할 것이라 선언하였다.

코볼 사양은 출판 이후로 5년 안에 3번 개정되었다. 코볼-60은 1961년에 코볼-61으로 대체되었다. 그 뒤 코볼-61 확장 사양으로 1963년에 대체되어 정렬 및 보고서 작성 기능이 도입되었다. 추가된 기능들은 하니웰이 1959년 말 단기 위원회에 편지를 보내 확인된 결함들을 수정하였다. 코볼 에디션 1965는 사양에 대해 더 명확히 하고 대용량 기억 장치의 파일들과 표를 다룰 수 있는 기능을 소개하였다.

## 코볼-68
버전 간 비호환성을 극복하기 위해 코볼을 표준화하는 작업이 시작되었다. 1962년 말 ISO와 미국 스탠더드는 표준을 만드는 그룹들을 설립하였다.
ANSI는 1968년 8월 USA Standard COBOL X3.23을 만듦으로써 차기 버전들의 주춧돌이 되었다. 이 버전은 ANS 코볼로 알려져 있으며 1972년에 ISO에 채택되었다.

## 코볼-74
1970년에 코볼은 전 세계에서 가장 널리 쓰이는 프로그래밍 언어가 되었다.

ANSI 위원회와 독립적으로 CODASYL 프로그래밍 언어 위원회는 언어 개선에 착수했다. 이들은 1968년, 1969년, 1970년, 1973년에 새로운 버전들을 기술하였고, 여기에 새로운 프로그램 간 통신, 디버깅, 파일 병합 기능, 개선된 문자열 관리, 라이브러리 포함 기능과 같은 변경 사항을 포함하였다. CODASYL이 ANSI 위원회와 독립적이었으나, ANSI는 CODASYL Journal of Development를 사용하여 구현을 보증하는데 충분히 대중적인 기능들을 식별하게 하였다. 프로그래밍 언어 위원회는 또한 ECMA와 일본 코볼 표준 위원회와도 연계하였다.

그러나 프로그래밍 언어 위원회는 잘 알려지지 않았다. 부사장이었던 William Rinehuls는 코볼 커뮤니티의 2/3이 위원회의 존재조차 모르고 있다고 불평하였다. 또, 무료로 이용이 가능한 변경 사항 제안, 회의록과 같은 공용 문서를 만들 자금이 부족할 정도로 빈약했다.

1974년 ANSI는  코볼의 개정판을 출판하였으며, 여기에는 파일 조직, DELETE 문 나중에 ISO는 1978년에 갱신된 표준을 채택하였다.

## 코볼-85
1978년 7월, 코볼 74를 개정하는 작업이 시작되었다. 제안된 표준은 이전 것과는 상당히 달랐으므로 비호환성 및 변환 비용에 대한 걱정을 야기하였다. 1981년 1월, 트래블러스 인슈런스의 수석 부사장 조지프 T 브로피는 표준 위원회를 고소하겠다고 위협하였는데 그 까닭은 코볼-74와 상위 호환이 되지 않았기 때문이다. 브로피는 그들의 40,000,000줄이나 되는 코드의 변환을 "비생산적"이고 "프로그램 자원 중 완전한 쓰레기"라고 기술하였다.

공식적인 최초 검토 기간 동안 위원회는 2,200개의 응답을 받았으며 이 가운데 1,700개가 부정적인 형태의 편지들이었다. 그 밖의 응답들은 코볼-80이 그들의 시스템에 설치할 수 있는지의 상세한 영향도 분석에 대한 것이었다. 변환 비용이 코드 한 줄에 적어도 50 센트가 들 것으로 예측되었다. 12개도 채 안 되는 응답에서는 제안된 표준을 선호한다는 의견이었다.

1983년 DPMA는 새로운 표준에 대한 반대를 철회하고 대중이 걱정하는 사항들에 대한 위원회의 응답을 언급하였다. 같은 해에 미국 국립표준국의 연구에 따르면 제안된 표준은 문제점이 거의 없을 것으로 결론을 내렸다.

1985년 말에 ANSI는 개정된 표준을 출판하였다. 60개의 기능들이 변경되거나 사용을 권장하지 않는 쪽으로 바뀌었고 다음과 같은 기능들이 포함되었다:

이 표준은 같은 해에 ISO에 채택되었다.

## 코볼 2002 및 객체 지향 코볼
1990년대 초에 완전한 리비전의 차기 코볼에 객체 지향을 추가하는 작업이 시작되었다.

후지쯔/GT소프트웨어, 마이크로 포커스, 레인코드는 닷넷 프레임워크를 대상으로 한 객체 지향 코볼 컴파일러를 도입하였다.

기타 수많은 기능들이 있었으며, 이 가운데 다수가 CODASYL COBOL Journal of Development since 1978에 언급되었고 코볼-85에 포함될 기회는 놓치게 되었다. 이러한 다른 기능들은 다음을 포함한다:

3개의 정정 사항이 표준에 출판되었다.

## 코볼 2014
2003년과 2009년 사이에 3개의 기술 보고서가 생산되었으며, 코볼을 위한 오브젝트 완성, XML 처리, 콜렉션 클래스를 기술하고 있다.

코볼 2002의 지원 수준은 매주 낮았다. 즉, 이 표준을 온전히 지원하는 컴파일러가 전무했다. 마이크로 포커스는 그 이유를 새로운 기능에 대한 사용자 수요가 적고 컴파일러 적합성을 테스트하는데 쓰였던 미국 국립표준기술연구소 테스트 제품군이 철폐되었기 때문으로 보았다. 표준화 과정 또한 속도가 느렸고 자원이 부족했다.

코볼 2014는 다음의 변경 사항을 포함한다:

## 레거시
코볼 프로그램들은 정부와 기업체에 고루 사용되며 z/OS, VME, 유닉스, 윈도우와 같은 다양한 운영 체제에서 구동된다. 1997년 가트너 그룹은 전 세계 비즈니스의 80%가 200,000,000,000줄 이상의 코드의 코볼을 실행하였고 한 해에 5,000,000,000줄 이상이 작성되고 있다고 보고했다.

20세기 말 무렵, 2000년 문제 해결을 위해 코볼 프로그래밍 노력이 상당 부분 집중되었으며 가끔은 10년 전에 시스템을 개발했던 동일 프로그래머들에 의해 수행되었다. 코볼 코드를 고치는데 필요한 일정 수준의 노력이 상당량의 비즈니스 지향 코볼에 전가되었는데, 사무 응용 프로그램들이 날짜를 사용하는 정도가 심했기 때문이다. 그 외에 고정 길이 데이터 필드에도 영향을 주었다.

2006년과 2012년에 컴퓨터월드 조사에 따르면 조직 중 60%가 코볼을  사용하였으며 코볼은 자사 내부 소프트웨어 다수에 사용되었다.