전자정부 프레임워크? 이것 뭐에요~?
이번 달부터 새로운 프로젝트에 참여하게 되었다.
프로젝트는 규모가 제법 크고, 팀원들도 많아서 내 역할이 아주 크지는 않지만, 처음부터 끝까지 모든 과정에 관여할 수 있는 기회를 얻게 되어 매우 기대되고 설레는 마음으로 참여하는 중이다.
( Spring 프로젝트를 너무나도 경험해 보고 싶었다.. )
특히 이번 프로젝트는 전자정부 프레임워크를 사용하고 있어서, 플러그인이나 외부 라이브러리 없이 순수 코딩으로 문제를 해결해야 했다.
이 과정에서 내가 얼마나 플러그인이나 라이브러리에 의존해 왔는지를 깨닫게 되었고, 반성하게 되었다.
처음에는 상당히 도전적으로 느껴져서 다소 불안하기도 했지만, 스스로의 개발 실력을 단련할 좋은 기회라는 생각이 들었다.
( 뭔가 근본 넘치게 개발하는 느낌이랄까..?? )
아무것도 모르는데,, 문제가 될까요?
데이터 수집과 DB 저장 과정에서 예상보다 많은 어려움을 겪었다.
데이터 수집이 예상했던 것보다 원활하지 않았고, 수집된 데이터를 적재하는 과정도 쉽지 않았다.
구체적으로는 데이터를 Vertica 테이블에 먼저 넣고, 이를 ETL(Extract, Transform, Load) 과정에서 변환한 후, 다시 Tibero 데이터베이스에 적재하는 작업이 포함되었는데, 이 과정에서 처음 접하는 ETL 도구에 익숙해지기까지 시간이 걸렸고, 예상치 못한 문제들도 발생했다.
이미 실제로 운영 중인 프로젝트에 새로운 기능을 추가해야 했기 때문에, 기존 코드 베이스를 이해하는 것도 쉽지 않았다.
처음에는 코드가 어떻게 구성되고 작동하는지를 파악하는 데 시간이 많이 걸렸는데, 특히, 단순히 기능을 구현하는 것이 아니라 기존 코드와의 통합성을 고려해야 했기 때문에, 이해 없이 건너뛰려는 시도를 하다 보니 여러 차례 막히는 부분이 있었다.
이 경험을 통해, 전체적인 구조를 이해하는 것이 얼마나 중요한지를 다시 한번 깨달았다.
경험치 2배 이벤트
지금 나는 프론트엔드와 백엔드 양쪽 모두에서 작업을 했기 때문에 정신없었지만, 다양한 기술을 익힐 수 있는 좋은 경험을 하고 있는 중이다.
프론트엔드 작업을 하면서 HTML, CSS, JavaScript를 사용하여 다양한 레이아웃을 수정하고 UI를 개선하는 작업을 하고 있다.
이를 통해 사용자 경험을 고려하여 UI를 설계하고 테스트하면서, 사용자 중심의 디자인이 얼마나 중요한지를 깨달았다.
백엔드에서는 SQL 쿼리를 수정하고 생성하는 작업을 통해, 데이터베이스 관리와 최적화에 대한 깊이 있는 경험을 쌓고 있다.
단순히 쿼리를 작성하는 것을 넘어, 효율적인 쿼리 작성법과 성능 최적화에 대한 중요성을 깨달았다.
또한, 프로젝트의 Spring 구조와 각 모듈 간의 역할 분담을 이해하면서, Spring 프로젝트에서의 각 기능별 역할, 구성, 코드 관리와 모듈화의 중요성을 체감했다.
프로젝트 관리와 형상 관리를 위해 GitLab을 사용하면서 팀원들과의 코드 분업이 원활하게 이루어졌으며, 형상 관리와 코드 통합에 대한 경험을 쌓을 수 있었다.
브랜치를 분리해서 각자 작업하고 머지 하는 과정을 통해 코드 리뷰도 진행하고, 코드 품질을 유지하며 안정적인 배포를 할 수 있었다.
이 과정에서 Git을 활용한 협업의 중요성과 효율성을 몸소 체험할 수 있었다.
이전에는 주로 작은 프로젝트들을 경험했었는데, 이번에는 조금 큰 규모의 프로젝트에 참여하게 되면서 팀원 간의 협업과 의사소통의 중요성을 새삼 느끼고 있다.
이번 프로젝트를 통해 아직 많이 부족한 점과 내 수준이 드러나 부끄럽기도 하지만, 좋은 선임 개발자분들과 함께 작업하며 많은 것을 배우고 성장하고 싶다.