전공과목 정리/컴퓨터과학의이해 13

[컴퓨터과학의이해] 계산 이론 (12장)

교재 : 컴퓨터 과학 총론 (13th Edition) (책으로 공부하며 작성한 글입니다.) 1. 함수와 함수의 계산 - 수학에서 함수(function)는 가능한 입력 값의 집합과 출력 값의 집합 사이에서 하나의 가능한 입력에는 하나의 출력만이 배정되는 대응 관계를 말한다. - 주어진 입력에 대해 함수가 배정하는 출력을 결정하는 과정을 함수의 계산이라 부른다. - 수학에서 도출된 중요한 결론 중 하나는 어떤 함수들은 너무 복잡해서 이들의 경우 입력 값에 기초하여 출력을 결정하기 위해 사용할 수 있는 잘 정의된 단계 과정이 존재하지 않는다는 것이다. -> 계산 불가능한 함수 2. 튜링 기계 (Turing machine) 1) 튜링 기계의 원리 - 읽기/쓰기 헤드를 사용하여 테이프 상에 기호를 읽고 쓸 수 있..

[컴퓨터과학의이해] 컴퓨터 그래픽스 (10장)

교재 : 컴퓨터 과학 총론 (13th Edition) (책으로 공부하며 작성한 글입니다.) 1. 컴퓨터 그래픽스의 범위 - 2D 그래픽에서는 이미지 생성을 다루고, 영상처리(image processing)에서는 이미지 분석을 다룬다. - 2D 그래픽에서는 2차원 모양을 이미지로 변환시키는데, 3D 그래픽에서는 3차원 모양을 이미지로 변환시킨다. 2. 3D 그래픽 개요 - 과정 : 이미지에 대한 모델링, 렌더링, 화면표시 (1) 모델링 디지털 인코딩된 데이터와 알고리즘으로부터 3D 그래픽 장면이 구축된다. (2) 렌더링 해당 장면 안의 물체들이 지정된 이치의 카메라에서 만들어진 사진에서 어떻게 나타날지 계산함으로써 그 장면에 대한 2차원 이미지를 생성한다, 장면 안의 물체들에 대해 투상 평면(project..

[컴퓨터과학의이해] 인공지능 (11장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다. ) 1. 지능과 컴퓨터 인공지능(Artificial Intelligence ; AI) : 사람의 개입 없이 복잡한 작업을 수행할 수 있는 자율 컴퓨터의 구축을 목표로 하는 컴퓨터 과학 분야 1) 지능적 에이전트 - 에이전트 (agent) : 주변 환경으로부터의 자극에 반응하는 장비(device) - 대부분의 에이전트는 주변 환경으로부터 데이터를 받아들이기 위한 센서(sensor)와 주변 환경에 영향을 미치기 위해 사용할 수 있는 액추에이터(actuator)를 가지고 있다. - 인공지능 분야의 많은 연구는 지능적으로 행동하는 에이전트의 구축과 관련되어 있다. - 에이전트가 학습능력을 갖추고 있어 그 반응은..

[컴퓨터과학의이해] 데이터베이스 시스템 (9장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다. ) 1. 데이터베이스 기초 데이터베이스(database)라는 용어는 항목들 사이에 여러 개의 내부 링크가 있어서 여러 관점에서 접근할 수 있다는 점에서 다차원적인 데이터 집합을 지칭한다. 데이터베이스는 정보를 한 가지 관점으로만 제시한다는 점에서 일차원적인 저장 시스템이라고 할 수 있고 때로 단층 파일(flat file)이라 불리는 전통적인 파일 시스템과 대비된다. 1) 데이터베이스 시스템의 중요성 - 데이터베이스의 등장 어떤 기관이 필요로 하는 정보의 많은 부분은 기관 내의 여러 곳에 복제된다. 서로 연관된 항목들이 별도의 시스템에 저장된다. 데이터베이스 시스템은 특정 기관에서 저장하고 유지하는 정보를..

[컴퓨터과학의이해] 데이터 추상화 (8장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다. ) 1. 기본 데이터 구조 1) 배열 - 배열 (array) : 그 안의 항목이 모두 동일한 타입인 직사각형 모양의 데이터 블록 -집합체 타입(aggregate type) : 타입과 크기가 다를 수 있는 데이터 항목(필드, field) 블록 2) 리스트, 스택, 큐 - 리스트 (list) : 기본 데이터 구조로 순차적으로 배열되어 있는 항목들의 집합 리스트의 시작은 리스트 헤드(head), 리스트의 다른 쪽 끝은 테일(tail)이라 부른다. 리스트와 그 변형들의 기본 개념은 알고리즘들에서 발견되는 가장 보편적인 데이터 추상화일 것이다. - 스택 (stack) : 헤드에서만 항목을 제거하거나 합입할 수 있..

