๋ณธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ด์์ฒด์ ๊ฐ ์ํธ์์ฉํ๋ ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ํ์ ์์ ์๊ตฌํ๋ ์์คํ ํ๋ก๊ทธ๋๋ฐ ๋ฐ ํธ๋ฌ๋ธ์ํ ์ญ๋์ ๋ง์คํฐํ๊ธฐ ์ํ ์ค์ต ๊ธฐ๋ก์ ๋๋ค.
๋จ์ํ API ํธ์ถ์ ๋์ด, gdb๋ฅผ ํตํ ๋ก์ง ๋๋ฒ๊น
, valgrind๋ฅผ ํ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ง, ๊ทธ๋ฆฌ๊ณ ๋ฉํฐ ํ๋ก์ธ์ค/์ค๋ ๋ ํ๊ฒฝ์์์ ๋๊ธฐํ ๋ฌธ์ (Deadlock, Race Condition) ๋ฑ ๋ก์ฐ๋ ๋ฒจ(Low-level)์์์ ๋์์ ๊น์ด ์๊ฒ ๋ถ์ํ๊ณ ์ง์ ํด๊ฒฐํด ๋๊ฐ๋ ๊ณผ์ ์ ๋ด๊ณ ์์ต๋๋ค.
์ธ๋ถ ์์กด์ฑ์ด๋ ํ๋ คํ IDE์ ๋์ ์์ด, ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๊ณ ํ์ค์ ์ธ ํฐ๋ฏธ๋ ํ๊ฒฝ์์ ์ค์ต์ ์งํํ์ฌ ๋ฆฌ๋ ์ค ํ๊ฒฝ ์์ฒด์ ๋ํ ์ ์๋ ฅ๊ณผ ์์ด์ ์ธ ๋๋ฒ๊น ๋ฅ๋ ฅ์ ๊ทน๋ํํฉ๋๋ค.
- OS Environment:
Ubuntu 24.04 LTS(Docker Container) - SSH & Terminal:
MobaXterm(์ปจํ ์ด๋ ์๊ฒฉ ์ ์) - Text Editor:
vim(ํ๋ฌ๊ทธ์ธ ์๋ ์์ vi ํ๊ฒฝ) - Compiler & Build:
gcc,Makefile - Debugging & Profiling:
gdb,valgrind - Code Navigation:
ctags
๋ฆฌ๋ ์ค ์์คํ ์ ๊ทผ๊ฐ์ ์ด๋ฃจ๋ 'ํ์ผ'๊ณผ 'ํ๋ก์ธ์ค'๋ฅผ ์ค์ฌ์ผ๋ก, ์ค๋ฌด์ ์ฆ์ ์ ์ฉ ๊ฐ๋ฅํ ์ฝ์ด ์ฃผ์ ๋ค๋ก ์ปค๋ฆฌํ๋ผ์ ๊ตฌ์ฑํ์ต๋๋ค.
-
01_file_basic/: ๊ณ ์์ค(High-level) ํ์ค ์ ์ถ๋ ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ์ด (fopen, fread, fwrite ๋ฑ) -
02_file_low/: ์ ์์ค(Low-level) ์์คํ ์ฝ ์ธํฐํ์ด์ค (open, read, write, ํ์ผ ๋์คํฌ๋ฆฝํฐ์ ์ดํด) -
03_file_advanced/: ๊ณ ๊ธ ํ์ผ ์ ์ด (fcntl, ํ์ผ ์ ๊ธ, I/O ๋ฉํฐํ๋ ์ฑ, ๋ฉ๋ชจ๋ฆฌ ๋งตํ ๋ฑ)
-
04_process/: ํ๋ก์ธ์ค ์์ฑ ๋ฐ ์ข ๋ฃ (fork, exec, wait), ์ข๋น/๊ณ ์ ํ๋ก์ธ์ค ๊ด๋ฆฌ ๋ฐ ํ๋ก์ธ์ค ๊ฐ ๋๊ธฐํ ๊ธฐ๋ฒ -
05_thread/: POSIX ์ค๋ ๋(pthread) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ, ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์์ ๋๊ธฐํ (Mutex, Semaphore, Condition Variable)
-
06_signal/: ๋น๋๊ธฐ์ ์ด๋ฒคํธ(Signal) ์ฒ๋ฆฌ ๊ตฌ์กฐ, ์๊ทธ๋ ํธ๋ค๋ฌ ๋ฑ๋ก ๋ฐ ์์ ํ(async-signal-safe) ํจ์ ์ฌ์ฉ
๐ก ๊ฐ ๋๋ ํ ๋ฆฌ ๋ด๋ถ์๋ ์ค์ต ์์ค ์ฝ๋(.c, Makefile)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.