8개월간의 여정
2024년 12월을 마지막으로 8개월간의 인턴 과정을 마무리했다. 올해 2분기부터 학교 생활과 인턴 업무를 병행하면서 지내다보니 바쁜 나날을 보냈지만, 국책 과제(프로젝트)를 진행하면서 마주했던 어려움을 해결하는 과정에서 많은 기술적 성장을 경험했다. 또한, 타 회사와의 미팅, 프로젝트 발표 등 다양한 회사 업무를 수행하며 소중한 경험과 배움을 얻을 수 있었다.
프로젝트를 진행하며 반영한 기술적 내용과 문제 해결 과정을 아래와 같이 주제 별로 글을 나누어 포스트하고자 한다.
- 프로젝트 전반적인 소개와 이를 통해 얻은 경험
- 효율적인 설계의 첫걸음: 디자인 패턴 도입기
- 스마트유량계 프로젝트 진행 과정에서 마주한 문제와 해결 과정
해당 글에서는 진행한 프로젝트인 "상수관망 이상감지를 위한 인공지능 스마트 유량계"에 관한 전반적인 내용을 작성하고자 한다.
아래 이미지는 해당 과제가 "2024년 에코 스타트업 지원 사업"에서 최종적으로 성공 과제로 판정되었음을 증명하는 문서이다.

프로젝트 소개
1. 인공지능 스마트 유량계란?
해당 프로젝트를 소개하자면 다음과 같다.
"인공지능 스마트 유량계 프로젝트"는 인공지능(AI)과 사물인터넷(IoT)를 결합한 개념인 AIoT 기술과 LSTM 기반 알고리즘을 활용해 상수관망 내 유량과 수압 데이터를 예측하고 이상징후를 감지하여 상수관망 문제를 신속히 대응할 수 있도록 지원하는 시스템이다.
이 프로젝트에서 나는 타 업체가 설계한 임베디드 기판에서 보내는 데이터를 수신한 뒤 이를 LSTM 기반 예측 로직과 이상치 검증 로직을 수행할 수 있게 파이프라인을 구축하고 처리된 데이터를 송신하는 업무를 담당했다.
실시간 데이터(실측치)는 타 업체에서 보내다보니 미팅을 통해 통신 프로토콜을 구성하였는데, 이때 타 업체 담당자 분들과 많은 대화를 나누고 미팅을 주도 했던 경험을 했다.(처음 미팅때 힘들었던게 생각난다..😅)
2. 복잡한 요구사항과 개발 초기 상태
7월에 개발을 시작해서 10월까지 약 4개월 동안 프로젝트를 진행했다. 이 기간 동안 동아리 프로젝트와 학교 생활을 병행해야 했기 때문에 온전히 프로젝트에 집중할 수 있었던 시기는 7~8월이었다. 해당 프로젝트는 국책 과제의 일환으로 상업화를 염두에 두고 진행하다보니 고려해야 할 사항이 많았고 복잡한 요구사항에 따라 로직 설계 또한 까다로웠다. 이는, 대표님께서는 도메인 지식은 정통하셨지만, 개발 쪽에 대한 지식은 그리 많지 않으셔서 요구사항이 많아졌고 이를 해결하기 위해 요구사항을 조율하고 방향성을 잡는 미팅을 자주 가졌다.
최종적인 요구사항을 정리하면 다음과 같다.
- 시스템 운영을 위한 (데이터)파이프라인 구축
- 다양한 주기에 맞춘 기능 설계
- 배터리 기반 서버 가동 환경에서의 효율성 고려
- 관리자에게 유효한 데이터 제공(7일 간의 예측 데이터 보유)을 위한 LSTM 코드 리팩토링 진행
- 과제 기간 내 테스트 진행 완료
- 이상치 검출 로직 구현
또한, 현재 회사에는 LSTM 코드만 존재했기 때문에 파이프라인과 시스템을 구축하는 작업은 거의 무에서 유를 만드는 수준이었다. 처음에는 "혼자 담당해서 기간 내에 끝낼 수 있을까?"라는 고민을 했지만, 반대로 이를 통해 많은 것을 배울 기회라고 생각하며 진행했다.
참고로 6번인 이상치 검출 로직 구현 같은 경우 팀장님에게 이상치 검출 방법 고안을 부탁드려서 코드상으로 구현하는 것만 내가 담당했다.
3. 운영 환경 및 개발 기간 고려를 통한 기술 스택 선정
해당 프로젝트는 상수관망 내부에 배치되며 배터리 기반 시스템으로 실행된다. 이에 따라 CPU와 메모리 사용량을 최소화하는 것이 중요하다고 판단했다. CPU와 메모리 사용량을 최소화해야지 전력 소모가 줄어들어 배터리 수명을 연장하고 이에 따라 전원이 꺼지지 않는 안정적인 운영을 보장할 수 있기 때문이다. 이러한 이유로 해당 환경에서는 프레임워크과 같은 자원을 많이 소비하는 기술 스택을 채택하는 것은 적합하지 않다고 판단했다.
또한, 제한된 개발 기간도 기술 스택 선정에 영향을 주었는데 새로운 프레임워크나 기술을 학습하고 적용하는 데에는 상당한 시간적 비용이 소요될 것이라고 생각했다.
따라서, 프로젝트 요구사항을 충족하면서 빠르게 개발할 수 있는 방법으로 프레임워크를 지양하고 직접 구현하는 방식으로 진행했다. 기술 스택 선정에서의 예시를 들면 다음과 같다.
- APScheduler vs Airflow: APScheduler는 경량 스케줄러로 자원 소모가 더 적음
- Multi-processing vs Celery: Multi-processing은 메시지 브로커가 필요하지 않아 경량화된 처리 가능
프레임워크를 사용하지 않고 구현한 방식은 초기 단계의 설계를 가능하게 해주지만, 확장성 측면에서 제한이 있을 수 있다. 하지만, 해당 프로젝트의 목적은 상업화 초기 단계에서의 실현 가능성과 운영 효율성이 우선시되기 때문에 확장성은 추후 개선해야할 사항으로 판단하고 진행했다.
4. 프로젝트 구조

프로젝트를 말로만 설명하면 이해하기 어려울 것 같아, 아키텍처를 간단히 시각화를 해봤다. 파란색 점선으로 표시된 부분이 내가 구현한 부분이다. 전체적인 흐름을 간단히 설명하자면, Flowmeter(유량계)에서 RS485 통신(시리얼 통신)을 통해 Embedded System(기판)이 데이터를 보내주면 데이터 수신한 후 내가 담당한 데이터 처리 로직이 실행된다. 이후 이상치 검증 / LSTM 예측을 수행하면 각 주기에 맞춰 Server와 Embedded System에 데이터를 송신하는 구조이다.
프로젝트를 통해 얻은 경험
이번 프로젝트에서 혼자 개발을 전담하며 시스템 설계부터 구현까지 모든 과정을 주도적으로 진행해야 했기에 기술적으로나 개인적으로 성장을 이룰 수 있는 발판이었다고 생각한다. 다만, 혼자 개발을 진행하다 보니 개발 내용을 검증받거나 피드백을 받을 기회가 부족했다는 점은 아쉬웠다. 하지만 이 과정에서 문제를 스스로 정의하고 해결하며 스스로 의사결정을 내리는 역량을 기를 수 있었다고 생각한다.
또한, 매일 업무일지를 작성하여 진행 상황을 체계적으로 관리하고 프로젝트 방향성을 유지하여 업무 관리 능력 향상시킬 수 있었고, 타 업체와의 미팅을 주도하면서 커뮤니케이션 능력도 성장했다고 느낀다.
위에서 언급한 성과들도 정말 좋지만, 내가 가장 큰 성과라고 생각하는 건 "불가능할 것처럼 보이는 것들을 작은 단위로 나누어 하나씩 진행하고 해결하다보면 해낼 수 있다는 자신감"을 얻었다.
인턴 시리즈 글 작성의 방향성
이번 글에서는 프로젝트의 전반적인 내용을 소개하였는데, 앞으로 작성할 인턴 시리즈 글에서는 프로젝트의 기술적 내용과 문제해결 과정을 다룰 예정이다. 다음 글의 주제는 효율적인 설계의 첫걸음: 디자인 패턴 도입기이다!
'Intern' 카테고리의 다른 글
[인턴] CH03. 스마트유량계 프로젝트 진행 과정에서 마주한 문제와 해결 과정 (0) | 2025.03.15 |
---|---|
[인턴] CH02. 효율적인 설계의 첫걸음: 디자인 패턴 도입기 (1) | 2025.01.11 |
8개월간의 여정
2024년 12월을 마지막으로 8개월간의 인턴 과정을 마무리했다. 올해 2분기부터 학교 생활과 인턴 업무를 병행하면서 지내다보니 바쁜 나날을 보냈지만, 국책 과제(프로젝트)를 진행하면서 마주했던 어려움을 해결하는 과정에서 많은 기술적 성장을 경험했다. 또한, 타 회사와의 미팅, 프로젝트 발표 등 다양한 회사 업무를 수행하며 소중한 경험과 배움을 얻을 수 있었다.
프로젝트를 진행하며 반영한 기술적 내용과 문제 해결 과정을 아래와 같이 주제 별로 글을 나누어 포스트하고자 한다.
- 프로젝트 전반적인 소개와 이를 통해 얻은 경험
- 효율적인 설계의 첫걸음: 디자인 패턴 도입기
- 스마트유량계 프로젝트 진행 과정에서 마주한 문제와 해결 과정
해당 글에서는 진행한 프로젝트인 "상수관망 이상감지를 위한 인공지능 스마트 유량계"에 관한 전반적인 내용을 작성하고자 한다.
아래 이미지는 해당 과제가 "2024년 에코 스타트업 지원 사업"에서 최종적으로 성공 과제로 판정되었음을 증명하는 문서이다.

