프로그래밍이란?
사람과 사람은 말, 즉 자연어로 의사소통이 가능합니다.
그러나 사람과 컴퓨터가 소통하려면 어떻게 해야할까요?
컴퓨터에게는 정확한 규칙의 언어, 즉 프로그래밍 언어가 필요합니다.
초창기에 0과 1의 제어 신호를 사람이 직접 작성하는 기계어가 사용되었는데,
이는 가장 원시적인 언어로 기계는 바로 이해할 수 있지만 사람이 이해하기는 도무지 어려웠습니다.
결국 사람이 읽기 편하도록 기계어와 특정 기호를 1:1로 대응시키는 어셈블리어가 등장했습니다.
기계어를 쓰는 시절보다 나아졌지만 여전히 난해했고, 어셈블리어의 생산성이 매우 낮았기 때문에
조금 더 프로그램을 짜기 쉬운 언어들이 속속들이 등장하기 시작했습니다.
그러나 컴퓨터가 이해할 수 있는 언어는 기계어 뿐이기 때문에
사람이 하기에 편해졌다는 것뿐, 실제로 그 뒤에서 이루어지는 작업은 훨씬 복잡해지고 있습니다.
즉 기계에게 편한 언어는 속도는 빠르지만 사람이 보고 다루기 불편해서 생산성이 떨어지는 반면
사람에게 편한 언어는 속도는 느리지만 이해하기 쉽고 생산성이 높습니다 🥲
현재에는 JavaScript, Python, Java, C++, C# 등 다양한 프로그래밍 언어가 있습니다.
이 프로그래밍 언어의 코드를 실행하는 컴퓨터 프로그램, 혹은 환경인
인터프리터 (Interpreter) 와 컴파일러 (Compiler) 에 대해서도 알아보겠습니다.
이 둘의 가장 큰 차이는 코드를 실행하는 방식입니다.
* 컴파일이란?
사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꿔주는 과정, 이 변환 작업을 수행하는 소프트웨어를 '컴파일러' 라고 부릅니다 😊
인터프리터
- 코드를 한 줄씩 번역하면서 즉시 실행
- 장점: 높은 OS 독립성, 빠른 피드백
- 단점: 느린 실행 속도, 코드 노출
- 대표적으로 Python, JavaScript, Ruby, PHP, R 등
- 예시로 동시통역사를 생각하면 됩니다!
컴파일러
- 코드 전체를 한 번에 번역(프로그램 전체 스캔->기계어로 번역)해 실행 파일을 만듦
- 장점: 빠른 실행 속도, 최적화 강함, 높은 안정성(보안성)
- 단점: 특정 운영체제에 종속, 개발 과정이 길어질 수 있음
- 대표적으로 C, C++. Rust, Go 등
- 예시로 완역본 책을 생각하면 됩니다!
실전에서는 주로 인터프리터는
데이터 분석 노트북(Jupyter), 자동화 스크립트, 웹 백엔드, 교육, AI/ML 프로토타이핑 등에 쓰이고
컴파일 언어는
고성능 서버, 게임 엔진, 임베디드, 네이티브 앱 등에 쓰입니다.
다음 글부터 인터프리터의 🖥️ Python 을 시작해보겠습니다!
'[오즈코딩스쿨] AI 헬스케어 > 🌟 Python' 카테고리의 다른 글
| [Python] 객체 지향 프로그래밍 (1) (0) | 2025.10.13 |
|---|---|
| [Python] 데이터 타입 -2 (0) | 2025.10.10 |
| [Python] 데이터 타입 - 1 (0) | 2025.10.10 |
| [Python] 변수와 함수, 파이썬 입출력 (0) | 2025.10.09 |
| [Python] 아나콘다 설치 및 가상환경 관리 (0) | 2025.10.08 |