본문 바로가기
엑셈 경쟁력/전문가 기술기고

IT easy, IT is! | 첫 번째, 컴퓨터와 DBMS의 시작

by EXEM 2017. 7. 25.




-조지 불

 

먼저, 컴퓨터는 계산을 자동화하는 기계로 시작됩니다. 계산의 자동화를 위한 인류의 노력 중 가장 오래된 결과물은 주판입니다. 주판 이후로도 수 많은 계산 자동화를 위한 노력이 있었습니다. 그 중 17세기의 천재 ‘파스칼’의 톱니바퀴도 있습니다. 파스칼은 세무사였던 아버지가 계산의 어려움을 겪는 것을 보고 톱니바퀴를 이용하여 아버지의 계산을 자동화해주었습니다.


현대적 컴퓨터의 기원은 영국의 ‘조지 불’이라는 사람으로부터 시작됩니다. 그는 ‘불 대수’를 창시한 수학자였고, 인간의 지능을 2진법의 논리로 표현할 수 있다고 주장하였습니다. 그로부터 현대 컴퓨터의 수학적인 이론이 시작되었습니다. 불은 수학의 2진법을 사용하여 인간의 복잡한 연산을 다 표현할 수 있다고 제시하였습니다. 『수학의 파노라마』라는 책에서는 이렇게 말합니다.


‘불은 논리를 그저 0과 1 두수, '그리고(and)'와 '또는(or)'과 '~이 아닌(not)'이라는 세 가지 기본 작용에 관련된 단순한 대수학으로 압축하는 데 관심이 있었다.’(p.224)


 


(그림 : 조지 불)




-클로드 섀넌과 전구 회로도


이 ‘불 대수’를 어떻게 물리적으로 구현할 수 있을 것인가에 대해서도 여러가지 아이디어가 나오기 시작했습니다. 그러다 1938년 미국의 천재인 MIT의 ‘클로드 섀넌’이라는 사람이 등장합니다. 불 대수 연산을 전기 스위치를 활용하여 물리적으로 구현할 수 있다고 주장한 것입니다. 스위치가 연결되어야 전구에 불이 들어오는 회로를 이용하여, True/False로 표현하여 불 대수를 구현할 수 있다는 이야기를 석사학위 논문에서 제안하였습니다.





(그림 : 클로드 섀넌(좌)과 전구 회로도(우))




이 제안이 중요한 이유가 있습니다. 지금도 엄청난 속도로 IT 기술이 발전한다고 하는데, 이 시대는 클로드 섀넌의 제언 이후 더 엄청난 속도로 컴퓨터 역사가 발전을 거치게 됩니다. 클로드 섀넌의 아이디어 이후, 1943년~1946년 사이 애니악이 나오게 됩니다. 그리고 포트란이나 코볼과 같은 최초의 컴파일러 랭귀지가 나오고, 1960년대 초반 최초의 DBMS가 나오게 됩니다. 그리고 1973년 E.F.Codd 박사의 관계형 데이터 모델 제안, 1976년 밥 마이너의 오라클 개발 시작과 같은, 혁신의 혁신이 거듭되던 시기가 도래하였습니다. 아예 세상에 존재하지 않았던 개념들이 새롭게 창출되던 창조와 혁신의 시기였습니다.


위에서 말씀 드린 전구 회로에 대해 다시 말씀 드리자면, 그 회로는 AND 연산이고, 직렬의 구조입니다. 이 구조를 병렬의 구조로 바꾸면 OR 연산이 됩니다. 이 두 구조를 섞어서 조금 더 복잡하게 만든 것이 디지털 논리 회로입니다. 또한 전구 회로의 스위치를 물리적으로 누르지 않더라도, 전기의 힘으로 스위치의 역할을 할 수 있게 한 것이 진공관입니다. 진공 상태에서 전기가 통하면 스위치의 역할을 해줍니다. 이 원리는 에디슨이 발명한 것이고, 이를 활용한 것이 진공관 컴퓨터입니다. 그리고 애니악이 바로 이 진공관 컴퓨터입니다.


