본문 바로가기
etc/회고.

'블루 자이언트' 같은 개발자가 될래

by Mintta 2024. 1. 14.

 

갑자기 제목이 이게 무슨소리인가 싶죠..ㅎㅎ 오늘글은 회고 아닌 회고와 앞으로의 제 개발자로서의 방향성에 대한 글입니다.

 

여러분들은 어떤 개발자가 되고 싶으신가요?

혹시 '블루 자이언트'라는 단어를 아시나요 ??

블루자이언트라는 단어는 제가 정말 좋아하는 '블루 자이언트'라는 재즈 만화에서 알게 된 단어입니다. (제 블로그 프로필 사진도 블루 자이언트의 한장면입니다ㅎㅎ)

 

블루 자이언트란 재즈에서 '넘치는 열정, 붉다못해 푸르게 타오르는 불같은 연주를 하는 엄청나게 뛰어난 연주자'라고 합니다.

 

저는 블루 자이언트와 같은 개발자가 되고 싶습니다. 그런 뛰어난 개발자는 어떤 개발자인지 이야기를 쓰면서 구체화시켜볼게요.

 

 

블루자이언트 만화 속 주인공 '다이'는 눈이 오나 비가 오나 항상 매일 같이 세계 최고의 재즈 플레이어가 되기 위해 연습을 합니다. 2023년은 다이처럼 살고자 하였습니다. 공유하며 기본기를 다지고자 들어갔던 2월의 SOPT 활동을 시작으로 지금까지, 다이와 같이 정말 매일매일은 아니였겠지만 지금껏 보냈던 어떤 해보다 치열하게 고민했고 성장했습니다. 한가지 주제에 대해 팀원들과 함께 매일 매일 5~7시간씩, 몇일씩 토론해나가면서 우리 나름의 결론을 내리기도 하고, 치열했던 고민을 바탕으로 몇시간, 몇일을 들여가며 블로그글로 꾸준히 기록해왔습니다. 이런 시간들을 통해서 작년의 저와 비해 정말 많이 성장했고 인사이트도 넓어졌음을 느낄 수 있었습니다. 혼자라면 거의 불가능했을 테지만, 함께 고민하고 토론을 할 수 있었던 팀원들이 있기에 가능했습니다.

왼) 블로그의 토대가 된 '라이온하트, 오) 라이온하트의 연장선 느낌의 Plu

 

 

그리고 2024년이 되고, 우후죽순 올라오는 회고글들을 꽤 읽었던 것 같습니다. 다양한 곳에서 모두 치열하게 고민하며 성장한 이야기들을 듣자니, 저도 회고를 쓰고 싶어졌습니다. 회고를 쓸려고 하니 '지금까지 잘해오고 있었다고는 생각하는데, 정말 잘하고 있는게 맞을까'라는 생각도 들었습니다. 그리고 그즈음 제가 옳다고 생각했던 것과 살짝 반대되는 피드백을 받게 되어 이런 생각은 곧 의심으로 번졌고, 꼬리에 꼬리를 물고 커져만 갔습니다.

 

정말 잘하고 있는걸까 ?


이 고민을 같이 프로젝트를 하는 팀원들과 나누며 답을 찾아볼려고 했지만, 저희끼리 결론을 내릴 수 있는 것이 아니겠다라는 생각이 들었습니다. 그렇게 조언을 구할 수 있는 분들을 주변에서부터 아름 아름 찾다가 끝에 '링크드인을 통해서 현직자께 커피챗을 요청하자'라는 아이디어가 나왔습니다. (조금 성격이 다르지만 이런 cold mail을 전과할 때 일면식 없는 타과 교수님께 상담을 요청하며 매주 찾아가 공부 방향에 대한 조언이 받았던 적이 있는데 그 때가 떠올랐습니다) 저는 제가 늘 꿈꿔온 커리어를 가지고 계신 존경하는 개발자분께 커피챗을 요청하였고, 다른 팀원은 본인이 가고싶은 회사에 재직중이신 개발자에게 커피챗을 요청하며 저희 방식에 대한 다양한 피드백을 얻고자 했습니다.

 

일면식도 없었던 상황에서 답장이 오는 것 조차 기대하지 않았었는데, 정말 정말 감사하게도 커피챗에 응해주셔서 정말 많은 조언과 인사이트를 얻을 수 있었고, 공부 방향에 대한 이야기도 들을 수 있었습니다. 또한, 다른 팀원을 통해 다른 개발자분께 얻은 피드백들을 공유받으면서 정말 많은 인사이트와 깨달음을 얻을 수 있었습니다.

 

커피챗을 하면서 '잘해왔고 내 방향이 틀리지 않았구나!' 를 인정받아 벅차오르기도 했지만, '내 시야가 정말 좁고 아직 한참 부족하구나, 한가지 메뉴만 존재하는 메뉴판'이라는 생각이 들었습니다. 가장 중요한 점은 제가 목표로 하는 개발자가 되기 위해 저의 부족한 점이 무엇이었고, 모두가 원하는 개발자란 무엇인지, 무엇을 목표로 할지가 명확해졌다라는 점이었습니다.

 

생산성을 고민하는 개발자

생산성을 고민하는 개발자가 되고 싶습니다.

 

