3 Development
김충현(R&D사업부/이사) edited this page 2026-10-12 05:48:01 +00:00

개발자·IT 담당자를 위한 빌드 안내

이 문서는 소스를 수정하거나 설치 파일을 직접 만드는 개발자와 IT 담당자를 위한 안내입니다.

설치 파일을 받아 사용하려는 분은 처음 시작하기부터 읽어 주세요.

소스 구조

위치 내용
tower/ 한국어 타워 웹 화면
agent-go/internal/detect/ Go 개인정보 탐지 엔진과 사전
agent-go/cmd/ 타워·에이전트 등의 실행 프로그램
agent-go/pack/ 에이전트 패키지·Windows 설치기·릴리즈 검사
tools/ 초기 설정·타워 빌드·공개 파일 검사
deploy/, compose.yaml Docker 서버 구성

엔진의 원본과 Go 포팅 관계는 출처 문서에 있습니다.

에이전트 전체 빌드

Go 1.27.1, Python 3, Bash, curl, NSIS 3가 필요합니다. 최초 빌드에서는 OCR 모델과 OS별 실행 라이브러리를 내려받습니다.

저장소 루트에서 실행합니다.

cd agent-go
DIST="$PWD/../dist/agent" pack/build-agents.sh
cd ..
python3 agent-go/pack/verify-release.py dist/agent

완성 파일은 dist/agent에 생성됩니다. Windows 설치 파일, 지원하는 5개 OS·CPU의 실행 파일과 전체 ZIP, VERSION, SHA256SUMS를 포함합니다.

브랜드 아이콘이나 패키지 내용 검사에 실패하면 배포하지 않습니다. 빌드 성공과 실제 OS에서의 설치 확인은 별도로 기록해 주세요.

빌드한 파일을 타워에 배치

  • Docker: 기본 Compose가 dist/agent를 타워의 다운로드 경로로 연결합니다. Docker 설치를 완료하면 사이드바에서 실제 버전과 파일을 읽습니다.
  • Windows EXE: 트레이에서 데이터 폴더를 열고 그 안의 agent 폴더에 dist/agent의 내용을 둡니다.

파일을 옮길 때 VERSION과 SHA256SUMS도 함께 옮깁니다. 생성한 직원 등록용 ZIP에는 등록 키가 들어갈 수 있으므로 공개 Git에 올리지 않습니다.

Windows 타워 EXE 빌드

Go 1.27.1과 Python 3로 저장소 루트에서 실행합니다.

python3 tools/build-tower-windows.py --go go

결과는 dist/tower-windows의 EXE·VERSION·SHA256SUMS입니다. 필요한 런타임을 다운로드하고 검증해 포함합니다. 데이터 폴더·키·빌드 입력 ZIP은 Git에 추가하지 않습니다.

변경 확인

cd agent-go
go test ./...
cd ../tower
npm test
npm run test:live
cd ..
python3 tools/verify-public-tree.py

화면 검사는 Node.js 22 이상을 사용합니다. OCR·DB·실제 AI 등의 환경 의존 검사가 건너뛰어졌는지도 결과에서 확인하세요. 소스 수정 범위에 필요한 검사와 실제 화면·설치 확인을 함께 수행합니다.

설치별 고급 설정

Docker의 기본 프록시 네트워크는 172.29.240.0/24입니다. 회사 네트워크와 겹친다면 compose.yaml의 서브넷과 웹 주소, TOWER_TRUSTED_PROXIES를 함께 변경해 주세요.

초기 메모리 제한은 API 4GiB, DB 4GiB, 웹 256MiB입니다. 호스트 OS와 Docker가 사용하는 자원은 별도로 필요합니다. 이 설정이 에이전트 1,000대의 운영 성능을 보장하지는 않습니다.

Windows 타워의 진단 옵션은 -data-dir, -port, -no-browser, -stop, -storage-protection auto|efs|device입니다.

  • auto는 EFS를 먼저 시도합니다. 사용할 수 없으면 현재 저장 드라이브의 장치 암호화를 확인합니다.
  • device도 암호화 검사를 생략하지 않습니다.
  • -stop은 같은 로그인 데스크톱에서 사용합니다.
  • -no-trust는 CA 자동 등록만 생략합니다. HTTPS와 클라이언트의 CA 검증은 유지합니다.

저장 보호 검사

드라이브는 읽기 전용 WMI 메서드로 확인합니다. 암호화가 완료되었는지, 보호가 켜져 있는지, 지원하는 AES 방식인지 검사합니다. 저장 파일이 실제로 같은 드라이브에 있는지도 확인합니다.

관리자 승인은 확인용 프로세스에만 적용합니다. 복구 키는 읽지 않으며, HTTP 서버와 DB를 자동으로 관리자 권한으로 실행하지 않습니다.

상태는 10초 주기로 확인합니다. 제한 시간 안에 확인하지 못하면 실패로 처리합니다.

Windows 네이티브 시험은 기본 EFS 경로와 실제 EXE를 검사합니다. TOWER_DEVICE_STORAGE_TESTS=1을 명시한 관리자 시험은 새로 만든 폐기용 VHDX만 암호화해 저장·강제 종료 복구·보호 중지·미암호화 실행 거부를 검사합니다. 실제 Home OS 시험을 대체하지 않습니다. 결과와 미검증 범위

새 릴리즈 게시

기여 안내를 따릅니다. 에이전트는 소스 버전을 올리고 새 태그·한국어 변경 설명·전체 패키지·최종 체크섬을 준비합니다. agent-go/pack/release.py는 검사한 초안만 게시하고 이미 공개된 파일을 덮어쓰지 않습니다. 타워 역시 초안 → 파일 업로드 → 바이트 확인 → 공개 → 인증 없는 다운로드 확인 순서로 게시합니다.

전체 안내

원문: 공개 소스 cedbd06. 문서 갱신일 2026-10-12.