
지난 시간에 IDE를 열면 기본적으로 빈 창 프로젝트가 열리지만 아직 저장되지 않은 상태입니다. Ctrl + S를 눌러 프로젝트를 폴더에 저장하세요.

저장 후 프로젝트 파일들은 위 사진과 같습니다.
backup 폴더
자동 백업 디렉터리로 파일의 과거 복사본이 저장되며 실수로 삭제하거나 코드를 잘못 수정했을 때 복구할 수 있습니다.
project1.ico
프로그램 아이콘으로 컴파일 후 프로그램 창과 바탕화면 바로가기에 표시됩니다.
project1.lpi
프로젝트 설정 파일: 컴파일 매개변수, 참조 유닛, 플랫폼 설정, 의존 패키지 등 프로젝트 전역 설정을 저장합니다.
project1.lpr
프로그램 메인 진입점 메인 소스 파일로 프로그램 실행 시작 지점이며 모든 폼 유닛을 관리합니다.
project1.lps
IDE 세션 기록 파일: 마지막으로 열었던 파일, 창 레이아웃, 커서 위치를 기록하고 프로젝트를 다시 열 때 편집 화면을 자동 복구합니다.
project1.res
컴파일된 리소스 파일로 아이콘, 버전 정보 등 내장 리소스를 패키징합니다.
unit1.lfm
폼 레이아웃 파일로 창 크기, 좌표, 컨트롤, 제목 등 시각 인터페이스 설정을 저장합니다.
unit1.pas
폼 로직 소스 파일로 버튼 클릭 이벤트, 변수, 함수 등 업무 로직을 작성하며 lfm 파일과 짝을 이루어 사용합니다.
unit1.pas
이것이 Pascal 소스 파일입니다. 델파이와 마찬가지로 라자루스도 Pascal 언어 기반으로 만들어졌습니다.
- Pascal:기본 프로그래밍 언어로 문법이 간결하며 표준 Pascal, 객체지향 Object Pascal로 나뉩니다.
- Delphi:상용 폐쇄 소스 IDE 및 컴파일러로 Object Pascal을 사용하며 Windows만 기본 지원하고 VCL 인터페이스 라이브러리를 제공합니다.
- Lazarus:무료 오픈소스 크로스플랫폼 IDE로 Free Pascal 컴파일러와 LCL 컴포넌트 라이브러리를 탑재하며 델파이 문법과 호환되고 Windows/macOS/Linux 등 여러 시스템용 프로그램을 컴파일할 수 있습니다.
한 줄 요약: Pascal은 언어이고, Lazarus, Delphi는 서로 다른 IDE 개발 도구입니다.
아래는 pas 파일 안의 소스 코드 내용입니다.
unit Unit1; // 유닛 파일명 Unit1
{$mode objfpc}{$H+} // 컴파일 지시문: ObjFPC 모드 + 긴 문자열 지원
interface // 인터페이스 영역: 외부에 클래스, 변수를 노출
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs; // 기본 라이브러리 참조
type
TForm1 = class(TForm) // 메인 창 클래스, 기본 폼 상속
private // 비공개 멤버
public // 공개 멤버
end;
var
Form1: TForm1; // 전역 폼 인스턴스
implementation // 구현 영역: 로직 코드 작성 공간
{$R *.lfm} // 시각 폼 레이아웃 파일 Unit1.lfm 바인딩
end.Code language: JavaScript (javascript)
*.lfm:라자루스 폼 레이아웃 파일로 드래그한 컨트롤, 창 크기, 속성 설정을 저장;
interface는 외부 선언용, implementation는 업무 로직 작성용;
내장 {$mode objfpc}는 Free Pascal 표준 객체지향 컴파일 모드 활성화;
빈 프로젝트에는 버튼/이벤트가 없고 기본 창 뼈대만 존재하며 직접 컨트롤을 드래그해 기능을 추가할 수 있습니다.
unit1.lfm
unit1.lfm은 폼 레이아웃 파일입니다.
object Form1: TForm1
Left = 915
Height = 240
Top = 237
Width = 320
Caption = 'Form1'
LCLVersion = '4.8.0.0'
end
Code language: JavaScript (javascript)
각 매개변수 설명은 아래와 같습니다.
object Form1: TForm1 // 객체 정의: 창 인스턴스, 타입 TForm1
Left = 915 // 창 좌측 상단에서 화면 왼쪽까지 거리 915픽셀
Height = 240 // 창 높이 240픽셀
Top = 237 // 창 좌측 상단에서 화면 위쪽까지 거리 237픽셀
Width = 320 // 창 너비 320픽셀
Caption = ‘Form1’ // 창 제목 표시줄 텍스트
LCLVersion = ‘4.8.0.0’ // 해당 레이아웃을 생성한 LCL 컴포넌트 라이브러리 버전
end // 창 객체 정의 종료
project1.ico
이 파일은 ico 아이콘 파일로 애플리케이션 아이콘으로 사용됩니다.

