2023년 회고

kindof

·

2023. 12. 31. 15:17

겨울이 찾아오면서 올해를 돌아보는 회고 글을 쓰기 시작했다.
 
조금 모순적인데(?), 미래에 일어날 일에 대한 기대나 계획을 세우는 데는 그렇게 큰 에너지가 필요하지 않지만 이미 지난 시간을 돌아보고 별점을 매기는 건 왜인지 심리적으로 조금 저항이 느껴진다.
 
아마도 미래에 대해서는 항상 긍정적으로 상상할 수 있지만, 지난 경험들을 돌아보는 것은 그 속에서 있었던 결점들을 찾아내고 다시 마주해야 하는 과정이 있기 때문인 것 같다.
 
어쨌든, 다시 시간을 거슬러 가본다.
 
 
 

1.

올해 동안 팀에서 처리했던 이슈 목록을 확인하니, 내가 참여한 이슈가 약 150개 정도 되었다. 에픽 이슈부터 간단한 버그 수정까지 다양한 이슈들이 포함돼 있어 개수가 많아 보이기는 하지만, 그래도 스스로 한해동안 할 수 있는 최선을 다했다는 생각은 들었다. 
 
팀에서는 항상 다음 달에 해야하는 이슈들을 미리 선별하고, 개발자들의 가용 리소스를 고려해 이슈를 분배했다. 예를 들어 나의 12월 워킹 데이가 20일이라면, 20일치만큼의 일(=1+2+3+3+5+6)을 가져가는 식이다.
 
와중에 '나는 내가 맡은 일들을 정해진 기한 내에 못 끝내면 어떡하나'라는 불안감으로 월 초에는 무리하게라도 많은 일을 했다. 그 결과로 월 말에는 주로 급한 이슈나 개선이 필요한 개발 과제로 보이는 일들을 새로이 처리하게 되는 경우도 많았다.
 
물론 이러한 업무 처리 방식은 나의 성장과 팀에 도움이 되었다고 생각하고, 많은 동료들도 나의 노력을 인정해주었다. 하지만 돌아보니 이런 식의 업무 처리 방식에는 크게 두 가지의 문제가 있었다고 생각한다.
 
첫번째 문제는 협업을 할 때 찾아온다.
 
예를 들어, 내가 A 업무를 진행하면 다른 사람이 B, C 업무를 처리하고 다시 그 내용을 이어받아 D 업무를 처리해야 하는 상황이 있다고 해보자. 각 작업은 하루의 리소스가 필요한 상황이다.
 
이 일을 처리하는 데 베스트 시나리오는 당연히 두 작업자가 4일을 이어서 정확히 일을 끝내는 것이다.
 
하지만 모든 일이 계획대로 되지 않기 때문에 A 업무가 밀릴 수도 있고 B, C 업무가 밀릴 수도 있고 D 업무가 밀릴 수도 있다. 심지어는 다른 외부 요소의 개입으로 인해 어떤 업무는 홀딩될 수도 있다.
 
여기서 나와 같은 업무 방식은 탄력성이 떨어졌다. 내가 먼저 일을 마쳐서 건네줘야 하는 경우, 그 반대의 경우에도 심리적으로 안정적이지 못했다. 일을 하면서 아주 당연히 찾아오는 상황을 당연하게 대처하지 못하고 안절부절하는 불안정감은 협업에 부담을 줄 수 있다고 느꼈다.
 
두번째 문제는 스스로 잘한다는 착각을 하게 되는 위험이다.
 
20일이 걸리는 일을 15일만에 끝내면 개발을 잘한다는 자만을 하게 될 수 있다. 하루 정도의 리소스가 들 것이라고 판단되는 일 20개를 하는 것과, 열흘 정도의 리소스가 들 것이라고 판단되는 일 2개를 하는 것은 천지차이다. 대부분 후자의 경우가 더 까다롭고 중간에 다른 이슈가 끼어들기 쉬운 이슈인 경우가 많다.
 
