새로운 기술을 습득할 때의 우선 순위?

Dahun Yoo·2024년 2월 26일
0

Lessons learned

목록 보기
12/16

많은 IT업계 직무 종사자들이 새로운 기술들을 많이들 접하고, 학습합니다. 이것은 개발자뿐만 아니라 개발과정에 관련되어있는 기획자, 디자이너들도 마찬가지이며 심지어 QA엔지니어도 동일합니다.

그 중에는 항상 최신의 기술이 좋다고 하며 최신의 기술만 쫓아다니는 사람들도 있습니다. 이것이 과연 꼭 Best일까요? IT업계는 최신 기술에 대해서도 꾸준히 follow-up을 해야겠지만, 맹목적으로 최신의 기술만 사용한다거나 하는 것도 팀에게도, 개인에게도 좋진 않습니다.

기술을 습득할 때에, 제가 생각하는, 기술 습득에 대한 우선 순위를 기재해봅니다.


기술 습득 시의 우선 순위

여기서 기술 이란, 개발 언어를 포함하여 각종 프레임워크, 라이브러리, 프로그램 등과 같은 것들에 대한, 포괄적인 의미입니다. 이러한 기술은 회사마다, 비즈니스 도메인마다, 팀 마다 다르기 마련입니다.

그렇다면 이제 막 커리어를 쌓아올려가는 과정의 사람은, 기술 습득을 어떻게 해나가야할까요?

0. 모든 기술 / 업무 형태에 밑바탕이 되는 기본 지식

모든 기술 혹은 본인의 직무에서 가장 밑바탕이 되는 기본지식을 우선적으로 습득해 놓아야할 필요가 있습니다.

개발 직군의 재직자라면 이것은 CS 기초(알고리즘, 데이터베이스, 자료구조 등)이 될 것 입니다. 품질 직군의 재직자라면 CS를 포함하여, 거기에 소프트웨어 테스팅 기술들이 필요할 것 입니다.

굳이 따진다면 ISTQB FL수준의 지식이라던지, 혹은 ISO 규정집들이 이에 해당할 것 입니다.

이 지식들은 어떤 도구/기술을 사용하던지 간에 그 근간부터 알고 있어야할 이론들 입니다.

1. 당장 지금 재직중인 회사에서 사용하는 기술들

이론들을 어느정도 알고 있다면, 지금 당장 배워야할 기술들은 당연하게도 현재 재직중인 회사에서 사용하는 기술 들입니다. 왜냐하면 당장 해당 기술들을 이용해서 밀려들어오는 업무들을 쳐내며 일을 해야하기 때문입니다.

간혹, 회사에서 사용하는 기술들이 현재 많이 사용되는 기술들에 비해 매우 예전의 기술/프레임워크들이라 불만을 가질 수도 있습니다. 회사에서 그러한 기술들을 고수하고 있는 것은 그 나름대로 이유가 있을 것입니다.

예전 기술들에서도 다시 나뉘어질 수 있는데, 가장 베스트인 경우는 예전에는 업계 주류로 글로벌하게 쓰이던 기술이 시간이 지남에 따라 레거시가 쌓여가고, 새로운 기술로 마이그레이션하기 어려운 상황인 경우입니다.

이 경우에는 이전에 업계 주류료 사용되었던 기술들이던 만큼, 새로운 기술/프레임워크/라이브러리를 사용할 때에는 해당 기술의 문제점들을 획기적으로 개선한 것들일 가능성이 높습니다. 즉 핵심적인 기능/부분은 비슷할 가능성이 있다는 것 입니다. 이러한 경우에는 조금 과거의 기술이긴 하지만 충분히 해당 기술/프레임워크/라이브러리 에 대해 파고들어가며 공부를 해볼 가치가 있다고 생각합니다.

그러나 위와 같지 않은 경우, 여러 이해관계로 인해서 구린 기술을 아직까지도 쓸 수 밖에 없는 경우에는 그냥 업무를 소화해낼만큼만 지식을 습득하시는게 좋습니다.

2. 업계에서 널리 쓰이는, 표준 이라고 불릴만한 기술들

그 다음으로는 업계에서 널리 쓰이는, 표준 이라고 불릴만한 기술들을 습득하는 것이 좋습니다.
가장 좋은 것은 업계에서 널리 쓰이는 기술을 현재 재직중인 회사에서도 사용하고 있는 것이 가장 좋은 것이긴합니다.

업계에서 널리 쓰이고 있는 기술을 습득한다는 것은, 어느정도 이직 시장에서도 경쟁력을 갖춘다는 의미이기도 하고, 가장 널리쓰이는 기술을 이기 때문에 이직하고자하는 기회도 많이 있다고 판단할 수 있습니다.

어떤 기술이 업계에서 널리 쓰이는지 알기 위해서는 조사가 필요합니다. 이 때는 여러 회사들의 동일 직무의 JD를 확인하시고 어떤 기술들이 사용되는지 파악해보세요. 또는 링크드인이나, 구직 사이트 내의 커뮤니티에서 검색 혹은 직접 질문을 해보시는 것도 하나의 방법입니다.

