[컴퓨터와 자료] 3. 컴퓨터 과학이란?

컴퓨터과학

2021. 2. 20.

앞서 살펴본 정의와 같이, 컴퓨터는 '프로그램을 통해서 자료를 입력하여 처리, 저장, 검색, 출력해 낼수 있는 전자적 장치'이다.

 

따라서 컴퓨터과학은 컴퓨터의 본질에 관련되어

자료의 획득(acquisition), 표현(representation), 처리(processing), 저장(storage), 통신(communication), 접근(access)을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 학문 분야이다.

 

 

이 중 가장 중요한 목적인 자료 처리(processing)를 위해서는 프로그램이 필요하고,

프로그램을 작성하려면 java와 같은 프로그래밍 언어로 명령어를 나열해야 한다.

우리가 프로그램을 만들 때는 어떤 명령어를 어떻게 나열할 것인지

즉, 문제를 어떤 절차와 방식으로 풀어 나갈 것인가에 대한 기술(description)이 선행되어야 한다.

이와 같이 문제 풀이 과정을 절차적으로 기술한 것이 바로 알고리즘(algorithm)이다.

바꿔 말하자면 프로그램이란 컴퓨터가 이해할 수 있는 형태로 표현된 알고리즘이다.

 

자료처리 관점에서 컴퓨터과학을 이해해보자면

컴퓨터과학이란, 컴퓨터 자체, 자료, 프로그램, 알고리즘 분야의 연구를 통해 효율적인 자료처리를 위한 제반 기술과 방법들을 제공하기 위한 분야라고 볼 수 있다.

 

컴퓨터과학에서 주로 다루는 문제들은 크게 두 부류로 나누어진다.

1) 컴퓨터 시스템에 해당되는 문제 : 자료처리를 위한 다양한 구조, 도식, 수단에 대한 것.

2) 컴퓨터 시스템을 활용하기 위한 응용 문제 : 자료처리 업무와 그 처리 절차, 그에 관련된 다양한 표현 방법.

 

이 문제를 해결하기위해 컴퓨터과학 분야의 연구자들은 많은 영역에 걸쳐서 상호 보완적인 연구를 수행한다.

계산 이론 분야, 알고리즘 비교 분석 분야, 프로그래밍 언어 개발 분야, 알고리즘을 응용 분야에 적용하는 연구 등등.

 

이 많은 연구 분야들은 결국 '알고리즘'이 핵심이 된다.

알고리즘의 한계(어떤 문제를 알고리즘 처리로 해결할 수 있을까?)

알고리즘의 분석(서로 다른 알고리즘의 특성을 분석하고 비교)

알고리즘의 개발(을 어떻게 더 쉽게 할까?)

알고리즘의 실행(알고리즘을 어떻게 적용해서 좀 더 발전된 컴퓨터를 만들 수 있을까?)

알고리즘의 표현 및 통신( 기법들을 어떻게 향상시킬 수 있을까?)

 

따라서 컴퓨터과학을 '알고리즘과 관련된 이슈를 다루는 학'이라고 정의할 수도 있다.

 

 

 

* 컴퓨터과학과 컴퓨터공학의 연관성과 차이

 

컴퓨터공학은 가격 대비 성능 특성이 가장 좋은 컴퓨팅 엔진을 만들기 위해 하드웨어와 소프트웨어 요소를 조립하는 방법에 초점을 둠.

컴퓨터과학은 현재의 기술에 덜 의존적인 방법으로 주어진 문제에 대한 해결책의 효율성과 실현 가능성에 초점을 둠.

 

따라서 컴퓨터과학자들은 시스템의 구현과 관련된 상세한 내용을 숨기는 추상화를 통해 작업을 수행하고, 이를 통해 훨씬 복잡한 시스템의 구현과 이해가 가능해졌음.

이런 추상화를 개발하고 구현하고 평가하는 창조적인 과정을 통해 컴퓨터 및 계산의 능력과 환경이 점점 최첨단으로 발전했다.

 

한 마디로 전선을 통해 한 지점으로부터 다른 지점으로 비트가 어떻게 이동하는지 등의 디테일에 신경 쓰지 않고

단지 응용과 문제 해결에만 관심을 두었기 때문에 이렇게 웹이라는 기술이 발전할 수 있었다.

 

즉 컴퓨터과학은 문제 해결에 대한 학문이다.