본문 바로가기
일상/자기계발

[피드백] - 실제 서비스가 아니라 서비스화부터 신경쓰자

by exdus3156 2024. 1. 25.

1.

<컴퓨팅의 정수>라는 책을 흥미롭게 읽은 기억이 있다. 이 책의 초반에는 개발자의 등급을(?) 분류하는 기준이 저자(우쥔)에 의해 제공되어 있다. 저자는 자연어 처리 전문가로 구글에서 일하면서 겪은 개발자들을 다음과 같은 기준으로 분류할 수 있다고 한다.

  • 5등급 : 독립적으로 문제를 해결하고 소프트웨어를 온전히 완성할 수 있다.
  • 4등급 : 최신식 방법으로 문제를 해결하고, 다른 사람들을 이끌어 영향력 있는 개발자로 성장시킬 수 있다.
  • 3등급 : 독립적으로 제품을 설계하고 시장에서 성공할 수 있다.
  • 2등급 : 중요한 컴퓨터 이론과 실천에 있어 새로운 문제를 제기할 수 있다.
  • 1등급 : 산업을 개척하고 이론적 기반을 만들 수 있다.

참고로 저자가 생각하는 7등급의 기준은 우수한 대학의 컴퓨터 공학과를 전공한 수준이다.. 즉, 저 5등급이 생각보다 기준이 정말 높은 것이다. 그러니까 나는 5등급은 커녕....;

여하튼, 이전에 개발자의 핵심 가치를 실제 서비스를 개발하고 필요한 업무를 수행할 수 있는 역량을 갖춘 사람으로 정의한 바 있다. 이것은 저자에 등급 분류 기준에 따르면 딱 5등급이 아닐까 싶다.

시장에서 통할 제품을 설계하고 코딩하는 능력을 갖췄다는 3등급은 IT회사의 임원이나 아키텍처라고 자자가 정의했으니, 취업을 한다고 해도 꽤 미래의 일이다.

따라서 지금은 5등급을 목표로 정진해나가는 것이 요구된다.

 

 

2.

책의 내용을 장황하게 언급한 이유는, 목표로 삼는 5등급의 역량이 두 가지 방향으로 나눌 수 있다는 점, 그리고 그것의 시기적 단계성을 발견했기 때문이다.

첫 번째는 문제를 해결하는 역량으로서 컴퓨터과학, 알고리즘, 자료구조, 운영체제 등의 과목과 관계가 있다.

두 번째는 소프트웨어를 온전히 완성하는 역량으로서 프레임워크, 배포, 데이터베이스 등의 과목과 관계가 있다.

처음에 개발자로 일한다는 것의 정의를 "실제 서비스를 개발하고 그 과정에서 요구되는 문제를 해결할 수 있는 사람"으로 정의했으나(링크), 지금 생각해보면 혹시 내가 너무 취업 관문만 신경썼던 것은 아닌지 반성하게 된다.

"실제 서비스"라는 단어를 사용하면서도, 정작 실제 서비스가 무엇인지에 대한 고민이 없었던 것 같다. 그래서 다시금 생각해보면 다소 지나치게 높은 목표를 잡은 것 같다.

개발자를 흔히 문제를 해결하는 사람이라고 말하지만, 사실 이는 추상적인 정의다. 고양이의 특징을 물었는데 "네 발로 걸어다닌다"라고 대답하면 틀린 대답은 아니지만 차원이 같지는 않다. 차라리 "야옹하고 운다"라고 대답하는 것이 와 닿는 대답이다.

개발자의 정의를 "야옹하고 운다"는 대답 수준으로 내려버리기 위해서는 "문제를 해결한다"의 의미를 보다 더 정확하게 생각해볼 필요가 있다. 문제를 해결하는 것은 개발자뿐만이 아니라 세상 대부분의 직업이 문제를 해결한다. 다만 개발자는 내 생각엔, "정보 처리의 관점에서 문제를 정의하고 해결할 수 있는 사람"이라고 생각한다.

소프트웨어가 가치 있는 이유는 바로 이러한 개발자의 정보 처리 능력이 서비스화될 수 있기 때문이다. 사람들의 문제를 해결해도 그것을 사용자가 사용할 수 있는 형태로 다듬고 배포하지 않으면 의미가 없다. 

문제는 우쥔의 등급론에서 봤듯이, 실제 시장에서 통할 수준의 문제 해결 역량은 5등급 ~ 3등급 정도이며 이것은 먼 미래의 일이라는 것이다. 

결국 취업 관문을 넘어서기 위해서는 이전 포스팅에 정리한 것처럼 서비스화 능력이 요구되긴 하지만, 취업을 하고 나서는 개발자의 단계를 따라가며 천천히 문제 해결 역량을 길러야 한다는 점이었다.

구글 검색 알고리즘, 넷플릭스의 영화 추천 시스템, 네이버 블로그, SNS 커뮤니티, 배달의 민족, 야놀자, 유튜브, 당근마켓, 등.... 오늘날 인기 많은 시스템은 결국 정보 처리 관점에서 문제를 해결한 핵심 알고리즘에 있다. 즉, 정보 처리 관점에서 탐색과 추천, 정렬과 선택, 저장, 네트워킹과 매칭 시스템 등이 소프트웨어의 가치다.

 

 

3. 

이전에 포스팅한 부분에서 내가 피드백해야 하는 지점은 "실제 서비스 개발을 목표로 둔다"는 것을 조금 더 재고해볼 필요가 있다는 점이다. 실제 서비스 개발은 3등급 수준의 문제 해결 역량을 갖춰야 하며, 상당히 먼 미래의 일이라는 것을 이번 기회를 통해 알게 되었다.

우쥔의 6등급 역량은 주위에서 도움을 주면 문제를 해결할 수 있으며(서비스 대상 알고리즘), 이것을 스스로 소프트웨어로 완성시킬 수 있는 사람으로 정의된다.

역량을 문제 해결 역량과 서비스화 능력으로 나눈다. 그리고 취업을 위해 후자의 능력을 중점적으로 익히고, 취업을 하고 난 후에는 문제 해결 역량에 집중할 수 있어야 하지 않을까.

이전에 내가 포스팅했던 결론을 다음과 같이 약간만 수정했다.

"실제 서비스화 능력을 기르고, 이에 따른 문제를 해결할 수 있는 사람"이 되는 것으로 분할했다.

 

우선은 실제 서비스가 아니라 서비스화 능력을 기르자.