본문 바로가기

전체 글25

[기획 연재 19편] 컴파일러의 번역 기술: 인간의 언어를 기계어로 바꾸는 통역사 서론: 바벨탑의 언어를 기계어로우리가 지금까지 배운 C언어는 printf, if, while 같은 영어 단어로 되어 있습니다. 하지만 컴퓨터(CPU)는 영어를 전혀 모릅니다. 컴퓨터가 아는 것은 오직 전기가 들어오고(1) 나가는(0) 신호뿐입니다.그렇다면 도대체 어떻게 우리가 쓴 영어 코드가 기계를 움직이는 걸까요? 그 사이에는 인간의 언어를 기계의 언어로 완벽하게 번역해 주는 천재 통역사, '컴파일러(Compiler)'가 존재합니다.오늘 19편에서는 소스 코드가 실행 파일(.exe)로 변신하는 마법 같은 번역의 과정을 NASA 엔지니어의 시선으로 해부해 봅니다.본론 1: 고급 언어 vs 저급 언어프로그래밍 언어는 '누가 이해하기 쉬운가'에 따라 레벨이 나뉩니다.고급 언어 (High-Level): 인간에.. 2026. 1. 19.
[기획 연재 18편] 운영체제(OS)의 탄생: 하드웨어라는 야수를 조련하는 지휘자 (커널의 역할) 서론: 지휘자 없는 오케스트라 바이올린, 첼로, 팀파니 등 수백 개의 악기가 있습니다. 연주자들에게 "알아서 연주하세요"라고 하면 어떤 일이 벌어질까요? 훌륭한 음악 대신 끔찍한 소음만 가득할 것입니다. 누군가는 "바이올린, 지금 켜세요", "팀파니, 지금은 쉬세요"라고 지시해야 합니다. 컴퓨터도 똑같습니다. CPU, 메모리, 하드디스크, 모니터라는 강력한 하드웨어(악기)들이 있지만, 이를 통제할 시스템이 없다면 고철 덩어리에 불과합니다. 오늘 18편에서는 이 하드웨어라는 야수들을 조련하여 우리가 편리하게 마우스를 클릭할 수 있게 해주는 거대한 지휘자, '운영체제(Operating System, OS)'의 탄생 배경과 원리를 알아봅니다.본론 1: 왜 운영체제가 필요한가? 지난 17편.. 2026. 1. 19.
[기획 연재 17편] 임베디드 시스템: 냉장고부터 화성 탐사선까지, 숨어있는 컴퓨터들 (기계의 영혼) 서론: 컴퓨터는 어디에나 있다 여러분이 아침에 일어나서 사용하는 전기밥솥, 엘리베이터, 자동차의 에어백, 그리고 사무실의 도어락까지. 이 기계들이 스스로 생각하고 움직인다는 사실을 의식해 본 적이 있으신가요? 우리는 흔히 컴퓨터라고 하면 키보드와 모니터가 달린 PC를 떠올립니다. 하지만 NASA에서 제가 다루던 시스템의 90%는 모니터조차 없는 **'임베디드 시스템(Embedded System)'**이었습니다. 오늘 17편에서는 기계장치 내부에 깊숙이 박혀(Embedded) 특정한 기능을 수행하는 이 **'보이지 않는 컴퓨터'**의 세계와, 이를 움직이는 C언어의 절대적인 위상에 대해 이야기해 봅니다.본론 1: 범용성(General) vs 특수성(Special) 일반 PC와 임베디드.. 2026. 1. 19.
[기획 연재 16편] 알고리즘의 효율성(Big-O): 무한한 우주에서 가장 빠른 길을 찾는 법 (시간 복잡도) 서론: 데이터가 100억 개라면?제가 NASA에서 은하 데이터를 분석할 때 겪은 일입니다. 별 1,000개를 분석하는 코드를 짰더니 0.1초 만에 결과가 나왔습니다. "완벽해!"라고 생각하고 100억 개의 전체 은하 데이터를 넣었더니, 컴퓨터가 멈춰버렸습니다. 계산해 보니 그 코드로 결과를 보려면 3만 년이 걸린다는 결론이 나왔습니다.코딩에서 '효율성'이란 단순히 지금 빠르냐가 아닙니다. "데이터가 무한대로 늘어날 때, 처리 시간은 얼마나 늘어나는가?"에 대한 수학적 예측입니다.오늘 16편에서는 개발자 면접의 단골 질문이자, 좋은 코드의 기준이 되는 'Big-O(빅오) 표기법'에 대해 아주 쉽게 풀어보겠습니다.본론 1: O(1) vs O(n), 순간 이동과 도보 여행알고리즘의 성능을 나타내는 Big-O .. 2026. 1. 19.
[기획 연재 15편] 데드락(Deadlock): 4거리 교차로에서 멈춰버린 시스템 (교착 상태의 비극) 서론: 우주선이 응답하지 않을 때 컴퓨터를 쓰다가 갑자기 화면이 멈추고 마우스조차 움직이지 않는 '프리즈(Freeze)' 현상을 겪어보셨을 겁니다. NASA 관제 센터에서 가장 공포스러운 순간이 바로 탐사 로봇이 이런 상태에 빠져 아무런 명령도 듣지 않을 때입니다. 이 현상의 주된 원인 중 하나가 바로 '데드락(Deadlock)', 우리말로는 '교착 상태'입니다. 지난 시간에 배운 멀티 스레드들이 서로 자원을 차지하겠다고 욕심을 부리다, 결국 아무도 자원을 쓰지 못하고 영원히 대기하는 최악의 상황이죠. 오늘 15편에서는 꽉 막힌 4거리 교차로처럼 오도가도 못하게 된 시스템의 비극과, 이를 해결하기 위한 공학적 고민을 다뤄보겠습니다.본론 1: 네 대의 차가 멈춘 교차로 데드락을 가장 .. 2026. 1. 19.
[기획 연재 14편] 멀티 스레드(Thread): 몸이 하나인 CPU가 동시에 여러 일을 하는 환상 (동시성의 원리) 서론: 요리사는 한 명인데 주문은 10개? 우리는 컴퓨터로 유튜브를 보면서 카카오톡을 하고, 백그라운드에서는 백신 프로그램이 돌아가는 '멀티태스킹' 환경에 익숙합니다. 그런데 놀라운 사실은, 컴퓨터의 두뇌인 CPU 코어(Core)는 원칙적으로 한 번에 딱 한 가지 일만 할 수 있다는 것입니다. 그렇다면 도대체 어떻게 동시에 여러 프로그램이 돌아가는 걸까요? 정답은 '속도'에 있습니다. CPU는 우리가 상상할 수 없을 정도로 빠르게 일을 번갈아 가며 처리합니다. 마치 요리사 한 명이 파를 썰다가, 0.1초 만에 국을 젓고, 다시 0.1초 만에 고기를 뒤집는 것과 같습니다. 오늘 14편에서는 이 눈속임의 기술인 '스레드(Thread)'와 '컨텍스트 스위칭(Context Switching)'의.. 2026. 1. 18.