티스토리 뷰

최근 약 1~2년간 코로나19 확산으로 인한 IT 산업 (특히 O2O 산업) 의 폭발적인 성장에 따라 타 직군에서 개발자로 직무를 전환하는 케이스가 많아지고 있다. 정부에서도 국내 IT 경쟁력을 높이려고 국비교육이나 관련 업계 R&D 투자 등을 늘리고 있는 상황이다.

 

물론 정부 차원에서 업계에 많은 투자가 이루어지는 것은 환영할 일이지만, 모든 일에는 장단점이 있듯 너무나 많은 취준생과 주니어 개발자들이 시장에 쏟아져 들어오면서 가벼운 마음으로 업계에 발을 담구었다가 헤매는 개발자들이 많은 것 같다.

 

이 글에서는 이러한 '헤매는 개발자들' 이 말하는 대표적인 상황과, 그에 대한 어느정도 답변을 써보고자 한다. 물론 자세한 공부 방법은 사람마다 모두 천차만별이기 때문에, 참고만 하시기 바란다.

 


지방에 있어서 공부를 할 환경이 안 돼요

거주지가 서울이 아닌 경우 대부분의 이유로 언급된다. 이 경우 조금 더 자세히 말하자면 지방은 수도권에 비해 학원과 같은 교육 기관이 적고, 컨퍼런스, 밋업 등과 같은 개발자들을 위한 행사에 참여할 기회가 적다는 것을 의미한다. 물론 무슨 의도로 말한 것인지 이해가 간다. 당연히 지방보다는 서울권, 특히 강남권에 인구가 많으니 자연스레 교육 기관도 서울권이 많다. 행사들도 지방보다는 코엑스나 킨텍스와 같은 대형 컨퍼런스룸에서 많이 개최되는 것은 맞다.

그런데, 과연 오프라인 공간이 아니면 공부를 할 환경을 전혀 만들 수 없는 것일까? 필자가 생각하는 '환경'을 모두 서술해 보겠다.

 

첫째, 인터넷 강의. 생각보다 온라인에도 도움 되는 정보가 정말 많다. 유니콘으로 불리는 배달의민족 기술이사가 직접 촬영한 강의도 있고, 국내와 해외 대규모 기업에서 핵심적인 업무를 진행했던 분들께서 직접 촬영한 강의도 있다. 어쩌면 학원에서 3~6개월 동안 시간제 강사를 고용해서 진행하는 교육보다 더 나을 수 있다. (물론 학원에도 좋은 강사님들, 좋은 커리큘럼들도 많다. 하지만 학원에 몇백만 원 결제할 바에 인터넷 강의 몇십만 원 주고 듣는 게 효율적일 수도 있다는 얘기다.)

대표적인 플랫폼 몇 개를 소개한다.

 

둘째, 기술별 공식 문서, 블로그. 개발자들이 사용하는 기술들에는 각 기술별로 하나도 빠짐없이 모두 '공식 문서' 라는 것이 존재한다.

또한, 같은 고민을 하던 개발자들이 자신의 학습 과정을 담아 놓은 각종 블로그도 매우 많다. 이건 돈도 들지 않고, 노력만 하면 되는 아주 간단하고 좋은 공부 방법이다. 영어가 부담된다면 번역기를 사용하거나 영어 공부를 하면 된다.

(코드는 영어로 쓰는데 영어 공부를 하기 싫은 건 말이 안 된다.)

 

셋째, 유튜브. 우리에게는 유튜브라는 훌륭한 영상 플랫폼이 있다. 누구든 영상을 올리고, 누구든 영상을 볼 수 있다. (프리미엄 구독제 제외) 따라서 국내의 많은 개발자들도 영상을 많이 찍어 올리고 있고, 그건 당연히 마음껏 볼 수 있다. 당장 영어로 언어 이름만 쳐도 수많은 영상들이 나올 것이다. 최근에는 몇 시간동안 어떤 언어나 프레임워크에 대한 전반적인 설명을 해서 단기간에 최소한을 이해할 수 있게 해 주는 영상들도 많이 나온다. 필자가 보는 대표적인 채널 몇 개를 소개한다 (광고 아님)

 

인강을 살 돈이 없어요

사실 돈 문제는 뭐라고 할 수가 없다. 인강 들으라고 돈을 줄 수도 없고, 일바를 하라고 할 수도 없기 때문이다. 이때 주로 추천하는 것은 위에서 언급했던 공식 문서, 유튜브, 그리고 책이다. 물론 책도 돈으로 사는 거지만, 솔직히 2~3만원 쓴다고 끼니를 걸러야 하는 사람은... 많지 않을 거라 생각한다. 공식 문서와 유튜브는 위에서 설명했기에 건너뛰고, 책 위주로 설명하겠다.

 

