회고록/주간 회고

6월 4주차 회고(6/20 - 6/24)

Woonys 2022. 6. 28. 01:58
반응형

이번주 점수는? ⭐⭐⭐

😍 좋았던 것(Liked)

스스로 어떤 가치를 지니고 있는지 알아가는 요즘

개발자를 시작하면서 이게 맞는 선택일까 고민하고 좌절하던 날이 많았다. 정글에 있을 때 동굴을 깊은 바닥까지 찍고 나서일까, 요즘은 내가 개발자에 어울리는 사람인지에 대한 고민이 옅어졌다. 정확히는 맞지 않는다는 걸 잘 알아서인듯(?). 보다 정확히 말하면, 모든 면에서 개발자에 적합한 사람은 아니라는 걸 깨달았기 때문이다. 뭔가 역설적인데, 반대로 말하면 내가 어떤 가치를 가진 사람인지를 가면 갈수록 깨닫고 있는 요즘이랄까.  

 

요근래 다양한 업계 사람들과 만나는 일이 잦다. 천성이 사람들과 이야기하는 걸 좋아하는지라 어딜 가나 왁자지껄 분위기를 띄운다. 그렇게 자리를 좋게 만들고 나면, 덕분에 긍정적인 에너지를 받았다는 피드백을 늘상 듣는다. 어렸을 때는 그냥 너랑 놀면 재밌다 정도였는데, 갈수록 이 성향이 매우 희소한 가치라는 걸 느낀다. 특히나 개발자 사이에서는 더더욱.  

 

그러면 개발자 하기 힘들지 않냐, 일할 때는 늘상 컴퓨터랑 있어야 하는데 괜찮냐는 얘기를 들을 때가 있다. 그런데 아이러니하게도 일할 때는 조용히 있는 게 더 좋더라(?) 놀 때는 미친 듯이 놀고 일할 때는 정적으로 하니까 오히려 밸런스가 잘 맞는듯. 게다가 깨달은 게 하나 있다면 나는 공부하는 걸 좋아한다. 정확히는 모르는 걸 알아갈 때 희열을 느낀다. 끊임없이 자기계발해야 하는 이 업계가 정말 잘 맞는다(아직까지는..). 역설적으로 전에 있던 분야는 배움의 속도가 느려 재미가 없었다. 자극이 전혀 오지 않더라. 그런데 여기는 하루라도 공부하지 않으면 안될 것만 같은 그 속도가 오히려 좋다. 그러니 공부하자(제발).  

 

📚 배운 것(Learned)

동료를 믿는다는 것

백엔드 리드님과 1개월 차를 넘긴 시점에서 인터뷰를 했다. 그동안 무엇을 공부했고 어떻게 진행했는지에 대해 말씀드리는 시간을 가졌다. 이것저것 열심히 했고 더 잘하기 위해 이런 노력을 하고 있다고 상세히 말씀드렸는데, 전혀 예상치 못한 반응이 나왔다.  

 

부담을 줄이자.” 그렇게 가혹하게 하지 않았으면 한다는 말씀을 해주셨다. 사실 불안한 게 하나 있었다. 엄연히 지금은 수습 기간이고, 이 기간 안에 과제를 수행하지 못하면 나갈 수도 있지 않을까 하는. 그걸 정확히 캐치하셨더라. 자바/스프링 안 배운 거 뻔히 알고, 그거 금방 배울 수 있는 게 아니라는 것도 아신다고. 3개월 해보고 “이 ㅅㄲ 각 안나오네!”하고 내쫓지 않는다고. 제로 베이스인 거 알고 데려왔다고.  

 

사실 이 말을 이때만 해주신 게 아니었다. 처음 들어왔을 때도 그러셨고, 중간에도 말씀해주셨다. 그런데 이날따라 이 조언이 새롭게 들린 건 관점이 바뀌었기 때문이다. “나도 이 말을 믿어야 된다”. 조바심 내고 더 잘하려고 발버둥치는 건 어떤 면에서는 동료를 믿지 않는 것과 다름없다.  

 

혼자 애쓰는 건 어떤 면에서는 동료를 믿지 않는 것이다. 동료가, 사수가 멀리 보고 천천히 뛰자고 했을 때, 동료를 믿는다면 온전히 내 등을 내줘야 한다. 내 등을 내준다는 건, 말 그대로 내 약점을 보여주는 것이다. 나 이만큼이나 하고 있다고 포장하지 않고, 있는 그대로 현재 이 상태라 말할 수 있는 것. “나 지금 이런 상태니까 이해해줘 알았지?”라고 할 수 있는 것.  

 

