컴퓨터 구조란 무엇인가?
설명하기 앞서 컴퓨터 구조란 단어를 이루고 있는 컴퓨터(Computer), 구조(Architecture)란 단어를 자세히 파고들어 보자.
Computer은 무엇인가?
컴퓨터 (Computer)는 입력된 데이터를 프로그램의 명령에 따라 처리하여 유용한 정보로 변환, 출력하는 전자 장치로 계산(Compute)에서 시작해 정보 처리 및 저장, 통신까지 담당하는 기계이다.
영문을 그대로 해석해보면 Compute는 "계산하다"라는 의미를 가지고 있는 단어이다.
무엇을 계산하느냐? 말 그대로 입력된 데이터를 프로그램에서 내리는 명령어에 따라 처리한다.
곱하라 하면 곱하고, 더하라고 하면 더한다. 그것이 컴퓨터가 하고 있는 일이자 컴퓨터의 전부라고 할 수 있다.
그럼 Architecture란 무엇인가?
구조 (Architecture)는 대상 시스템의 구조, 구성 요소, 동작 원리, 그리고 이들 간의 관계를 정의한 설계도나 청사진을 의미한다.
(아, 참고로 발음은 "아키텍쳐"이다.)
즉,
컴퓨터 구조란, 쉽게 말해서 컴퓨터가 어떤 방식으로 동작하는지 이해하고, 프로그램을 실행할 때 내부에서 일어나는 사고 흐름을 파악하며, 이를 바탕으로 컴퓨터의 성능을 향상시키기 위한 설계 원리를 연구하는 학문 분야이다.
운영체제(Operating System)이란 무엇인가?
운영체제를 설명하기에 앞서, 먼저 우리가 사용하고 있는 컴퓨터에서 하드웨어와 사용자 사이에 무엇이 있는지 떠올려보자.
우리는 컴퓨터를 사용하기위해 조작하고 있는 장치는 무엇인가?
바로 키보드와 마우스이다.
이를 입력 장치라고 표현한다.
그렇다면 우리가 입력하는 정보를 바탕으로 컴퓨터가 계산한 결과를 실시간으로 확인할 수 있는 장치는 무엇일까?
바로 모니터, 스피커 등이 있다.
이를 출력 장치라고 표현한다.
우리는 이와 같은 입출력 장치를 통해 컴퓨터를 제어하고 우리가 원하는 방향으로 계산할 수 있도록 유도하고 있다.
여기서 한 가지 의문이 생길 수 있다.
우리는 이런 입력 장비를 통해 우리는 CPU에 직접적으로 명령하고 있는가?
그 질문에 대한 대답으로는 "절대 아니다."이다.
사람들은 자연어를 통해 각자의 의사를 표현하고, 그것을 알아 듣지만, 컴퓨터는 우리의 언어인 자연어를 알아듣지 못한다.
왜내하면 컴퓨터는 0과 1로 이루어진 기계어만을 이해하는 기계이기 때문이다.
그렇다면 컴퓨터는 어떻게 우리의 의사를 정확히 이해하고 실행하는가?
그것이 바로 운영체제(OS) 덕분이다.
운영체제는 기계어를 쓰지 못하는 인간과, 인간의 언어를 알아듣지 못하는 컴퓨터 사이에 존재하는 통역사 같은 존재이다.
운영체제가 존재하기에 컴퓨터와 인간은 서로 의사소통을 할 수 있게 되었다.
만약 여기까지의 설명이 다소 어렵게 느껴졌다면, 운영체제(OS)의 대표적인 예시들을 알게 된다면 이해가 쉬워질 것이다.
대표적인 운영체제로는 Windows, macOS, Linux, Android, iOS 등이 존재한다.
그렇다. 우리가 컴퓨터를 맞추고 나서 가장 먼저 깔게 되는 윈도우, 맥 등이 이러한 운영체제였던 것이다.
즉, 우리는 윈도우가 정확히 무엇인지는 몰랐지만, 항상 컴퓨터를 사용하기 위해 이러한 통역사를 준비하고 있었던 것이다.
네트워크
네트워크에는 3가지 핵심 요소가 존재한다.
1. 노드(Node)
- 네트워크에 연결된 장치를 의미한다.
- 예시 : PC, 서버, 스마트폰 등이 있다
2. 링크(Link)
- 장치들을 연결해주는 통신 경로를 의미한다.
- 예시 : 랜선, 광케이블, 무선(Wi-Fi) 등이 있다
3. 프로토클(Protocol)
- 데이터를 어떻게 주고받을지를 사전에 정해놓은 규칙을 의미한다.
- 예시 : TCP/IP, HTTP 등이 있다.
그렇다면 네트워크(Network)란 무엇인가?
네트워크는 이미 많은 사람들이 들어봤을 법한 단어일 것이다.
- Net : 그물
- Work : 구조, 작동, 조직
즉, Network는 "그물처럼 엮인 구조"를 의미하는 단어이다.
우리가 흔히 말하는 네트워크란,
이러한 그물 형태의 구조를 바탕으로 컴퓨터와 같은 장치들이 서로 연결되어 데이터를 주고받을 수 있도록 구성된 시스템을 지칭하는 용어이다.
조금 더 풀어서 설명하자면,
여러 장치(컴퓨터, 서버, 스마트폰 등)가
통신 매체(케이블, 와이파이 등)를 통해 연결되고,
약속된 규칙(프로토콜)에 따라
데이터를 송수신(주고 받고)하는 시스템 구조를 네트워크라고 한다.
자료구조 & 알고리즘
자료구조와 알고리즘은 무엇인가?
자료구조와 알고리즘을 표현할 수 있는 단어가 딱 하나가 있다.
바로 "효율"이다.
효율이란,
들인 노력, 시간, 비용 등의 자원에 비해
얻는 결과나 성과가 얼마나 큰지를 나타내는 개념이다.
자료구조와 알고리즘은 바로 이 효율을 높이기 위해 탄생한 컴퓨터 과학의 핵심 개념이다.
우리가 다루는 데이터의 종류와 양은 매우 방대하다.
만약, 세상에 존재하는 모든 데이터를 당신의 컴퓨터에 저장하고자 한다면, 그것이 가능할까?
단언컨데,
그 어떤 슈퍼 컴퓨터를 가져온다하더라도 현재로서는 불가능할 것이다.
그렇다면 왜 불가능한 것인가?
이유는 간단하다. 우리가 데이터를 저장하고자 하는 공간이 무한하지 않기 때문이다.
데이터는 방대한 반면, 저장할 수 있는 공간과 그것을 다룰 수 있는 공간은 한정적이다.
이 문제를 완전히 해결할 수는 없지만,
어느 정도 완화할 수 있도록 등장한 분야가 바로 자료구조와 알고리즘이다.
자료구조와 알고리즘은 한정된 공간과 자원을 사용하여 최대한 많은 데이터를 효율적으로 저장하고 처리하기 위해 고안된 개념이다.
즉,
- 최대한 많은 데이터를
- 최소한의 낭비로 저장하고
- 빠르고 효율적으로 사용하기 위한 방법
이것이 바로 자료구조와 알고리즘의 존재 이유이다.
조금 더 구체적으로 살펴보면 다음과 같다.
자료구조 (Data Structure) : 데이터 저장 방식
데이터를 어떤 형태로 메모리에 저장할 것인가?
대표적인 예시는 다음과 같다.
- 배열(Array)
- 연결 리스트(Linked List)
- 스택(Stack), 큐(Queue)
- 트리(Tree), 그래프(Graph)
같은 데이터라 하더라도,
어떤 자료구조를 선택하느냐에 따라 접근 속도와 사용 방식은 크게 달라진다.
알고리즘 (Algorithm) : 데이터 처리 절차
저장된 데이터를 어떤 순서와 방법으로 처리할 것인가?
대표적인 예시는 다음과 같다.
- 정렬 알고리즘
- 탐색 알고리즘
- 재귀, 반복 처리
알고리즘은 자료구조 위에서 동작하는 논리적인 처리 절차이며,
자료 구조 없이는 효율적인 알고리즘도 존재할 수 없다.
데이터베이스(Data Base)
데이터베이스란 무엇인가?
데이터베이스(Database, DB)는 방대한 양의 데이터를 효율적으로 저장하고, 빠르게 검색하기 위해 사용되는 시스템이다.
단순히 데이터를 파일 형태로 저장하는 것과 달리, DB는 데이터를 구조화하여 관리하고,
필요한 데이터를 조건에 따라 빠르게 찾아낼 수 있도록 설계되어 있다.
왜 데이터베이스가 필요한가?
프로그램의 규모가 작을 때는 파일이나 메모리만으로도 데이터를 관리할 수 있다.
하지만 데이터의 양이 많아지고, 동시에 여러 사용자가 접근하는 상황이 되면 단순한 방식으로는 한계에 부딪히게 된다.
이러한 문제를 해결하기 위해 등장한 것이 데이터베이스이다.
데이터베이스의 핵심 역할
데이터베이스는 다음과 같은 역할을 수행한다.
- 방대한 데이터의 저장
- 원하는 데이터를 빠르게 검색
- 데이터의 무결성 유지
- 다수 사용자의 동시 접근 처리
게임 서버에서의 데이터베이스 활용
게임 서버에서는 데이터베이스가 거의 필수적으로 사용된다.
예를 들어,
- 유저 프로필 정보
- 캐릭터 및 아이템 정보
- 플레이 기록 및 로그 데이터
와 같은 정보들은 게임이 종료되더라도 유지되어야 하며,
다수의 유저가 동시에 접근하더라도 안정적으로 처리되어야 한다.
이러한 요구사항을 충족시키기 위해 게임 서버는 데이터베이스를 통해 데이터를 저장하고 관리한다
'컴퓨터과학(CS) > CS개념 정리' 카테고리의 다른 글
| 인코딩(Encoding)과 디코딩(Decoding) (0) | 2026.02.05 |
|---|---|
| 컴파일 언어와 인터프리터 언어란? (0) | 2026.01.31 |
| 빌드(Build) 과정 순서 (0) | 2026.01.27 |
