|

컴파일 뜻 : 컴파일링이란?

■ 컴파일이란?

컴파일(compile)이란 프로그래머가 작성한 소스코드를 바이너리 파일로 변환하는 과정이다. 소스코드를 Compiler 하여 프로그램을 만들 수 있다. 요즘은 배포판 공급업체에서 이미 compile 된 바이너리 파일들을 저장소에 관리하는 것이 일반적인 사항이 되었으며, 서버로 다운로드 후 바로 사용할 수 있다.

Ⅰ. 컴파일링과 링킹

compile 과정을 컴파일링(compiling)이라고 하며, 소스코드(사람일 읽을 수 있는 형태의 프로그램)를 컴퓨터 프로세서의 언어로 변경하는 절차이다. 컴퓨터 프로세서는 실행 시 기계어로 실행되는 바이너리(이전법 0,1)이다.


프로그래밍 언어는 C언어 및 C++언어 그리고 C#, Objective-C, JAVA, Javascript, Swift, Perl, Ruby, Python, PHP 등이 있다.

컴파일

컴파일링과 함께 사용되는 과정 중 링킹이 있다. 프로그램들이 파일 열기를 각각 한다면 시간 낭비가 될 수 있기 때문이다. 프로그램이 컴파일러의 출력물과 컴파일 된 프로그램이 필요한 라이브러리를 연결하는 데 링커가 사용된다. 컴파일링과 링킹의 과정을 통한 결과물이 실행파일이다.

Ⅱ. 컴파일을 하는 이유

ⓐ 가용성: 배포반 저장소에 있는 사용 가능한 프로그램들이 있음에도, 배포판은 사용자가 원하는 모든 프로그램 요소를 가지고 있지 않을 수 있다. 결국 방법은 필요한 프로그램을 소스로부터 얻어 프로그램을 컴파일링 해서 만들어 사용하는 이유다.

ⓑ 적시성: 배포판이 최신 버전의 프로그램이 적용되어 있을 수 있지만 반대인 경우도 많다. 최신 버전의 프로그램을 사용하기 위해 Compiler을 사용할 수 있다.

구글 검색 시 Compiler 설치 방법이 인터넷에 넘쳐 나는 이유는 기술 블로그를 운영하는 사람들이 업무 시 참고용 기록을 남긴 것으로 추측된다. Compiler 방법을 블로그에 남겨 놓고 나중에 다시 작업을 할 수 있게 끔 기록을 남긴 것으로 보인다.

Ⅲ. 컴파일러 or 인터프리터

compile 작업을 할 수 있게 해주는 프로그램을 컴파일러(Compiler)라고 한다. 컴파일러는 소스 코드를 읽어서 즉시 결과를 출력하는 인터프리터(interpreter)와 구분된다.

compile 없이 직접 실행되는 스크립트 or 인터프티터 언어로 알려진 프로그래밍 언어들은 직접 실행된다. 스크립트 언어인터프리터로 불리는 특수 한 프로그램에 의해 실행된다. 인터프리터는 작성된 명령어들을 한번에 한 줄 씩 읽으면서 실행하는 프로그램이다. 

리눅스 서버 등에서 인기 있는 인터프리터 언어는 Perl, python, PHP, Ruby 등이 있다.

인터프리트 된 프로그램들은 컴파일된 프로그램보다 느리게 실행되며, 프로그램 내 소스 코드 명령이 매번 번역된 후 실행되기 때문이다. Compiler 된 소스코드는 한번만 해석되면 결과물인 실행 파일로 기록되어 있어 속도가 빠르다.

컴파일 뜻 : 컴파일링이란?

인터프리트 언어는 복잡한 Compiler 단계가 없어서 프로그램 개발 속도가 빠르고 그만큼 인기가 있다고 볼 수 있다.

