Project

Project - Community Issue Keyword 2주차 정리

깡구_ 2022. 9. 5. 22:45

title: Project - Community Issue Keyword 2주차 정리
date: 2022-09-05
tags:

  • Project



Introduction

재학중인 학교 커뮤니티에서 학생회와 연계하여 한달간 현업에 계신 분들과 함께 프로젝트인 Devcamp 행사에 참여중이다.
1주차 정리에 자세한 내용이 있다.


2주차 작업 내용

2주차도 1주차와 크게 다르지 않았으며, 프로젝트 세팅에 관한 작업을 주로 진행하였다.

  • Architecture Design 수정
  • Linting tool 도입 시도
  • Coding Convention 및 Github Guide 작성

기존의 Architecture Design을 수정하는 과정에서 free tier로 인하여 제한 사항이 많이 생겼으며, 이걸 걱정하는게 귀찮아서 결제를 하여 갈아엎었다. Architecture Design은 여전히 업데이트 중이다. 금일 진행한 미팅에서 수정 사항이 생겨 또 업데이트를 하여야 한다.

Architecture

더욱 느슨한 Architecture로 변경하였으며, 관리가 필요한 부분을 줄여 불필요한 resource 소모를 줄이는 방향으로 진행하였다.
Main Component에서는 RDS 및 S3 중 확정이 되지 않은 상황이었으며, 금일 미팅을 통해 확정이 되었다.
위 설계에서는 Model별로 관리하도록 구성하였으나, 이번 프로젝트에서는 이렇게 진행하는 것이 더 번거로울 것 같다는 의견을 주셔서 Model을 관리하는 통합 repo를 하나 개설할 예정이다.
해당 repo에서 ECR 및 Docker를 이용하여 모델을 관리하며, NLP Model component에서는 모델을 통해 추출된 키워드를 response만 한다.
Service App에서 Main Component로 키워드에 대한 request를 진행하지 않도록 변경하였다.


이전의 Coding Convention은 PEP8을 기반으로 간소화된 항목을 제공하였으나, 이를 하나하나 고려하며 프로그래밍을 하기에는 과한 resource가 사용된다.
이를 해결하고자 Linting tool을 도입중이다.
black을 이용하여 formatting을 진행하고, flake8을 이용하여 한 번 더 검사하는 과정으로 구성하고자 하였다.
Pre-commit으로 진행하면 formatting이 완료된 commit만 들어가지만, 문제가 생기는 부분은 commit하는 당사자만 알 수 있다.
Github action을 이용하면 commit 이후 검사가 이루어지나, 실패하였을 경우 처리 방법으로 인하여 개인 repo에서 여러 시행착오를 거치는 중이다.
Github Guide를 작성하여 Github 사용에 있어 전반적인 내용을 공유하였다.
Branch 관리 전략은 Git Flow를 이용한다. Trunk-based의 경우 branch의 개수가 적지만 test 및 CI/CD 환경이 구축이 되어있지 않아 main에서 발생하는 장애 대응이 어렵다.
Git Flow는 branch가 많으나 장애에 대응이 용이하여 이번 프로젝트에 적합하다고 판단하였다.
Commit시 Conventional Commit을 이용하도록 권장하였다.
PR의 경우 제목은 영어, 본문은 한글로 작성하여 직관적인 PR 리뷰가 가능하도록 하였다.
각 파트별 PR 리뷰를 함께 진행해줄 서브 담당자도 지정하여 엄격한 프로젝트 관리를 할 수 있도록 구성하였다.


가장 아쉬운 것은 AWS 연결에 실패한 것이다.
학교에서 금액 지원이 나오며, 임대 서약서 작성 및 법인 카드 연결을 했어야 하지만 전달 과정에서 문제가 생겼다.
필요한 정보들이 준비가 되지 않아 AWS 연결을 진행할 수 없었다.


2주차 Sprint

AWS를 사용할 수 없었기에 2주차 Sprint는 정상적으로 진행할 수 없었다.
Local 환경에서 Blind ETL 작업은 거의 구현이 완료되었으며, PR을 진행중이다.
Modeling은 일부 model에 대한 코드 구현 및 학습을 진행중이다.
이 외의 파트는 AWS 세팅이 되지 않아 진행할 수 없었다.


3rd Meeting & Sprint

금일, 약 1.5시간 전에 미팅을 진행하였다.
Architecture에 대한 논의, Coding Convention 및 Github Guide 공유, 2주차 Sprint 점검 및 3주차 Sprint를 계획하였다.
Architecture에 대한 내용은 상단에 적었다. 미팅 전후의 차이를 적기보다는, 2주차 마무리 후 결과물을 가져오는 것이 더 낫다고 판단하였다.
Coding Convention 및 Github Guide 또한 상단에 적었으며, 변경 사항에 대한 공유를 진행하였다.
2주차 Sprint 점검 또한 상단에 적었다. 점검 과정에서 각 component별 의문 및 논의 사항에 대해 대화를 하며 명확한 정보로 만들었다.
3주차 Sprint 계획은 데이터 수집 ~ Service DB에 적재하는 Pipeline의 자동화 구축이다.
다음주 토요일이 발표이나, 그 전에 발표 내용 정리 및 발표 자료 작성을 진행해야 하기에 다음주는 수~목요일 이후에는 프로젝트 진행이 어려운 상황이다.
이번주 Sprint가 제대로 진행할 수 있는 마지막 Sprint이기에 주요 기능들이 구현되어야 한다.
Service App에서 Service하는 과정은 API 혹은 Web으로 구성하고자 하였으나, 당장 이번주에 진행할 다른 것들이 많기에 뒤로 밀려난 상황이다.


Conclusion

제대로 진행할 수 있는 처음이자 마지막 주차이다.
평소보다 더 많은 시간 투자를 하여야 하며, 이번주에 진행된 것이 최종 결과물과 거의 흡사할 것이다.
부족한 능력에도 팀원들이 얻어갈 수 있도록 노력하고 있다. 프로젝트의 결과물이 생산되지 않더라도 서로의 작업을 통해 많은 것을 배울 수 있는 소중한 시간으로 사용하고자 한다.