하지만 이 애니악의 한 가지 안 좋은 점이, 크기가 너무 거대했다는 겁니다. 애니악에는 진공관이 3만여 개 이상이 들어가 있었습니다. 내부에 들어가서 스위치를 꽂아 연결하면 그게 프로그래밍이었고, 진공관이 열을 받아서 갑자기 터지면 또 직접 들어가서 진공관을 갈아 끼워야하는 등의 문제가 있었습니다. 그래서 실리콘 밸리의 ‘윌리엄 쇼클리’라는 사람이 구상을 한 게, 실리콘 등을 조합하여 진공관과 동일하게 전기의 힘으로 스위치를 만들고, 굉장히 작은 사이즈로 만들었던 것이 바로 반도체입니다. 윌리엄 쇼클리는 이 반도체를 만들면서 노벨물리학상을 받게 됩니다. 반도체는 결국 앞선 전구회로를 조그맣게, 여러 개를 넣은 것과 같습니다. 반도체 안에 있는 각 스위치들이 2진법 연산을 진행합니다.




-존 폰 노이만과 찰스 바크만


이 애니악이 만들어질 때 합류했던 사람 중 존 폰 노이만이 있습니다. 애니악이 만들어질 무렵 합류하여 현대 컴퓨터의 메모리를, 입출력구조를 만들고 제시하였습니다. 그래서 현재의 컴퓨터 아키텍처를 존 폰 노이만 아키텍처라고 합니다. 


존 폰 노이만은 프로그래밍을 메모리라는 개념을 도입하여 2진법으로, 예를 들어 ‘10101010’ 같은 방식으로 풀어냈습니다. 그러다 존 폰 노이만의 제자가 그 방식은 너무 어렵다고 하여 간단한 컴퓨터 명령을 만들어냅니다. 예를 들면 ‘10101010’라고 입력하는 대신 ‘move’라고 입력하게 한 것입니다. 이것이 바로 ‘어셈블리어’입니다. 


그런데 이 어셈블리어도 상당히 어려웠습니다 그래서 조금 더 랭귀지를 개발하여 나온 것이 ‘포트란’이고, ‘코볼’인 ‘컴파일러어’였습니다. 이렇게 최초의 컴퓨터는 스위치로, 그 다음은 이진법으로, 그 다음은 어셈블리어로, 그 다음은 포트란, 코볼로 이어지면서 현대 프로그래밍 랭귀지가 나오게 된 것이다.


그 당시에는 DB라는 개념이 없다보니, 프로그래밍을 할 때 데이터를 직접 건드려야 했습니다 그런데 프로그래밍을 그렇게 하다 보면, 여러 명이 동시에 데이터를 건드릴 때 혼선이 빚어지곤 했습니다. 그래서 GE에 근무하던 ‘찰스 바크만’이 아이디어를 냈습니다. 데이터를 프로그래밍, 즉 로직과 분리해내면 되겠다는 생각이었습니다.





(그림 : 존 폰 노이만(좌)과 찰스 바크만(우))




예를 들어, A라는 사원이 올해 일을 열심히 했으니까 내년에 보너스를 20%를 준다는 게 로직이라면, 실제 A 사원의 월급이 데이터라고 할 수 있습니다. 이 로직과 실제 데이터를 분리시키고, 그 중간에 코디네이터를 두어서, 프로그래밍을 짜는 사람은 이 코디네이터한테 ‘A 사원의 인센티브를 20% 올려주세요.’라는 DML, 쉽게 말하면 요즘의 SQL 같은 걸 던지면, 코디네이터가 그걸 일괄적으로 받아서, 데이터베이스를 본인만 건드리게 하는 구조를 생각해낸 것입니다. 이 방식으로 문제는 해결되었고, 이 코디네이터라는 소프트웨어가 바로 DBMS 입니다.


또한 DBMS는 프로그래밍 로직과 데이터 사이에서, 로직에게는 ‘너는 나한테 이야기만 해. 데이터는 직접 건드리지마.’라고 말합니다. 이 때의 이야기가 바로 DML, DDL이고, 현실적으로 SQL입니다.


결국 이 아이디어, 중간에 매니저를 세운다는 아이디어를 활용하여 찰스 바크만이 1960년대에 만든 DBMS의 이름이, IDS입니다. IDS는 현재 역사적으로 최초의 DBMS로 평가 받고 있습니다.

                               







 

댓글