컴퓨터 과학 또는 전산학이라 불리는 이 학문은 계산 대한 학문이다.
컴퓨터 과학은 다양한 관점에서 볼 수 있는데 알고리즘, 계산, 정보에 대한 이론적인 연구에서부터 소프트웨어와 하드웨어 간의 상호작용으로 계산을 처리하는 과정을 구현에 대한 문제까지 다양한 주제로 이야기 해 볼 수 있다.
컴퓨터 과학은 크게 2개로 나눌 수 있다. 우리가 이론적으로 계산하고 기록하는 알고리즘 등과 같은 이론적으로 다루는 분야가 있고 다른 한편으로는 직관적으로 다룰 수 있는 하드웨어와 소프트웨어의 설계 및 구현과 같은 실용적인 분야가 있다.
컴퓨터의 이용
지구상에서 최초의 컴퓨터는 1946년 ENIAC라는 컴퓨터다. 그 후로 EDSAC, UNIVAC 등 더 진보된 컴퓨터들이 나왔고 그리하여 컴퓨터를 이용한 정보화, 정보산업의 시대가 열리게 되었다. 컴퓨터의 엄청난 수요 확대로 컴퓨터는 초고속으로 성장 이용 범위도 다양하게 쓰이게 되어 현재는 산업사회의 분야뿐만 아니라 일반 가정이나 개인이 쓰고 있기도 하다. 컴퓨터가 본격적으로 산업에 이용되기 위해 시작한 2차 세계 대전 이후이다. 컴퓨터의 발전과 더불어 통신 기술이 함께 진전되면서 컴퓨터는 직접 라인의 일부로 되어 있고, 수치제어 등과 같은 프로세스 제어의 활용 분야를 확대하고 있다. 이러한 발전으로 컴퓨터를 이용하여 공공 서비스가 일체화된 정보통신시스템을 통하여 재료의 구매와 판매 시점에 이르는 전반적인 관리와 전자식 동시 결제 시스템의 구축할 수 있었다.
용어
컴퓨터 과학은 여러 가지로 정의할 수 있는데, 프로그래밍 등 컴퓨터 개발과 응용에 관한 이론적 훈련 교육을 중심으로 광범위한 연구 분야라고 정의할 수 있다.
컴퓨터 과학의 문제점
'컴퓨터 과학'의 본질에 대한 학계의 논쟁은 아직도 떠들썩하다. 맥으로 힐의 '컴퓨터 과학 문헌 안내'를 시작으로 각 출판사가 컴퓨터 과학도로서의 선전에 힘을 쓰고 있는 것도 사실이다. 이러한 것들로 따라오는 '컴퓨터 과학'의 본질은 어떠한 것인가에 대한 문제점에 대한 이야기가 나온다.
컴퓨터의 역사
컴퓨터는 디지털 컴퓨터만 가지고 컴퓨터의 역사라고 할 수는 없다. 예를 들어 주판과 같은 계산을 수행하는 기계는 오래전부터 존재했다. 최초의 계산 기계는 1623년에 만들어졌으며, 그 후에 찰스 배비지가 19세기 초에 차분기관을 만들었다. 그리고 컴퓨터 회사로 유명한 IBM사가 1900년대에 펀치카드시스템을 개발하여 컴퓨터를 이용하여 회계에 관련된 일을 더 효율적으로 처리할 수 있도록 보급하였다. 하지만 초기의 컴퓨터는 단순하게 한 가지의 일만 하는 기계였다.
1940년대에 들어서서 더욱 뛰어나게 개발된 기능을 가진 계산기들이 등장했고 이때부터가 '컴퓨터'가 사람이 아닌 기계를 부르는 용어로 굳어졌다. 컴퓨터가 단순한 숫자 계산보다 더 다양한 기능을 이용하여 산업의 발전에 기여할 능력이 뛰어나다는 것이 알려지면서 '컴퓨터 과학'이라는 분야는 더욱 넓어지기 위해 시작했다. 컴퓨터 과학이 학문으로 인정받기 위해 시작한 건 1960년대에 여러 대학에 컴퓨터 관련 학과와 전공 과정이 생기면서부터이다.
컴퓨터 과학의 다른 분야와의 관계
컴퓨터 하면 가장 많이 알려져 있고 밀접한 관계가 있는 분야는 바로 수학이다. 수학을 기초로 둔 과학의 분야라고 할 수도 있겠다. 그중에서도 가장 많은 영향을 끼친 건 조지 불의 불대수이다. 불대수란 이진법을 기반으로 한 대수학이다. 이것과 같이 체론과 벼슬길은 또한 컴퓨터 과학에 큰 영향을 미쳤다.
컴퓨터 과학의 주요 분야
컴퓨터 과학의 주요 분야매우 많지만 묶으면 수학적 기초 이론, 알고리즘과 자료 구조, 프로그래밍 언어와 컴파일러, 소프트웨어 과학, 통신과 네트워크, 데이터베이스, 인공지능, 컴퓨터 그래픽, 정보보호 등이 있으며 이 안에 또 세부적으로 엄청나게 많은 분야로 주제가 나누어진다. 하나씩 뜯어보면서 정리를 해보자.
컴파일러
특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 바꾸어주는 언어 번역 프로그램을 말한다.
컴파일러는 고급 프로그래밍 언어를 컴퓨터가 이해할 수 있도록 실행 프로그램을 만들기 위해 어셈블리 언어와 같은 저급 프로그래밍 언어로 번역해 주는데 사용된다. 맨 처음의 문서를 원시 코드라 부르고, 출력된 문서를 목적 코드라고 부르는데 목적 코드는 일반적으로 다른 프로그램이나 하드웨어가 처리할 수 있는 형태로 출력되지만 따라서는 사람이 읽을 수 있는 문서 파일이나 그림 파일 등으로 출력하기도 한다. 이러한 원시 코드를 목적코드로 옮기는 과정을 컴파일이라고 한다. 컴파일러와 구분 할 수 있는 것이 하나 있는데 그것은 바로 소스 프로그램을 읽어서 즉시 결과를 출력하는 인터프리터가 있다. 하지만 현대에 들어서는 컴파일러와 인터프리터 사이의 기술적 구분을 없애는 추세인데 이유는 인터프리터가 JIT 컴파일 등의 기술로 실시간 컴파일을 수행하기 때문이다. 컴파일하는 이유는 기계어 프로그램으로 만들어서 컴퓨터가 이해하여 적절한 동작을 하게 만들기 위함이다. 쉽게 말하면 일반적으로 사람이 작성한 원시 코드를 고수준 언어라고 하는데 이것은 인간은 이해할 수가 있지만 컴퓨터는 이러한 코드를 컴파일된 형태가 아니면 이해를 하지 못한다. 그래서 컴파일러라는 프로그램이 꼭 원시 코드를 컴파일하여 목적코드를 만들어 적절하게 컴퓨터를 이용하기 위함이다.
사람이 알아들을 수 있는 언어를 고급 프로그래밍 언어, 컴퓨터와 같이 단순하게 이해하기 위한 언어, 이진법과 같은 0 이루어진 언어를 저급 프로그래밍 언어라고 하기도 한다.
'컴퓨터 과학' 카테고리의 다른 글
소프트웨어 공학 (0) | 2024.01.18 |
---|---|
컴퓨터 해킹에 대하여 (0) | 2024.01.15 |
프로그래밍 언어 (0) | 2024.01.15 |
알고리즘과 자료 구조 - 2 (1) | 2024.01.13 |
알고리즘과 자료구조 (0) | 2024.01.11 |