중요한 것은 업계에서 널리 쓰이는 기술들에 대해 지속적으로 follow-up하면서, 기술의 경향이 어떻게 흘러가는지 파악하는 것입니다. 업계에서 널리 쓰인다고 해서 영원히 사용되리란 법은 없습니다. 언젠가는 더 좋은 다른 기술로 대체될 수도 있기 때문에, 한 번 습득했다고 해서 관심을 안가져도 되는 것이 아니라 꾸준히 업계 동향에 대해 파악해야할 필요가 있습니다.

3. 최신 기술들

그 다음으로 최신 기술들을 학습해도 늦지 않습니다. 이미 회사에서 사용하고 있는 기술과, 업계에서 널리 쓰이는 표준으로 불릴만한 기술을 알고 있는 상태라면, 남는 시간에 적절한 호기심을 가지고 최신 기술들을 학습하기 시작하세요. 최신 기술들을 알고 있다면 업계의 흐름이 바뀌기 시작할 때에 본인의 경쟁력이 될 수 있을 것 입니다.

단, 여기서도 문제가 있습니다. 무조건 최신의 기술이라고 해서 그것이 곧 추후에 업계 표준이 된다는 보장은 없습니다. 최신 기술들 중에서도 골라서, 가려서 학습을 해야합니다. 그것에 대한 기준에 대해 저는 아래와 같이 생각합니다.

믿을만한 대기업 혹은 재단의 주도로 진행되는 기술인 경우

우리가 쉽게 들을 수 있는 빅테크 기업 혹은 대형 재단의 주도로 진행되는 기술인 경우, 쉽게 사라지지 않을 프로젝트들일 것입니다. 이 경우에는 API들에 대한 문서들도 충실히 작성될 확률도 매우 높습니다.

이러한 프로젝트들에 대해 눈여겨봐야합니다.

커뮤니티의 크기

최신 기술들의 경우에는 당연하게도 커뮤니티의 크기가 작을 수 밖에 없습니다. 그러나 프로젝트를 진행하고 있는 주도자들의 의지에 따라 해당 커뮤니티의 성장 속도가 눈에 띄는 기술이 있고 그렇지 않은 기술이 있습니다.

눈에 띄게 빠른 속도로 성장하는 (글이 자주 올라오고 답변도 자주 달리는) 그런 커뮤니티를 가진 기술들을 체크해야합니다.

레포지토리의 스타 갯수

이것은 해당 기술이 오픈소스일 경우에 해당되는데, 레포지토리의 스타 갯수가 많으면 많을 수록, 많은 사람들의 관심을 받고 있는 프로젝트일 확률이 높습니다. 따라서 이 경우에 꾸준히 해당 프로젝트의 커뮤니티나 기술 업데이트 상황들을 follow-up 하며 동향을 체크해야할 필요가 있습니다.

습득 난이도 (Learning curve)

최신 기술들 중에서도 배우기 쉬운 기술이 있고, 배우기 어려운 기술들이 있습니다. 향후 본인의 커리어/직무에서 사용할 가능성이 높은 기술들 중에, 상대적으로 습득하기 쉬운 기술이 있다면 우선적으로 학습하는 것을 고려해보세요.


혼자서 기술습득이 어려운 경우

기술 습득의 필요성은 알고 있지만 개인이 만들 수 있는 포트폴리오 크기는 어느정도 정해져있습니다. 이 경우에는 따라서 좀 규모있는 경우에서 신규 기술을 사용해보고 싶은 경우가 있을 수 있습니다.

  • 팀 내에서 스터디를 기획하고 회사 프로덕트에 대해 신규 기술로 특정 기능 구현을 스터디식으로 다른 팀원들과 도입해보는 것을 검토해보세요.
  • 혹은 신규 프로젝트의 중요성을 판단하고, 팀원들과 논의하여 신규 기술의 도입에 대해서 검토해보세요.

지원하는 포지션에서의 사용되는 기술들

위 내용과는 별개로, 구직 시에 본인이 지원하는 포지션에서 사용되는 기술들에 대해서 인지하는 것도 중요합니다. 왜냐하면 당장 회사에 가서 사용해야할 기술이 한 번도 사용해본적이 없는 기술이라면 업무 상 문제가 될 수도 있기 때문입니다.

신생 팀이라면 신규 기술들을 도입해서 업무를 시작해야하기 때문에 업무 진행 시의 기술 습득 수준에 대해 크게 문제는 안될 수도 있습니다만, 그렇지 않은 경우라면 문제가 될 수 있을 것입니다.

이 경우에는 면접 때 면접관에게 사용하는 기술들에 대해 충분히 질문을 할 수 있어야합니다.
특히 업계 표준이 아니면서 최신기술을 사용하는 팀에 대해서는 왜 해당 기술을 택하였는지, 팀 내에 해당 기술에 대한 전문가(Expert) 혹은 업무 리딩이 가능한 인원이 존재하는지를 확인하여 업무 시에 쉽게 도움받을 수 있는지도 확인해야합니다.

끝 !

profile
QA Engineer

0개의 댓글