title: Project - Community Issue Keyword 마감 및 회고
date: 2022-09-18
tags:
- Project
Introduction
재학중인 학교 커뮤니티에서 학생회와 연계하여 한달간 현업에 계신 분들과 함께 프로젝트인 Devcamp
행사가 마무리 되었다.
한달간 진행한 내용에 대해 회고하는 글이다.
PM & Team Leading
여러 프로젝트가 존재하였고, 더 관심이 가는 프로젝트도 존재하였으나 이 프로젝트에 지원한 이유는 간단하다.
데이터 수집 ~ 서비스까지 파이프라인을 구축하는 유일한 프로젝트이며, 멘토 중 한 분과 친분이 있어 얻어갈 수 있는 것이 많다고 느꼈다.
엔지니어가 2명 혹은 3명이라면 괜찮아 보였으나, 4명의 엔지니어와 2명의 모델러로 구성이 되었다.
멘토분들이 원하는 구조는 멘토(회사 상위 직급) - 중간 관리자(팀 리딩) - 팀 구조를 원하였고, 팀을 리드할 사람이 필요하였다.
학교에서 겪는 프로젝트와는 다르게 설계부터 문서 정리, 일정 관리 등 PM의 역할이 요구되었으며, 모두 기술적 성장을 원했기에 이 포지션을 담당하기를 꺼려했다.
오히려 이것을 기회로 보았다. 작게나마 팀을 리드할 경험을 얻을 수 있었으며, 성공적인 프로젝트를 위해 기술 외적인 부분에서 문제를 겪고 이를 해결하는 과정에서 많은 성장을 할 수 있을 것이라 생각하였다.
킥오프 미팅 직후 멘토님들과 미팅을 가지며 이러한 의견을 전달하였고, PM 및 팀 리딩을 맡아 진행하게 되었다.
Notion
현업에서도 자주 쓰이는 노션을 주 플랫폼으로 사용하였다.
모든 문서를 노션에서 정리하여 내부적으로 논의가 된 사안 및 결정 사안에 대해 물어볼 필요 없이 문서를 확인하면 되는 환경을 구성하였다.
프로젝트 세팅 및 미팅 노트와 같은 팀원들이 담당하지 않을듯한 파트는 전부 직접 작성하였다.
팀원들이 담당하는 파트에서 공유 혹은 문서화가 필요한 부분은 팀원들이 직접 작성할 수 있는 문화를 조성하였다.
미팅 노트에서는 많은 논의가 이루어져 매번 녹음을 하여 다시 들으면서 미팅 노트를 정리하였으며, 멘토(회사 상위 직급)가 프로젝트 진행 상황을 간략하게 확인할 수 있도록 주간 보고를 작성하였다.
Jira와 같은 티켓 시스템 구성에 과한 리소스가 투자될 것이라 판단하여 노션 내부적으로 칸반 보드를 이용하여 작업을 관리하였다.
칸반 보드를 이용하여 중반까지는 업무를 세부적으로 분리하고 티켓을 적절히 작성하였다.
마지막주에는 여러 문제들이 발생하여 해당 문제들에 집중하여 칸반 보드에 대한 관리가 미숙하였다.
Architecture
애증의 대상이다.
주어진 4주 중 첫 2주는 Architecture 설계 및 제품 조사에만 집중하였으며, 이후에도 관련 지적이 계속 발생하였다.
발표 당일에도 설계한 Architecture의 문제점에 대해 많은 지적을 받았으며, 해당 내용들을 반영하여 새로운 to-be Architecture를 작성할 예정이다.
상단은 간략한 Architecture, 하단은 각 Component에 대한 부분이다. 이 때 Blind
를 공유함으로써 모호함이 생겼다.
Subnet은 서로 생각하는 부분이 다르기도 하였고, Private에서는 Web을 띄울 수 없다는 생각을 가져 중요한 RDS가 Public Subnet에 배치되어 노출이 되는 상황이다.
구축하려던 Elastic Beanstalk은 당장 도입의 필요성이 없다고 판단하여 추후 도입할 계획이다.
Airflow는 VPC 세팅에 문제가 생겨 도입에 실패하였으며, 이로 인해 시간이 너무 부족하여 Fluentbit은 도입 시도조차 하지 못하였다.
Trouble Shooting
AWS 세팅 및 코드 작업에서 여러 문제들이 발생하였고, 현재 남은 문제들은 다음과 같다.
- Architecture 설계 재작성
- VPC 세팅 변경 및 Load Balancer 도입
- 모델 성능 개선 및 성능 개선시 과거에 Inference한 키워드 처리 여부
우선 VPC의 경우 Service App이 Public Subnet으로 구성되어있다.
Web을 띄울 때 Private에서는 띄울 수 없다고 생각하였으며, 이로 인하여 RDS가 Public Subnet에 노출된 상황이다.
문제는 Airflow도 내부적으로 Web 접속을 통해 모니터링이 이루어지고, 결국 전부 Private Subnet으로 구성한 후 이를 해결해야 한다.
이 문제를 해결하려면 Load Balancer(L4 Switch)를 사용해야 하며, 이를 공부하면서 Load Balancer가 Load Balancing뿐만 아니라 NAT Gateway의 역할까지 가지고 있다는 것을 알게 되었다.
모델의 경우 현재는 성능이 그리 좋은 편이 아니다. 처음부터 장기적으로 바라보았기에 논문 리뷰와 모델 도입을 병행하고 있으며, 모델의 정확도를 조금씩 개선하고 있다.
정형화된 글이 아닌 유저들이 작성하는 게시글이기에 문법에 맞지 않거나 올바르지 않은 한글 사용도 많은 것이 정확도 개선을 어렵게 하고 있다.
토크나이저에 관련된 피드백도 존재하였다. 토크나이저에 따라 결과 차이가 날 것이며, 이 부분은 고려하지 않았기에 여러 토크나이저를 사용해보아야 한다.
모델의 성능이 개선될 경우 과거에 Inference한 키워드는 사용할 수 없다고 봐야 한다. 그렇기에 이 부분을 개선하기 위하여 Architecutre의 큰 수정이 요구된다.
위에서 언급한 VPC와 관련된 부분 및 모델 성능 개선으로 인한 키워드를 다시 Inference하는 등 전면적인 Architecture 수정이 필요하다.
또한 모호한 부분이 많고, API가 과도하게 작성되어 이 부분도 수정해야 한다.
당장은 API의 개수가 적어서 문제가 되지 않더라도 프로젝트가 확장되면서 더 많은 API가 사용될 것이기에 미리 API에 대한 상세 정보를 Architecture에서 제거해야 한다.
To-do
세부적인 것들을 바꾸기 전, Architecture 설계가 먼저 이루어져야 한다.
VPC 및 모델 성능 개선시 키워드 Inference가 다시 이루어질 수 있는 플로우를 고려하여 Architecture를 수정할 예정이다.
세 Component를 모두 개별 Private Subnet으로 수정해야 하며, 이에 접근하기 위하여 하나의 Public Subnet을 구성하여 Web으로의 접근 및 요청 등을 전부 처리할 수 있도록 구성할 예정이다.
새로운 플로우가 필요하기에 S3를 사용하는 것이 맞는지에 대해 다시 논의해봐야 하며, 키워드 Inference시 사용한 모델의 정보도 함께 저장해야 불필요한 Inference를 막을 수 있을 것이다.
Airflow를 도입하여 안정적인 Scheduling 구조로 변경하여 DAG에 문제가 생길 경우 바로 확인할 수 있는 모니터링 알림 시스템도 갖추어야 한다.
물론 로그 처리를 위하여 Log Agent도 도입해야 하며, 과하게 가벼운 Fluentbit을 관리할 Fluentd를 사용하거나 ELK 스택을 사용해야 할 것이다.
이러한 로그들을 관리할 모니터링 툴 또한 도입해야 한다.
Conclusion
한달간 많은 시간을 할애하여 열심히 달렸다.
아쉬움이 많지만 데이터 수집부터 서비스(RDS 적재 및 API 작성)까지 자동화할 수 있었다.
큰 플로우는 완료가 되었으므로 성능 및 지속적인 관리가 가능한 환경으로 개선을 해야 할 것이다.
피드백으로만 끝나는 것 보다는 피드백을 이용하여 더욱 개선하는 과정에서 더 많은 것들을 배우고 성장할 수 있을 것이다.
해당 프로젝트를 계속해서 진행할 것인지에 대한 답변을 기다리고 있으며, 5명 중 3명의 팀원은 계속 진행하겠다는 확답을 받은 상황이다.
학교에서의 금전적 지원이 끝나 비용 관리라는 문제도 생겼지만, 그만큼 더 신경쓸 것이 많다는 것은 더 도전적이라는 뜻이기에 좋다.
지난 4주처럼 매주 열심히 달릴 수 없더라도 꾸준히 프로젝트를 이어나가며 진행 상황을 주기적으로 포스팅할 것이다.
많은 것들을 배울 수 있었다. 부족한 점을 보완하여 더 좋은 행사가 되고, 졸업 이후에는 멘토로 참여하여 후배들의 성장을 도울 수 있는 기회를 가지기를 열망한다.
'Project' 카테고리의 다른 글
Project - 다잇슈 개요 (0) | 2023.05.03 |
---|---|
Project - Community Issue Keyword 개편 및 진행 (0) | 2022.12.28 |
Project - Community Issue Keyword 2주차 정리 (0) | 2022.09.05 |
Project - Community Issue Keyword 1주차 정리 (0) | 2022.08.30 |
Project - SIC/XE Assembler (0) | 2022.07.07 |