13KB 단일 실행 파일, 윈도우, 리눅스, 브라우저에서 실행

by DD
4개월 전
조회수 12

단일 실행 파일(Single Executable)로 윈도우, 리눅스, 브라우저에서 실행 가능한 기술이 등장

각 OS에 맞는 코드를 압축, 스티칭(Stitching)하여 헤더(Header)를 활용한 트릭(Trick) 사용

윈도우 PE 헤더(PE Header)를 시작으로, 쉘 스크립트(Shell Script)를 통해 리눅스에서 실행

브라우저는 HTML 태그(HTML Tag) 이전 부분을 무시하여 브라우저 호환성(Browser Compatibility) 확보

멀티 플랫폼 실행 파일 아키텍처

본 기술은 각 운영체제(Operating System)에 맞는 코드를 압축하고, 단일 파일로 묶는 방식으로 구현되었다. 특히 윈도우에서 실행을 위해 PE 헤더(PE Header)를 사용하며, 리눅스에서는 이 헤더의 일부를 쉘 스크립트(Shell Script)로 해석하여 윈도우 코드를 건너뛴다. 기술적으로 보면, 각 플랫폼의 실행 환경을 고려하여 헤더(Header)와 코드 구조(Code Structure)를 설계한 점이 특징이다. 이는 멀티 플랫폼 지원(Multi-Platform Support)을 위한 창의적인 접근 방식이다.

브라우저 호환성을 위한 HTML 트릭

브라우저 환경에서는 HTML 태그 이전의 모든 데이터를 무시하는 점을 활용하여, 실행 파일의 시작 부분에 HTML 태그(HTML Tag)를 삽입했다. 이는 브라우저가 해당 파일을 올바르게 인식하도록 하기 위한 방법이다. 기술적으로 보면, 브라우저 렌더링 엔진(Browser Rendering Engine)의 특성을 이용하여 코드 실행 흐름(Code Execution Flow)을 제어하는 방식이다. 이러한 접근 방식은 웹 환경(Web Environment)에서의 실행 가능성을 확보하는 데 기여한다.

단일 실행 파일의 장단점

단일 실행 파일은 배포 및 관리가 용이하다는 장점이 있지만, 각 플랫폼에 최적화된 코드를 제공하기 어렵다는 단점도 존재한다. 특히, 파일 크기(File Size)가 커지거나, 특정 플랫폼에서 성능 저하(Performance Degradation)가 발생할 수 있다. 하지만, 이 기술은 다양한 환경(Various Environments)에서 실행 가능한 프로그램을 만들 수 있는 가능성을 보여주며, 개발 편의성(Development Convenience)을 높일 수 있다.

Windows? Linux? Browser? Same Executable