저는 개발자입니다.
3대의 다양한 성능과 다양한 OS를 갖는 노트북을 쓰고 있습니다.
이 글은 가장 성능이 낮은 리눅스 노트북에서 쓰고 있지요. 성능은 가장 낮으나 무게는 가장 가벼워 들고 다니기 좋네요. 이 리눅스 노트북은 L사에서 만든 980Gram 짜리 노트북 중에 가장 싼 제품입니다. 아직도 이 노트북으로 파이선 노드 리액트 등등을 개발하기도 합니다. 한번에 한가지 일을 하는 경우라면 성능에도 큰 문제를 일으키지 않고 있습니다.
두번째는 A사에서 만든 망막 디스플레이를 갖는 노트북입니다.
마지막은 중국 회사 제품 게임용 노트북입니다. Window 가 깔려있습니다. 성능면에서는 가장 훌륭하다고 볼 수 있지만 투박한 디자인에 끌리지 않은 구석에 처박혀 있었습니다.
Window 는 전통적으로 개발용이 아닌 것으로 인식되어 왔습니다. 그 이유는 윈도우가 안멋지고 성능이 떨어져서가 아니라
- 서비스 개발에서 리눅스를 서버로 쓰는 경우가 많으며,
- 리눅스/유닉스와 디렉토리 구조가 다르고, 쉘 인터페이스가 다르며,
- 서버가 리눅스인데 개발을 윈도우에서 하면, 서로 환경이 맞지 않으며,
- OS 의 리소스를 많이 차지함 (디스크 값이 많이 싸졌다고 하지만.... )
이러한 이유로
- 개발 도구가 맥 -> 리눅스 -> 윈도우 이런 순으로 업데이트가 되고,
- Stack overflow 나 구글링으로 검색할 때, 맥/리눅스 플랫폼은 답변이 많지만, 윈도우는 답변이 적음
등등의 개발자의 외면이 발생하였기 때문입니다.
그래서 개발자는 OS 를 탓하지 말아야 한다고 하지만, 왠지 Window 에서 개발하면 느리고 이상하고 변태짓을 하는 것과 같은 눈총을 받기도 하였습니다.
사실 외국 개발 컨퍼런스에 가면 대부분의 맥,리눅스를 씁니다. 윈도우를 들고 다니는 개발자를 만나면 한번 다시 쳐다 보게 됩니다. :)
어쩌다 보니 Unreal 을 돌려야 하는 상황이 와서 Window 10 을 설치하고 개발 환경 설치를 해야했습니다.
개발 환경 설치라는 것은 Python, Node, DB 등 설치하는 것을 의미합니다.
윈도우에서 Python, Node, MongoDB 등을 설치해본적은 거의 없지만, 생각만 해도 불편합니다.
- 설치를 위해서 exe, msi 등을 다운 받아야 하고,
- 설치 후 구성(config) 를 해야 하는 경우, 폴더 위치가 리눅스/맥 과 달라 애를 먹고,
- 쉘에 들어가서 배치 작업을 하거나 명렁을 직접 입력하는 것이 불편해서 짜증이 밀려옵니다.
예전 같았으면, 윈도우 버전의 python, node 등을 설치했었겠지만, Window 10 에서 MS 가 WSL 이라는 것을 들고 왔습니다.
WSL 은 Window Subsystem for Linux 의 약자로 MS 가 개발자를 꼬시기 위해서 만든 기능입니다.
"우리도 이제 리눅스 쉘을 지원해, 그러니 와서 써줘"
"맥 유저야 맥 비싸지? 이제 윈도우에서도 똑같은 파일 시스템에 쉘을 지원하니까 이리와"
"오픈소스 개발자야 윈도우에서도 이제 그냥 개발 할 수 있어"
맥/리눅스와 윈도우의 가장 큰 차이점인 파일 시스템과 쉘의 한계를 극복해버립니다.
동일한 환경 동일한 경로에 모든게 다 있으니, 이제 리눅스다 생각하고 쓰라는 이야기입니다.
이제 개발 환경을 갖추기가 쉬워졌어요.
전통적인 개발 방식으로 Shell 을 열고
$ apt-get install python
$ apt-get install node
등을 할 수 있는 거죠.... Wow Window 화이팅~~~~
WSL 을 쓰려면 정품인증을 받아야 하는데, Window 10 라이센스를 5불 (한화로 5천원) 정도의 가격에 구매하는 방법이 있습니다. (회사에서는 이 방법을 쓰면 안될 것 같고, 집에서 개인이 라인센스를 쓰려면 참고하세요)
WSL 단점을 알아볼까요?
- Native ext4 파일 시스템은 아니며, NTFS 의 어떤 폴더를 가상 / 로 사용합니다.
- 속도면에서 약간의 손해가 있습니다. (Native LInux 보다 느립니다)
- WSL은 독립된 시스템입니다. 상호간에 접근이 가능하지만 다소간 불편합니다.
혹씨나 #kr-dev 에서 윈도우용 파이선, 노드 등으로 괴로움을 겪는 분은
WSL 안에서 개발하는 것이 좀 더 좋은 방법이 될 수 있을 것입니다.