๐พ [CS] ํ๋ก๊ทธ๋จ ์คํ ์๋ฆฌ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด์๋ ์ปดํจํฐ ๊ณผํ(Computer Science)์ ์ดํดํด์ผ ํ ๊น์?
- ํ๋ก๊ทธ๋จ์ ์คํ ์๋ฆฌ๋ฅผ ์์ธํ ์ดํดํ๋ ค๋ฉด ์ปดํจํฐ ๊ณผํ(Computer Science)์ ์ฌ๋ฌ ๊ฐ๋ ๋ค์ ์ดํดํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ์ปดํจํฐ ๊ณผํ(Computer Science)์ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์์ฑ๋๊ณ , ์ปดํ์ผ๋๋ฉฐ, ์คํ๋๋์ง๋ฅผ ์ค๋ช ํ๋ ๋ค์ํ ์๋ฆฌ์ ๊ธฐ์ ์ ๋ค๋ฃน๋๋ค.
- ํ๋ก๊ทธ๋จ์ ์คํ ์๋ฆฌ๋ฅผ ์ดํดํ๊ธฐ ์ํด ํ์ํ ์ปดํจํฐ ๊ณผํ(Computer Science)์ ๊ฐ๋ ๋ค์ ์ปดํจํฐ ์ํคํ ์ณ(Computer Architecture), ์ด์ ์ฒด์ (Operating System, OS), ๋ฐ์ดํฐ ๊ตฌ์กฐ(Data Structure), ์๊ณ ๋ฆฌ์ฆ(Algorithm) ๋ฑ์ด ์์ต๋๋ค.
1๏ธโฃ ํ๋ก๊ทธ๋จ์ ์คํ ์๋ฆฌ.
- ํ๋ก๊ทธ๋จ์ ์คํ ๊ณผ์ ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋จ๊ณ์์๋ถํฐ ํ๋ก๊ทธ๋จ์ด ์ค์ ๋ก CPU์์ ์คํ๋๋ ๋จ๊ณ๊น์ง๋ฅผ ํฌํจํฉ๋๋ค.
- ์ด ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๋จ๊ณ๋ก ๋๋ ์ ์์ต๋๋ค.
1๏ธโฃ ์ฝ๋ ์์ฑ(Programming)
- ๊ฐ๋ฐ์๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ค ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
- ์์ค ์ฝ๋๋ ํ ์คํธ ํ์ผ๋ก ์ ์ฅ๋๋ฉฐ, ์ฌ๋์ด ์ฝ๊ณ ์ดํดํ ์ ์๋ ํํ์ ๋๋ค.
2๏ธโฃ ์ปดํ์ผ ๋๋ ์ธํฐํ๋ฆฌํธ(Compilation or Interpretation)
- ํ๋ก๊ทธ๋จ์ด ์์ฑ๋ ํ, ์ปดํ์ผ๋ฌ(Compiler) ๋๋ ์ธํฐํ๋ฆฌํฐ(Interpreter)๊ฐ ์์ค ์ฝ๋(Source Code)๋ฅผ ๋จธ์ ์ฝ๋(Machine Code)๋ก ๋ณํํฉ๋๋ค.
- ์ปดํ์ผ๋ฌ(Compiler)๋ ์์ค ์ฝ๋๋ฅผ ํ ๋ฒ์ ์ ์ฒด์ ์ผ๋ก ๋ฒ์ญํ์ฌ ์คํ ํ์ผ์ ์์ฑํ๋ ๋ฐ๋ฉด, ์ธํฐํ๋ฆฌํฐ(Interpreter)๋ ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ๊ณ ๋ฒ์ญํ๋ฉด์ ์ฆ์ ์คํํฉ๋๋ค.
- ์ด ๊ณผ์ ์์๋ ์ดํ ๋ถ์, ๊ตฌ๋ฌธ ๋ถ์, ์ฝ๋ ์ต์ ํ ๋ฑ์ ๊ณผ์ ์ด ํฌํจ๋ฉ๋๋ค.
๐ ์ดํ ๋ถ์(Lexical Analysis)
์ปดํ์ผ ๊ณผ์ ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก, ์์ค ์ฝ๋์์ ๋ฌธ์(character)๋ค์ ์ฐ์์ ์๋ฏธ ์๋ ๋จ์์ธ ํ ํฐ(Token)์ผ๋ก ๋ถํดํ๋ ๊ณผ์ ์ ๋๋ค.
์ด ๊ณผ์ ์์ ์ดํ ๋ถ์๊ธฐ(Lexer) ๋๋ ์ค์บ๋(Scanner)๊ฐ ์ฌ์ฉ๋๋ฉฐ, ์์ค ์ฝ๋์ ํ ์คํธ๋ฅผ ์ฝ์ด๋ค์ฌ ํค์๋, ์๋ณ์, ์ฐ์ฐ์, ๋ฆฌํฐ๋ด ๋ฑ์ ํ ํฐ์ ์์ฑํฉ๋๋ค.
๐ ๊ตฌ๋ฌธ ๋ถ์(Syntax Analysis)
์ปดํ์ผ ๊ณผ์ ์ ๋ ๋ฒ์งธ ๋จ๊ณ๋ก, ์ดํ ๋ถ์(Lexical Analysis)์์ ์์ฑ๋ ํ ํฐ(Token)๋ค์ ๋ฐ์์ ์์ค ์ฝ๋๊ฐ ๋ฌธ๋ฒ์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ๊ณ , ์ด๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ํํํ๋ ๊ณผ์ ์ ๋๋ค.
๊ตฌ๋ฌธ ๋ถ์๊ธฐ๋ ํ์(Parser)๋ผ๊ณ ๋ ํ๋ฉฐ, ํ๋ก๊ทธ๋จ ์์ค ์ฝ๋๋ฅผ ๊ตฌ๋ฌธ ํธ๋ฆฌ(Syntax Tree) ๋๋ ํ์ฑ ํธ๋ฆฌ(Parsing Tree)๋ผ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณํํฉ๋๋ค.
3๏ธโฃ ํ๋ก๊ทธ๋จ ๋ก๋(Program Loading)
- ์ปดํ์ผ๋ ์คํ ํ์ผ์ด ์ด์์ฒด์ (Operating System, OS)์ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ฉ๋๋ค.
- ์ด์์ฒด์ (Operating System, OS)๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํด ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๊ณ , ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library) ๋ฐ ๋ชจ๋(Module)์ ๋ก๋ํฉ๋๋ค.
๐โโ๏ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library)์ ํ๋ ์์ํฌ(Framework)์ ์ฐจ์ด์ .
๐โโ๏ธ ๋ชจ๋๊ณผ ์ปดํฌ๋ํธ๋ฅผ ๋ ๊ณ ๋ธ๋ก์ ๋น์ ํด๋ณด๋ฉด?!
๐โโ๏ธ ์ํํธ์จ์ด ๊ณตํ์์์ ๋ชจ๋.
4๏ธโฃ ํ๋ก๊ทธ๋จ ์คํ(Program Execution)
- ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ ํ, CPU๊ฐ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ์ฝ๊ณ ์คํํฉ๋๋ค.
- CPU๋ ๋ช ๋ น์ด ์ฌ์ดํด(Fetch-Decode-Execute)์ ๋ฐ๋ณตํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
๐ ๋ช ๋ น์ด ์ฌ์ดํด(Fetch-Decode-Execute Cycle)
๋ช ๋ น์ด ์ฌ์ดํด(Fetch-Decode-Execute Cycle)์ ์ปดํจํฐ์ CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ธฐ๋ณธ์ ์ธ ์๋ ๊ณผ์ ์ ์ค๋ช ํ๋ ๊ฐ๋ ์ ๋๋ค.
์ด๋ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ช ๋ น์ด๋ฅผ ๊ฐ์ ธ์(Fetch), ํด์ํ๊ณ (Decode), ์คํ(Execute)ํ๋ ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ํ๋ก๊ทธ๋จ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์ด ๋ช ๋ น์ด ์ฌ์ดํด(Fetch-Decode-Excute Cycle)์ ํตํด ์คํ๋๋ฉฐ, ๊ฐ ๋จ๊ณ์์ CPU๋ ํน์ ์์ ์ ์ํํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ (Operating System, OS)์ ์ํด ํ๋ก์ธ์ค(Process)๋ก ๊ด๋ฆฌ๋๋ฉฐ, ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค ์ค์ผ์ค๋ง(Process Scheduling)์ ํตํด CPU ์๊ฐ์ ํ ๋นํฉ๋๋ค.
๐ ํ๋ก์ธ์ค ์ค์ผ์ค๋ง(Process Scheduling)
์ด์์ฒด์ (Operating System, OS)๊ฐ ํ๋ก์ธ์ค(Process)๋ฅผ CPU์ ํ ๋นํ์ฌ ์คํ ์์๋ฅผ ๊ฒฐ์ ํ๋ ์์ ์ ๋งํฉ๋๋ค.
์ปดํจํฐ ์์คํ ์์ ๋์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์คํ์ ๋๊ธฐํ๊ณ ์์ ๋, ํ์ ๋ CPU ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ํ๋ก์ธ์ค๋ค์ ํจ๊ณผ์ ์ผ๋ก ์คํํ ์ ์๋๋ก ์ค์ผ์ค๋ง(Scheduling)ํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.์ค์ผ์ค๋ฌ(Scheduler)๋ ์ด๋ค ํ๋ก์ธ์ค(Process)๊ฐ ์ธ์ , ์ผ๋ง๋ ์ค๋ซ๋์ CPU๋ฅผ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ฉํฐํ์คํน ํ๊ฒฝ์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋๋ก ํฉ๋๋ค.
๐ ๋ฉํฐํ์คํน(Multitasking)
์ปดํจํฐ๊ฐ ๋์์ ์ฌ๋ฌ ์์ (ํ๋ก์ธ์ค ๋๋ ํ๋ก๊ทธ๋จ)์ ์คํํ๋ ๊ธฐ๋ฅ์ ์๋ฏธํฉ๋๋ค.
์ด๋ ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํํ๊ฑฐ๋, ์ด์์ฒด์ ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฌ๋ฌ ์์ ์ ๋ณ๋ ฌ๋ก ์ํํ ์ ์๋๋ก ํฉ๋๋ค.
๋ฉํฐํ์คํน ๋๋ถ์ ์ฌ์ฉ์๋ค์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋์์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ๊ฒฝํํ๊ฒ ๋ฉ๋๋ค.์ค์ ๋ก๋ CPU๊ฐ ์ฌ๋ฌ ์์ ์ ๋น ๋ฅด๊ฒ ์ ํํ๋ฉด์ ๋์์ ์ฌ๋ฌ ์์ ์ ์ํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ฉ๋๋ค.
๊ฐ ์์ ์ ์์ฃผ ์งง์ ์๊ฐ ๋์ CPU๋ฅผ ์ฌ์ฉํ๊ณ , ์ดํ ๋ค๋ฅธ ์์ ์ผ๋ก ์ ํ๋๋ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค
์ด๋ฅผ ํตํด ์ฌ๋ฌ ๊ฐ๊ฒ ๋น ๋์์ ์งํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ฉ๋๋ค.
5๏ธโฃ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์์ ๊ด๋ฆฌ(Resource Management)
- ํ๋ก๊ทธ๋จ ์คํ ์ค์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ, ํ์ผ, ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋ฑ ๋ค์ํ ์์๋ค์ด ์ด์์ฒด์ (Operating System, OS)์ ์ํด ๊ด๋ฆฌ๋ฉ๋๋ค.
-
์ด์์ฒด์ (Operating System, OS)๋ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ์์์ ์ถ์ ํ๊ณ , ์ถฉ๋์ด๋ ์ถฉ๋์ด ๋ฐ์ํ์ง ์๋๋ก ํฉ๋๋ค.
- ์ด ๊ณผ์ ์์ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ด๋ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฑ์ ์์ ๋ ์ํ๋ ์ ์์ต๋๋ค.
2๏ธโฃ ์ปดํจํฐ ๊ณผํ์ ๊ฐ๋ ์ด ํ๋ก๊ทธ๋จ์ ์คํ์ ๋ฏธ์น๋ ์ํฅ.
- ์์ ๋จ๊ณ๋ค์ ์์ธํ ์ดํดํ๊ธฐ ์ํด์๋ ์ปดํจํฐ ๊ณผํ(Computer Science)์ ์ฌ๋ฌ ๋ถ์ผ์ ๋ํ ์ดํด๊ฐ ํ์ํฉ๋๋ค.
1๏ธโฃ ์ปดํจํฐ ์ํคํ ์ณ(Computer Architecture)
- ์ปดํจํฐ ์ํคํ ์ฒ(Computer Architecture)๋ CPU, ๋ฉ๋ชจ๋ฆฌ, I/O ์ฅ์น์ ๊ฐ์ ์ปดํจํฐ ํ๋์จ์ด์ ๊ตฌ์กฐ์ ์๋ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋ CPU๊ฐ ๋ช ๋ น์ด๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง, ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ ์ฅ๋๊ณ ์ ๊ทผ๋๋์ง๋ฅผ ์ดํดํ๋ ค๋ฉด ์ปดํจํฐ ์ํคํ ์ณ(Computer Architecture) ์ง์์ด ํ์ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์บ์ ๋ฉ๋ชจ๋ฆฌ, ํ์ดํ๋ผ์ธ, ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
๐ ์บ์ ๋ฉ๋ชจ๋ฆฌ(Cache Memory)
CPU์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(Random Access Memory, RAM) ์ฌ์ด์ ์์นํ ๊ณ ์์ ์์ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ก, ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ ๋ช ๋ น์ด๋ฅผ ์ผ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ ๋ช ๋ น์ด๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ์ฌ CPU๊ฐ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ์ญํ ์ ํฉ๋๋ค.
์บ์ ๋ฉ๋ชจ๋ฆฌ(Cache Memory)๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(Random Access Memory, RAM)๋ณด๋ค ์ ๊ทผ ์๋๊ฐ ํจ์ฌ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์, ํ๋ก๊ทธ๋จ ์คํ ์ ํ์ํ ๋ฐ์ดํฐ์ ๋ช ๋ น์ด๋ฅผ ๋ ๋นจ๋ฆฌ ์ฝ์ด ๋ค์ผ ์ ์๋๋ก ํด์ค๋๋ค.
๐ ํ์ดํ๋ผ์ธ(Pipline)
ํ์ดํ๋ผ์ธ(Pipline)์ ์ฌ๋ฌ ์์ ์ ์ฐ์์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ฐ ์์ ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋๊ณ , ๋์์ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ค๊ณํ ๊ธฐ์ ์ ์๋ฏธํฉ๋๋ค.
ํ์ดํ๋ผ์ธ(Pipline)์ ์ปดํจํฐ์ CPU ์ค๊ณ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ช ๋ น์ด๋ฅผ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋์ด ๊ฐ ๋จ๊ณ๊ฐ ๋ณ๋ ฌ๋ก ์คํ๋ ์ ์๊ฒ ํจ์ผ๋ก์จ ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ด๋ ๋ฐฉ์์ ๋๋ค.
2๏ธโฃ ์ด์์ฒด์ (Operating System)
- ์ด์์ฒด์ (Operating System)๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , ํ๋ก์ธ์ค ๊ด๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ํ์ผ ์์คํ ๊ด๋ฆฌ ๋ฑ์ ๋ด๋นํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ์ ์คํ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ค๋ฉด ์ด์์ฒด์ (Operating System, OS)๊ฐ ์ด๋ป๊ฒ ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ฅด๋งํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ์ ์ถ๋ ฅ(I/O) ์์ฒญ์ ์ฒ๋ฆฌํ๋์ง์ ๋ํ ์ง์์ด ํ์ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ํ๋ก๊ทธ๋จ์ด ๋์์ ์คํ๋ ๋ ๋ฉํฐํ์คํน๊ณผ ์ค๋ ๋ ๊ด๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ์ดํดํด์ผ ํฉ๋๋ค.
3๏ธโฃ ์ปดํ์ผ๋ฌ ์ด๋ก (Compiler Theory)
- ์ปดํ์ผ๋ฌ(Compiler)๋ ์์ค ์ฝ๋(Source Code)๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ํ๋ก๊ทธ๋จ์ผ๋ก, ์ปดํ์ผ๋ฌ ์ด๋ก ์ ์ด ๊ณผ์ ์ ์ดํ ๋ถ์, ๊ตฌ๋ฌธ ๋ถ์, ์ต์ ํ ๋ฑ ๋ค์ํ ๊ฐ๊ณ๋ฅผ ์ค๋ช ํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์ต์ ํ๋์ด ๋ ๋น ๋ฅด๊ฒ ์คํ๋ ์ ์๋์ง, ์ด๋ค ์ฝ๋๊ฐ ๋ ํจ์จ์ ์ธ์ง๋ฅผ ์ดํดํ๋ ค๋ฉด ์ปดํ์ผ๋ฌ(Compiler) ์ด๋ก ์ ์ง์์ด ํ์ํฉ๋๋ค.
๐ ์ปดํ์ผ๋ฌ(Compiler)
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์์ค์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ์ฌ ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ง๋๋ ์ํํธ์จ์ด์ ๋๋ค.
์ฌ๋์ด ์ฝ๊ณ ์์ฑํ ๊ณ ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(์: C, C++, Java, Python)๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ ์์ค ์ธ์ด(๊ธฐ๊ณ์ด, ๋ฐ์ด๋๋ฆฌ ์ฝ๋)๋ก ๋ณํํ๋ ์ญํ ์ ํฉ๋๋ค.์ปดํ์ผ๋ฌ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ ์ ํ ๋ฒ์ ์ ์ฒด ์์ค ์ฝ๋๋ฅผ ๋ฒ์ญํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์คํ ํ์ผ(Executable File)๋ก ์์ฑํฉ๋๋ค.
์ด ํ์ผ์ ์ด์์ฒด์ (Operating System, OS)์์ ์ง์ ์คํ๋ ์ ์์ผ๋ฉฐ, ์ดํ์๋ ๋ณ๋์ ๊ณผ์ ์์ด ๋ฐ๋ก ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ต๋๋ค.
4๏ธโฃ ๋ฐ์ดํฐ ๊ตฌ์กฐ(Data Structures)
- ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋ฐฐ์ด(Array), ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List), ์คํ(Stack), ํ(Queue), ํธ๋ฆฌ(Tree), ํด์ ํ ์ด๋ธ(Hash Table) ๋ฑ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ ์ฅํ๋ ๋ฐฉ์์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- ํ๋ก๊ทธ๋จ์ ์คํ ์๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต์ ํํ๋ ค๋ฉด ์ด๋ค ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ ํฉํ์ง ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
5๏ธโฃ ์๊ณ ๋ฆฌ์ฆ(Algorithms)
- ์๊ณ ๋ฆฌ์ฆ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ ์ฐจ๋ ๋ฐฉ๋ฒ์ผ๋ก, ํ๋ก๊ทธ๋จ์ ํต์ฌ ๋ก์ง์ ๊ตฌ์ฑํฉ๋๋ค.
- ์ ๋ ฌ, ๊ฒ์, ๊ทธ๋ํ ํ์, ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฑ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ด ์์ผ๋ฉฐ, ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ๋ ๊ฒ์ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ์ง์ ์ ์ธ ์ํฅ์ ์ค๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ดํดํ๋ ๊ฒ์ ํ๋ก๊ทธ๋จ์ด ์ด๋ค ์๋๋ก ์คํ๋๊ณ ์ผ๋ง๋ ๋ง์ ์์์ ์ฌ์ฉํ๋์ง๋ฅผ ํ์ ํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
6๏ธโฃ ์ปดํจํฐ ๋คํธ์ํน(Computer Networking)
- ๋คํธ์ํฌ๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก์ด ํ์ํ ํ๋ก๊ทธ๋จ(์: ์น ์ ํ๋ฆฌ์ผ์ด์ , ํด๋ผ์ฐ๋ ์๋น์ค ๋ฑ)์ ๋คํธ์ํฌ ํ๋กํ ์ฝ๊ณผ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์์ ์ดํดํด์ผ ํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ์กํ๊ณ ์์ ํ๋์ง, ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ์ด ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฏธ์น๋์ง๋ฅผ ์ดํดํ๋ ค๋ฉด ๋คํธ์ํฌ์ ๋ํ ์ง์์ด ํ์ํฉ๋๋ค.
3๏ธโฃ ํ๋ก๊ทธ๋จ ์คํ ์๋ฆฌ์ ์ปดํจํฐ ๊ณผํ์ ๊ด๊ณ.
- ํ๋ก๊ทธ๋จ์ ์คํ ์๋ฆฌ๋ ์ปดํจํฐ ๊ณผํ์ ์ฌ๋ฌ ํ์ ๋ถ์ผ๊ฐ ํ๋ ฅํ์ฌ ์๋ํ๋ ๋ณตํฉ์ ์ธ ๊ณผ์ ์ ๋๋ค.
- ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋, ์ปดํจํฐ ์ํคํ ์ณ, ์ด์์ฒด์ , ์ปดํ์ผ๋ฌ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์๊ณ ๋ฆฌ์ฆ์ด ์๋ก ๋ง๋ฌผ๋ ค ์๋ํ๋ฉด์ ํ๋ก๊ทธ๋จ์ด ํจ์จ์ ์ผ๋ก ์คํ๋๋๋ก ํฉ๋๋ค.
- ๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋๊ณ , CPU์์ ์ฒ๋ฆฌ๋๋ฉฐ, ์์์ด ๊ด๋ฆฌ๋๋์ง์ ๋ํด ๊น์ด ์ดํดํ๋ ค๋ฉด ์ปดํจํฐ ๊ณผํ์ ํต์ฌ ๊ฐ๋ ๋ค์ ๊ณต๋ถํด์ผ ํฉ๋๋ค.
4๏ธโฃ ์์ฝ.
- ํ๋ก๊ทธ๋จ์ ์คํ ์๋ฆฌ๋ฅผ ๊น์ด ์ดํดํ๋ ค๋ฉด ์ปดํจํฐ ๊ณผํ(Computer Science)์ ๋ค์ํ ๊ฐ๋ ์ ์์์ผ ํฉ๋๋ค.
- ์ปดํจํฐ ๊ณผํ์ ์ปดํจํฐ ์ํคํ ์ณ, ์ด์์ฒด์ , ์ปดํ์ผ๋ฌ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์๊ณ ๋ฆฌ์ฆ, ๋คํธ์ํฌ ๋ฑ์ ํฌํจํ๋ ํญ๋์ ํ๋ฌธ์ผ๋ก, ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์์ฑ๋๊ณ , ์ปดํ์ผ๋๋ฉฐ, ์คํ๋๋์ง ์ค๋ช ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ด๋ก ์ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ ์คํ์ ๊ฐ ๋จ๊ณ๋ ์ปดํจํฐ ๊ณผํ์ ์ฌ๋ฌ ๊ฐ๋ ์ด ์ํธ์์ฉํ๋ ๊ฒฐ๊ณผ์ด๋ฉฐ, ์ด๋ฌํ ์ง์์ ๊ฐ์ถ๋ฉด ํ๋ก๊ทธ๋จ์ ์ต์ ํํ๊ณ ํจ์จ์ ์ผ๋ก ์ค๊ณํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค.