라자루스 (IDE)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
라자루스(Lazarus)는 델파이와 유사한 통합 개발 환경(IDE)으로, Free Pascal을 백엔드 컴파일러로 사용한다. 델파이와 유사한 사용자 인터페이스를 제공하며, 윈도우, 리눅스, macOS 등 다양한 운영체제를 지원한다. 라자루스 컴포넌트 라이브러리(LCL)를 통해 '한 번 작성, 어디서든 컴파일' 방식을 지원하며, 시각적인 윈도우 레이아웃 디자이너, 데이터베이스 연결 컴포넌트, 디버거 등 다양한 기능을 제공한다. 자유 소프트웨어 라이선스로 배포되며, 델파이와 호환되는 라이브러리를 사용할 수 있다.
더 읽어볼만한 페이지
- 파스칼 (프로그래밍 언어) - 니클라우스 비르트
스위스의 컴퓨터 과학자 니클라우스 비르트는 ALGOL W, 파스칼, 모듈라-2, 오베론 등의 프로그래밍 언어와 오베론 운영체제 설계, 컴파일러 설계 및 소프트웨어 개발 방법론에 기여했으며, "알고리즘 + 데이터 구조 = 프로그램" 저술과 "Program Development by Stepwise Refinement" 논문을 통해 컴퓨터 과학 교육에 혁신적인 영향을 미치고 1984년 튜링상을 수상했다. - 파스칼 (프로그래밍 언어) - 델파이
델파이는 앤더스 헤일스베르그가 개발한 파스칼 기반의 객체 지향 프로그래밍 언어이자 다양한 플랫폼을 지원하며 빠른 애플리케이션 개발을 돕는 RAD 개발 환경이다. - 파스칼 프로그래밍 언어 계열 - 파스칼 (프로그래밍 언어)
파스칼은 니클라우스 비르트가 구조적 프로그래밍 교육과 시스템 소프트웨어 개발을 위해 설계한 언어로, 프로그래밍 입문 언어로 널리 쓰였으며 애플의 주요 개발 언어로 사용되었고, 다양한 변형이 여러 분야에서 활용되고 있으며 현재도 여러 컴파일러가 존재한다. - 파스칼 프로그래밍 언어 계열 - 프리 파스칼
프리 파스칼은 다양한 운영체제와 CPU 아키텍처를 지원하며 볼랜드 파스칼과 델파이의 파스칼 방언을 채택한 오픈 소스 파스칼 컴파일러로, 델파이 7과의 호환성 개선, macOS 인터페이스를 위한 Apple Pascal 문법 지원, 다양한 컴파일 호환 모드 제공, 런타임 및 컴포넌트 라이브러리와 라자루스를 포함한 다양한 IDE 지원을 특징으로 한다. - 고속 개발 도구 - 크로스 플랫폼
크로스 플랫폼은 소프트웨어나 애플리케이션이 다양한 운영 체제, 하드웨어 플랫폼 또는 이들의 조합에서 동작할 수 있도록 하는 기술을 의미하며, 웹 애플리케이션 형태로 구현되거나 플랫폼 연동을 통해 하드웨어 경계를 넘어 콘텐츠를 즐길 수 있도록 한다. - 고속 개발 도구 - LabVIEW
LabVIEW는 내쇼날 인스트루먼트에서 개발한 그래픽 기반 프로그래밍 환경으로, 시각적인 블록 다이어그램을 사용하여 데이터 수집, 계측기 제어, 자동화 시스템 구축 등에 활용되며 사용자 인터페이스 생성 통합, 병렬 프로그래밍 지원, 다양한 디자인 패턴 제공을 통해 복잡한 애플리케이션 개발을 돕는다.
2. 역사
라자루스 개발은 1998년 "메기도(Megido)" 프로젝트에서 시작되었으나 실패하였다. 이후, 일부 개발자들이 더 유연한 기반으로 새 프로젝트를 시작하면서 "라자루스"라는 이름을 붙였다. 이는 요한 복음서에서 죽었다가 살아난 베다니의 라자로에서 영감을 받은 것이다.[1]
라자루스는 델파이와 유사한 통합 개발 환경(IDE)을 제공하며, 다음과 같은 특징을 갖는다.
2001년, LCL(라자루스 컴포넌트 라이브러리)의 초기 버전이 출시되었다.[1] 2003년, 첫 베타 버전(0.9.0.3)이 SourceForge에 공개되었고,[1] 2012년, 라자루스 1.0 버전이 출시되었다.[1] 2014년에는 대폭 개선된 라자루스 1.2가 출시되었으며, 같은 해 3월 기준으로 SourceForge에서 4백만 건 이상 다운로드되었다.[1] 이후 지속적인 버전 업데이트를 통해 기능 개선 및 버그 수정이 이루어지고 있다.
3. 특징
- 개발 편의 기능:
- 대화형 디버거
- 코드 자동 완성
- 코드 템플릿
- 구문 강조
- 상황별 도움말
- 국제화를 위한 텍스트 리소스 관리자
- 자동 코드 서식 지정
- 확장성: 사용자 정의 컴포넌트를 통해 기능을 확장할 수 있다.
- 크로스 플랫폼 개발 지원: Free Pascal 컴파일러를 사용하여 윈도우, 리눅스, macOS 등 다양한 운영체제에서 실행 가능한 애플리케이션을 개발할 수 있다. 스마트폰, PDA와 같은 임베디드 장치용 애플리케이션 개발도 지원한다.
- 라자루스 컴포넌트 라이브러리(LCL): 크로스 플랫폼 애플리케이션 프레임워크로, 각기 다른 플랫폼에서 동일한 인터페이스를 제공하여 "한 번 작성, 어디서든 컴파일"을 가능하게 한다.
- 델파이와의 차이점:
- 컴포넌트 객체 모델(COM)은 버전 2.2.0부터 지원한다.
- VCL과 완벽하게 호환되지 않아, 일부 VCL 위젯은 변환 작업이 필요하다.
- 실행 파일 크기가 델파이보다 크지만, 외부 디버그 심볼을 사용하거나 `strip` 명령을 통해 줄일 수 있다.
- 동적으로 로드 가능한 패키지, .NET 라이브러리, 광범위한 Microsoft Office 연결은 지원하지 않는다.
- 델파이의 컴포넌트를 IDE에 설치하려면 번거로운 변환 작업이 필요하다.
- Media 라이브러리가 존재하지 않는다.
- 네트워크 기능에서 Indy는 모든 플랫폼에서 완벽하게 동작하지 않을 수 있다.
- http://wiki.lazarus.freepascal.org/index.php/LNet lNet은 FPC 네이티브의 non-blocking variant이다.

