Chillog 차가운 블로그

단지를 떠나며 - 주니어 시절의 회고

일상

 단지에서 보내는 마지막날이었다. 첫 근무지로서 오늘까지 이곳에서 일해왔다. 4년. 길면 긴시간, 짧다하면 또 찰나의 시간이다. 지난날들을 돌아보면 여러 사업부의 사람들과 얼굴보며 일해봤던 것은 정말 빛나는 경험이었지만, 그들과 같이 일했던 시간들이 그들의 업무들을 깊이 이해하기에 넉넉했다는 것은 아니다. 항상 빠르게 뒤바뀌는 테크 트랜드와 시장 요구사항에 개발자들이 그에 걸맞는 역량을 닦아가는것처럼 그들도 역시 도전적인 과제들을 이루어내려고 하고있었다.


🍀 운칠기삼

 그런 제조IT에서 난 신입으로 일을 하게되었다. 제조업은… 정말 접점없이 쌩판 모르던 도메인이었다. 코끼리 코 더듬는 듯이 알아가며 익혀갔다. 우리 시스템에서 맡은 업무는 3D-CAD 위에서 동작하는 앱과 플러그인 등을 개발·유지보수 하는 것이 업무였다. 제조 도메인을 익히는건 좀 어려웠지만 다행스럽게도 개발영역에 있어서는 나에겐 더할나위 없이 너무 좋았다. 평소 3D모델링에 관심이 많았었는데(한때 업으로 삼으려고했었던…) 그래픽스에도 간간이 흥미를 붙여서 간단한 개발도 해봤었기에 3D-CAD에 적응하는데는 오래걸리지 않았다. 처음엔 자기소개서에 취미를 ‘3D모델링’로 적어서 이렇게 된건가 싶기도 했었지만, 지금 생각해보면 평소에 정말 많이 원했었고 뜻하는데로 행동했기에 그렇게 기회가 온 것 같다. 정말 운칠기삼이다.

 그렇게 4년을 일했다. 마냥 쉽지는 않았지만 동기나 주변 동료에 비해 제일 즐겁게 일하지 않았을까 싶다. 물론 고과는 별개더라 🤣…. 4년동안 단지에서 일하던 것들을 정리를 하고 이제 새로운 페이즈에 넘어갈 준비를 하고있다. 아직도 난 아는거 하나없는 초년생같지만 파릇파릇했던 지난 4년간의 주니어 시절들을 여기서 한번 가볍게 정리해보려고한다.


🔨 첫 설계