IT 개발 서적은 주로 크게 두 가지로 나뉜다. 이론 책과 실습 책이다.

이론 책은 클린 코드, 클린 아키텍처와 같이 코드보다는 이론적인 내용에 대해 설명한다. 이런 책들은 실제 코드보다는 개발자가 어떻게 코드를 짜야 다른 사람이 유지보수를 할 수 있는 깨끗한 코드를 작성할 수 있는지, 어떤 구조가 미래의 코드 아키텍처 구조 확장에 용이한지, 어떻게 해야 스파게티 코드 (스파게티 면처럼 이리저리 꼬여 있는 코드의 형태) 를 피할 수 있는지 등의 이론적인 개념을 설명한다. 이러한 이론적인 개념은 초심자의 관점에서 볼 때 매우 어려울 수 있지만, 주니어에서 시니어 레벨로 넘어갈 때 반드시 알아야 하는 내용이므로 어느 정도 개발 업무에 친숙해진 상태에서 읽기를 권장한다.

 

실습 책은 이론적인 면보다 특정 언어, 특정 프레임워크와 같은 코드를 중심으로 설명한다. 언어의 경우 해당 언어로 무엇을 할 수 있는지, 개발 환경의 설치부터 기초 문법, 활용 문법 등을 소개한다. 프레임워크의 경우 해당 프레임워크의 기반이 되는 언어의 기본 지식이 있다는 가정 하에 프레임워크의 기초부터 어떻게 써야 프레임워크의 기능을 제대로 활용할 수 있는지 등을 소개한다. 초심자에게는 프레임워크보다 우선 언어 중점의 책부터 구매하여 언어의 기초적인 부분을 익히는 것을 추천한다.

물론 개발에 처음 입문하는 단계에서 따분한 언어만 따라 치고 있으면 재미 없지만, 항상 모든 것에는 기본기가 가장 중요하다는 것을 놓치면 안 된다. 건물도 무작정 지으면 안 되고 설계부터 체계적으로 해야 부실 공사가 되지 않는 것과 같은 원리다.

 

 

뭐부터 해야 할지 모르겠어요

이 심정, 아마 개발이 아니더라도 새로운 분야에 도전하면 가장 먼저 생기는 고민일 거다. 먼저 이 분야에 들어온 전문가들은 다 일 잘하고 있는데, 도대체 뭐부터 해야 한단 말인가.

 

여러 방법이 있겠지만 필자가 추천하는 가장 좋은 방법을 설명해 보겠다.

 

첫째, 내가 뭘 만들고 싶은지 정하는 거다. 평소에 내가 자주 사용하는 앱에 대해서도 생각해 보고, 방금 전에 내가 썼던 앱이 뭐였는지도 생각해 보자. 내가 실제로 사용하는 앱만큼 좋은 예시도 없다고 생각한다. 아! 물론, 내가 당장 카카오톡이나 배달의민족 같은 앱을 개발할 수는 없다. 그러면, 사소하지만 내가 매일 하는 행동에 관련된 것도 괜찮다. 일정 관리 앱이라던지, 단순한 메모 앱도 괜찮다. 연락처 관리 앱도 같은 맥락이다.

 

둘째, 작은 기능부터 공부해 보자. 내가 만들고 싶은 게 무엇인지를 정했으면, 기능별로 잘게 쪼개서 내가 구현할 수 있는 기능부터 만들어 보자. 메모 앱이라면, 정말 간단히 앱에 텍스트를 띄운다던가, 텍스트들로 구성된 리스트를 만들어 보자. 그 뒤엔 메모를 등록할 수 있는 페이지를 만들고, 디자인도 살짝 입혀 보자. 여기서 정말 간단히 앱에 텍스트를 띄우는 것도 못 하겠다면, 구글에 검색해 보자. "앱에 텍스트 띄우는 법" 이라고만 검색해도 수많은 결과가 나올 것이다.

 

셋째, 키워드를 알자. 처음 하는 입장에서 TextView, Button, Toast, EditText 라는 용어는 당연히 모른다. 그런데 위와 같이 검색 결과에 이러한 용어들이 수두룩하자. 이럴 때는 그냥 닫아 버리지 말고, 모르는 용어를 정리하고 그대로 다시 검색해 보자.

역시나 수많은 개발자들이 친절한 설명을 적어 놓았다. 이것들을 보고 그 키워드를 조금이라도 이해하면 좋다. 단, 코드와 속성까지 다 알 필요 없다. 키워드가 뭔지, 어디에 쓰는 건지 이해만 하면 된다. 마치 내가 '청소기'가 뭔지 몰랐다고 가정할 때 이게 코드 꽂고 레버 올리면 먼지를 자동으로 쓸어담는 기계라는 것만 알면 되지, 이 청소기는 몇 와트의 전력을 소비하고, 청소기가 어떤 원리로 자동으로 먼지를 끌어들이는지는 알지 못하는 것과 같다.

 

