프로젝트 배경
1) 주안점
Agile 프로세스 형태로 하드웨어와 통신하는 하위 부분, GUI 부분 등을 최소 단위로 쪼개어서 추후 재배치 및 유지보수에 용이하도록 함.
2) 문제점
GUI의 경우 이미지를 보여주고 처리하는 과정이 포함되어 있어서 메모리 누수로 인해 소프트웨어가 중단되는 문제가 있었음. - GUI를 pyqt로 개발하는 과정에서 qt 모듈 중 메모리 처리에 취약한 부분을 발견하여 이를 해결함.
RabbitMQ로 메시지 통신하는 과정이 매우 복잡하고 정교하여, sync를 맞추는 부분에 문제가 있었음. - 위 시스템은 총 5개의 PC에서 각기 독립적으로 이루어졌기 때문에, 시간 동기화 된 시스템 상에서 로그를 분석하여 점차적으로 시퀀스를 해결함.
Agile 프로세스 형태로 하드웨어와 통신하는 하위 부분, GUI 부분 등을 최소 단위로 쪼개어서 추후 재배치 및 유지보수에 용이하도록 함.
2) 문제점
GUI의 경우 이미지를 보여주고 처리하는 과정이 포함되어 있어서 메모리 누수로 인해 소프트웨어가 중단되는 문제가 있었음. - GUI를 pyqt로 개발하는 과정에서 qt 모듈 중 메모리 처리에 취약한 부분을 발견하여 이를 해결함.
RabbitMQ로 메시지 통신하는 과정이 매우 복잡하고 정교하여, sync를 맞추는 부분에 문제가 있었음. - 위 시스템은 총 5개의 PC에서 각기 독립적으로 이루어졌기 때문에, 시간 동기화 된 시스템 상에서 로그를 분석하여 점차적으로 시퀀스를 해결함.
프로젝트 성과
과학연구기기 기술력 입증
출연연구소의 프로젝트로 참여하여 소프트웨어 개발 및 첫 관측에 성공했고, 현재 이 관측시스템으로 관측하여 논문이 나오기 시작함.
핵심 기능
최소 기능을 갖는 작은 소프트웨어 모듈 개발 및 메시지 통신
하드웨어 통신, 상위 업로드, GUI 등으로 각 기능을 세분화하여 고유의 기능에 충실하므로, 하드웨어 교체 등과 같은 부분 유지보수에 용이. 메시지 통신을 통한 간단한 처리 과정 구현
진행 단계
설계 개발 테스트 첫 시험 관측 3회까지 시험 관측 진행
2020.09.
설계 및 하위 하드웨어 통신 소프트웨어 개발 및 전체 아키텍처 설계
부분 소프트웨어 모듈 테스트 및 전체 아키텍처 설계 수정
사용자 소프트웨어(GUI) 개발 및 현장 테스트
시험관측을 통한 소프트웨어 업데이트
부분 소프트웨어 모듈 테스트 및 전체 아키텍처 설계 수정
사용자 소프트웨어(GUI) 개발 및 현장 테스트
시험관측을 통한 소프트웨어 업데이트
프로젝트 상세
1) 포트폴리오 소개: 미국 하와이 제미니 천문대 분광기 관측기기 소프트웨어 개발
2) 작업 범위: 디텍터 제어 소프트웨어, 천문대 시스템과 통신하는 소프트웨어, 분광기 제어 및 모니터링 및 전원 제어 소프트웨어, 사용자 제어 소프트웨어 개발, CentOS8, Python, C/C++
3) 주요 업무 : 소프트웨어 전체 구조 설계 및 개발
4) 주안점 : 각 하드웨어를 제어하는 하위 소프트웨어들과 사용자가 직접 다루는 GUI 소프트웨어 간의 통신 방식 및 시퀀스 중점. RabbitMQ 서버를 통한 메시지 통신으로 구현
2) 작업 범위: 디텍터 제어 소프트웨어, 천문대 시스템과 통신하는 소프트웨어, 분광기 제어 및 모니터링 및 전원 제어 소프트웨어, 사용자 제어 소프트웨어 개발, CentOS8, Python, C/C++
3) 주요 업무 : 소프트웨어 전체 구조 설계 및 개발
4) 주안점 : 각 하드웨어를 제어하는 하위 소프트웨어들과 사용자가 직접 다루는 GUI 소프트웨어 간의 통신 방식 및 시퀀스 중점. RabbitMQ 서버를 통한 메시지 통신으로 구현

분홍색으로 표시된 부분이 우리 팀이 다루는 부분이고, "Software Sub-system"인 분홍색 box는 GUI가 아닌 Python 모듈, "IGRINS GUI"는 GUI 형태의 Python 모듈.