4. UI
라자루스는 델파이와 유사하게 풍부한 사용자 인터페이스와 애플리케이션 로직, 기타 지원 코드 아티팩트를 생성하기 위한 ''WYSIWYG'' 개발 환경을 제공한다. 라자루스 IDE는 프로젝트 관리 기능과 함께 다음을 제공한다:
- 시각적인 윈도우 레이아웃 디자이너
- 편집 상자, 버튼, 대화 상자, 메뉴 등과 같은 GUI 위젯 또는 시각적 컴포넌트
- 애플리케이션 설정의 지속성과 같은 일반적인 동작을 위한 비시각적 컴포넌트
- MySQL, PostgreSQL, FireBird, 오라클, SQLite, Sybase 등을 위한 데이터 연결 컴포넌트
- 개발자가 디자이너에서 시각적 컴포넌트의 데이터를 볼 수 있도록 돕는 데이터 인식 위젯 세트
- 대화형 디버거
- 코드 자동 완성
- 코드 템플릿
- 구문 강조
- 상황별 도움말
- 국제화를 위한 텍스트 리소스 관리자
- 자동 코드 서식 지정
- 사용자 정의 컴포넌트를 통한 확장성
4. 1. LCL (Lazarus Component Library)
라자루스의 GUI 체계는 기본적으로 위젯 툴킷 기반의 시각적/비시각적 구성 요소를 포함하는 라자루스 컴포넌트 라이브러리(LCL)이다. LCL은 델파이의 비주얼 컴포넌트 라이브러리(VCL)와 호환되지만, 델파이6에 맞추어져 있으며 완벽하게 호환되지는 않는다. LCL은 다양한 플랫폼을 위해 설계되었다.LCL은 델파이의 VCL을 모델로 하였지만, 윈도우에 국한되지 않고 크로스 플랫폼을 지원한다. 이는 공통 위젯 툴킷 클래스를 정의하고, 각 위젯셋별 구현을 분리하여, 각 위젯셋이 "인터페이스"를 통해 상호 작용하는 방식으로 이루어진다.[2]
LCL은 델파이와의 호환성보다는 윈도우 이외의 플랫폼에서의 프로그래밍을 상정한다. 델파이 및 윈도우에 의존적인 VCL을 본보기로 삼으면서, 광범위한 크로스 플랫폼 프로그래밍과 소스 공개를 지향한다.
4. 2. 위젯 툴킷 독립성
라자루스에서 "인터페이스"는 위젯 툴킷과의 상호 작용을 지원하는 기능을 의미한다. 각 위젯 툴킷마다 하나의 인터페이스가 존재한다.[2]현재 지원되는 위젯 툴킷 인터페이스는 다음과 같다.
라자루스는 유니코드의 UTF-8을 표준으로 하여 각 플랫폼의 인터페이스에서 이를 플랫폼에 맞게 변환하는 방식으로 플랫폼 간 문자 코드 차이를 흡수하려 한다. 그러나 0.9.22 버전에서는 이 기능이 구현되지 않았다. 향후 UTF-8 기반 개발을 통해 일본어에서도 크로스 플랫폼이 실현될 수 있을 것이다.
현재 IDE의 에디터는 일본어 및 IME/XIM 처리가 불충분하다. FreePascalJp 프로젝트에서 임시로 IDE 에디터의 일본어 패치를 공개하고 있다.
4. 3. PDA 지원
현재 라자루스는 다음 플랫폼의 PDA를 지원한다.
앞으로 지원이 예정된 플랫폼은 다음과 같다.
5. 데이터베이스 지원
개발자는 라자루스가 여러 데이터베이스 관리 시스템(DBMS)을 지원할 수 있도록 패키지를 설치할 수 있다. 프로그램은 코드 또는 폼에 드롭된 구성 요소를 통해 DBMS와 상호 작용할 수 있다.
기본적으로 지원되는 DBMS는 다음과 같다.[3]
6. 델파이와의 호환성 및 한계
라자루스는 델파이와 유사한 개발 환경을 제공하지만, 다음과 같은 차이점과 제한 사항이 있다.
- 델파이 기능 지원:
- 미지원: 데이터스냅(DataSnap, 엠바카데로 독점 엔터프라이즈 기능), 동적 로드 패키지, .NET 라이브러리([4]), 광범위한 Microsoft Office 연결(간단한 마이크로소프트 엑셀 테이블만 지원)
- VCL 호환성: VCL과 LCL은 완전 호환되지 않아, 기존 VCL 컴포넌트 사용 시 변환 및 편집이 필요하다. 라이브러리 누락 유닛은 LCL-VCL 비호환성보다 더 큰 문제다. 델파이 컴포넌트는 라자루스 작동을 위해 변환 가능하나 복잡하다.
- 실행 파일 크기: 윈도우 실행 파일이 델파이 6, 7보다 크다(디버그 정보 저장 방식 차이). 버전 0.9.30부터 외부 디버그 심볼 지원으로 크기 감소가 가능하다.
- GTK2 이식: GTK2 이식은 장기간 추진되었으나, 완전하지 않다.
- 일본어 처리: UTF-8 표준 채택, 그러나 IDE 등 크로스 플랫폼 구현 미흡. 0.9.25부터 공식 UTF-8 지원, 전각 문자 3바이트 처리 등 여전히 쉽지 않다.
7. 라이선스
라자루스는 자유 소프트웨어이며, 여러 부분은 GPL, LGPL, MPL을 포함한 다양한 자유 소프트웨어 라이선스와 LGPL의 수정된 버전으로 배포된다.[5] LCL은 생성된 실행 파일에 정적으로 내장되어 있으며, LGPL의 수정된 버전으로 라이선스가 부여되어 독점 소프트웨어를 포함하여 생성된 소프트웨어에 정적으로 내장될 수 있는 추가 권한을 부여한다.
설계 시간 패키지를 설치하는 것은 IDE에 연결하는 것과 같으므로, 모질라 공중 사용 허가서로 라이선스가 부여된 JEDI 패키지와 같은 GPL과 호환되지 않는 설계 시간 패키지를 사전 설치하여 라자루스 IDE를 배포하면 라이선스 위반이 발생한다. 이는 독점 패키지가 라자루스로 개발되는 것을 금지하지 않는다.
8. 버전
9. 라자루스로 개발된 애플리케이션 예시
- ASuite는 윈도우용 무료 오픈 소스 애플리케이션 실행기이다. 2.1 Alpha 1부터 라자루스/FPC로 완전히 작성되었다.
- Beyond Compare는 윈도우, macOS 및 리눅스용 데이터 비교 유틸리티이다. macOS 및 리눅스 버전은 라자루스/FPC를 사용하여 컴파일된다.
- ''별의 지도''(Cartes du Ciel)는 리눅스, macOS 및 윈도우용 무료 천문 프로그램이다. 이 소프트웨어는 망원경으로 볼 수 있는 대부분의 별자리, 행성 및 천체를 매핑하고 라벨을 지정한다. 라자루스/FPC로 완전히 작성되었으며 GPL로 배포된다.
- C-evo는 델파이에서 라자루스로 포팅된 오픈 소스 턴제 전략 게임이다.[12]
- Cheat Engine은 오픈 소스 메모리 스캐너/16진수 편집기/디버거이다. 컴퓨터 게임에서 치트하는 데 유용하다. 버전 6.0부터 라자루스/FPC로 컴파일된다.
- EPANET은 수도 배분 시스템 모델링을 위한 소프트웨어 패키지이다.
- HNSKY(Hallo Northern Sky)는 윈도우 및 리눅스용 무료 천문 프로그램이다. 버전 3.4.0부터 라자루스/FPC로 작성 및 컴파일되었다.
- MyNotex는 텍스트 메모를 작성하고 관리하는 데 유용한 리눅스용 무료 소프트웨어이다.
- PeaZip은 라자루스/FPC로 제작된 오픈 소스 아카이버이다.
- TorChat은 비활성 상태이며 파이썬에서 벗어나 라자루스 + Free Pascal로 다시 작성 중이었습니다.
- Total Commander 64비트 버전.[13]
- Double Commander는 두 개의 패널을 나란히 갖춘 크로스 플랫폼 오픈 소스 파일 관리자이다. Total Commander에서 영감을 얻었으며 몇 가지 새로운 아이디어를 더했다.[14]
- SimThyr는 갑상선 항상성을 위한 연속 시뮬레이션 프로그램이다.
10. 라자루스와 호환되는 델파이 라이브러리 예시
참조
[1]
웹사이트
Downloads
https://www.lazarus-[...]
Lazarus and Free Pascal Team
2023-03-25
[2]
웹사이트
LCL Internals
https://wiki.lazarus[...]
Lazarus and Free Pascal Team
2023-03-25
[3]
웹사이트
SQLdb Package
https://wiki.lazarus[...]
Lazarus and Free Pascal Team
2023-03-25
[4]
웹사이트
Using Pascal Libraries with .NET and Mono
https://wiki.lazarus[...]
Lazarus and Free Pascal Team
2023-03-25
[5]
웹사이트
"COPYING.txt" file from the online source code repository
http://www.freepasca[...]
[6]
웹사이트
Lazarus 1.6 on http://forum.lazarus.freepascal.org
http://forum.lazarus[...]
[7]
웹사이트
Lazarus 1.8.4 on http://forum.lazarus.freepascal.org
http://forum.lazarus[...]
[8]
웹사이트
Lazarus 2.0 fixes branch
https://wiki.lazarus[...]
2021-02-28
[9]
웹사이트
Lazarus 2.2.0 release notes
https://wiki.lazarus[...]
2022-01-06
[10]
웹사이트
Lazarus 3.0 release notes
https://wiki.lazarus[...]
2023-01-21
[11]
웹사이트
Lazarus 3.0 release notes
https://wiki.lazarus[...]
2024-06-20
[12]
웹사이트
c-evo Lazarus port website
https://app.zdechov.[...]
[13]
웹사이트
In which language is TC written??
http://www.ghisler.c[...]
Ghisler.ch
2016-08-11
[14]
웹사이트
sourceforge.net
http://doublecmd.sou[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com