웹 브라우저로 열어 확인할 수 있습니다.
project1.lpi
XML 문서 형식의 파일입니다.
project1.lpi는 프로젝트 핵심 설정 파일로 크게 3개 영역으로 나뉘어 설명합니다.
1. ProjectOptions 프로젝트 기본 설정
<Version Value="12"/>:설정 파일 포맷 버전 12<PathDelim Value="\\"/>:Windows 경로 구분자 역슬래시
General 공통 프로젝트 설정
SessionStorage=InProjectDir:IDE 편집 기록을 프로젝트 폴더에 저장Title=project1:프로젝트 이름Scaled=True:고해상도 화면에 창 자동 스케일링 적용ResourceType=res:res 리소스 파일로 아이콘 저장UseXPManifest=True:Windows 현대 시각 스타일 활성화DpiAware=True:고DPI 고해상도 화면 지원으로 인터페이스 흐릿함 방지
Icon=0:프로젝트 기본 ico 아이콘 사용
BuildModes
기본 컴파일 구성 Default만 존재 (Debug/Release 모드를 구분하는 곳)
RequiredPackages
LCL 그래픽 컴포넌트 라이브러리 의존 (GUI 프로그램 필수)
Units 프로젝트 포함 파일 목록
project1.lpr:프로그램 메인 진입점unit1.pas:폼 유닛으로 Form1 시각 창 클래스와 바인딩
2. CompilerOptions 컴파일러 매개변수
- 출력 실행 파일 이름:
project1 - 컴파일 중간 파일 출력 폴더:
lib\CPU-시스템(예: lib\x86_64-win64) <GraphicApplication=True>:Windows 그래픽 GUI 프로그램으로 표시, 콘솔 프로그램 아님
3. Debugging 디버깅 설정
지정 예외 발생 시 디버깅 중단 무시: EAbort, 파일 열기 오류, 툴 코드 오류 등
project1.lpr
이 파일도 Free Pascal (Object Pascal) 문법을 사용합니다.
// 이 파일이 프로그램 메인 진입 프로젝트임을 선언
program project1;
// 컴파일 지시문: 객체지향 문법, 긴 문자열 지원 활성화
{$mode objfpc}{$H+}
uses
// Unix(Linux/macOS) 시스템용 스레드 라이브러리 불러오기
{$IFDEF UNIX}
cthreads,
{$ENDIF}
// Amiga 시스템용 스레드 라이브러리 불러오기
{$IFDEF HASAMIGA}
athreads,
{$ENDIF}
Interfaces, // LCL 크로스플랫폼 그래픽 하위 인터페이스
Forms, // 기본 폼 프레임워크
Unit1 // 사용자 정의 메인 폼 유닛
{ you can add units after this }; // 새 유닛은 여기에 추가
{$R *.res} // 프로젝트 리소스 파일(아이콘, 버전 정보) 불러오기
begin
RequireDerivedFormResource:=True; // lfm 폼 레이아웃 파일 읽기 활성화
Application.Scaled:=True; // 고해상도 화면 자동 인터페이스 스케일링
{$PUSH}{$WARN 5044 OFF} // 5044번 컴파일 경고 임시 비활성화
Application.MainFormOnTaskbar:=True; // 메인 창 독립 작업표시줄 아이콘 표시
{$POP} // 원래 경고 설정 복구
Application.Initialize; // GUI 프로그램 실행 환경 초기화
Application.CreateForm(TForm1, Form1); // 메인 폼 인스턴스 생성
Application.Run; // 창 메시지 루프 실행, 사용자 상호작용 대기
end.Code language: PHP (php)
차이점 구분:
- 일반
.pas:유닛 파일 (폼 / 기능 모듈) .lpr:프로젝트 메인 Pascal 파일, 프로그램 시작 진입점
project1.lps
Lazarus Project Session (프로젝트 세션 파일)으로 Pascal 코드가 아닙니다.
순수 IDE 설정 기록으로 마지막 프로젝트 편집 상태를 저장합니다.
예시: 열었던 코드/폼 파일, 각 창 위치·크기·분할 레이아웃, 커서 위치, 중단점, 검색 기록 등
.lpr/.pas:소스 코드로 컴파일 필수;
.lps:IDE만 사용하는 임시 기록 파일로 컴파일에 영향 없음.
project1.res
컴파일 리소스 바이너리 파일
컴파일 과정에서 project1.ico, 프로그램 버전 정보, Windows 인터페이스 매니페스트로 자동 생성됩니다.
- 소프트웨어 아이콘 저장, 컴파일 후 exe 우클릭 속성, 작업표시줄, 바탕화면 바로가기에 표시
- Windows 고DPI, XP 시각 스타일 등 시스템 리소스 설정 보관
컴파일 연관 코드 내 {$R *.res}가 이 리소스 파일을 최종 exe에 포함 특징
- 삭제해도 안전하며 프로젝트 재컴파일 시 자동 재생성;
- Windows 플랫폼 GUI 프로그램만 필요, 콘솔 프로그램은 생성되지 않음.
IDE를 열면 아래 시각 디자인 화면이 보입니다.

이것이 시각 폼 디자이너로 각종 컨트롤을 드래그해서 배치할 수 있습니다. VB, WinForm, WPF, Delphi, Qt 등 폼 기반 개발 툴과 조작 방식이 거의 동일합니다.
예시로 버튼 하나를 폼에 드래그합니다.

프로젝트를 다시 실행합니다.

창에 버튼이 추가된 것을 확인할 수 있습니다.

하단 Messages 창에서 exe 출력 폴더를 확인할 수 있습니다.
프로젝트 폴더 안에 exe 파일이 새로 생성됩니다.

이 exe가 완성된 컴파일 프로그램으로 다른 컴퓨터에 보내서 바로 실행할 수 있으며 의존성 없는 독립 실행 파일입니다.
실행 속도가 매우 빠릅니다…