everything

Jun 18, 2023

요즘들어 사람들과 애기해보면 어떤것을 해야하는가? 어떻게 성장해야할까요? 라는 애기들을 많이 든는다. 조언이랍시고, 모르는 것들을 위주로 다 알아 들을때까지 매일 공부하라고 하지만 사실 그건 어떤 조직에서 통용되는 지식(knowledge)에 적응해 나가는 단계일 뿐이다. 어느정도 적응이 되고 조직 내에서 머물렀던 시간의 크기가 늘어나게 되면 자연스럽게 알게 되긴 한다. (그래도 모른다면 개인의 문제다.)

개인적으로 성장이라는 단어는 별로 좋아하지 않아서 여기서부터는 이 단어를 배제 하려고한다.

무엇을 배워야 하는가? 다시 말해서, 소프트웨어 엔지니어는 무엇을 배워야 하는가? 라는 질문에 예전 CTO는 모든 것(Everything)이라고 답을 했었다.

현 시대의 기술조직은 과거에 비해서 굉장히 세분화되었다. 백엔드 개발자, 프론트엔드, 네이티브 앱 개발자, 보안, 데이터엔지니어, 데브옵스, 클라우드 엔지니어, DBA 등의 여러 하나의 기술조직을 구성하는 직군들이 세분화 되었는데, 개인적으로 이런 과정을 거치면서 어떤 개발자는 뭘 알아야 한다, xxx 엔지니어, 개발자 로드맵 같은 문서들이 나오기 시작했다. 그런 문서들이 나쁘다는 것은 아니지만, 여러 개발자들에게 좋은 지침이 되고 있는것도 사실이다, 그러나 한편으로 아쉬운것은 정작 본인 스스로 그런것들을 왜 알아야 하는지? 혹은 어떤 이유로 그것을 섭취해야하는지 알고 있을까싶다. 취업이라는 경쟁에서 뒤쳐지지 않기 위해서 혹은 옆에 앉아 있는 동료보다 더 연봉을 많이 받기 위해서? 그게 나쁜것은 아니지만 좋은 방향이라는 관점에서 바라볼때 모르겠다.

다시 질문으로 돌아와서 소프트웨어 엔지니어는 무엇을 배워야 하는가? 라는 질문에 나 역시도 개인적인 대답은

[필요한] 모든것을 배워야 한다는 것이다.

그럼 [필요한] 이라는 것은 어떻게 정의할 수 있을까?가 후속 질문인데 나는 이렇게 3가지로 정의하고 싶다.

예전보다 배울 수 있는 매체가 많아졌고, 새로운 언어, 새로운 프레임워크를 배우는데 유투브, 블로그, 커뮤니티 그리고 인프런, udemy 같은 다양한 교육 사이트들이 널려 있다. 솔직히 지금은 누가 안알려줘서 못했다, 라는 건 조금 나약하고 게으른 소리라는 생각이 든다.(물론 실전의 영역은 다르다.) 나 스스로도 이런 노력을 하지 않으면 스스로에게 미안할 정도의 세상이다.

소프트웨어 엔지니어가 문제를 해결하는데 성역이 있을까?

우리는 닥치는대로 모든것을 알아야 한다.


#essay  #software-engineer