ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

컴파일 (Compile)

 

 

 

정의

컴퓨터는 사실 아주 단순한 계산기입니다.

개발 언어( Java, JavaScript  etc )는 사람이 보기 편한 문법입니다.

System.out.println("Hello, World!");

console.log("Hello, World!");

컴퓨터는 0과 1로 이루어진 이진법만을 이해할 수 있기 때문에 이 문법을 이해할 수 없습니다.

우리가 쓴 코드를 컴퓨터가 실행하려면 기계 언어 번역해야 합니다

10110100 00000001

 

컴파일컴파일러를 통해 사람이 쓴 소스 코드를 컴퓨터가 이해할 수 있는 기계어 또는 중간 언어로 바꾸는 과정, 행위입니다.


특징

미리 번역한 뒤 실행합니다.

프로그램 실행 전에, 전체 소스코드를 한 번에 분석하고, 기계어 또는 중간 언어로 변환합니다.

미리 번역을 하였기에 실행속도가 빠르고, 출력물로 실행파일 ( .exe, .class etc )을 생성합니다.

소스 코드에 오류가 있으면 컴파일 자체가 실패하여 실행파일이 만들어지지 않고, 프로그램 실행 자체가 되지 않습니다.


목적

안전하고 실행 가능한 상태로 만듭니다.

예전에는 하드웨어 자원( CPU, 메모리, I/O etc )이 매우 제한적이였습니다.

 

실행이 느리면 사용자의 기다리는 시간이 길어지기 때문에 체감 성능이 매우 나빴습니다. 

또한 운영체제, 네트워크 등은 제한시간 내에 반응하지 않으면 오작동 하기도 했습니다.

그래서 미리 전체 코드를 분석해서, 불필요한 계산은 없애고, 기계가 최대한 빨리 이해하고 실행할 수 있는 형태로 바꾸는 최적화 전략을 사용해 하드웨어 자원을 효율적으로 사용하는 컴파일 방식이 생겼습니다.


728x90