[Project] 스마트팩토리를 위한 센터 데이터 모니터링 시스템

🗺️ Overview

설비의 온도 센서에서 오는 데이터 수집 및 시각화하는 서비스입니다.

개발을 시작하고 난 후 첫 회사, 첫 인턴이었다.

개발 경험이 많은 것도 아니었기에 회사에 피해가 갈까봐 걱정을 엄청 했다.

그래서 회사 들어가기 전에 미리 사용하게 될 스택이나 도메인 지식같은 것들을 공부했다.

지금 생각하면 노련함보다 열정이 앞섰던 것 같다.

당시 프로젝트를 통해 배운 것이 정말 많았다.

1️⃣ 첫 번째로 실무 역량이 성장하였다.

팀 내 시니어 개발자가 없었다.

개발을 잘하는 동료들은 있었지만 이끌어서 방향을 확실하게 지시해줄 시니어가 없다보니 프로젝트 매니징에 어려움을 많이 겪었다. 예를 들면 고객과의 소통, 서비스 기능명세, 문서화, 역할 배분, 일정 관리, 소통, 배포, 피드백, 운영 등등 적어보니 거의 전반적인 부분에서 어려움을 겪었던 것 같다 하하..

팀 내에서도 나름대로 문제를 인지하고 해결하려고 노력도 많이 했다. 미팅을 진행하며 매주 개선점들을 찾아갔고, 슬랙으로 진행상황도 자주 공유하고, Jira/Confluence도 도입하고, Gitlab Merge Request도 도입하고... 팀원 중 경험이 그나마 많으신 분이 적극적으로 리딩하시려고 노력도 많이 했다.

End-to-End 과정을 직접 겪으면서 스타트업에서 전반적인 실무 환경에 대해 이해하고 몸에 익혔다.

또한 스타트업인 만큼 특정 분야에 한정되지 않고 BackEnd, FrontEnd, DevOps를 직접 경험할 수 있던 것도 이후에 도움이 많이 되었다.

이후 두 번째 회사에서 배운 것들을 토대로 효율적으로 업무를 처리 할 수 있었다.

2️⃣ 두 번째로 문제 해결 능력이다. (당시 갖췄으면 더 좋았으려만 ㅠ.ㅠ)

침착하고 차분하게 실질적으로 문제와 원인을 분석하고, 하나 하나 해결하는 걸 말하는거다.

  • 주의 : 무엇을 할 수 있을지 냉철하게 판단하기

  • 해결방법은 구글링 능력이 될 수도, 경험이 될 수도, 질문하는 것이 될 수도 있다. 기타 등등

  • 그리고 이 과정이 냉철하고, 정확하고, 빠를수록 좋다. 실천력과 실행력은 필수다.

인턴 당시 기능 구현 능력도 부족하고 멘탈 관리 능력도 없었다.

  • 에러 해결 방안이나 기능 구현 래퍼런스를 밤새 찾았는데도 문제를 해결 못해 몇 주동안 붙들고 고생했던 적도 있었다.

  • 또 다른 썰로는 GCP 서비스를 사용하는데 단위를 잘못보고 1000원 나온걸 100만원으로 잘못보고 순간 심장 내려앉았다.

팀원들한테 너무 미안했고 나 자신도 싫어졌다. 삽질도 정말 많이 했는데, 시간 지나고 멘토링도 하고 다양한 경험을 하다보니 저 때 경험한 것들이 성장할 수 있었던 밑거름이 된 것 같다.

또한 개발을 잘하는 팀원들을 보면서도 많이 배웠다. 잘하는 사람들 보고 배우는게 얼마나 중요한지 느꼈다.

늦었지만 다들 고맙다 하하 ..

다시 프로젝트 얘기로 돌아오자.

앞서 설명한 것처럼 '센서에서 오는 데이터 수집 및 시각화하는 서비스'다.

내가 맡은 역할은 다음과 같았다.

  • 실시간 기기의 온도 데이터 시각화

    • GCP의 BigQuery에 있는 데이터를 Google Data Studio를 내보낸 후 차트들을 사용하여 온도 시각화

  • Backend 서비스 배포

    • Gitlab, Gitlab CI를 통해 CI/CD 파이프라인을 구축(build, push, deploy)

    • GCP GKE(Google Kubernetes Engine)에 Spring Boot framework를 사용한 서비스 배포

아래는 팀원이 진행한 부분이다. 그 팀원의 코드 스타일이나 래퍼런스 사용하는 방식, 코딩하는 관점 등 많이 배웠다.

  • IoT Sensor 데이터 로드 API 개발

    • Gateway에서 오는 온도 데이터를 BIgQuery로 로드하는 RESTful API 개발

    • Express.js로 PoC를 개발하고, 이후 확장성과 안정성을 위해 Spring Boot로 리팩터링

아래는 프로젝트의 대략적인 아키텍쳐다.

Spring Boot로 변경하기 전 BigQuery에 있는 데이터를 Data Studio에서 시각화 해보는 작업을 하였다. (약간 워밍업 느낌이랄까)

다음은 Spring Boot로 API 서버를 개발하고 배포한 아키텍처다.

더 구체적인 내용을 하위 카테고리에서 확인할 수 있다.

  • Spring Boot API gateway 개발

  • GCP BigQuery에 데이터 저장, 활용하며 Datawarehouse 이해하기

  • GCP의 BI 툴 Data Studio를 활용하여 데이터 시각화하기

  • GCP, Gitlab 기반 CI/CD 파이프라인 구성하기

Last updated