들어가며
임베디드를 다루는 중소기업이라면
CI/CD의 필요성은 느끼지만, 인력부족 · 레거시 시스템 유지 등등 각종 핑계로 구축을 하염없이 연기하고 있을 수 있다.
역시나 현재 다니고 있는 회사에서도
사용자 배포를 위한 최종 인스톨러를 만들고자 할 때는 따로 Linux 가상머신을 이용해 Installer를 제작하거나,
컴파일할 수 있는 담당자에게 요청하여 업무를 처리했다.
여기서 오는 위험은, 내가 부분적으로 개발한 시스템이 전체 시스템에 어떤 버그를 야기하는지 테스트해 볼 수 없다는 데 있다.
혹여나 Installer를 자주 배포하거나, 담당자가 퇴사라도 한다면 야근을 해야할지도 모른다.
사내 CI/CD를 구축해 배포용 프로그램 컴파일 자동화를 달성하기 위해서
이번 글에서는 누구나 따라할 수 있게 Windows에 Jenkins를 설치하는 방법을 정리해 보려 한다.
Windows Jenkins 설치 방법
개발자라면 Mac또는 Linux OS, Docker를 좋아할 텐데, 임베디드 개발자라면 마우스 딸깍이 있는 윈도우에서 한다!
Jenkins Installer For Windows 다운로드
우선 Jenkins Server는 거의 모든 플랫폼을 지원하고 있어 설치가 매우 쉽다.
CI/CD 서버로 사용하고자 하는 Windows PC에 설치하고 다음 과정을 진행하자.
https://www.jenkins.io/download/thank-you-downloading-windows-installer/
Thank you for downloading Windows installer
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software
www.jenkins.io
Management Web Server Port 설정
Installer를 실행하면 다음과같이 웹서버로 사용할 Port를 설정창으로 시작한다.
Jenkins의 장점은 자동화서버를 웹형식으로 접근하여 사용할 수 있는데,
예를 들어 8080 포트를 사용한다면 http://127.0.0.1:8080 주소로 접속해 자동화 Pipeline을 관리할 수 있다.

Java (JDK or JRE) Home Directory 설정
다음 창으로 넘어가면 Java Home Directory 설정창을 볼 수 있다.
Jenkins는 내부적으로 Java(21 ver ~ 25 ver)를 사용하기 때문에, 서버가 되는 PC에 JAVA가 설치되어 있어야 한다.

JAVA를 설치할때는 너무 최신버전인 경우 지원하지 않아서,
다음 링크에서 지원하는 버전과 OS를 맞춰 설치하면 된다.
https://www.oracle.com/kr/java/technologies/downloads/#java25

JAVA 설치 이후, Jenkins Installer 로 돌아와 홈 디렉터리 경로를 설정하면 된다.
JAVA를 기본 경로로 설치했다면 C:\Program Files\JAVA 폴더 안에 jdk-[xx.yy.zz] 형식으로 폴더가 있을 텐데
bin 폴더나 lib 폴더가 아닌 해당 폴더 jdk-[xx.yy.zz]를 선택하면 된다.

방화벽 설정
아무래도 WebServer다 보니 방화벽(8080 포트)을 열어주는 옵션이 있다.
Firewall Exception 을 체크하면 기본적으로 Windows 방화벽의 인바운드 규칙(Inbound Rules)에 8080 포트로 접근하는 규칙을 추가해 외부에서 접근할 수 있도록 설정한다.
(*뒤에서 따로 방화벽 포트를 설정하는 방법이 있기에 그냥 Next를 눌러 넘어간다.)

Jenkins 설정 방법
Jenkins Web Server 설정
설치를 완료했다면 로컬 PC에서 인터넷 브라우저를 통해 웹서버에 접속할 수 있다.
http://localhost:8080 주소로 접속하면 다음과 같이 최초 비밀번호를 입력하는 창이 나온다.

최초 비밀번호는 위에 나온 경로인 C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPasswork 파일에 있고
ProgramData폴더는 숨김폴더로 설정돼 있어서 숨김 항목을 표시해야 확인할 수 있다.

초기 비밀번호 등록 후 Jenkins가 정상적으로 켜지는 걸 볼 수 있다.

방화벽 설정
만약 Jenkins 설치 시 FireWall Exception을 체크하지 않았다면 다른 외부 PC에서 https://[ip]:8080으로 접속이 아예 안될 텐데, 방화벽에서 8080 포트를 막고 있기 때문일 수 있다.
방화벽 설정은 Windows 키를 누르고 고급 보안이 포함된 Windows Defender 방화벽에서 추가할 수 있다.

외부에서 8080 포트로 Jenkins Server로 들어올 수 있도록 허용하기 위해,
인바운드 규칙을 새 규칙-포트 로 8080 포트를 추가해 접속을 허용한다.

마치며
이로써 CI/CD 자동화를 위한 Jenkins(젠킨스) 서버 구축이 끝났다.
나는 사내에 24시간 구동되는 서버 PC가 있어 거기에 구축하지만, Local PC에서 컴파일할 때만 사용해도 되고, 시스템별로 서버를 여러 개 두어도 좋을 듯하다.
우선 Jenkins로 파이프라인을 만들어두면 추후 병렬컴파일이나 AI와 연동한 작업이 훨씬 쉬워지기 때문에
조금씩이라도 자동화를 구축해 나가며 시스템을 확장시켜 나가는 게 효과적일 것 같다.
앞으로 해야 할 작업은 Jenkins를 이용한 컴파일 자동화인데
형상관리도구(SVN) Update→ Windows Installer 컴파일 →Linux Installer 컴파일→AArch64 컴파일
파이프라인을 만들고,
SVN이 Checkout 될 때마다 자동으로 실행하도록 하면 쓸만한 기능이 나올 듯하다.
지난 글: 2026.01.21 - [개발] - CI 입문 ㅡ Jenkins로 C++ 빌드·유닛 테스트 자동화 따라하기
CI 입문 ㅡ Jenkins로 C++ 빌드·유닛 테스트 자동화 따라하기
들어가며최근 빌드 환경 구성이 잦아지면서 적지 않은 스트레스를 겪고 있다. 현재 진행 중인 프로젝트는 VirtualBox로 각자 빌드 환경을 구성하고,PowerShell 스크립트를 이용해 Windows, Linux, Embedded Li
prejudice.tistory.com
직접 공부해서 다음 글로 정리해 보려고 합니다.
'개발' 카테고리의 다른 글
| 비개발자도 쓰는 AI Agent 만들기 - Copilot CLI와 바이브 코딩 (0) | 2026.05.25 |
|---|---|
| AI Agent 개념정리 - LLM · Worker-Agent 패턴 · Multi-Agent 패턴 (0) | 2026.05.11 |
| ROS2를 처음 분석하며 정리한 핵심 개념 - DDS, QoS, ROS Architecture (0) | 2026.04.29 |
| C++ Preemptive Task Scheduler 구현 및 성능 비교 (Windows · Linux · Linux PREEMPT_RT) (0) | 2026.04.18 |
| Linux PREEMPT_RT 실시간성(Jitter) 측정 및 성능 비교 - RTOS (0) | 2026.04.06 |