Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

전자 제조 업무가 쉬워졌다 - 델파이와 RAD서버 활용 사례


Recommended Posts

(지난 2023년 1월에 번역되었던 글을 보강한 후 다시 게시하는 글입니다)

이안 바커 (Ian Barker)"Electronics Manufacturing Made Easy With Delphi And RAD Server" 을 번역했습니다. (원문 작성: 2023년 1월, 최종 번역: 2024년 2월)

최근 우리는 기업용 솔루션을 RAD스튜디오 IDE 소프트웨어로 구축한 사례를 모으고 있으며, 이를 제출해줄 것을 개발자들에게 요청했다. 델파이, C++빌더 뿐만 아니라 연관 기술인 RAD서버, FireDAC, 인터베이스 등의 사례까지 말이다. 오늘은 Bruce McKibben씨가 자신의 Macaos 시스템에 대해 전해 주었다. 고마워요 Bruce!

차례


Macaos에 대해 말해주세요

전자 제품 설계에 사용할 수 있는 좋은 도구들은 많긴 하지만, 대부분은 단일 인쇄 회로 기판(PCB) 설계 설명 데이터를 생성하는 단계에서 끝난다. 그러나, 그 단계에서부터 수많은 데이터 조작 단계들을 더 거쳐야 완성된 전자 제품 조립에 도달한다 - 예를 들어 패널화와 디패널화, 솔더 페이스트 스텐실 설계, 부품 데이터 관리, 내부 회로 테스트 등을 거쳐야 한다. Macaos 시스템은 이 사이의 간극을 메우기 위해 구축되었다.

 

우리는 왜 델파이를 선택하여 우리의 기업용 프로젝트를 진행했는가?

우리가 회사를 시작한 것은 1990년대 후반에 PCB용 간단한 가격 계산 도구를 델파이 3로 만들어서 디스켓으로 배포하면서부터이다. 현재, 우리의 주력 애플리케이션인 Macaos Entperise는 클라우드-기반 시스템이다. 이 시스템은 온라인 가격 책정과 주문, 제조 데이터 관리, 데이터 보존 등등의 서비스를 제공한다.

맨 처음 델파이를 선택하게 된 이유는 낮은 학습 곡선으로 배우기 쉽고, 빠르게 UI를 개발할 수 있고, 이벤트-기반 상호작용 방식이고, 네이티브 코드로 컴파일 된다는 특징 때문이었다. 그 동안 25년이 지났지만, 이 특징들은 우리에게 여전히 중요하다. 멀티-티어 시스템으로 확장할  때는, 카일릭스(Kylix)가 있었기 때문에 우리는 미들-티어 서비스들을 리눅스 서버용으로 구축할 수 있었다 - 그 중 일부는 지금도 여전히 운영되고 있다. 하지만, 카일릭스가 중단되고 델파이 10.2에서 리눅스를 지원하기까지 12년 동안 공백기가 있었고, 우리는 다른 개발 환경으로 옮기기로 거의 생각이 기울었었다.

현재, 우리의 주력 제품들은 VCL-기반의 데스크탑 애플리케이션들이다. 또한 우리는 모바일 동반자 앱(companion app)들도 개발해서 iOS와 안드로이드용으로 제공했다. 그리고 우리의 미들-티어는 리눅스에 배포한 RAD서버로 구현했다.

spacer.png

 

우리가 선택한 기업 시장 살펴보기

전자 제품 설계로부터 완성된 어셈블리 즉 제품에 이르기까지 도달하는 과정에는 많은 단계들이 있다.

전형적으로, 고객사의 레이아웃 엔지니어는 제조 데이터를 CAD 시스템에서 생성한다. 그리고 이를 구매 부서로 보낸다. 구매 담당자는 그 제조 데이터를 여러 공급업체들에게 보내어 PCB 만(부품이 없는 상태) 제작하는 견적 또는 PCB 어셈블리(부품 장착 상태)를 제작하는 견적을 요청한다.  공급업체의 영업 부서는 가격을 계산하게 된다. 그 과정에는 여러 PCB 제조업체들과 여러 전자 부품 공급 업체들에게 견적을 받기 위한 요청도 포함된다.