넷째, 내가 만드는 것에 적용하자. 위와 같이 검색을 통해 TextView 가 뭔지 알았다면, 이제 원래 하려던 '앱에 텍스트 띄우기' 를 할 수 있을 것이다. 그러면 우리는 벌써 TextView 가 뭔지 알았고, '안드로이드에서 화면에 텍스트를 띄우는 법' 을 알았다. 다음 목표인 리스트 만들기, 등록 화면 만들기에 대한 작업도 이와 같이 하면 된다.

 

물론, 이게 무조건 100% 맞는 방법은 아니다. 누구는 인강을 통해 정해진 커리큘럼대로 하는 것을 좋아하고, 누구는 책처럼 잘 정리된 문서를 보고 밑줄을 치면서 따라하는 것을 좋아하고, 누구는 옆에 전문가가 붙어서 하나하나 알려주는 것을 좋아한다. 이것은 단지 필자가 개발 시작에 어려움을 겪는 독자들께 추천하는 방법일 뿐이다.

 

 

개발자로써 오래 할 수 있을지 확신이 안 들어요

사실 이 고민은 개발을 처음 접하는 사람들 뿐만 아니라 고연차의 경력자도 자주 하는 고민들 중 하나다. 개발자가 아니라 그냥 모든 직업이, 내가 언제 어떻게 그만둘지 아무도 모른다. 필자도 마찬가지다.

 

하지만 내가 이런 고민이 들 때마다 생각하는 게 바로 '몰입' 이다. 내가 무언가를 진심으로 하고 싶고 좋아하면 그 일에 몰입을 하게 된다. 여기서 몰입이란 단순히 집중하는 것이 아니라, 내가 풀고 싶은 문제 (예를 들면 위에서 언급했던 텍스트 보여주기) 가 잘 풀리지 않더라도 끝까지 풀어내고자 하는 의지가 기본적으로 있으며, 시간 가는 줄 모르고 수십 번 시도해서 마침내 이루어내는 것을 의미한다. 실제로 이런 과정을 겪으면 내가 이 문제를 해결하는 데에 맞닥뜨렸던 여러 상황들과, 그 상황들에 내가 어떻게 대처했는지 생각해 보며 내 자신 스스로 만족감과 보람을 느낄 수도 있다.

 

몰입이 도움이 안 된다면, 프로젝트 하나를 끝까지 끝내고 실제로 시장에 출시해 보는 것도 아주 좋은 방법이다. 이 방법은 초심자에게는 조금 부담이 될 수 있어서, 어느 정도 코딩에 적응이 된 상태로 진행하는 것을 추천한다. 내가 진행하고 싶은 프로젝트를 결정하고, 기획부터 설계, 개발, 구현, 테스트, 배포, 유지보수, 오류수정 등을 하며 내가 만든 제품을 내가 직접 사용해 보고, 가능하다면 스토어에 출시하여 다른 사용자들이 사용하는 것을 볼 수도 있다. 대부분의 개발자들은 내가 만든 제품을 많은 사람들이 사용할 때 뿌듯함을 느낀다고 하니, 이 점도 참고하면 좋을 것 같다.

 

 

팁: 검색을 잘 하는 연습을 하자

위에서 구글 검색에 대해 잠깐 언급했던 것처럼, 어쩌면 개발자의 능력은 검색 실력으로 어느정도 판별된다고 해도 과언이 아닐 정도로 검색 능력은 굉장히 중요하다. 내가 어떤 애매한 오류에 처했다거나, 내가 어떤 기능을 구현하고 싶을 때 어떤 기술을 활용하면 좋을지에 대한 모든 해결책이 구글에 있다고 확신한다. 내가 선생님에게 어떤 문제에 대해 해결 방법을 요구하듯, 구글에 문제를 잘 검색하면 문제에 대한 해결책이 웬만하면 있다고 보면 된다. 어쩌면 책이나 인강 등에 나오지 않았을 법한 내용도 있을 것이다.

 

 

이렇게 해서 개발자라는 직업에 종사하거나 이제 막 개발자를 직업을 선택하려는 초심자에게 개발자라는 직업에 대해 어떻게 접근하면 되는지 썰을 풀어 보았다. 필자의 부족한 글이 조금이나마 도움이 되었으면 하는 마음으로 글을 마친다.

'생각정리' 카테고리의 다른 글

2022년 회고 [기술 편]  (1) 2022.12.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함