자동화에 투자한 시간 vs 아낀 시간
자동화를 위해 쏟은 시간이 정말 그만큼의 가치가 있었는지 솔직하게 계산해봤다.
Notion 문서 하나면 끝날 걸 슬랙 봇을 만들었다
팀원들이 자주 묻는 질문이 있었다. "스테이징 서버 주소가 뭐예요?", "이 API의 스웨거 문서 어디 있어요?", "오늘 배포 일정 있나요?" 이런 질문에 답하는 시간이 하루 10분쯤 됐다.
슬랙 봇을 만들었다. 특정 키워드에 자동으로 링크를 응답하는 간단한 봇. 개발에 8시간이 걸렸다.
솔직히 말하면 이건 오버엔지니어링이었다. Notion 문서 하나에 링크를 정리해두면 1시간이면 끝났을 일이다. 코드로 풀고 싶은 본능에 진 거다.
XKCD의 그 유명한 만화를 알면서도.
근데 배포 자동화는 확실히 남는 장사였다
매번 배포할 때 SSH 접속, git pull, npm install, build, pm2 restart. 이 과정에 약 8분이 걸렸다. 하루 평균 2번 배포하니까 매일 16분.
GitHub Actions로 자동화하는 데 6시간이 걸렸다. push하면 자동으로 빌드하고 배포되도록.
투자 시간 360분, 매일 절약 시간 16분. 23일이면 본전을 뽑는다. 1년으로 따지면 약 65시간 절약. 이건 확실히 남는 장사였다.
테스트 데이터 생성도 잘한 자동화
QA 팀이 테스트할 때마다 테스트 데이터를 만들어달라고 요청했다. 관리자 계정으로 접속해서 상품 10개, 주문 20개, 사용자 5명을 수동으로 생성하는 데 30분. 주 2-3회.
Faker.js로 테스트 데이터 생성 스크립트를 만드는 데 4시간이 걸렸다. npm run seed 한 줄이면 30초 만에 테스트 환경이 세팅된다.
투자 시간 240분, 주당 절약 시간 60-90분. 3-4주면 본전이다. 그리고 QA 팀에서 직접 실행할 수 있게 되면서 커뮤니케이션 비용까지 줄었다.
(이건 만들고 나서 QA 팀이 진심으로 고마워했다.)
자동화의 진짜 함정
세 번째 사례처럼, 자동화는 때로 더 간단한 해결책을 놓치게 만든다. 개발자는 코드로 문제를 풀고 싶어하는 본능이 있다. 근데 문서 한 장, 체크리스트 하나가 코드 500줄보다 효과적인 경우가 많다.
"이걸 자동화할 수 있을까?"보다 "이걸 자동화해야 할까?"를 먼저 물어야 한다.
자동화할 가치가 있는 것을 구분하는 기준
내 기준으로 자동화할 가치가 있는 작업은 세 가지 조건을 충족한다. 반복 빈도가 높고(주 3회 이상), 수동 실행 시 실수 가능성이 있고, 자동화 구현에 하루 이상 걸리지 않는 것.
배포, 테스트 환경 세팅, 린트와 포매팅, CI/CD. 이런 것들은 ROI가 확실하다.
반면 월 1회 하는 보고서 생성이나 분기별 정산 같은 건 수동으로 해도 충분하다.
10분짜리 수동 작업을 그냥 수동으로 하는 것도 괜찮다
자동화에 열중하다 보면 정작 중요한 걸 놓칠 때가 있다. 자동화 스크립트를 만드는 시간에 기능 하나를 더 만들 수도 있었다. 유지보수에 쓰는 시간에 기술 부채를 줄일 수도 있었다.
결국 중요한 건 균형이다. 자동화는 수단이지 목적이 아니다. ROI를 냉정하게 계산하고, 정말 필요한 곳에만 투자하자.