T 자형 말고 ㅠ 자형 인재가 되라
우리 개발자들은 기술 스택을 쌓을 때 T 자형 인재가 되어야 한다고 배웠을 것입니다.
T 자형 인재란 한가지를 깊게 판후에 관련 지식을 넓혀야 한다는 원리죠 (나는 한놈만 패)
하지만 저는 디지털노마드가 되기 위해서는
T 자형 말고 ㅠ 자형 인재가 되라고 말하고 싶습니다
이 U 자 말고 ㅠㅠ 이모티콘 표시할 때 사용하는 ㅠ 입니다
이 ㅠ 자는 T 처럼 아래로 너무 깊게 파지 않고 적당히 판후 옆으로 확장하는 형식입니다.
T 자는 한가지 기술만 팠다면 ㅠ 자는 최소 2개, 3개, 4개 등, 그 이상의 기술을 준비하는 유형이죠
(방금 내가 지음)
'경력은 최소 3년 이상이 필요하다'
웹이나 모바일 하나만 하실 경우 최소 3년 이상을 추천합니다
물론 프론트, 백앤드 모두 포함해서요
3년 정도 꾸준히 개발해 왔다면 프로젝트도 5,6개 정도는 했을 것이며
시중에 나와 있는 어떤 앱이든 만들수 있다는 자신감이 어느정도 있으실 겁니다.
만약 웹, 모바일 2개를 모두 했을 경우 5년 이상의 경력이 필요할 것 같습니다
사실 5년 안에 웹과 모바일을 모두 잘 하기는 쉽지 않습니다
'사이드 프로젝트로 영역을 넓혀라'
이렇게 웹과 모바일을 같이 할수 있는 회사가 많지 않으며
이 둘을 능숙하게 하려면 정말 열심이 공부해야 하기 때문입니다.
에이전시, 스타트업, 또는 개발자가 스스로 창업을 했다면 이런 경험을 할수 있을 가능성이 있겠네요
그렇지 않다면 사이드 프로젝트를 꾸준히 해서 공부하는 사람이 되어야 합니다
내가 창업해서 제품을 출시해야 한다면 초인적인 학습 능력이 생기는 경우도 있습니다
생존학습 이라고 해야 할까요? ㅋㅋ
'총을 많이 가지고 있어야 한다'
직장생활과 달리 노마드개발자 에게는 다양한 형태의 고객이 다가 옵니다
당장 크몽와, 숨고 같은 외주 플랫폼에서 일을 찾아 보려고 해도
내가 먼저 일을 차지할 수 있는 기회를 얻으려면 여러 기술이 준비 되어 있어야 하죠
하나의 기술만 가지고 있다면 그만큼 선택의 폭이 줄어 들게 됩니다.
여러 가지의 총을 내가 가지고 있으면서 연마하고 있어야 고객의 주문이 올때 재빠르게 쏠수 있습니다
탕~ (서부영화)
'인터프리터 언어를 준비하라'
노마드개발자가 맡는 업무는 대부분 소규모 프로젝트 입니다
그 이유는 앞서 말씀 드렸다시피 대기업, 관공서 업무는 원격으로 일이 나오지 않기 때문입니다
그리고 소규모 프로젝트는 작업 속도와의 싸움입니다
Java, C# 같은 언어는 생산성이 떨어지고 즉각적인 대응과 유지보수가 어렵습니다
IDE 를 필수적으로 사용해야 하고 로컬에서 작업하고 나서 다시 서버로 업로드 해야 하죠.
'Nodejs, Python, PHP 을 공부해야 함'
하지만 소규모 플젝은 FTP 로 바로 연결해서 코드를 작성하거나
유사시 서버로 바로 접속해서 터미널로 코드를 수정할 수도 있어야 합니다.
그래서 컴파일 과정이 없는 인터프리터 언어를 추천합니다.
그렇다면 인터프리터 언어는 어떤것들이 있을까요?
Nodejs, Python, PHP 정도가 될거 같네요
요즘은 ASP 는 거의 사용하지 않아서 제외 하겠습니다.
'모바일은 크로스플랫폼으로 준비하라'
모바일 개발은 다음과 같은 분류로 나뉘게 됩니다
안드로이드는 Java 나 Kotlin 으로 개발하고
IOS 는 Swift 로 개발을 합니다
그리고 안드로이드와 IOS 를 한꺼번에 개발할수 있는게 있는데
React Native(RN) 와 Flutter 이 있는데 이를 크로스플랫폼이라고 합니다.
'한방에 두마리 토끼를 잡자'
그럼 여기서 노마드개발자는 네이티브를 할것이냐, 크로스플랫폼을 할것이냐를 가지고 고민하게 되는데요
여러분꼐 질문을 드려 보겠습니다
소규모 시장에는 둘중 어느 것이 더 경쟁력이 있을가요?
맞습니다 크로스플랫폼입니다
네이티브는 인원도 2명이 필요하고 비용도 2배로 들어 갑니다
그리고 품질검수인 QA도 2배의 노력이 들어갑니다
그래서 소규모 앱이나 스타트업 앱은 크로스플랫폼을 사용하게 되는 것입니다
'Flutter 을 추천 함'
그러면 여기서 다시 고민을 할 것입니다.
RN 을 할 것이냐 Flutter 를 할것이냐 인데요
저는 개인적으로 플러터를 추천합니다.
구글이 전폭적으로 지원하는 플러터는 거의 네이티브 수준이 품질로 가고 있고
이미 개발 트랜드 비율에서도 RN 을 넘어 섰습니다
제가 실제로 플러터로 개발을 해보니 안드로이드 네이티브를 사용할 필요가 없을 정도로 퀄리티가 좋다고 판단되어 졌습니다
그리고 소규모 앱을 외주 받아서 개발하는 크몽 같은데를 보면 플러터 사용율이 꽤 높은 것을 알수 있습니다.
'웹과 모바일을 모두 준비하라'
과거에는 응용프로그램이 대부분 윈도우 프로그램 이었습니다
그래서 VB, 델파이, 파워빌더, C++ 개발자들이 잘 나갔었구요
그러다가 2000대로 넘어 오면서
인터넷의 시대가 되면서 대부분 응용프로그램들이 웹으로 변환 되었습니다
'갈수록 모바일이 확산될 것이다'
자, 그러면 앞으로는 어떻게 될까요?
저는 PC 의 사용율이 갈수록 줄어들고 모바일 또는 IOT 의 사용율이 많아 질것이라고 봅니다
구글과 플러터는 퓨시아라는 OS 를 개발하고 있으며 여기에 사용되는 언어와 플랫폼은 Dart , Flutter 를 사용합니다.
앞으로 모바일과 IOT 시대를 준비해 나가는 거겠지요
거기에 오라클사가 인수한 Java 의 라이센스 문제에서 패소한 것도 한몪 하고 있구요
'PC 사용은 줄어들고 모바일 사용이 늘어날 것이다'
요즘 젊은 세대들은 집에 PC가 없는 사람들도 많다고 합니다.
그래서 재미있는 일화가 있는데, 회사에 입사한 신입사원이 압축하는 방법을 몰라서
사수가 상당히 놀랬다는 이야기가 있습니다
기성세대 들은 PC로 파일을 압축해서 자료를 보내는게 일반적인 업무 였으니깐요
저 같은 경우도 외부에서 사용하는 장비로 노트북 대신 대형 태블릿을 구매하는 방안을 고민하고 있습니다
갤럭시탭 같은 경우 덱스모드를 사용하면 거의 노트북처럼 사용할 수 있으니까요.
'장비는 어떻게 셋팅하면 될까?'
다들 아시다 시피
백앤드 개발은 유닉스, 리눅스 개열이 주로 사용됩니다
즉 맥이 유리하다는 거죠.
그리고 모바일 개발도 안드로이드와 IOS 를 동시에 배포하려면 맥이 있어야 합니다
저는 윈도우 보다는 맥을 추천드립니다
물론 맥미니도 가능은 합니다
저 같은 경우는 맥미니를 집에서 사용하고 있고
밖으로 나갈때는 휴대용모니터를 연결해서 작업하고 있습니다
(사진)
기계식 키보드와 마우스를 따로 사용하기에 맥미니가 가성비가 좋았기 때문입니다
'맥북이 진리'
하지만 저같은 경우가 아니시라면 맥북을 사시는것을 추천드립니다.
메모리는 많을 수록 좋지만 최소 16G 이상 추천합니다
백앤드는 크게 상관이 없는데 모바일 개발할 때 애뮬레이터를 띄우려면 메모리가 많이 필요합니다
그리고 보조모니터가 있으면 작업 효율이 더 좋습니다
요즘 10~20만원 짜리 16인치 , QHD급 모니터가 저렴하게 나옵니다
하나 장만하시면 작업 효율이 높아질 것입니다.
'개인사업자 준비'
마지막으로 개인사업자에 대한 준비를 말씀드리려고 합니다
노마드개발자를 하려면 고객이 개인일 경우에는 상관이 없는데
업체일 경우는 3.3% 원천징수를 끊는 경우도 있지만, 부가세 처리를 요구하는 업체도 있습니다
향후 이런 경우를 대비해서는 개인사업자를 준비하시는 것이 좋습니다
'홈텍스와 친숙해 지세요'
개인사업자는 홈텍스에서 간단하게 만들수 있으며, 본인이 사는집의 부동산 계약서만 있으면 됩니다
1년에 2번 부가가세치 신고를 하는데 크게 어렵지 않습니다
그리고 5월달에 신고하는 종합소득세는 세무사에 맡기면 10~20만원 정도면 처리해 줍니다
잘하면 환급금도 받을 수 있구요
이상으로 디지털노마드 개발자가 되기 위해 어떤 것들을 준비해야 하는지 알아 봤습니다
이상입니다.
< 디지털노마드 강의 시리즈 >
-
원격 일을 구하는 3가지 방법
-
지금부터 인맥관리 하자
-
인터넷으로 외주일을 구할 때 마음자세
-
외주일에는 3가지 단가표가 있다
-
외주일 구할때 사기꾼, 양아치, 거지를 조심하라
-
외주일 사기 당하지 않는 방법 2가지
-
외주 거래처 실제 사례
-
팀으로 프로젝트 진행하기
-
그래픽 디자인을 어떻게 해결할 것인가?
네 감사합니다
앗~ 감사합니다
유튜브 댓글 보시면 저희 톡방도 운영중입니다
Vim 같은 걸로 코드수정하기에는 인터프리터 언어라도 힘든 점도 있고요
코드 수정하고 나서고 바로 적용되는게 아니고, JS면 번들링 파이썬이면 gunicorn 등 다시 재시작 해줘야하는 프로그램들 있을텐데 자바 씨썁 등의 프로젝트 리컴파일 대비 어떤 이점이 있을까요?
파일 하나만 간단하게 수정한다고 봤을때
일반적으로 자바는 class 로 컴파일해서 class 를 ftp 로 서버에 올려야 합니다
인터프리터는 터미널로 접속해서 바로 수정할수 있구요
컴파일 할게 따로 없으니까요
그래서 소규모 플젝을 외주로 할때는 컴파일 언어보다 인터프리터를 더 선호합니다.
소규모 프로젝트는 크기가 작고 복잡도가 낮다는 뜻이지 품질이 저열하다는 뜻이 아닙니다.
dokku(https://dokku.com) 같은 심플한 솔류션이 이미 준비되어 있습니다. docker 빌드, blue/green 테스트, 데이터 베이스 관리, ssl 인증서 관리(무료, let’s encrypt) 등. 사용하기도 쉽습니다.
소규모든 대규모든 ftp로 소스 코드 수정하지 마십시오. 그런식으로 일하고 도망가니, 개발자에 대한 인식이 나삐지는 것입니다.
""하지만 소규모 플젝은 FTP 로 바로 연결해서 코드를 작성하거나 "" -> " FTP로 연결해서 코드를 업로드 하거나"가 아닐까요? 일반적인 FTP 용도로 봤을때요.
editplus, vscode 등 ftp 또는 sftp 로 연결해서
업로드 과정 없이 실시간 코드 수정이 가능합니다