CPU와 연산
CPU(중앙처리장치)는 컴퓨터의 핵심적인 기계 장치로 명령에 따라 연산을 수행한다. CPU는 인간이 작성한 고급 언어(파이썬, 자바, C언어 등등)를 직접 이해하지 못하므로 기계어(머신코드)라는 특수한 코드 체계를 사용하여 명령을 수행 해야한다.
고급 언어로 작성 된 언어를 기계어로 번역하기 위해서 아래 두가지의 방법 있다.
컴파일러와 인터프리터
고급 언어는 CPU가 이해할 수 있는 기계어로 번역해야 하며, 이때 사용하는 방식에 따라 컴파일러 언어와 인터프리터 언어로 나눌 수 있다.
- 컴파일러 언어 : 소스 코드를 한꺼번에 기계어로 번역하여 실행 파일로 변환한다. 컴파일을 통해 생성된 기계어 코드는 CPU가 바로 실행할 수 있으며 이를 네이티브 코드라고 한다. 네이티브 코드는 특정 운영체제와 하드웨어에 종속적이고 의존적이기 때문에 호환성 문제를 일으킬 수 있다.
- 인터프리터 언어 : 소스코드를 한 줄 씩 읽어가며 즉시 실행한다. 인터프리터 언어는 컴파일보다 속도가 느리지만, 코드 수정 후 즉시 실행 할 수 있어 개발 과정에서 유연하다. 대표적인게 JavaScript나 Python 이 있다.
네이티브 코드
네이티브 코드는 컴파일된 기계어 코드로, 특정 CPU와 운영체제에서만 실행 된다. 네이티브 코드는 해당 플랫폼에 종속적이기 때문에 다른 운영체제나 하드웨어에서는 실행 할 수 없다.
관리형 언어(Managed Language)
관리형 언어는 네이티브 코드와 달리, 특정 런타임 환경에서 실행된다. 이러한 런타임 환경은 메모리 관리, 예외 처리, 보안 등 여러 가지 시스템 자원을 관리하게 된다. 대표적인 관리형 언어로는 Java와 **C#**이 있으며, 각각 JVM과 .NET 런타임에서 실행된다.
API와 SDK
- API(Application Programming Interface): 특정 기능을 수행하기 위한 코드의 묶음으로, 프로그램이 다른 프로그램이나 시스템과 상호작용할 수 있게 한다. 예를 들어, 데이터베이스와 통신하거나 파일 시스템에 접근하는 등의 기능을 제공한다.
- SDK(Software Development Kit): 소프트웨어를 개발하기 위해 필요한 도구들의 모음이다. SDK에는 API, 개발 도구, 예제 코드 등이 포함되어 있어 개발자가 특정 플랫폼이나 환경에서 소프트웨어를 만들 수 있게 도와준다. API보다 더 넓은 범위라고 생각하면 된다.
'IT개념' 카테고리의 다른 글
자료구조와 알고리즘의 연관 관계 (0) | 2024.10.26 |
---|---|
1. (0) | 2024.10.21 |
MVVM 정리 (0) | 2024.08.11 |
장치픽셀(Device Pixel)과 논리픽셀(Logical Pixel) (0) | 2024.06.13 |
통합보안관련 UTM, ESM, SIM, SEM, SIEM, SOAR (0) | 2024.04.26 |