본문 바로가기
IT/CS 노트

컴퓨터 과학의 정의와 발전과정

by hatnim 2022. 10. 6.
반응형

1.  컴퓨터 과학 정의

컴퓨터 과학이란 하드웨어 및 소프트웨어, 이론 및 알고리즘 기반 그리고 정보 처리를 위한 용도를 포함한 컴퓨터 및 컴퓨팅 연구를 말합니다. 컴퓨터 과학 분야에는 알고리즘 및 데이터 구조 연구, 네트워크 및 컴퓨터 설계, 인공 지능, 데이터 및 정보 과정 모델링 등이 있습니다. 컴퓨터 과학은 수학과 공학의 기초 중 일부를 사용하여 확률 및 통계, 대기 이론, 전자 회로 설계와 같은 조금 다른 영역의 기술까지 포함하고 있습니다. 컴퓨터 과학은 새로운 알고리즘과 정보 구조 및 컴퓨터 구조의 개념화, 설계, 측정 그리고 개선 과정에서 가설 테스트를 많이 할 뿐만 아니라 실험도 많이 사용합니다. 컴퓨터 과학은 컴퓨터 공학, 컴퓨터 과학, 소프트웨어 공학, 정보 기술, 정보 시스템과 같은 제각각이지만 상호 관련된 학문의 일부로 간주됩니다. 이러한 학문 계열은 전체적으로 컴퓨팅 분야라고 부릅니다. 이 5개의 분야는 컴퓨팅이 학문연구의 대상이라는 주제에서 연관되어 있기도 하지만 각각의 커리큘럼과 독립적인 연구 관점이 존재하기 때문에 별개인 것을 인지해야 합니다. 컴퓨터 과학의 하위 분야에는 주로 컴퓨터 구조, 프로그래밍 언어와 소프트웨어의 개발에 대한 연구가 있습니다. 그러나 여기에는 계산과학, 그래픽 및 시각화, 데이터베이스, 정보 시스템 등에 관한 사회적 및 전문적인 문제도 들어있습니다. 여기서, 계산 과학이란 단어가 낯설 수도 있습니다. 이것은 과학적 데이터 모델링을 위한 알고리즘 기술을 사용하는 연구를 말합니다. 이러한 하위 분야 중에서 일부는 생물 정보학과 같은 다른 현대의 분야와 겹쳐 보일 수도 있습니다. 이렇게 보이는 이유는 컴퓨터 과학자들이 해당하는 분야의 많은 학제 간 연결을 알고 이에 맞는 행동의 경향의 결과입니다. 컴퓨터 수학은 복잡한 주제이고 사람에게 도전적인 과제일 수 있습니다. 그렇지만 많은 사람들이 도전하려고 하는 이유는 이 주제의 성공 여부가 해당 분야에 얼마나 많은 시간과 노력을 쏟았는지가 바로 알 수 있다는 점입니다. 컴퓨터 수학 개념을 마스터하기 위해 많은 노력이 필요하지만 누구나 배울 수 있다는 점도 매력적입니다. 사물이 어떻게 작동하는지 호기심을 갖고 많은 시행착오를 통해 해결하는 것을 즐긴다면 컴퓨터 과학에 도전하는 것을 추천합니다. 

2. 발전 과정

컴퓨터 과학은 연구 대상인 디지털 컴퓨터가 약 20년 전에 발명되었다는 사실이 있음에도 1960년대 초에 독립적인 학문으로 주목받았습니다. 컴퓨터 과학의 근간은 주로 수학, 물리학, 전기공학 그리고 경영 정보시스템의 분야에 속해있습니다. 수학은 컴퓨터 개발의 핵심입니다. 자세히 말하자면, 모든 정보를 0과 1의 시퀀스로 표현할 수 있다는 것과  모든 정보가 '저장된 프로그램'이라는 것에서 수학은 추상적인 개념의 핵심이 된다는 말입니다. 우리에게 익숙한 십진수 시스템의 숫자는 0에서 9까지의 숫자를 사용하여 표현하는 것을 말합니다. 이와 같은 방식으로 이진수 시스템의 0과 1의 시퀀스로 표현된다는 것입니다. 이러한 두 상태는 2진수 또는 비트로 자연스럽게 연결되는 전기 및 전자 장치에서 실현될 수 있으며 컴퓨터 시스템에서 데이터 저장과 전송의 기본 단위가 될 만큼 중요한 아이디어가 됩니다. 1950년대에 대부분의 컴퓨터 이용자는 대기업과 과학 연구실에서 일했습니다. 전자 그룹은 컴퓨터를 사용해 대량의 기업의 데이터를 관리합니다. 그러나 후자의 그룹은 컴퓨터를 사용하여 복잡한 수학적 계산을 수행하는 것을 더 쉽게 계산하는데 도움이 됩니다. 두 그룸 모두 0과 1의 기게어로 프로그램을 작성하는 것은 신뢰할 수 없다는 것을 배웠습니다. 이러한 발견으로 1950년대 초에 어셈블리 언어의 개발이 탄생했으며 이를 통해 프로그래머는 명령과 변수에 기호를 사용할 수 있게 됐습니다. 또 다른 프로그램은 이런 기호 프로그램을 컴퓨터가 수행할 수 있는 단계로 변환했습니다. 링크 로더로 알려진 시스템 소프트웨어 요소는 조립된 작은 코드들을 결합하고 컴퓨터 메모리에 로딩하여 실행하기 위해 개발되었습니다. 이 작은 코드들을 연결하는 개념은 작업을 수행하기 위해 필요한 프로그램의 '라이브러리'를 사용할 수 있도록 하기 때문에 중요합니다. 이것이 바로 소프트웨어 공학이라는 컴퓨터 과학의 발전의 첫 단계라고 할 수 있습니다. 1950년대 후반에는 어셈블리 언어가 사용하기 복잡하다는 이유로 더 쉽고 빠른 프로그래밍을 하기 위해 고급 언어의 개발을 연구했습니다. 이런 고급 언어에는 고급 언어를 기계어로 번역하는 컴파일러라고 하는 다른 소프트웨어가 필요했습니다. 고급 언어는 기계어보다 자연어에 더 가까운 언어를 말합니다. 프로그래밍 언어가 더 강력해짐과 동시에 고품질 기계어 코드를 만들고 실행하는 속도와 용량 소비 측면에서 효율적인 컴파일러는 만드는 것은 컴퓨터 과학의 어려운 문제로 부상되었습니다. 고급 언어의 설계와 구현은 프로그래밍 언어라고 하는 컴퓨터 과학의 핵심이라고 할 수 있습니다.

반응형

댓글