본문 바로가기
프로젝트

클라우드 네이티브 개발자 양성과정 - 최종 프로젝트

by 장중앙 2021. 11. 29.

https://github.com/orgs/SROA-busan/repositories

 

SROA-busan

SROA-busan has 8 repositories available. Follow their code on GitHub.

github.com

주제 : 방문 서비스 일정 최적화 알고리즘

 

기간 : 2021.10.04 ~ 2021.11.20

 

내용 :

  • AS 수리, 벌레 퇴치, 에어컨 등의 기기 설치 등 모든 방문 서비스에 이용할 수 있는 서비스 엔지니어의 일정 배치 최적화를 위한 모듈, 한 가지의 예시 A/S 수리를 위한 프로젝트로 진행함
  • 일정 조회, 일정 예약, 수리, 계정, 관리자 사이트, 평가로 Service 단위로 나눠 MSA Server를 구축함
  • 구현한 각각의 MSA Server는 Docker, AWS를 통해 배포
  • Slack을 이용해 협업

사용한 기술 : 

  • Server : Spring Boot
  • Application : Android
  • Java, CSS, HTML
  • Kotlin
  • MariaDB
  • AWS

프로젝트 설계

 

서비스 아키텍쳐

AWS 설계

 

 

일정 배치를 위한 거리 및 방향성


프로젝트 결과물

 

어플리케이션 결과 화면 및 기능 순서

 

엔지니어 어플리케이션

 

로그인, 회원가입

메인 페이지 및 일정 조회

입고 및 평가 조회

 

 

고객 어플리케이션

로그인, 회원가입

 

수리 예약

조회 및 평가

 

 

서버

관리자 웹 페이지

센터별 일정 확인, 서비스 센터 및 사원 추가, 고객 및 일정 조회  

 

일정 배치 결과


후기

MSA Server를 맡았으며, 일정 예약, 일정 조회, 계정, 수리, 평가 등으로 서버를 나눠서 개발 했습니다. 혼자서 모든 서버 개발을 했기 때문에 늦은 시간까지 개발 하는 등 많은 시간을 소모했습니다.

특히, 일정 배치를 위한 알고리즘에 많은 노력을 쏟았습니다. 거리가 가까운 엔지니어에게 일정을 할당하는 것으로 설계를 했더니, 거리가 조금 더 멀어도 이후 일정을 반영했을 때 더 효율적일 수 있는 엔지니어가 배제되기 때문에 이러한 부분을 해결하고자 많은 자료조사와 고민 끝에 방위각 계산을 이용한 방향성 차이를 이용하여 해결할 수 있었습니다.  

다른역할을 맡은 팀원, 특히 어플리케이션을 맡은 팀원들과는 의사소통이 조금 부족했다고 생각이 들어 아쉽습니다.

 

수령받은 물품이 수리 완료되거나 새로운 일정이 할당 되었을 때 처럼 새로운 상태 변화에 대해 FCM을 이용한 엔지니어/고객에게 어플리케이션 알림 기능과 자정 12시 다음날에 대한 일정의 리스케줄링 기능에 대해 보완점이 있었지만, 

각자 개발하고 마지막에 테스트를 하면서 각자의 기능을 확인했기 때문에 이후, 보완점을 추가 구현하지 못했습니다.

 

협업에서의 숙련도가 부족해서 아쉬웠으며 이후, 협업에서는 한 모듈씩 일정을 맞춰서 하는 등 애자일 개발론을 반영하여 얼마나 협업 환경이 개선되는 지를 확인해보고 싶습니다.

댓글