1~2년차
 3년전. 나는 이제 막 1년을 채웠던 주니어 중의 주니어였다. 부서배치 이후 1년이 약간 안되는 기간동안 도메인을 익히며 자잘한 VOC를 해결해갔었고, 조그마한 PoC도 해보면서 파트에서 자리를 잡아갔다. 그러던와중 당시 프로젝트 메니저(PM)님에게 개발·유지보수 약 40MM 규모의 솔루션 프로그램 설계 및 개발업무를 받았다. ‘너무 재밌겠다!’ 같은 해맑음을 빙자한 무모함으로 업무를 받았다. 지금와서 돌이켜보면 내게 그런일을 맡겼다는 것은 선배들에게 있어서 정말 엄청난 용기가 필요했던 결단이었다.

 일을 받긴했는데 무엇보다 도메인이 문제였다. 요구사항 정의가 덜 마쳐진 상황에서 프로그램 설계하는 것은 정말 대가리 깨지는 일이었다. 클라이언트와 박터지게 싸우면서 도메인에서 도출되는 요구사항들을 하나하나 정리해나갔다. 하지만 그러한 의견조율 과정에도 불구하고 개발간에 어쩔 수 없이 수정사항이 생기곤 했는데, 끽해봐야 1년동안 도메인을 겉핥기 식으로 이해한 것을 바탕으로 그런 수정사항들을 고려하면서 설계하는 것이 여간 골치아픈게 아니었다.

 여느 SI가 그렇듯 부서와 클라이언트로부터 받은 일정은 넉넉하지않았다. 난 우선 비즈니스 로직만이라도 테스트 커버리지를 메꿀수 있도록 설계를 했다. 당장 요구사항 분석이 끝난 비즈니스 단(layer) 섹션의 내용들 중 절대적으로 비즈니스에 해당하는 것만 단위(unit) 함수들로 정의하고, 각 비즈니스 모듈이 첫 스프린트에 프로토타이핑을 들어갈 수 있게 했다.

 어찌어찌 스프린트는 시작했는데 테스트 공수를 넉넉하게 할당해서 진행하기에는 제법 빡빡했다. 우리가 개발하고있었던 내용들은 특정 프로그램의 유틸리티 성격을 띄었기에 서드파티에 과하게 의존적일 수 밖에 없었다. 기능 개발에 있어서 서드파티의 상태정보를 원활하게 재현했어야 했는데, 초기에는 이걸 조건들을 일일히 재현하면서 테스트를 진행했었다. 모듈들을 개발하는 것보다 모킹을 원활하게 할 개발도구를 만드는게 우선이라 생각했다. 상태정보를 물리파일로 저장하고 다시 물리파일에서 프로그램을 불러오는 기능을 만들어 개발구성원이 모킹을 손쉽게 할 수 있도록 했다.

 나중에는 컨트리뷰션이 활발해지면서 기능이 자연스럽게 테스트 케이스 제법 쌓이고, 적당히 손봐서 PROD으로도 충분히 낼 수준까지 올라왔다. 기능을 좀 다듬어 ‘사용자 작업 내용을 기록하고 재현할 수 있는 기능’을 고객에게 역으로 제안하여 추가했다. 이건 꽤 좋은 반응을 얻었는데, 추후 확산때 Key-Feature로 소개까지되면서 자리잡게된다. 이 기능을 만들었던 일련의 과정들이 주니어 시절에 가장 뿌듯했었던 작업 중에 하나이다.

 하나 둘씩 비즈니스 모듈들이 개발이 끝나갔고 공통 모듈도 리팩토링을 거쳐가며 완성도를 높여갔다. 선배들의 노고에 힘입어 내가 처음으로 설계한 프로그램은 탈없이 잘 개발을 완료하고 서비스를 시작했다. 정말 뜻 깊고도 감사한 경험이었다.


🎈 번아웃 그리고 외주와 함께

