과거에 하려고 했던 내용. (현재 있는 회사에서 한 것이 아님.)
계획했던 내용에 비해서 했던 것은 미미하지만. 나중에 다시 만날 수 있을 것 같아서 정리.
Part #1
- Legacy 시스템 유지보수를 맡게 되면서..
-- 시스템의 API Flow & History을 아는 이가 없음
(API 나 Code의 Aliveness를 몰라 어떻게 해야 할지)
-- 대략 Dizzy 코드 / 보안 취약
-- 시스템의 변경시의 Side Effect를 모름 (작은 수정에도 모든 API 테스트)
-- 시스템의 xUnit / 환경 전무
-- 형상관리 및 브랜치 관리 전무
-- 배포툴도 없음 (ant + ftp)
-- Document는 반영이 되지 않아 쓸모없고
-- 구전(口傳) 코딩 / 상상(Imagination) 코딩
-- 기존에 알던 사람들이 부정적
- 안좋은 Legacy 시스템은 정치적으로도 먼가 꼬여 있다.
Part #2
- 형상 관리 정책 수정
- 개발 환경 구축
- Business Code 이해 & History 파악
- Dead Code 는 무조건 삭제
- Code Refactoring
- Test Code (xUnit) 추가
- API 테스트 코드 추가 (Acceptance Test)
Part #3
- 개발자 테스트 환경
-- 아키텍처
(option 1) - vagrant + ansible
(option 2) - local 설치 + ansible
-- mockup : nodejs, ruby sinatra
-- 이미지를 만들어 Webdav 서버에 올려 개발자들이나 QA에 공유
-- acceptance test : rspec or http unit or 언어별로 알아서 api 콜