각 PCB들은 제조 라인 기계에 적합한 크기의 패널로 증대되어야 한다. 또한 PCB의 각 납땜 이음에 솔더 페이스를 적정하게 도포하기 위한 스텐실을 설계해야 하는 경우도 종종 있다. 부품들을 장착한 뒤에는, 개별 기판을 조심스럽게 디패널화(패널에서 분리)해서 납땜 이음 부위가 손상되지 않도록 해야 한다.

spacer.pngPCBA들은 일반적으로 부품이 올바르게 장착되었는지, 회로가 예상대로 작동하는지 확인하는 기능 테스트를 거치게 된다. 종종, 테스트에는 펌웨어를 PCBA에 업로드하는 작업도 포함된다.

 

Macaos System이란?

Macaos System은 세 가지 주요 클라이언트 애플리케이션들을 중심으로 구축되었다:

  • Macaos Enterprise: 고객들이 사용한다. 제조 데이터 업로드, 가격 견적 받기, 주문 및 주문 추적, 문서 보존 등의 기능이 있다. 패널화, 스텐실 설계, 솔더 팔레트 설계, 디패널화, 부품 데이터 관리 및 테스트 픽스처 설계를 위한 모듈들도 있다. 이 모듈들 중 다수는 PCBA 제조업체에서도 사용한다. 사용자는 이 기능들 중 일부를 접근할 때 Macaos Rover 모바일 앱(iOS용과 안드로이드용)을 사용할 수도 있다.
  • Macaos Perception: 공급업체들이 사용한다. 주문과 고객 관계를 관리한다.
  • Macaos Convergence: 공급업체들과 제조업체들이 사용한다. 공급망 정보 흐름을 관리한다.

업로드된 제조 데이터는 우리의 서버에 저장된다. 그리고 필요할 때 클라이언트 프로그램들에게 전달된다. 이는 보안, 버전 관리, 데이터 무결성을 크게 향상시켜 주었다. 시장의 기존 관행으로는 이 테이터를 이메일 첨부 파일로 보냈었기 때문이다.

RAD서버, FireDAC, 델파이가 리눅스에서 어떤 역할을 하는가?

RAD서버는 견고한 FireDAC 기반 데이터베이스 연결과 로컬 시스템의 기능성을 결합한 것이므로, 우리는 서버 측에서 제조 데이터를 처리할 수 있었다. 따라서 다양한 사용자들은 그들이 알아야 하는 데이터에만 액세스하게 된다.

델파이 리눅스 컴파일러를 사용하여, 우리는 우리의 지적 자산인 제조 데이터 처리 코드를 윈도우에서 리눅스로 이식할 수 있었으며, 그 작업은 최소한의 노력만으로도 충분했다.

 

우리는 어떤 문제를 델파이로 Macaos Enterprise 데스크탑 애플리케이션 안에서 해소하고 싶어 했는가?

우리가 현재 진행하고 있는 개발 프로젝트는 PCBA들의 기능 테스트를 위한 단순하면서도 유연한 플랫폼이다. 이 플랫폼은 테스트 픽스처(fixture/jig), 전자 케이지, 테스트 루틴 모듈로 구성되며, Macaos Enterprise 데스크탑 애플리케이션에 포함될 것이다. PCBA용 픽스처(fixture/jig)는 Macaos Enterprise의 Test Fixture 모듈 안에서 설계할 수 있다. 우리가 구상하고 있는 것은 설계 엔지니어가 테스트 절차를 구성할 수 있도록 하는 것이다. 그 테스트 절차는 제조업체가 출하 전에 수행하게 된다.