[컴퓨터과학의이해] 소프트웨어 공학 (7장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다. ) 1. 소프트웨어 공학 개관 - 소트트웨어 공학은 대규모의 복잡한 소프트웨어 시스템의 개발에 지침이 되는 원리들을 모색하는 컴퓨터과학의 한 분야이다. - 소프트웨어의 특성과 다른 공학 분야의 특성 사이의 차이 사전 제작된 범용 컴포넌트들을 이용하여 시스템을 구축하는 것 (일반 공학의 경우 "규격 부품"을 기초 요소로 사용하는 것은 대단히 유용하지만, 소프트웨어 컴포넌트는 특정 응용 분야에 기초하고 있어서 범용 컴포넌트로서의 유용성이 제한된다.) 소프트웨어의 경우 그 성질을 측정하기 위해 사용될 수 있는 측도(metric)라고 불리는 정량적 기법이 없다. - 소프트웨어 공학 연구 실용 연구자 : 바로 응..

[컴퓨터과학의이해] 프로그래밍 언어 (6장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다. ) 1. 역사적 고찰 1) 초창기 언어 - 컴퓨터를 위한 프로그램은 숫자들로 인코딩된 일련의 명령으로 이루어지는데, 이러한 인코딩 체계를 기계어 (machine language)라 부른다. - 디버깅 (debuging) : 프로그램을 완성하기 위해 오류를 찾아 고치는 과정 (1) 어셈브러 어셈블러 (asembler) : 기호 표현을 기계어 명령으로 변환하는 프로그램 어셈블리어 (assembly language) : 프로그램 표현에 사용되는 기호 체계 어셈블리 언어는 기계어에 비해 여러 가지 이점을 갖고 있지만, 궁극적인 프로그래밍 환경을 제공하기에는 여전히 많이 부족하다. 어셈블러 언어로 작성된 프로그램..

[컴퓨터과학의이해] 알고리즘 (5장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다. ) 1. 알고리즘의 개념 1) 알고리즘의 정형적 정의 알고리즘 : 모호하지 않고 실행 가능한 단계들의 집합이며, 단계들에는 순서가 정해져 있고, 종료되는 포르세르를 정의함. 2) 알고리즘의 추상적 특성 프로그램 : 알고리즘의 표현 프로세스 : 알고리즘의 실행 활동 2. 알고리즘의 표현 1) 프리미티브 - 프리미티브 (primitive) : 알고리즘 표현에 사용할 잘 정의된 기초 요소 - 프리미티브를 정확히 정의하게 되면 많은 모호성 문제가 해결되며, 프리미티브를 사용하여 알고리즘을 기술하도록 요구함으로써 세부사항 서술 정도의 일관성을 확립할 수 있다. - 프리미티브의 집합과 더 복잡한 개념을 표현하기 위..

[컴퓨터과학의이해] 네트워킹과 인터넷 (4장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다. ) 1. 네트워크 기초 - 네트워크 (network) : 컴퓨터 간에 데이터를 전송할 수 있도록 컴퓨터 시스템들을 연결하는 것 - 응용을 지원하기 위해 필요한 하부 소프트웨어는 간단한 유틸리티 패키지에서 복잡한 네트워크 차원의 인프라를 제공하는 네트워크 소프트웨어 시스템으로 발전하였다. 1) 네트워크의 분류 - 네트워크의 크기(통신 간의 거리) (1) 개인 통신망 (Personal Area Network ; PAN) : 수 미터 이내의 짧은 거리의 통신 (2) 근거리 통신망 (Local Area Network ; LAN) : 하나의 건물이나 건물 군 안의 컴퓨터들로 이루어짐 (3) 광역도시 통신망 (Me..

[컴퓨터과학의이해] 운영체제 (3장)

교재 : 컴퓨터 과학 총론 (13th Edition) (배운 내용을 책으로 복습하며 작성한 글입니다.) 1. 운영체제의 발전 * 운영체제(operating system) : 컴퓨터의 전반적인 운영을 제어하는 소프트웨어 ex) 마이크로소프트사의 윈도우, 유닉스, 리눅스 ** 운영체제는 사용자가 파일을 저장하거나 불러올 수 있는 수단을 제공하며, 사용자가 프로그램 실행을 요청할 때 사용할 수 있는 인터페이스를 제공하고, 요청된 프로그램을 실행하기 위한 환경을 제공한다. - 운영체제는 프로그램 준비 작업을 쉽게만들고 작업들 사이의 전환을 단순화시키기 위한 시스템으로 출발하였다. - 초창기 운영체제에서 개발된 중요한 기능 중 하나는 사람들이 컴퓨터실을 드나들 필요가 없도록 사용자와 장비를 분리시킨 것이다. - ..