작성자 : 이다원
비동기 실시간 멀티 쓰레드 방식의 소프트웨어 프로그래밍
커피 원두 로스팅 자동화 프로그램을 만들기 위해서는 일반적인 소프트웨어 프로그래밍 보다 고난이도의 기술이 필요합니다. 대표적으로는 각종 로스팅 지표 그래프들의 패턴 분석을 위한 머신러닝 기술이 필요하지만, 이에 앞서서 먼저 해결해야 할 소프트웨어적인 문제들도 있습니다.

예를 들어, 날씨 혹은 내부 온습도 변화에 따라서 항상 동일하게 커피 원두 로스팅이 진행되지 않습니다. 어떤 날은 계획보다 로스팅이 빨리 진행될 수도 있고 어떤 날은 더디게 진행되는 경우도 있습니다. 게다가, 관리자가 로스팅 중간에 특정 작업츨 추가하고 싶은 경우도 생깁니다. 이런 상황에서 순차적 혹은 일률적으로 로스팅을 진행할 경우 로스팅 결과물에 있어서 큰 문제를 발생시키게 됩니다. 따라서, 이다원 로스팅 소프트웨어는 동기식이 아니라 완전 비동기식으로 설계되어 있습니다. 즉, 로스팅 소프트웨어가 처리할 다음 작업이 순차적 혹은 시간적으로 정해져 있는 것이 아나라, 100만분의 1초 단위로 각종 센서 데이터들을 분석해서 다음으로 처리할 가장 우선순위 높은 작업을 정해서 작업을 수행하게 됩니다.

기본적으로는 비동기식으로 작동하지만 가끔은 엄격하게 시간을 지켜야 하는 경우도 발생합니다. 예를 들어, 생두나 원두를 이송하는 작업은 정확히 시간을 지켜야 정확한 이송량을 맞출 수 있습니다. 따라서, 특정 작업에 있어서는 실시간 작업을 수행하도록 프로그래밍 되어 있습니다.

마지막으로, 생산성을 높이기 위해서는 로스팅 배치를 복수로 처리해야 합니다. 현재, 로스터기에 생두를 투입해서 로스팅 작업을 수행하고 있는 가운데, 동시에 이송 기계는 다음 배치를 위해서 생두를 계량하고, 석발(디스토너) 기계는 로스팅이 끝난 원두에 대해서 이물질 제거 작업을 수행할 수 있는 것입니다. 이를 위해서 기본적으로 멀티 쓰레드 작업이 필요합니다.



목록