지금껏 제가 고민해왔던 추상화, 테스트 코드, 단일 책임, 결합도 등에 대한 고민도 좋은 개발자가 되기 위해서 당연히 필요로 한 고민이라고 생각하고 그 고민을 멈출 생각은 없습니다. 하지만, 지금까지 제가 해왔던 것들이 정말 생산성 측면에서도 좋았는가? 적절했는가? 라고 한다면 단연코 NO라고 생각합니다. 프로젝트를 리팩토링해오면서 놓치고 있었던 본질적인, 가장 중요한 가치였을지도 모르겠습니다.

 

최근 리팩토링 해오던 프로젝트에서 너무 많은 추상화로 인해 리팩토링 과정에서도 과도한 코드 점핑과 보일러플레이트의 증가로 인해 많은 피로도를 느끼고 있었습니다. 리팩토링 과정에서 미래에 있을 변화를 예측하며 이렇게 하면 유연한 설계가 될거야! 이렇게 하면 코드 퀄리티가 높아질거야! 라며 이상적인 Best practice를 쌓아올린 결과였죠. 그 때 당시에는 피로도와 불편함을 느꼈음에도 '아, 원래 이건 trade off관계야. 코드 퀄리티를 위해서라면 이 정도 불편은 감수하는게 당연한거야! 나중에 기능이 추가될 때의 확장성을 생각하면 이게 맞지 암암' 라고 생각하며 뿌듯해하며 그 불편을 감수하고 있었습니다.

 

미래에 일어나지 않을 수도 있는 일을 가지고 지레짐작하여 오버엔지니어링하며 스스로 족쇄를 걸었던 것이죠. 

'변경이 일어나면 한 번 맞고, 두번째부터 다시 반복되지 않게끔 하면 된다' 이런 느낌의 문장을 어디선가 책에서 읽었던 것이 떠오르네요. (어디서 이것을 읽었는지 기억이 안나 원문을 못찾았습니다..)

 

생산성이 왜 중요할까요?

 

개발자는 문제 상황에 맞는 '적절한' 해답을 제시하는 사람이라고 생각합니다. '완벽한'이 아닌 이유는 저희는 과학자와 같이 진리를 탐구하는 사람이 아니기 때문입니다. 

 

현 문제상황을 해결할 수 있는 가장 적절한 해답을 제시하는 사람. 이것이 빠르기까지 하다면 금상첨화입니다. 그만큼 프로덕트는 더 빨리 많은 피드백을 가지고 빠르게 성장할 수 있다는 뜻이기 때문입니다. 이 때의 피드백은 서비스를 사용하는 사용자들로부터 얻게 되고, 이 피드백을 통해 프로덕트는 더욱 성장하며 더 많은 가치를 다시 사용자들에게 줄 것 입니다.

 

결국 생산성이 포인트라고 생각했습니다. 간단한 버튼 하나를 누르면 다음 화면으로 넘어가는 기능을 구현하기 위해서 클린아키텍처, MVVM, 추상화 등등 이런것들이 필요할 일은 없을 겁니다. 과거의 저라면 '코드 퀄리티를 높이자!' 라며 그렇게 했을지도 모르겠네요..

 

그래서 저는 '생산성을 고민하는 개발자'가 되고 싶습니다.

개인의 생산성뿐만이 아닌 팀전체의 생산성을 저하시키는 요소가 무엇인지를 파악하고 생산성을 증진시켜 빠르게 문제를 해결해나가 가치를 창출하는 개발자가 되고 싶습니다.

 

블루자이언트가 되기 위한 2024년 목표

블루자이언트 개발자, 생산성을 고민하는 개발자가 되기 위해서 제 목표는 아래와 같습니다.

팀내 생산성을 저하시키는 요소가 무엇이 있을지 깊이 고민하고 해결해보자

가능하다면 사용자가 있는 서비스를 만들고 운영해보자

적절한 도구를 고를 안목을 위해 많은 도구를 써보자

적절한 도구를 찾기 위해서는 많은 도구를 가지고 있는 게 좋을 것 같습니다. 기존의 알고있는 지식에 매몰되지 말고 새로운 도구들을 익혀나가겠습니다.

생산성이라는 핑계로 코드 퀄리티를 포기하지 말자

제 고민의 깊이를 낮출 필요는 없이 유지하면서 생산성에 대한 고민을 추가하겠습니다.

 

책을 많이 읽자

  • 실용주의 프로그래머
  • 내 코드가 그렇게 이상한가요?
  • 함께 자라기
  • RxJava

내년에는 위 책 4권을 읽는 것을 목표로 해보겠습니다. 우선 첫번째 목표는 '실용주의 프로그래머'입니다. 오늘 아침에 서점에 와서 선 자세로 1장을 가볍게 읽어보았는데 지금 제가 생각하고 있는 것들과 공감가는게 많아 재밌게 읽을 수 있을 것 같습니다.

 

내년에도 화이팅!!! 취업도 잘되면 좋겠다!!!

 

첫번째 읽을 책은 너로 정했다

 

 

'etc > 회고.' 카테고리의 다른 글

[생각] 추구하는 방향성과 마음가짐.  (0) 2023.03.31

댓글