3년차
 기존 프로젝트는 비즈니스 모듈을 추가하는 선에서 업무를 진행했었고, 유지보수를 진행함에 따라 비즈니스 로직들이 공통 라이브러리로 효율화되자 필요공수가 제법 줄었다. 물론 이렇게 생긴 여유는 자잘한 프로젝트 지원과 수명업무를 얻게됐다는 당연한 새드엔딩이다.😂

 여력이 되는대로 간간히 다른 프로젝트를 지원해줬다. 그중엔 꽤나 높은 클라이언트 만족도를 준 프로그램이 있었다. 표준화된 사용자의 작업내용을 스택형태의 히스토리 자료구조를 활용하여 Un-Redo가 지원되는 속성관리 서비스앱이었다. 서비스라고 얘기한 이유는 속성변경에 따른 도면변경 작업이 Window UI위에서 뿐만아니라 ‘잡-스케줄링 서비스’와 연계되어 제공되어야하는 특징이 있어서다. 때문에 CLI형태로서도 기능이 동작할 수 있도록 개발했어야했다. 이건 사내 클라우드로 SaaS형태로 제공되도록 설계했었는데 처음 해보는 거였지만 오히려 사용케이스가 명확하게 나와있는 경우라 구현이 어렵진않았다. 서비스형태로 제공되는 앱을 작업한건 처음이었지만 정말 재밌게 했었다. 꽤나 좋은 경험이었다.

 신입연수때 3년차가되면 번아웃이 한번즈음 온다고했었는데, 지금 다시 생각해보면 그때 번아웃이 왔었던 것 같다. 자연스러웠달까 아니면 알게모르게 왔다고할까나…. 뭔가를 해야겠다는 강박에 사이드 프로젝트로 새로운 기술들을 익히면서 계속 리프래쉬하려고 노력하면서 시간을 보냈었던 것 같다. 지금 다시 생각해보면 리프래쉬가 잘 안됐었던 것 같고 감정기복도 다소 좀 심했던 것 같다.

 리프래쉬로 골을 썩히는 와중에 얼마지나지않아 후속 확산 프로젝트가 이어졌다. 뭔가 집중할 수 있는게 생겼다는게 다행이었다. 물론 이번엔 넉넉한 공수로 프로젝트를 수행하게됐지만 팀에 사람이 부족하여 어쩔 수 없이 외주인력과 같이 일을 했다. 이런형태의 프로젝트는 적은 인력으로 매출이 제법 나오니까 회사가 정말 좋아한다. 주니어 하나에 외주 둘 붙여서 반년정도만 일해도 주니어급의 1년 매출 KPI를 채우고도 남으니 눈에 쌍지를 키고 이런 아이템들을 발굴하려고한다.

 이렇게 일하는게 별일이 없다면 나도 좋고 회사도 좋겠지만, 안타깝게도 정말 사이트와 사이트의 프로젝트 별로 좋지않은 에피스드가 그 짧은 기간에 수 없이 발발한다. 클라이언트와 개발자간의 이해관계의 차이만큼 외주와 정규간의 이해관계가 매우 다르다는 점에서 오는 갈등들이 많다. 커뮤니케이션 문제부터 시작해서, 수준미달인 개발실력 때문에 문제가 되는경우, 프로젝트 막바지에 악의적으로 코드와 쿼리에 똥을 숨겨놓고 가는 경우, 당장 내일 때려친다고 통보하거나(보통 더 비싸게 부르는 프로젝트로 가는 경우), 심지어는 근태가 문제되는 경우도 있다.

 이런 갈등에는 적지않은 시간과 비용이 발생하는데, 금전적인 ‘비용’으로 해결을 보거나 ‘시간’을 들여 마음관리에 신경써서 프로젝트에 동기부여까지는 아니더래도 잘 마무리하도록 리드하는 경우도 있다. 다행스럽게도 후속 프로젝트에 참여했던 외주분들은 크게 모난 곳 없이 잘해줬었다(옆 프로젝트는 난리가 났었지만…). 아쉬운 부분은 항상 일을 반쪽만 끝내버리고 일 다했다고 놀아버렸기에 정말 많이 챙겼어야했다.

 동기부여가 어려운 사람에게 일을 시켜야할때 어떻게 일을 시켜야하는지 몸으로 체득했다. 문제는 3년차는 한창 선배의 레퍼런스와 동료와의 교류로 내실을 다져야하는 시기다. 확신하건데 이런 메니징 업무가 병행되는 프로젝트는 주니어에게 커리어적으로 좋지못한 프로젝트다. 적지않은 시간을 그들에게 써야했었고, 이런식이면 규모가 좀만 더 커져도 일하기 어려울 것 같았다. 외주에게 그러한 컬쳐핏을 요구하는 것이 말이 안되지만, 컬쳐핏을 중요시하는 요즘같은 때에 특히나 아쉬움이 많이 남았던 프로젝트였다.


휴식: 내실다지기. 그리고 다음 페이즈 준비

4년차
 부서의 방향성이 바뀌어서 같이 일하던 구성원들도 바뀌었다. 다음 먹거리를 준비하고있었으며, 적지않은 기간동안 유지보수됐던 프로젝트들도 어느정도 정리가 되고있었다. 확산작업은 적은 공수로 해결가능했고, 남는 시간엔 리팩토링과 다음 아이템 연구개발에 할애했다. 수명업무가 간간이 있긴했지만 업무강도가 입사이래로 상대적으로 가장 낮은시기여서 내실을 다지기에는 적기였다. 선형대수랑 그래픽스에 애매하게 알고있었던 내용도 다시 한번 더 하나하나씩 정리 할 수 있는 기회를 가졌다. (이 두 내용은 별도 섹션으로 포스팅을 쭉 다뤄봐야겠다.)

 그러다가 괜찮은 기회가 있어서 근무지를 옮겨 새로운 업무를 맡게되었다. 역시 3D관련이다. 불구덩이로 들어가는 것 같지만 재밌는 이 일을 더 재밌게 할 수 있는 자리가 될 것 이라고 기대하고있다. 올해 말이면 5년차이다. 이쯤 생길법한 매너리즘을 크게 리프래쉬를 해줄때가 됐다. 다시한번 더 나에대한 객관화를 통해 앞으로의 4년을 어떻게 보내야할지 고민해봐야겠다.


2022 ⓒ ChillyMind