프로젝트 소개
1. 인공지능 스마트 유량계란?
해당 프로젝트를 소개하자면 다음과 같다.
"인공지능 스마트 유량계 프로젝트"는 인공지능(AI)과 사물인터넷(IoT)를 결합한 개념인 AIoT 기술과 LSTM 기반 알고리즘을 활용해 상수관망 내 유량과 수압 데이터를 예측하고 이상징후를 감지하여 상수관망 문제를 신속히 대응할 수 있도록 지원하는 시스템이다.
이 프로젝트에서 나는 타 업체가 설계한 임베디드 기판에서 보내는 데이터를 수신한 뒤 이를 LSTM 기반 예측 로직과 이상치 검증 로직을 수행할 수 있게 파이프라인을 구축하고 처리된 데이터를 송신하는 업무를 담당했다.
실시간 데이터(실측치)는 타 업체에서 보내다보니 미팅을 통해 통신 프로토콜을 구성하였는데, 이때 타 업체 담당자 분들과 많은 대화를 나누고 미팅을 주도 했던 경험을 했다.(처음 미팅때 힘들었던게 생각난다..😅)
2. 복잡한 요구사항과 개발 초기 상태
7월에 개발을 시작해서 10월까지 약 4개월 동안 프로젝트를 진행했다. 이 기간 동안 동아리 프로젝트와 학교 생활을 병행해야 했기 때문에 온전히 프로젝트에 집중할 수 있었던 시기는 7~8월이었다. 해당 프로젝트는 국책 과제의 일환으로 상업화를 염두에 두고 진행하다보니 고려해야 할 사항이 많았고 복잡한 요구사항에 따라 로직 설계 또한 까다로웠다. 이는, 대표님께서는 도메인 지식은 정통하셨지만, 개발 쪽에 대한 지식은 그리 많지 않으셔서 요구사항이 많아졌고 이를 해결하기 위해 요구사항을 조율하고 방향성을 잡는 미팅을 자주 가졌다.
최종적인 요구사항을 정리하면 다음과 같다.
- 시스템 운영을 위한 (데이터)파이프라인 구축
- 다양한 주기에 맞춘 기능 설계
- 배터리 기반 서버 가동 환경에서의 효율성 고려
- 관리자에게 유효한 데이터 제공(7일 간의 예측 데이터 보유)을 위한 LSTM 코드 리팩토링 진행
- 과제 기간 내 테스트 진행 완료
- 이상치 검출 로직 구현
또한, 현재 회사에는 LSTM 코드만 존재했기 때문에 파이프라인과 시스템을 구축하는 작업은 거의 무에서 유를 만드는 수준이었다. 처음에는 "혼자 담당해서 기간 내에 끝낼 수 있을까?"라는 고민을 했지만, 반대로 이를 통해 많은 것을 배울 기회라고 생각하며 진행했다.
참고로 6번인 이상치 검출 로직 구현 같은 경우 팀장님에게 이상치 검출 방법 고안을 부탁드려서 코드상으로 구현하는 것만 내가 담당했다.
3. 운영 환경 및 개발 기간 고려를 통한 기술 스택 선정
해당 프로젝트는 상수관망 내부에 배치되며 배터리 기반 시스템으로 실행된다. 이에 따라 CPU와 메모리 사용량을 최소화하는 것이 중요하다고 판단했다. CPU와 메모리 사용량을 최소화해야지 전력 소모가 줄어들어 배터리 수명을 연장하고 이에 따라 전원이 꺼지지 않는 안정적인 운영을 보장할 수 있기 때문이다. 이러한 이유로 해당 환경에서는 프레임워크과 같은 자원을 많이 소비하는 기술 스택을 채택하는 것은 적합하지 않다고 판단했다.
또한, 제한된 개발 기간도 기술 스택 선정에 영향을 주었는데 새로운 프레임워크나 기술을 학습하고 적용하는 데에는 상당한 시간적 비용이 소요될 것이라고 생각했다.
따라서, 프로젝트 요구사항을 충족하면서 빠르게 개발할 수 있는 방법으로 프레임워크를 지양하고 직접 구현하는 방식으로 진행했다. 기술 스택 선정에서의 예시를 들면 다음과 같다.
- APScheduler vs Airflow: APScheduler는 경량 스케줄러로 자원 소모가 더 적음
- Multi-processing vs Celery: Multi-processing은 메시지 브로커가 필요하지 않아 경량화된 처리 가능
프레임워크를 사용하지 않고 구현한 방식은 초기 단계의 설계를 가능하게 해주지만, 확장성 측면에서 제한이 있을 수 있다. 하지만, 해당 프로젝트의 목적은 상업화 초기 단계에서의 실현 가능성과 운영 효율성이 우선시되기 때문에 확장성은 추후 개선해야할 사항으로 판단하고 진행했다.
4. 프로젝트 구조

