<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://ko.techpedia.wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99_%EA%B8%B0%EC%B4%88</id>
	<title>컴퓨터 과학 기초 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://ko.techpedia.wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99_%EA%B8%B0%EC%B4%88"/>
	<link rel="alternate" type="text/html" href="https://ko.techpedia.wiki/index.php?title=%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99_%EA%B8%B0%EC%B4%88&amp;action=history"/>
	<updated>2026-05-07T11:01:40Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.7</generator>
	<entry>
		<id>https://ko.techpedia.wiki/index.php?title=%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99_%EA%B8%B0%EC%B4%88&amp;diff=180&amp;oldid=prev</id>
		<title>LunaStev: 새 문서: == 개요 == &#039;&#039;&#039;컴퓨터 과학 기초&#039;&#039;&#039;(Fundamentals of Computer Science)는   컴퓨터 시스템의 동작 원리, 데이터 처리 방식, 논리 구조, 알고리즘 설계 등   정보 처리를 위한 과학적 이론과 원리를 다루는 학문적 기반이다.    이 분야는 하드웨어와 소프트웨어의 상호작용, 계산 이론, 프로그래밍 언어 설계,   운영체제, 네트워크, 인공지능 등 현대 정보 기술의 모든 핵심 분야의...</title>
		<link rel="alternate" type="text/html" href="https://ko.techpedia.wiki/index.php?title=%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99_%EA%B8%B0%EC%B4%88&amp;diff=180&amp;oldid=prev"/>
		<updated>2025-11-08T13:06:01Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == 개요 == &amp;#039;&amp;#039;&amp;#039;컴퓨터 과학 기초&amp;#039;&amp;#039;&amp;#039;(Fundamentals of Computer Science)는   컴퓨터 시스템의 동작 원리, 데이터 처리 방식, 논리 구조, 알고리즘 설계 등   정보 처리를 위한 과학적 이론과 원리를 다루는 학문적 기반이다.    이 분야는 하드웨어와 소프트웨어의 상호작용, 계산 이론, 프로그래밍 언어 설계,   운영체제, 네트워크, 인공지능 등 현대 정보 기술의 모든 핵심 분야의...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 개요 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;컴퓨터 과학 기초&amp;#039;&amp;#039;&amp;#039;(Fundamentals of Computer Science)는  &lt;br /&gt;
