프로젝트 배경
1) 주안점
Agile 프로세스 형태로 하드웨어와 통신하는 하위 부분, GUI 부분 등을 최소 단위로 쪼개어서 추후 재배치 및 유지보수에 용이하도록 함.
2) 문제점
GUI의 경우 이미지를 보여주고 처리하는 과정이 포함되어 있어서 메모리 누수로 인해 소프트웨어가 중단되는 문제가 있었음. - GUI를 pyqt로 개발하는 과정에서 qt 모듈 중 메모리 처리에 취약한 부분을 발견하여 이를 해결함.
RabbitMQ로 메시지 통신하는 과정이 매우 복잡하고 정교하여, sync를 맞추는 부분에 문제가 있었음. - 위 시스템은 총 5개의 PC에서 각기 독립적으로 이루어졌기 때문에, 시간 동기화 된 시스템 상에서 로그를 분석하여 점차적으로 시퀀스를 해결함.
Agile 프로세스 형태로 하드웨어와 통신하는 하위 부분, GUI 부분 등을 최소 단위로 쪼개어서 추후 재배치 및 유지보수에 용이하도록 함.
2) 문제점
GUI의 경우 이미지를 보여주고 처리하는 과정이 포함되어 있어서 메모리 누수로 인해 소프트웨어가 중단되는 문제가 있었음. - GUI를 pyqt로 개발하는 과정에서 qt 모듈 중 메모리 처리에 취약한 부분을 발견하여 이를 해결함.
RabbitMQ로 메시지 통신하는 과정이 매우 복잡하고 정교하여, sync를 맞추는 부분에 문제가 있었음. - 위 시스템은 총 5개의 PC에서 각기 독립적으로 이루어졌기 때문에, 시간 동기화 된 시스템 상에서 로그를 분석하여 점차적으로 시퀀스를 해결함.
프로젝트 성과
메모리 처리 취약점 해결 및 동기화 개선
PyQt로 구현된 GUI에서 메모리가 원인이 되는 불분명한 오류 발생하여, qt 모듈 중 메모리 처리에 충돌이 되는 부분 발견하여 다른 위젯으로 교체하여 해결함. 각 모듈간의 통신에서의 동기화를 개선함.
핵심 기능
최소 기능을 갖는 작은 소프트웨어 모듈 개발 및 메시지 통신
하드웨어 통신, 상위 업로드, GUI 등으로 각 기능을 세분화하여 고유의 기능에 충실하므로, 하드웨어 교체 등과 같은 부분 유지보수에 용이. 실제 이러한 구조의 편리성으로 메모리, 동기화 문제 해결함.
진행 단계
각 단계별 문제점 파악 및 개선
2024.04.
사용자의 문제 발생 시점에서의 로그, 캡쳐 화면 수집
의심이 가는 부분의 코드 분석 및 대체 코드 작성
상세 로그 추가 및 반복 테스트
테스트 하면서 사용자의 피드백 받고 반복 진행
의심이 가는 부분의 코드 분석 및 대체 코드 작성
상세 로그 추가 및 반복 테스트
테스트 하면서 사용자의 피드백 받고 반복 진행
프로젝트 상세
1) 포트폴리오 소개: 미국 하와이 제미니 천문대 분광기 관측기기 소프트웨어 개발
2) 작업 범위: 디텍터 제어 소프트웨어, 천문대 시스템과 통신하는 소프트웨어, 분광기 제어 및 모니터링 및 전원 제어 소프트웨어, 사용자 제어 소프트웨어 개발, CentOS8, Python, C/C++
3) 주요 업무 : 소프트웨어 전체 구조 설계 및 개발
4) 주안점 : 각 하드웨어를 제어하는 하위 소프트웨어들과 사용자가 직접 다루는 GUI 소프트웨어 간의 통신 방식 및 시퀀스 중점. RabbitMQ 서버를 통한 메시지 통신으로 구현
2) 작업 범위: 디텍터 제어 소프트웨어, 천문대 시스템과 통신하는 소프트웨어, 분광기 제어 및 모니터링 및 전원 제어 소프트웨어, 사용자 제어 소프트웨어 개발, CentOS8, Python, C/C++
3) 주요 업무 : 소프트웨어 전체 구조 설계 및 개발
4) 주안점 : 각 하드웨어를 제어하는 하위 소프트웨어들과 사용자가 직접 다루는 GUI 소프트웨어 간의 통신 방식 및 시퀀스 중점. RabbitMQ 서버를 통한 메시지 통신으로 구현

시스템 아키텍쳐