현재 한 유통업 회사에서 사내 ERP를 유지보수 및 신규개발업무를 하고 있다.(1년차)
이 ERP는 개발, 운영서버를 따로 두며 운영하고 있는데
나중에 과장님한테 들은 내용이지만 이렇게 개발, 운영 서버를 분리시켜 놓는 시스템은 거의 없다고 하셨다..?!
(지금 내가 속한 팀이 아닌 다른 팀이 개발하고 어디론가 사라졌다는데..)
물론 나름에 이유는 있다.
다른 ERP 에서와는 다르게 설정값, 외부 툴 인증키, 운영에서만 적용한 일부 서비스 등 몇개만 예외를 두고 개발, 운영을 동일한 프로젝트로 운영하기에는 어려움이 있어 지금과 같이 운영하고 있다고 한다!
따라서 새로운 기능개발 및 변경사항은 개발서버 선 적용 후 테스트와 검증작업을 마치고 나면
해당 변경사항을 직접 코드단위로 비교해가며 운영 프로젝트에 적용 하고있다..
개발서버 적용 -> 테스트 적용 -> 운영서버 적용
위와같이 일반적인 배포 프로세스를 따라가고 있지만
운영서버 적용 하는 부분이 굉장히 오래 걸리기 때문에
전체 배포기간이 대부분 개발기간 이상으로 넘어가게 된다.
예를 들어 ERP 내에서 사용하는 용어를 단순 변경하기 위해 100개가 넘는 View 파일들을 직접 변경했는데 변경 작업시간 이외에
개발 -> 운영으로 옮기는 작업만 3~4일 동안 한 적도 있었다.
이에 불필요한 내 집중력과 시간을 잡아먹는다고 판단하여 프로그램을 개발했으며
사용 언어, 프레임워크와 관련없이 누구나 비슷한 상황이라면 도움이 될것 같아 공유하고자 한다.
직접 코드를 비교하는 기능을 개발하지 않아도 사용하는 대부분의 IDE 에는 대부분 코드비교하는 기능은 있다
실제로 회사에서 사용하는 sts에도 코드비교 기능이 있지만 단축키 설정도 안되며 내가 원하는 파일들을 일일히 선택하는 수고로움이 정말 많은 시간을 차지한다.
따라서 나는 IDE의 코드비교 기능은 사용하되 원하는 목록을 추리고 그 목록대로 코드비교 툴을 사용하는 방식으로 구현했다.
(코드비교 기능을 직접 구현 하지 않은 이유는 이미 잘 구현된 기능이 있는데 굳이 내가 또 만들 필요가 없었음)
따라서
- 파일을 탐색하고 서로다른 파일 비교를 위해 python과 filecmp라이브러리 사용
- 서로다른 파일을 일치화 시키기위해 VSC 내장기능을 실행할 수 있는 subprocess 라이브러리 사용
# 검사 제외할 파일
EXCLUDE_FILES = []
# 디렉토리 경로 설정(절대경로)
dev_directory = r'<Your Dev Project Path>'
prod_directory = r'<Your Was Project Path>'
# VS Code 실행 파일의 절대 경로
vscode_path = r"C:\Users\<UserName>\AppData\Local\Programs\Microsoft VS Code\Code.exe"
물론 두 파일의 서로다른 부분을 찾아 손쉽게 동기화 시켜주는 툴은 많지만
- 내가 가진 두 프로젝트를 직접 비교하여 다른 내용을 찾는 기능
- 이 다른 내용을 직접 비교해가며 운영서버 코드에 적용 시킬 수 있는 기능
이 두가지를 바로 사용할 수 있는 툴을 찾지 못해서 직접 만들어 보았다.
이 프로그램 덕분에 약 1시간 진행하던 업무를 약 5분으로 단축시켜서 회사 동기들에게도 공유할 예정이다~