프로젝트를 말로만 설명하면 이해하기 어려울 것 같아, 아키텍처를 간단히 시각화를 해봤다. 파란색 점선으로 표시된 부분이 내가 구현한 부분이다. 전체적인 흐름을 간단히 설명하자면, Flowmeter(유량계)에서 RS485 통신(시리얼 통신)을 통해 Embedded System(기판)이 데이터를 보내주면 데이터 수신한 후 내가 담당한 데이터 처리 로직이 실행된다. 이후 이상치 검증 / LSTM 예측을 수행하면 각 주기에 맞춰 Server와 Embedded System에 데이터를 송신하는 구조이다.
프로젝트를 통해 얻은 경험
이번 프로젝트에서 혼자 개발을 전담하며 시스템 설계부터 구현까지 모든 과정을 주도적으로 진행해야 했기에 기술적으로나 개인적으로 성장을 이룰 수 있는 발판이었다고 생각한다. 다만, 혼자 개발을 진행하다 보니 개발 내용을 검증받거나 피드백을 받을 기회가 부족했다는 점은 아쉬웠다. 하지만 이 과정에서 문제를 스스로 정의하고 해결하며 스스로 의사결정을 내리는 역량을 기를 수 있었다고 생각한다.
또한, 매일 업무일지를 작성하여 진행 상황을 체계적으로 관리하고 프로젝트 방향성을 유지하여 업무 관리 능력 향상시킬 수 있었고, 타 업체와의 미팅을 주도하면서 커뮤니케이션 능력도 성장했다고 느낀다.
위에서 언급한 성과들도 정말 좋지만, 내가 가장 큰 성과라고 생각하는 건 "불가능할 것처럼 보이는 것들을 작은 단위로 나누어 하나씩 진행하고 해결하다보면 해낼 수 있다는 자신감"을 얻었다.
인턴 시리즈 글 작성의 방향성
이번 글에서는 프로젝트의 전반적인 내용을 소개하였는데, 앞으로 작성할 인턴 시리즈 글에서는 프로젝트의 기술적 내용과 문제해결 과정을 다룰 예정이다. 다음 글의 주제는 효율적인 설계의 첫걸음: 디자인 패턴 도입기이다!
'Intern' 카테고리의 다른 글
[인턴] CH03. 스마트유량계 프로젝트 진행 과정에서 마주한 문제와 해결 과정 (0) | 2025.03.15 |
---|---|
[인턴] CH02. 효율적인 설계의 첫걸음: 디자인 패턴 도입기 (1) | 2025.01.11 |