Similar Posts

  • [Ubuntu] apt 명령어 | apt-get 명령어 사용법과 차이점

    Red Hat 계열 리눅스에서는 패키지 관리를 위해 dnf 명령어를 사용하며, Debian 계열에서는 apt 명령어를 사용합니다. Ubuntu와 같은 Debian 기반 배포판에서는 두 명령어가 모두 사용 가능하지만, 목적과 사용 방식에 따라 약간의 차이가 있습니다. 이 글에서는 apt와 apt-get의 차이를 간단히 비교하고, apt 명령어에서 자주 사용하는 명령어 예제를 함께 정리해보겠습니다. 목차■ 컴파일이란?Ⅰ. 컴파일링과 링킹Ⅱ. 컴파일을 하는…

  • 리눅스 YUM 개념과 기본 명령어

    YUM(Yellow dog Updater, Modified)은 레드햇(RPM) 계열 리눅스 배포판에서 사용되는 패키지 설치 및 관리 도구입니다. 기존의 RPM 방식은 패키지 설치 시 의존성 문제로 사용자가 필요한 도구를 일일이 설치해야 하는 번거로움이 있었습니다. YUM은 이러한 의존성 문제를 자동으로 해결해 주며, 필요한 패키지와 관련된 의존 패키지를 함께 설치하여 오류를 최소화합니다. 의존성이 존재할 때 관련된 다른 패키지들을 자동으로…

  • cp 명령어 옵션 및 실행 시 일괄 덮어쓰기 설정 | yes, \(역슬래쉬) 2가지 설정

    cp 명령어는 Copy의 약자로 파일 및 디렉토리를 복사합니다. 기본 사용법은 간단하게 복사할 대상과 새로운 이름 등을 설정하여 사용할 수 있습니다. cp 명령어를 실행할 때 같은 이름의 대상 파일이 있을 때는 사용자에게 묻지 않고 덮어쓰기가 되는데, 이를 방지하기 위해 alias “cp=’cp -i”로 설정되어 있습니다. 목차■ 컴파일이란?Ⅰ. 컴파일링과 링킹Ⅱ. 컴파일을 하는 이유Ⅲ. 컴파일러 or 인터프리터…

  • 리눅스 파일 시스템(File System)과 스토리지

    리눅스 파일 시스템File System은 모든 파일 및 디렉토리를 큰 트리 구조 하나로 관리합니다. 리눅스는 Ext(Extended File System)를 사용합니다. OS는 파일 스토리지에 있는 파일을 효율적으로 관리하기 위해 파일 시스템을 구축하게 됩니다. 목차■ 컴파일이란?Ⅰ. 컴파일링과 링킹Ⅱ. 컴파일을 하는 이유Ⅲ. 컴파일러 or 인터프리터✅ 대표적인 리눅스 파일 시스템 종류 저널링 시스템은 파일 시스템의 저널(로그)에 기록하는 방식을 사용하는 파일…

  • 리눅스 tar 명령어: 파일 압축, 해제

    리눅스 tar 명령어는 여러 개의 파일을 하나의 파일로 묶거나 해제할 때 사용하는 명령어로 웹사이트의 이전 등에 mysqldump와 같이 사용되는 경우가 많습니다. 테이프 아카이버(Tape Archiver)의 앞 글자를 따서 tar라는 이름으로 부르게 되었습니다. 목차■ 컴파일이란?Ⅰ. 컴파일링과 링킹Ⅱ. 컴파일을 하는 이유Ⅲ. 컴파일러 or 인터프리터✅ 리눅스 tar 명령어의 이해 리눅스에서 tar로 압축 진행을 할 때 압축(compress)한다고 표현하지만…

  • PHP-FPM이란 | PHP-FPM 설치 및 설정

    PHP-FPM을 시작하기 전에 CGI에 대해 알아야 합니다. CGI(Common Gateway Interface)는 웹 서버와 외부 프로그램 사이의 상호작용을 위한 표준 프로토콜이며, 웹 서버는 사용자 요청에 따라 동적으로 콘텐츠를 생성하거나 데이터를 처리할 수 있습니다. 요청이 들어올 때 마다 각각의 요청으로 CGI가 생성되게 되어 서버의 속도는 느려질 수 밖에 없습니다. CGI(Common Gateway Interface)의 업그레이드 버전으로 서버의 성능을…