어떻게 기존 프로젝트를 분석하는게 좋을까?
· 약 5분
새로운 팀에 합류하거나 기존 프로젝트를 인수인계 받을 때, 개발 당시 최선을 다해 관리 했다고 해도, 처음 부터 파악 해야하는 입장에서 복잡하게 얽힌 시스템과 정제되어 있지 않는 문서와 스파게티 처럼 얽혀있는 소스 코드를 보면 "도대체 어디서부터 시작해야 하지?"라는 막막함을 느껴본 적이 있을 겁니다.
기존 프로젝트를 효과적으로 분석하고 이해하기 위해서는 약간의 체계적인 접근이 필요합니다. 무작정 코드부터 보거나 문서를 읽기 시작하면 오히려 더 혼란스러울 수 있거든요.
거창한 건 아니고 기존 프로젝트를 분석할 때 단계별로 접근할 수 있는 개인적인 방법을 공유하겠습니다. 당연히 이 방법은 만능은 아니고 주어진 프로젝트에 대해 적절하게 첨삭해가며 조정해야합니다.
이 루틴은 적어도 프로젝트의 전체적인 그림을 빠르게 파악하고, 핵심 이슈들을 놓치지 않는 것에 주안 점을 둡니다.
요약하면 다음과 같습니다.
- 일단 어떤 데이터가 쌓여 있는지 눈으로 데이터를 확인하고 가설을 세우고 이해합니다. 현재까지의 프로젝트의 진행 상황을 파악합니다.
- 업무 데이터가 스키마 (또는 규칙)에 맞게 정합성을 유지하며 CRUD가 되는지 확인합니다. 앞으로의 사업 방향과 확장 가능성의 비전을 봅니다.
- 서비스에 필요한 서버들과 스케일 업, 아웃 형태, CI/CD 구조를 봅니다. 비즈니스의 규모와 업무 담당자와 기술 담당자의 이해관계를 예측 가능합니다.
- 프로그램들의 아키텍처, 배치 자동화, 외부 연계 서비스의 구조를 봅니다. 업무 담당자와 개발자가 비즈니스 구조에 얼마나 관심이 있는지 확인 가능합니다.
- 필요한 순간에 확인이 필요한 모든 소스 코드를 파악하도록 도구와 기술을 미리 확인하고 준비합니다. 소스 품질은 개발팀의 개발 역량과 함께 관리 수준을 보여줍니다.
즉 데이터를 먼저 확인하고, 정합성과 확장성을 검토하며, 인프라와 배포 구조를 분석하고, 프로그램 아키텍처와 시스템 연동 구조를 파악하고, 마지막으로 소스 코드 품질과 개발 도구를 점검하는 순서로 진행합니다. ^^