열심히 하지 않겠다는 건 절대 아니다. 다만 옆 회사에 신입이 입사 3일차에 배포를 했네 마네에 흔들리지 않고, 못하면 3개월 이후에 짐 쌀 수도 있겠다는 불안감을 원동력으로 삼지 말자. 온전히 동료를 믿고 하루하루 정진하자. 3개월 마라톤하려고 여기 온 거 아니다.  

 

백엔드팀 KPI 산정이 어려운 이유 & 개발자가 개발만 하면 안되는 이유

현재 우리 회사는 기능 중심(프로덕트팀, 엔지니어링팀, …)으로 팀이 나뉘어져 있다. 물론 목적 중심으로도 나뉘긴 하나 사실상 큰 의미를 지니지는 않는다. 그러다 보니 전사 KPI와 별개로 백엔드팀 KPI를 산정할 때 여러 어려움을 겪었다. 이를 어떻게 해결하면 좋을까 싶어 리서치를 하다가 좋은 아티클(링크)을 발견했다. 앞부분을 요약하면 아래와 같다.  

 


회사에서는 팀을 꾸릴때 기능별로 분리하는 경우가 많은데, 이렇게 하면 아래와 같은 문제가 발생한다.

  1. 팀의 역할과 책임, 회사의 방향 그리고 프로덕트 자체의 니즈가 종종 충돌한다.
  • ex) 프론트 팀 책임 영역: 웹사이트가 브라우저에서 잘 동작하게 하는 것 vs. 회사에서 중요하게 생각하는 영역: 수익/매출/사용자 지표 등
  • 프로덕트 지표와 회사의 니즈는 거리가 가까운 반면, 개발팀과 회사의 니즈는 거리가 멀다.
  1. 다른 기능 조직의 역할에 공감을 하기 어렵다.
  • 요청을 받아서 일을 시작하는 개발팀 입장에서 다른 모든 조직은 왜 자꾸 일을 가져오는지 귀찮은 존재
  • 개발팀이 나빠서가 아니라 개발팀으로 일을 하게 될때 이런 정체 현상이 자연스럽게 발생
  1. 팀의 전문성이 없다.
  • 회사 입장에서 팀의 전문성은 매출과 연결할 수 밖에 없음
  • 반면 개발팀의 전문성은 매출과 상관관계는 있으나 인과관계가 없음 -> 개발 잘한다고 회사가 돈을 더 버는 건 아님.

이를 해결하기 위해 기능 단위가 아닌 목적 중심으로 팀을 나누어야 한다는 게 위 아티클의 내용이다. 읽으면서 또 한 번 느꼈다. 개발자가 개발만 잘하는 건 아무 의미 없구나. 물론 이런 거 신경 안쓰고 말 그대로 개발만 하고 싶어하는 사람도 있을 수 있겠다. 하지만 결국 개발을 하는 이유는 비즈니스 가치를 구현하기 위해서인데, 단순히 개발만 하면 안되는 게 이런 거구나. KPI 산정 잘하는 것도 매우 중요하고 이걸 잘하기 위해서 팀의 구조에 대해서 고민하는 것도 중요하다. 비즈니스와 협업을 고려할 줄 모르는 개발자가 어디까지 갈 수 있을지는 글쎄..주니어만 넘어서도 이런 고민을 하지 않으면 안될 것 같은데.  

 

코딩 자동화 툴의 퀄리티가 갈수록 좋아지고 있다. 깃허브에서 나온 코파일럿은 퀄리티가 상상을 초월하는데 무료로 배포되고 있다. 얼마 전에는 아마존에서도 코딩 툴을 발표했다. 갈수록 하드 스킬은 쉽게 대체될 것이다. 노코드 툴의 퀄리티는 또 어떨까. 스프링 잘 치네, 자바 잘 쓰네 이런 거 자랑하는 개발자는 한 5-6년 안으로 싹다 물갈이될 가능성이 높다. 겨우 6년 밖에 안 걸린다고 생각했다면, 겨우 6년 전에 알파고 나왔다는 사실을 잊지 말자.  

 

하지만 기술을 활용해 비즈니스 가치를 생산하는 건 별개의 문제다. 코딩만으로 사용자들에게 가치를 주는 제품이 탄생하진 않는다. 이건 단순히 하드 스킬만으로 해결될 수 없는 영역이다. 그 사이를 메꿀 사람들이 갈수록 많이 필요해질 것이다. 오히려 소프트 스킬이 풍부한 사람들이 5-10년 뒤에는 더욱 개발자를 해야 하는 세상이 올지도..? 알다가도 모를 세상이다 진짜.  

 

