Read
CI systems are the blood to automate tasks for the whole team. Learn how to use it, and you’ll learn how to optimize your company’s current CI system, which can help you jump to the next step of your career.
- Riccardo Cipolleschi -
Opinion
개발자 초년기때는 CI라는 말도 몰랐다. 대학에서 따로 가르쳐 주지 않는다. 살짝 언지를 주었던 수업이 있는데, 그 수업에서 여러사람이 짠 코드가 한 사람이 짠 코드 처럼 보여야 한다고 했다. 개개인이 팀으로 협업하여 코드를 짜는데, 각자의 스타일이 생각보다 달랐고 결국에는 코드의 결을 통일 하는 게 처음 할 일 이었다. 그리고 각자의 코드를 한 곳에 모으기 위해 형상관리 툴을 사용하기 시작했는데, 그때는 trunk를 이용했다. 그게 CI/CD 시스템과의 첫만남이었던 것 같다.
본격적으로 CI를 공부해야지 하고 마음먹은 적은 없었다. 아마 다른 개발자들도 그럴 것이다. 프론트 엔드 개발자, 백엔드 개발자, 클라이언트 개발자와 같은 직군은 있어도 CI 개발자나 CI 관리자 라는 직군은 따로 없으니 말이다. 나 같은 경우에는 조금씩 효율적인 것을 쫒다 보니, 조금씩 자동화를 하다 보니 어느새 CI에 손을 대고 있었다.
개발자들은 모두 각자의 영역을 만들어 나간다. 관리하는 프로젝트의 네트워크, 디비 등의 특정분야에서 조금씩 두각을 드러내는 개발자도 있고, 패턴이나 구조화에 신경을 쓰던 개발자는 프로젝트를 아름다운 구조로 끌고 가려는 사람으로 성장하기도 한다. 반면 개발 속도감과 협상능력이 발달하는 경우도 있다. 이 경우에는 신규 피쳐를 적용하거나 티켓을 처리하는데 최적화된 인재가 된다. 신규 기술 적용에 관심이 많고, 정보 공유를 좋아하는 개발자 중에는 인플루언서의 길을 걷는 사람도 있다. 처음부터 길을 정하고 시작한 사람은 없다. 자꾸만 손이 가는 영역이 분명 생긴다. 그리고 내 경우에는 손이 자꾸 갔던 부분은 CI 영역이었다.
동일한 설정을 반복하는 것이 싫었고, 누구 PC 에서는 되는데 누구 PC 에서는 안되어서 세팅으로 하루를 보낸다던가, 배포하려는 순간 '갑자기 빌드가 안돼요' 하는 소리와 함께 퇴근하지 못하고 회사에 잡혀있는 것이 싫었다. 그래서 처음엔 스크립트를 작성했다. 반복된 설정을 자동화 해주는 스크립트라던가. 배포를 위한 스텝을 순차적으로 실행하도록 하는 스크립트 같은 것들. 덕분에 지금은 Riccardo Cipolleschi 의 글과 같이 next step 으로 나갔던 것 같다.
개발자가 CI를 반드시 알아야 하는 것은 아니다. 분명 관심 영역들이 각자 다를테니 말이다. 하지만 연차가 지날 수록 시니어 개발자로 성장해나가려면 결국 알아야 할 것이다. CI 뿐 아니라 네트워크나 디비, 패턴 등 특정 한 영역이 아니라 점차 전 영역으로 지식을 넓혀서 개발자의 역량을 키워 가는 것이 좋기 때문이다. 관심 영역에서 전문성을 키운 뒤에 서서히 관심 외 영역까지 지식을 넓혀 가는 것이 개발자의 이상적인 성장일 것이다.