하지만 이런 저런 모든 요인들을 빼두고 일을 빨리 처리하는 데 목적을 두게 되면, 그 목적을 달성했다는 데 정신이 팔려 더 고생을 하는 다른 누군가의 희생을 놓치기 쉽다.
 
다행히 시간이 지나고 경험이 쌓여가면 눈에 보이지 않게 되었던 것들이 많이 보고 조금 더 객관적인 판단을 할 수 있었다. 하지만 자칫 잘못하면 위험한 과신의 함정에 빠질 수 있다는 걸 조심해야 한다고 느꼈다.
 
 
 

2. 

8월 쯤에는 새로운 신규 프로젝트의 여러 작업을 맡았다. 장비 신청부터 개발에 필요한 데이터 수급, 오픈 서비스의 과제까지를 담당하는 꽤 큰 작업이었다.
 
각 모듈을 담당하는 서버, DB, 캐시 등이 어느 정도의 트래픽을 받아내야 할 지 산정하는 것부터 난관이었다. 기존 시스템은 내가 입사할 때부터 잘 동작하고 있었기 때문에 따로 이런 부분에 대해 고민해 볼 필요가 없었다. 하지만 새 집을 지으려고 하니 그 안의 인테리어를 잘하는 것은 나중 문제고, 뼈대를 세우기 위한 재료를 구하는 것부터가 시작이라는 것을 느끼게 되었다.
 
사내 로깅 시스템을 보며 기존 서비스의 각 탭에 진입하는 트래픽을 확인하고 관련 업무를 했었던 다른 부서 사람들에게 묻기도 했다. 예상되는 테이블의 크기도 정확한 서비스의 스펙이 전부 나와있지는 않았기에 넉넉잡아야 했다. DB는 어떤 DB를 사용해야 할 것인지에 대해서도 회의를 열어 내가 생각한 내용을 정리해서 발표하고 결정하기도 했다.
 
결과적으로 서비스를 운영하는 데 문제는 없었다. 하지만 안 쓰는 장비가 생겨서 반납을 해야했고 서버를 추가로 신청하기도 했고 로우 데이터를 저장하는 DB를 Vitess에서 HDFS로 바꾸는 작업을 하기도 해야했다. 아주 뚝딱거렸고, 옆에서 나의 신입 때 멘토셨던 팀원 분께서도 추가적으로 많은 도움을 주셨다.
 
특히, 서비스를 위한 운영 데이터를 제외한 로우 데이터를 어디에 저장할 것인가에 대한 나의 주장이 완벽히 틀렸던 경험을 했다.
 
기존에는 몇 천만, 몇 억건이 되는 데이터는 대부분 하둡에 저장하고 파이프라인 배치 작업을 통해 가공 데이터를 만들어 운영에 사용했다.
 
하지만 나는 배치가 깨질 때의 복구 문제, 데이터 정합성 문제, 실시간성 문제, 조회하기 어려운 대용량 파일 시스템의 문제 등을 이유로 과감히 하둡을 버리고 MySQL을 닮은 수평 분산 DB인 Vitess로 모든 서비스를 하자는 의견을 냈다. 데이터의 수급도 배치보다는 스트리밍 방식으로 하여 실시간 서비스에 욕심을 냈다.
 
하지만 완벽히 틀렸다.
 
몇 억건이 되는 데이터, 그것도 테이블의 크기도 큰 데이터를 Vitess에서 모두 처리하는 것은 불가능했고 복잡한 Join 쿼리 등이 포함된 데이터 처리를 샤딩 기반 DB에서 하는 것은 불가능했다. 
 
데이터의 수급을 스트리밍 방식으로 하는 것도 애초에 불가능했다. 데이터의 수급은 데이터를 공급해주는 쪽의 방식을 따라야했다. 
 