컴퓨터 시스템의 동작 원리, 데이터 처리 방식, 논리 구조, 알고리즘 설계 등  &lt;br /&gt;
정보 처리를 위한 과학적 이론과 원리를 다루는 학문적 기반이다.  &lt;br /&gt;
&lt;br /&gt;
이 분야는 하드웨어와 소프트웨어의 상호작용, 계산 이론, 프로그래밍 언어 설계,  &lt;br /&gt;
운영체제, 네트워크, 인공지능 등 현대 정보 기술의 모든 핵심 분야의 근간을 이룬다.&lt;br /&gt;
&lt;br /&gt;
컴퓨터 과학의 기초는 다음 세 가지 축으로 나뉜다:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;이론적 기반&amp;#039;&amp;#039;&amp;#039; – 계산 가능성, 알고리즘, 논리, 오토마타 등  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;시스템 기반&amp;#039;&amp;#039;&amp;#039; – 하드웨어 구조, 운영체제, 네트워크 등  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;응용 기반&amp;#039;&amp;#039;&amp;#039; – 프로그래밍, 데이터베이스, 인공지능, 소프트웨어 공학 등  &lt;br /&gt;
&lt;br /&gt;
이 세 영역은 상호 보완적으로 작동하며, 컴퓨팅의 “사고 구조”를 형성한다.&lt;br /&gt;
&lt;br /&gt;
== 역사 ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1936년&amp;#039;&amp;#039;&amp;#039; – [[앨런 튜링]]이 “튜링 기계” 개념 발표 → 계산 가능성 이론의 시작  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1945년&amp;#039;&amp;#039;&amp;#039; – [[존 폰 노이만]]이 “Stored-Program Architecture” 제안  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1950년대&amp;#039;&amp;#039;&amp;#039; – 최초의 프로그래밍 언어([[FORTRAN]], [[LISP]]) 등장  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1960년대&amp;#039;&amp;#039;&amp;#039; – 운영체제, 컴파일러 이론, [[Unix]] 개발  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1970년대&amp;#039;&amp;#039;&amp;#039; – [[C 언어]], [[TCP/IP]], [[데이터베이스 이론]] 확립  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1980~1990년대&amp;#039;&amp;#039;&amp;#039; – [[객체 지향 프로그래밍]], [[인터넷]], [[인공지능]] 발전  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;2000년대 이후&amp;#039;&amp;#039;&amp;#039; – [[클라우드 컴퓨팅]], [[머신러닝]], [[양자 컴퓨팅]] 등 확장  &lt;br /&gt;
&lt;br /&gt;
== 주요 하위 분야 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:100%;&amp;quot;&lt;br /&gt;
! 분야 !! 설명 !! 대표 주제&lt;br /&gt;
|-&lt;br /&gt;
| 이론 컴퓨터 과학 || 계산의 수학적 원리를 연구 || [[오토마타 이론]], [[계산 복잡도]], [[형식 언어]], [[수리논리학]]&lt;br /&gt;
|-&lt;br /&gt;
| 알고리즘 및 자료구조 || 효율적인 문제 해결 절차 설계 || [[정렬 알고리즘]], [[그래프 이론]], [[트리]], [[해시 테이블]]&lt;br /&gt;
|-&lt;br /&gt;
| 컴퓨터 구조 || 하드웨어의 동작과 구성 원리 연구 || [[CPU]], [[메모리]], [[입출력 시스템]], [[파이프라인]]&lt;br /&gt;
|-&lt;br /&gt;
| 운영체제 || 자원 관리 및 하드웨어 제어 || [[프로세스]], [[스케줄링]], [[메모리 관리]], [[파일 시스템]]&lt;br /&gt;
|-&lt;br /&gt;
| 네트워크 || 시스템 간 통신 구조 || [[TCP/IP]], [[라우팅]], [[보안 프로토콜]]&lt;br /&gt;
|-&lt;br /&gt;
| 프로그래밍 언어 || 언어 설계 및 실행 모델 연구 || [[컴파일러]], [[인터프리터]], [[타입 시스템]], [[함수형 프로그래밍]]&lt;br /&gt;
|-&lt;br /&gt;
| 데이터베이스 || 데이터 저장 및 질의 구조 || [[SQL]], [[정규화]], [[트랜잭션]], [[NoSQL]]&lt;br /&gt;
|-&lt;br /&gt;
| 소프트웨어 공학 || 대규모 시스템 설계 및 유지보수 || [[객체 지향 설계]], [[테스팅]], [[버전 관리]]&lt;br /&gt;
|-&lt;br /&gt;
| 인공지능 || 지능적 문제 해결 및 학습 시스템 || [[머신러닝]], [[딥러닝]], [[자연어 처리]], [[강화학습]]&lt;br /&gt;
|-&lt;br /&gt;
| 보안 및 암호학 || 정보 보호 및 인증 기술 || [[대칭키 암호]], [[공개키 암호]], [[SSL/TLS]], [[블록체인]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 계산 이론 ==&lt;br /&gt;
계산 이론은 “무엇이 계산 가능한가”를 다루는 학문이다.  &lt;br /&gt;
이는 현대 컴퓨터 과학의 철학적·논리적 기초로 여겨진다.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:100%;&amp;quot;&lt;br /&gt;
! 개념 !! 설명 !! 예시&lt;br /&gt;
|-&lt;br /&gt;
| [[튜링 기계]] || 계산의 이론적 모델 || 결정 가능 문제 / 불가능 문제 정의  &lt;br /&gt;
|-&lt;br /&gt;
| [[오토마타 이론]] || 입력과 상태 전이로 계산을 설명 || [[유한 오토마타]], [[스택 오토마타]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[계산 복잡도 이론]] || 알고리즘의 시간·공간 효율성 분석 || [[P vs NP 문제]], [[Big-O 표기법]]  &lt;br /&gt;
|-&lt;br /&gt;
| [[형식 언어 이론]] || 프로그래밍 언어와 구문 구조 연구 || [[BNF]], [[정규식]]  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 하드웨어 기초 ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;중앙처리장치(CPU):&amp;#039;&amp;#039;&amp;#039; 연산과 제어 중심  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;메모리 구조:&amp;#039;&amp;#039;&amp;#039; RAM, ROM, 캐시 계층  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;버스 아키텍처:&amp;#039;&amp;#039;&amp;#039; 데이터, 주소, 제어 버스  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;저장장치:&amp;#039;&amp;#039;&amp;#039; HDD, SSD, NVMe  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;입출력 장치:&amp;#039;&amp;#039;&amp;#039; 키보드, 디스플레이, 네트워크 어댑터  &lt;br /&gt;
&lt;br /&gt;
== 소프트웨어 기초 ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;운영체제:&amp;#039;&amp;#039;&amp;#039; 하드웨어 추상화 및 자원 관리  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;프로그래밍 언어:&amp;#039;&amp;#039;&amp;#039; 알고리즘 표현 및 실행 수단  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;컴파일러:&amp;#039;&amp;#039;&amp;#039; 고급 언어를 기계어로 변환  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;알고리즘:&amp;#039;&amp;#039;&amp;#039; 문제 해결 절차와 논리  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;데이터 구조:&amp;#039;&amp;#039;&amp;#039; 효율적 데이터 표현 및 조작  &lt;br /&gt;
&lt;br /&gt;
== 프로그래밍 언어의 분류 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:100%;&amp;quot;&lt;br /&gt;
! 패러다임 !! 대표 언어 !! 설명&lt;br /&gt;
|-&lt;br /&gt;
| 명령형 || [[C (프로그래밍 언어)]], [[Pascal]], [[Rust]] || 상태 변화 중심의 절차적 접근  &lt;br /&gt;
|-&lt;br /&gt;
| 객체 지향 || [[C++]], [[Java]], [[Python]] || 데이터와 행동의 캡슐화  &lt;br /&gt;
|-&lt;br /&gt;
| 함수형 || [[LISP]], [[Haskell]], [[F#]] || 수학적 함수 조합을 통한 계산  &lt;br /&gt;
|-&lt;br /&gt;
| 선언형 || [[Prolog]], [[SQL]] || 결과 중심의 기술, 절차 명시 X  &lt;br /&gt;
|-&lt;br /&gt;
| 논리형 || [[Prolog]], [[Mercury]] || 논리적 추론 기반의 질의 처리  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 알고리즘의 기본 개념 ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;입력(Input)&amp;#039;&amp;#039;&amp;#039; – 처리할 데이터  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;출력(Output)&amp;#039;&amp;#039;&amp;#039; – 결과물  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;정확성(Correctness)&amp;#039;&amp;#039;&amp;#039; – 문제 해결 여부  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;효율성(Efficiency)&amp;#039;&amp;#039;&amp;#039; – 시간·공간 복잡도  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;종결성(Finiteness)&amp;#039;&amp;#039;&amp;#039; – 유한 단계 내 종료  &lt;br /&gt;
&lt;br /&gt;
예시:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def factorial(n):&lt;br /&gt;
    if n == 0:&lt;br /&gt;
        return 1&lt;br /&gt;
    return n * factorial(n - 1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 수학적 기반 ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;불 대수(Boolean Algebra):&amp;#039;&amp;#039;&amp;#039; 논리 연산의 수학적 모델  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;이산수학(Discrete Mathematics):&amp;#039;&amp;#039;&amp;#039; 그래프, 조합, 집합, 관계  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;선형대수학:&amp;#039;&amp;#039;&amp;#039; 행렬, 벡터 연산 (그래픽스, AI 등 응용)  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;통계 및 확률:&amp;#039;&amp;#039;&amp;#039; 데이터 과학의 수학적 토대  &lt;br /&gt;
&lt;br /&gt;
== 컴퓨터 과학의 응용 ==&lt;br /&gt;
* [[운영체제]], [[네트워크]], [[데이터베이스]], [[인공지능]], [[보안]], [[그래픽스]], [[컴파일러]], [[웹 개발]], [[임베디드 시스템]] 등  &lt;br /&gt;
* [[로봇공학]], [[양자 컴퓨팅]], [[클라우드 컴퓨팅]], [[사물인터넷]] 등으로 확장  &lt;br /&gt;
&lt;br /&gt;
== 교육 및 학문 ==&lt;br /&gt;
대부분의 대학에서 컴퓨터 과학 기초 과목은 다음과 같은 형태로 구성된다:&lt;br /&gt;
* 컴퓨터 개론 (Introduction to Computer Science)  &lt;br /&gt;
* 프로그래밍 기초 (C, Python 등)  &lt;br /&gt;
* 자료구조 및 알고리즘  &lt;br /&gt;
* 컴퓨터 구조  &lt;br /&gt;
* 운영체제  &lt;br /&gt;
* 네트워크 기초  &lt;br /&gt;
* 데이터베이스 개론  &lt;br /&gt;
* 소프트웨어 공학 기초  &lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
* [[컴퓨터 구조]]  &lt;br /&gt;
* [[운영체제]]  &lt;br /&gt;
* [[네트워크]]  &lt;br /&gt;
* [[프로그래밍 언어]]  &lt;br /&gt;
* [[알고리즘]]  &lt;br /&gt;
* [[이산수학]]  &lt;br /&gt;
* [[데이터베이스]]  &lt;br /&gt;
* [[인공지능]]  &lt;br /&gt;
* [[튜링 기계]]  &lt;br /&gt;
* [[소프트웨어 공학]]  &lt;br /&gt;
&lt;br /&gt;
== 참고 문헌 ==&lt;br /&gt;
* Donald E. Knuth, &amp;#039;&amp;#039;The Art of Computer Programming&amp;#039;&amp;#039;  &lt;br /&gt;
* Andrew S. Tanenbaum, &amp;#039;&amp;#039;Structured Computer Organization&amp;#039;&amp;#039;  &lt;br /&gt;
* Alfred Aho et al., &amp;#039;&amp;#039;Compilers: Principles, Techniques, and Tools&amp;#039;&amp;#039;  &lt;br /&gt;
* Thomas H. Cormen et al., &amp;#039;&amp;#039;Introduction to Algorithms (CLRS)&amp;#039;&amp;#039;  &lt;br /&gt;
* David Patterson &amp;amp; John Hennessy, &amp;#039;&amp;#039;Computer Organization and Design&amp;#039;&amp;#039;  &lt;br /&gt;
* CS50 Lecture Notes – Harvard University  &lt;br /&gt;
* Coursera: “Foundations of Computer Science”, University of London, 2021&lt;/div&gt;</summary>
		<author><name>LunaStev</name></author>
	</entry>
</feed>