COSMOS 백엔드 서버 구축
https://cosmos.uzurotech.com
- 회원가입, 로그인 등 기본적인 서버기능 뿐만 아니라 토스 결제연동 등 폭넓은 로직 구현을 수행했습니다.
- API서버 외에 연산서버, 스케쥴러 서버 등 기능별 서비스를 구축하여 제한적인 마이크로서비스 아키텍처를 활용, 연산 부하가 큰 서비스에 오토스케일링을 적용했습니다.
- 서비스 기획단계부터 참여하여 AWS 아키텍처 등 전체적인 서비스의 기틀 설계 및 코드작성을 담당하였습니다.
- 개발이 완료된 SaaS 제품은 민간우주발사업체, 정부출연연구기관 등 사용자를 대상으로 상업적으로 운영중입니다.
COSMOS 기반기술 고도화
- 인공위성간 충돌확률 예측 등 코드를 학계 논문에서 제시된 알고리즘들을 기반으로 작성, 이를 활용한 서비스를 개발하였습니다.
- 작성된 코드를 파이썬 패키지로 구축, Docker를 사용해 x86, arm64 아키텍처 타겟으로 빌드 환경을 구현하였습니다. 특히, arm64 환경으로 클라우드 환경을 이전하며 연산 소요시간 20% 감소, 서버비용 40% 감소를 달성하였습니다.
개발 에피소드 회고: fastapi-utils 패키지 버그 대응
https://github.com/fastapiutils/fastapi-utils/pull/310
- 토스 결제모듈의 정기결제 처리와 외부 API로부터의 DB 업데이트 등 주기적인 작업을 위해 오픈소스 패키지인 fastapi-utils를 활용하던 중 패키지 소스코드의 오류로 인해 서버가 실행되지 않는 장애가 발생하였습니다.
- 이를 해결하기 위해 우선 fastapi-utils를 이용하는 기능들을 비활성화하고 서버가 구동됨을 확인하여 해당 코드를 배포하였고, 이후 fastapi-utils의 코드 반복실행 데코레이터(@repeat_every)를 회사 자체 유틸리티로 새로 구현하여 배포 환경에서 fastapi-utils를 완전히 제거하였습니다.
- 이후 개인 시간을 활용해 fastapi-utils 레포지토리에서 기여자들과 해당 버그에 대해 논의한 결과, 문제의 원인은 반복 대상 함수는 이벤트루프에 task를 생성하여 실행하여야 하지만 이전 기여자가 비동기 처리를 고려하지 않고 작성된 테스트를 통과시키기 위해 대상 함수가 완료될 때까지 await하도록 수정한 것이 문제였음을 확인하였습니다.
- 해결을 위해 코드를 수정하여 PR을 제안하였고, 비동기 처리를 고려하도록 테스트 코드도 함께 수정하여 버그 해결을 검증한 후 해당 수정사항이 master 브랜치에 머지되어 배포되었습니다.
딥테크 TIPS 선정
- ESA(유럽우주국) 연구자료를 바탕으로 인공위성 위치추적 시스템에 대한 아이디어를 제안, 탐색연구를 통해 딥테크 TIPS에 선정되었습니다.
- 안테나를 통해 실제 위성신호 수신 후 교차상관관계(Cross-correlation)을 통해 유럽우주국측 연구성과를 재현하는데 성공하여 기술적 가능성을 입증하였습니다.
더보기