데브코스 002일차 회고(03.23): 좋은 개발자냐? 좋은 프로그래머냐?

rescogitans·2022년 3월 22일

좋은 개발자냐? 좋은 프로그래머냐?

추상 팩토리에 대해 공부하는 중인데, 재밌습니다. 자바 스프링이라는 한국에서 가장 흔한 생태계를 선택한 이유기도 한데, 많은 사람들이 사용하는 기술이나, 고전적인 주제일수록 재밌습니다. 그런 주제들에는 간단한 기술들에도 그렇게 되어 온 이유와 역사가 녹아들어 있기 때문입니다. 단순히 뭐가 정답이라는 것이 아니라 논쟁이 일어날 수 있다는 점이, 그리고 그 논쟁을 살펴보는 것도 재미있습니다. 더 앞서 나가는 사람들의 잘 정제된 글들이 많다는 것도 장점입니다.

글이 완성되면 블로그에도 올리겠지만, 추상 팩토리는 이름 그대로 추상화를 위한 기법입니다. 추상성이 높아진 부분은 유연합니다. 결합도가 내려갑니다. 객체지향적인 코드의 유연성을 살리기 위해선 추상화를 잘 사용하는 것이 키 포인트가 아닐까 생각했습니다.

스프링 코드에서 추상화 패턴도 찾고, 영어권 개발 글들 중에도 좋은 자료도 찾고 하다보니 시간이 훌쩍 지나갔습니다. 얻은 것이 많은 것은 좋지만, 오늘 하기로 한 일의 우선순위가 무너졌다고 느꼈습니다. 문득 여러 군데에서 현업에 계신 개발자님들이 종종 말하는 것이 생각났습니다. 조직의 기술 부채를 해결하는 것은 중요하지만, 그것도 조직의 상황이나 그런 것들을 고려해야 한다는 얘기였습니다. 인터페이스를 분리하고, 추상화하고, 확장성이 좋은 객체 지향적인 코드를 짜는 것은 당연히 좋지만, 사소한 데부터 하나하나 그러고 있다간 결국 그것도 비용이라는 것입니다. 지금 내가 하는 공부가 그런 것이 아닐까 하는 생각이 들었습니다. 너무 많은 시간을 한 일에 할당하고, 지금 단계에서 알 필요가 없는 BeanFactoryFactoryBean을 살펴보고, 자식 클래스를 쭉 살펴보고 하는 일은 부적절하다는 것입니다.

생산성을 위해서 장기적인 확장 가능성이나 코드의 품질을 어느 정도 희생할 것인지, 그 반대로 해야할 것인지를 고민하는 것이 중요하다는 것을 들었었습니다. 우선순위 없이 자신만의 만족을 위해(물론 코드 품질은 당연히 중요하지만, 조율조차 없이) 일하는 사람이라면 잘 협업하는 사람이 아닐 겁니다. 스타트업 초기 단계인데 나처럼 일하다간 회사가 터지고, 빠르고 단순하게 결과물을 내서 시장의 반응을 살피고 재빨리 변화해야 하는 시간에 그렇게 일하면 기획자 억장도 터지고, 마찬가지로 보조를 안 맞춘 백엔드 때문에 프론트엔드 개발자분도 속 터지겠구나 하는 생각을 했습니다. 마침 객체지향을 공부하고 있으니, 내가 하는 일이 마치 객체들처럼 내 역할과 책임을 갖고 다른 사람들과 협력하는 것이라는 것을 되새겨야겠습니다.

글의 제목으로 달아 둔 개발자와 프로그래머는 <함께 자라기>라는 책의 한 부분이 생각나서 적었습니다. 옥스포드 대학에서 발표한 <고용의 미래>라는 논문에서 어떤 직업이 컴퓨터로 대체될 확률이 어느 정도인가를 연구했습니다. 그 데이터베이스에서는 '소프트웨어 개발자'와 '컴퓨터 프로그래머'를 다른 직업으로 분류하였다고 하는데, 후자는 스펙에 맞춰 코드를 짜는 사람으로, 전자는 요구사항의 분석 및 솔루션 설계와 코드 작성을 포함하는 사람으로 분류했다고 합니다. (물론 개발자와 프로그래머라는 말이 저대로 쓰이는 것은 아니고, 분류를 위한 거겠죠.) 재밌는 점은 전자의 컴퓨터 대체 가능성은 4.2%인 반면 후자의 대체 가능성은 48% 였다고 합니다. <함께 자라기>는 그 까닭을 전자는 후자와 달리 사람들과 소통하고, 협력하고, 설계하는 사람이기 때문이라고 분석합니다. 좋은 '개발자'가 되고 싶다면서 '프로그래머'의 방식으로 일을 분배하고 있지 않았나 생각했습니다.

과정에 대해 매니저님들이 이야기한 것들 중 인상깊었던 것이, 이 (100% 원격) 교육 과정은 그렙의 운영 방식과 유사하고, 일종의 출퇴근 개념으로 코어타임(의무참석시간)이나 게더타운(코어타임동안 모이는 일종의 메타버스)을 설명하고, "여러분들의 업무는 성장입니다" 와 비슷한 이야기였습니다. 그 말이 상당히 와닿았는데, 앞으로 이렇게 열심히 내 능력 발전을 위해서 하루 종일 시간을 쏟아 부을 수 있는 때는 없겠구나 하는 생각이 들어서 그랬습니다. 저녁 시간에 멘토님과 함께 팀원들과 이야기를 나눴습니다. 늦은 시간 퇴근하고, 결혼해서 아이 가진 상황인데 이야기를 나누러 오셨던 것이 감사하기도 하고, 동시에 정말 힘들겠구나 싶었습니다. 그 분도 동일한 얘기를 하셨습니다. 지금만큼 발전을 위해서 쏟아 부을 수 있는 기회가 없다고 했는데, 맞는 말이라 생각했습니다. 지금처럼 즐겁게 계속 공부해서 5개월 후에 많은 성장이 있었으면, 좋은 개발자에 더 가까워지면 좋겠습니다.

0개의 댓글