저는 어떠한 것이든 확실하게 이해하는 것이 중요하다고 생각합니다. 만일 단순히 프로그램을 빠르게 구현하는 데에만 집중하고, 샘플 코드를 아무렇게나 조합한다면,
당장은 동작할 수 있어도 언젠가 장애가 발생하기 마련입니다. 그렇게 되면 자신조차도 이해할 수 없는 스파게티 코드를 하나하나 뜯어보며, 간단한 문제 해결에도 많은 시간을 소요하게 됩니다.
그렇기에 프로그램을 확실히 이해하는 게 오류를 줄이고, 자신이 하는 일에 자부심을 갖는 방법이라고 생각합니다.
챗봇 프로그램이 서버 이전을 하게 되면서, 기 구축된 10개 시스템의 구조를 파악해야 하는 일이 생겼습니다. 이전 프로젝트에서 작성된 산출물은 각 시스템에 대한
개요와 실행 방법만 기재되어 있고, 연계 시스템이나 프로그램 구조가 충분히 기재되어 있지 않았습니다. 따라서 소스를 직접 보며 시스템 구조를 분석하는 과정이 필요하였습니다.
먼저 각 시스템이 통신하는 엔드포인트, DB 접속 정보를 파악하였습니다. 그 다음에는 소스코드에서 핵심 기능의 로직을
확인하였습니다. 그렇게 파악한 프로그램 목록은 아래와 같습니다.
- 웹 기반 spring 시스템: 3개
- 외부 시스템과 연동하는 배치 프로그램: 2개
- 챗봇 클라이언트의 어댑터 역할 시스템: 4개
- docx 파일을 HTML로 변환하는 프로그램: 1개
배치일 경우 어떤 시스템에서 이 배치를 필요로 하는지, 연계 데이터는 무엇인지 상세하게 확인하였습니다. 어댑터 프로그램의 경우 고객사 테스트 데이터를 활용하여
챗봇 실행 결과를 검증하며 구조를 파악했습니다. 무엇보다도 프로그램 연계 구조를 유심히 분석하였습니다. 그렇게 해야 프로그램 로직
변경 시 다른 프로그램에 미치는 영향도를 파악할 수 있었기 때문입니다. 그리고 서버 이전 시 변경해야 할 접속정보, 정상 동작 확인 방법을 매뉴얼에 꼼꼼히 작성하였습니다.
그 결과 프로젝트를 수행하는 동안 저는 누구보다도 시스템에 대해 잘 이해하게 되었습니다. 누가 시스템에 대해 물어보면, 제가 개발한 프로그램인 것처럼 술술 대답할
수 있게 되었습니다. 놓치고 있었던 개발 필요 내역을 발견하기도 했습니다. 결과적으로 서버 이전 후, 고객사 직원이 보는 앞에서 정상 동작 확인을 시연하며 안정적으로 서버 이전을
완료할 수 있었습니다.