프로젝트 목표는 다음과 같다:

  • 테스트 루틴들은 손쉽게 구성할 수 있을 것
  • 시스템을 확장할 수 있고 커스터마이징 할 수 있을 것
  • 테스트 루틴들과 테스트 결과들을 클라우드에 보존할 수 있을 것
  • 테스트 결과들을 데스크탑 또는 모바일 애플리케이션에서 웹 브라우저를 통해 접근할 수 있을 것
  • 테스트 결과들을 외부 데이터베이스들로 내보내기
  • 전자 제품들을 재사용할 수 있을 것

재사용 가능한 전자 제품 케이지에는 측정 가능한 크로스바 스위치로 연결된 64-to-4 테스트 포인트가 포함되어 있어, PCBA의 최대 64개 테스트 지점 중 어디에서든 측정이 가능하다. 또한 측정 기기들도 내장되어 있다. 또한 여러가지 다양한 추가 플러그인 기기들도 사용할 수 있다. 마이크로컨트롤러는 매우 다양한 저-수준 테스트 작업들을 관리한다. 그 테스트 작업들은 http 기반 API를 통해 구동된다.

 

RAD스튜디오와 엠바카데로 요소들 중 우리의 기업용 솔루션에서 사용한 것은 무엇인가? 

델파이와 RAD서버는 이 프로젝트를 위한 이상적인 도구라고 우리는 믿는다. 테스트 루틴 모듈은 THttpClient를 사용해 전자 제품 케이지와 통신한다. 또한 리눅스에 배포된 RAD 서버 미들-티어를 통해, 서버들과 통신한다. 또한 클라이언트 애플리케이션들도, 데스크탑과 모바일 용 모두, 테스트 결과들에 접근할 때 RAD서버를 통한다. 델파이는 윈도우(VCL), iOS와 안드로이드(FMX), 리눅스(RAD서버) 컴파일을 지원하기 때문에, 우리는 코드 대부분을 재사용하여 이 플랫폼들에 반영할 수 있다. 델파이의 TJSONTextWriterTJSONTextReader 클래스는 테스트 루틴들을 직렬화 하는데 사용한다. 그 결과, 표준화되고 유연한 저장 형식을 갖게 된다.

이 프로젝트의 과제 중 하나는 테스트 루틴 설계를 쉽고 명료하게 할 수 있도록 하는 것이다. 전체적인 방식은 개별 테스트 작업을 도구상자에서 선택하고, 특정 측정값에 맞도록 그것을 구성한 다음, 테스트 루틴 순서 상 알맞은 지점에 놓도록 하는 것이다. 델파이용으로 나와 있는 매우 다양한 써드-파티 컴포넌트들은 직관적인 UI를 구축하는데 큰 도움이 된다. 우리는 TMS TAdvTableView 컴포넌트를 사용하여 테스트 루틴 순서를 관리하고 표시할 가능성이 높다.

 

델파이와 RAD서버를 기업용 솔루션에 사용하는 것에 대한 우리의 결론은?

델파이와 RAD 서버가 제공하는 멀티-플랫폼 능력으로 인해 우리는 굉장히 유연하게 리눅스 서버와 데스크탑, 모바일 클라이언트 간에 데이터를 접근할 수 있다. RAD 서버는 FireDAC 기술을 사용하기 때문에 우리가 예전에 만들었던 카일릭스 기반 미들-티어 서비스에 비해 안정성과 유연성이 크게 향상되었다. 또한 델파이의 그래픽 UI 디자인 방식과 이벤트-기반 방식은 우리가 깔끔하고 직관적인 UX를 구축하는데 많은 도움이 되었다.

Bruce McKibben 제공. Bruce와 연락하려면 www.macaos.com을 방문하면 된다.

 

이 글은 기업용 대형 애플리케이션에 대한 기고 경연 대회(Enterprise Article challenge)에 제출된 것이다. 만약 여러분도 델파이, C++빌더 또는 RAD 스튜디오를 사용하여 만든 훌륭한 엔터프라이즈 제품과 프로젝트에 대해 이야기하고 싶은 성공 사례가 있다면 연락을 주기 바란다.

한국 개발자는 데브기어의 델파이 사례 기고 행사에 참여하세요!

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.