조금 더 실시간성으로 데이터 처리 파이프라인을 만드는 것도 내 생각보다는 더 어려웠다. 처음에는 데이터 천만 건 단위를 처리하는 데 몇 시간이 걸렸다. 쿼리 개선하기, 불필요한 컬럼 조회 버리기, 데이터 캐시 사용하기, 벌크 연산 사용하기 등으로 이를 줄이는 작업을 하는데 몇 일이 걸려 20~30분까지 줄이기는 했다. 하지만 더 큰 전체 데이터를 처리해야 할 때는 어쩔 수 없는 시간의 제약이 있었다. 
 
결과적으로는 모든 데이터를 다시 하둡에 적재하고, 운영을 하는 데이터만 Vitess에 저장하는 식으로 구조를 바꿨다. 덕분에 많은 날들을 고생했지만...많은 것을 느낄 수 있었던 경험이었다.
 
무엇보다 이런 상황을 우려하면서도 나의 생각을 직접 구현해볼 수 있는 기회를 준 리더님과 팀원들에게 미안하고 감사했다.
 
 
 

3.

12월에 새로운 팀으로 조직을 옮기게 되었다. 회사에서는 일 년에 3번 조직을 옮길 수 있는 기회가 주어지는데, 간단한 자기소개서를 쓰고 이동하고자 하는 조직에서의 면접을 보는 방식이다.
 
조직을 이동한 이유는 꽤나 단순했다.
 
내가 해보고 싶었던 커머스 도메인의 조직이었고, 내가 궁금했던 기술 스택들을 실무에서 사용하는 곳이었다. 또한, 1) 신입으로 한 조직에서 연차가 쌓여가며 배울 수 있는 장점과, 2) 어떻게 보면 두 번의 신입으로 두 조직에서 밑바닥 경험을 했을 때 배울 수 있는 장점 중에서 후자의 경험을 한 번 해보고 싶었다.
 
이 선택이 잘한 선택인지는 시간이 지나서 내가 어떻게 했느냐에 따라 달렸겠지만, 지금까지는 다시 신입의 조바심을 느끼며 일하고 있다.
 
물론, 기존 팀에서 기술적으로도 많은 것을 배울 수 있었고 팀원들 모두에게 인간적으로도 배울 점이 많았다.
 

조직을 이동하기 전 보냈던 메일

 
신입으로 이 팀에서 1년 3개월 가량의 시간을 보낸 것은 아주 큰 행운이었다고 생각한다.
 
 
 

4.

2023년은 한 해를 온전히 '회사원'으로 보냈던 첫 해였다.
 
그만큼 많은 일들은 항상 낯설음으로부터 배워나가야 하는 일들이었고, 많은 사람들은 고향이나 MBTI를 물어보며 가까워져야 하는 사람들이었다. 하지만 시간이 흐르면서, 늘 하던 일은 어느정도 손에 익게 되었고 데면데면했던 사람들도 가까운 사이가 되어 이런 저런 말들을 주고 받을 수 있게 되었다.
 
덕분에 친한 친구와의 여행, 퇴근 후 동기들과의 술자리, 팀원들과의 회식 자리, 축구 직관 동호회에서의 K리그 직관, 밴드 동호회에서 했던 공연, 작은 일상들에서 혼자 하던 여러 가지 일들, 다른 크기의 많은 기억들로 365일을 채울 수 있었던 것 같다.
 
내가 한해동안 했던 말과 행동 모든 것을 돌아보면 아쉬운 점도 많지만, 이에 대한 회고는 조금 더 좋은 모습으로 사람들에게 다가가야겠다는 정도로 갈음해야겠다.
 
 


 

'Thinking' 카테고리의 다른 글

입사 1년, 회고  (0) 2023.09.09
아는만큼 보인다는 말  (1) 2023.06.24
2022년 짧은 회고  (0) 2023.01.02
개발 블로그를 시작한 지 500일이 지나고  (0) 2022.11.26
어떤 개발자가 될까  (0) 2022.10.12