야근할 뻔한 배포 시간을 획기적으로 줄여준 프로그램 개발

박여명·2024년 6월 20일

개발

목록 보기
1/4
post-thumbnail

info

배경

현재 한 유통업 회사에서 사내 ERP를 유지보수 및 신규개발업무를 하고 있다.(1년차)
이 ERP는 개발, 운영서버를 따로 두며 운영하고 있는데
나중에 과장님한테 들은 내용이지만 이렇게 개발, 운영 서버를 분리시켜 놓는 시스템은 거의 없다고 하셨다..?!
(지금 내가 속한 팀이 아닌 다른 팀이 개발하고 어디론가 사라졌다는데..)

물론 나름에 이유는 있다.
다른 ERP 에서와는 다르게 설정값, 외부 툴 인증키, 운영에서만 적용한 일부 서비스 등 몇개만 예외를 두고 개발, 운영을 동일한 프로젝트로 운영하기에는 어려움이 있어 지금과 같이 운영하고 있다고 한다!
따라서 새로운 기능개발 및 변경사항은 개발서버 선 적용 후 테스트와 검증작업을 마치고 나면
해당 변경사항을 직접 코드단위로 비교해가며 운영 프로젝트에 적용 하고있다..

개발서버 적용 -> 테스트 적용 -> 운영서버 적용

위와같이 일반적인 배포 프로세스를 따라가고 있지만
운영서버 적용 하는 부분이 굉장히 오래 걸리기 때문에
전체 배포기간이 대부분 개발기간 이상으로 넘어가게 된다.

예를 들어 ERP 내에서 사용하는 용어를 단순 변경하기 위해 100개가 넘는 View 파일들을 직접 변경했는데 변경 작업시간 이외에
개발 -> 운영으로 옮기는 작업만 3~4일 동안 한 적도 있었다.

이에 불필요한 내 집중력과 시간을 잡아먹는다고 판단하여 프로그램을 개발했으며
사용 언어, 프레임워크와 관련없이 누구나 비슷한 상황이라면 도움이 될것 같아 공유하고자 한다.

설명

직접 코드를 비교하는 기능을 개발하지 않아도 사용하는 대부분의 IDE 에는 대부분 코드비교하는 기능은 있다
실제로 회사에서 사용하는 sts에도 코드비교 기능이 있지만 단축키 설정도 안되며 내가 원하는 파일들을 일일히 선택하는 수고로움이 정말 많은 시간을 차지한다.

따라서 나는 IDE의 코드비교 기능은 사용하되 원하는 목록을 추리고 그 목록대로 코드비교 툴을 사용하는 방식으로 구현했다.
(코드비교 기능을 직접 구현 하지 않은 이유는 이미 잘 구현된 기능이 있는데 굳이 내가 또 만들 필요가 없었음)

따라서

  • 파일을 탐색하고 서로다른 파일 비교를 위해 python과 filecmp라이브러리 사용
  • 서로다른 파일을 일치화 시키기위해 VSC 내장기능을 실행할 수 있는 subprocess 라이브러리 사용

사용방법

사용준비

  1. python install 버전무관(필자는 3.11.5 ver 사용 중)
  2. Visual Studio Code Install 버전무관

사용방법

  1. 코드 제일 상단 변수 초기화
# 검사 제외할 파일
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"
  • 비교 안할 파일 목록 채우기
  • 개발서버, 운영서버 프로젝트의 최상단 폴더 절대경로를 입력
    ⚠︎ 두 경로 아래 폴더구조와 구성은 동일해야 원활한 비교 가능하며 어느 한쪽에만 있는 파일은 표시 안함
  • Visual Studio Code 프로그램의 실행파일 절대경로를 입력하며
    보통 위 경로대로 설치되므로 사용자컴퓨터의 UserName을 바꿔 입력하면 됨
  1. Visual Studio Code 실행 후 오른쪽 상단 ▶︎ 버튼으로 실행
    (터미널에서 python main.py입력으로도 실행 가능)
  2. 목록 순서대로 VSC 내장 기능으로 파일 비교툴을 사용하게 되며 두 파일을 일치화 시킨 후 Enter 를 누르면 다음 비교창이 뜨게됨
  3. 3을 반복하며 마지막 목록까지 진행

마무리

물론 두 파일의 서로다른 부분을 찾아 손쉽게 동기화 시켜주는 툴은 많지만

  1. 내가 가진 두 프로젝트를 직접 비교하여 다른 내용을 찾는 기능
  2. 이 다른 내용을 직접 비교해가며 운영서버 코드에 적용 시킬 수 있는 기능

이 두가지를 바로 사용할 수 있는 툴을 찾지 못해서 직접 만들어 보았다.

이 프로그램 덕분에 약 1시간 진행하던 업무를 약 5분으로 단축시켜서 회사 동기들에게도 공유할 예정이다~

0개의 댓글