1년차 백엔드 엔지니어로서 방향성(by 향로)

위에 ai 툴이네, 소프트 스킬이네 했지만 일단은 백엔드 엔지니어로서 소프트웨어 엔지니어링의 기반을 잘 다져야 하는 사실은 변함없다. 예전부터 변함없는 생각인 게 어떤 분야든 ai를 다룰 줄 아는 사람과 그렇지 않은 사람으로 나뉜다. AI/ML은 극소수의 모델링 디자이너와 나머지 대다수의 AI/ML 엔지니어로 구성되어 있다. <AI 홀릭> 유튜브에도 나오지만 뤼이드 AIOps VP셨던 크리스님 가라사대, ML 엔지니어 하려면 백엔드부터 손대라 하셨다. AI/ML 쪽에는 매우 얕지만 공부해둔 게 있으니, 백엔드/데이터 엔지니어링 역량을 앞으로 3년간 잘 쌓는다면 그 이후부터는 걱정이 없을 것. 일단 지금은 하드 스킬을 잘할 줄 알아야 한다.  

 

향로님께서 말씀하셨던 1년차 백엔드 엔지니어가 가져야 할 방향성을 늘 새기려고 한다. 자세한 내용은 링크에 있으나 다시 한 번 더 새기자면. 

 

1. 마인드셋: 사냥개 같은 집요함
→ 맡은 문제는 어떻게든 해결하고야 말겠다는 강한 집념

2. 격리된 테스트 환경 구축 반복
→ 첫번째로 연습할 것은 회사의 코드가 아닌, 나만의 코드로 문제 상황을 재연해보는 연습
3. 사용하는 시스템 디버깅 방법(이펙티브 디버깅, Debug It - 실용주의 디버깅)
→ 서비스 회사에서 일하고 있다면 만드는 것 보다 중요한게 사용하는 시스템의 문제를 해결 하는 능력

이다. 늘 보고 또 보면서 잘하고 있는지, 더 잘할 수 있는 건 없는지 새기려고 한다.

여기에 추가로 1년 동안 공부하고 싶은 것을 정리하면 아래와 같다.

💦 부족했던 것(Lacked)

1일 1커밋 놓침(그것도 2번이나…)

왜 놓쳤을까? 놓친 것 자체가 중요한 게 아니다. 무엇이 문제였고, 왜 문제가 일어났으며 앞으로는 어떻게 하면 좋을지를 고민해야 한다.

시작은 회사에서 더이상 공부만 하지 않게 되면서였다. 사내 프로젝트 코드를 다루기 시작하니 개인 깃허브 계정에 커밋할 일이 없어졌다. 이는 즉 따로 시간을 내서 다른 공부를 반드시 해야 해결할 수 있는 문제이다.  

 

그렇다면 업무 시간이 아닌 아침 혹은 저녁 이후에 공부를 해야하는데, 지난 주에는 매일 저녁에 약속이 들어찼다. 그러다 이틀이나 빼먹게 된 것. 즉, 저 이틀 동안은 따로 공부를 하지 않았다는 뜻이 된다.  

 

공부를 하지 않았다면 자책이 아닌 왜 공부를 못했는지, 앞으로는 어떻게 할 수 있을지를 고민하면 된다. 그런데 반성해야 할 건 마인드셋이었다. 처음에 놓쳤다는 걸 깨닫고는 “에이, 날짜 수정해서 올려야겠다.”는 생각이 가장 먼저 떠올랐다. 이게 중요한 게 절대 아니다. 매일 커밋 올렸다는 사실이 중요한 게 아니다. 이 글(방향성이 명확한 노력으로 나만의 색깔을 가진 사람이 되기)에서도 잘 나와있으니 꼭 읽어보도록 하자.  

 

자, 그러면 어떻게 공부를 매일 할 수 있을까? 오는 주는 저녁에 약속이 따로 잡혀있지 않아 저녁에 공부 시간을 확보할 수 있다. 하지만 저녁 시간은 늘 불규칙적이다. 반면 아침은? 그래서 지금은 아침에 운동하고 밤에 공부를 했다. 문제는 우선순위다. 현재로서는 공부가 훨씬 우선순위가 높다. 그러니 반대로 가자. 아침에 공부하고 밤에 운동해야 된다.  

 

🕯 바라는 것(Longed for)

아침에 공부하기(중요한 걸 먼저 하자)

  • 오는 주는 저녁에 공부 시간을 확보할 수 있는 날을 제외하고 아침에 2시간 동안 공부하고 출근한다.
반응형