본문 바로가기
[Review]/Book

[도서 리뷰] 처음 만나는 WSL

by 해피빈이 2022. 3. 28.

> 진행에 앞서

한.. 10년전에는 윈도우가 대세였다. 윈도우는 한 때 '치명적 오류 = 블루스크린'이라는 말을 만들 정도로 오명을 뒤집어 썼던 그런 OS이지만, 윈도우7을 기점으로 새롭게 탈바꿈하여 많은 안정성을 가져왔고, UX에서도 사람들에게 자연스러움을 최대한 심겨주었고, 보는 즐거움마저 안겨준 UI를 보여주기도 하였다.

그러한 윈도우7의 발전이 꽤나 익숙해질 무렵, macOS는 다시 재정비를 하여 OSX의 버전업을 하면서 우리에게 다가왔고, 지금은 개인 사용자들에게(특히 개발자나 크리에이터를 중심으로) 윈도우보다도 macOS를 선호하도록 만들었다.

나 역시도 OSX를 2010년 초반에 좀 사용하다가 아직은 굳이 편리하다고 느끼지는 못하여 윈도우 위주로 사용하였고, 그 사이에 리눅스도 많이 익숙하도록 노력하면서 최대한 나의 직업을 잘 활용하는 방향으로 학습해 왔었다. 그러다가 다시 2018년 이후부터는 macOS를 점차 활용하기 시작하였고, bash 쉘(zsh로 바뀌긴 했지만) 등의 활용으로 macOS가 이제는 개발자의 측면에서는 편하다고 느끼고 있는 것이 사실이다.

 

그러던 중 윈도우도 윈도우10을 지나, 윈도우11을 내고 꾸준히 발전하고 있었는데, 그 사이에 포함되어 있었던 WSL의 존재를 신기하나 대수롭게 여기지 않았기 때문일까. 잊고있던 것이 생각났다. 이 책을 보면서 WSL(Windows Subsystem for Linux)은 얼마나 발전되었으며, 이것은 어떻게 활용이 가능할까 궁금해하며 이 책을 열어보기 시작하였다.

 

> 책에 대한 간단한 정보

앞표지. 리눅스를 상징하는 펭귄이다.

이 책은 WSL의 전반에 대해 간략하게 기록된 책이다. 이 책을 보았다 하여 WSL의 모든 것을 알 수는 없다고 생각할 만큼 책이 두껍지도 않다. 하지만 단순 bash쉘을 넘어서서 윈도우 내에 포함된 리눅스 시스템이 얼마나 활용가치가 있는지, 그리고 상호 운영체제간 연동성을 위해 알아야 하는 필요성이 있다면 그런 필요를 채워주는 내용으로 기록되어 있다.

머릿말에 보면 역자는 한국 WSL 사용자 그룹에 속해있고 운영중이다. 그래서 필요시 한국 WSL 사용자 그룹에도 방문하여 도움을 얻었으면 좋겠다고 말하고 있다.(wslhub.com)

 

이 책에 수록된 내용을 알려주는 뒷표지

리눅스하면 생각나는 검정색 터미널 화면과 펭귄을 내세운 디자인이기에 바로 이해가 되었다.

윈도우를 사용하지만 리눅스에 관심이 있는 개인사용자라면 WSL에 대한 정보를 쉽게 접할 수 있도록 책이 얇게 나온 것도 특징이다.

 

 

> 인상깊은 부분들

마운트에 대한 부분.

WSL의 전반적인 구조를 알 수 있었기 때문에 좋았던 부분은 뒤에서 다시 언급할 것이지만, 그 중 파일시스템에 대해서 언급한 내용은 꽤 인상적이었다. 사실 실생활에서 서로 다른 OS간에 난관을 겪기 쉬운 부분이 바로 파일시스템이기 때문이다. OS가 다르면 서로 인식되는 파일시스템도 다르기 때문에 불러올 수 없는 경우도 많다. 대표적으로 Mac의 OSX시절 NTFS 파일을 불러오기 위해 별도의 유틸을 설치했던 경험이 있었으며, 리눅스에서도 ext부터 ext4까지 공부하지 않으면 알 수 없는 시스템으로 난관을 겪기 일쑤이기 때문이다. (ext4에 대해 궁금하다면 아래를 참고)

https://blog.soobinpark.com/142

 

ext 파일시스템에 대한 정리(ext4까지)

리눅스에서는 ext포맷을 사용한다. 시스템 파티션에서는 당연히 ext 포맷은 필수이지만, ext 포맷의 장점을 제대로 알아야 추가로 사용하는 파티션에도 FAT나 NTFS, HTFS가 아닌 ext 파티션을 적용할

blog.soobinpark.com

여기에서는 drvfs파일시스템으로 마운트되어서 WSL 내에서 활용이 가능함을 알려주고 있으며, 이것은 NTFS와 ReFS만 지원한다고 말하고 있다. 사실 윈도우10 이상을 활용하는 사용자라면 더이상 FAT32를 사용하지는 않을 것이기에 이정도면 충분해 보이며, NTFS정도만 되어도 서로 호환이 완벽하게 된다고 생각되기 때문이다. 물론 이 책에 구체적으로 더 실린 부분인 파일의 대소문자를 다루는 문제에 있어서는 몇가지 설정이 더 필요하기는 하지만(리눅스는 대소문자 별도 구성이 가능하므로) 기본적으로 c와 d 드라이브 등 윈도우에서 기본적으로 사용하는 드라이브를 자동으로 마운트되어 사용할 수 있게 한다는 점을 다룬다.

 

WSL1과 WSL2와의 차이를 말하며

WSL의 아키텍쳐에 대해 말하는 부분과 함께 나온 부분이다. WSL1과 WSL2의 차이도 함께 말하고 있는데, WSL1에서는 과도기적인 느낌을 주고 있다고 생각을 주는 부분이 이러한 부분인데(NTFS를 사용하여 윈도우 드라이브에 확장 속성을 주어 저장) WSL2에서는 별도의 OS에 가깝도록 모든 리눅스상의 파일들이 ext4 파일시스템을 사용하는 하드웨어 디스크(VHD)에 저장됨을 말하고 있다. 이 밖에도 9P서버 등 사용자 모드와 커널 모드 사이에서 작동하는 원리가 궁금하면 이 책을 읽는 것이 큰 도움이 될 것이라고 생각된다.

 

몇 가지 실습 중 하나

이 책의 실습을 한 내용 중 하나인데, 환경변수에 대한 내용이다. 리눅스에서 환경변수 설정을 했을 때 윈도우에서 그것을 활용하도록 하는 방법이다. 물론 그 반대도 가능하다. 또한 윈도우에서 리눅스의 프로그램을 접근하는 방법과, 서로간의 git ssh key를 공유해서 사용하는 방법 등, 윈도우에서 쉘을 실행하지 못해서 한계가 있었다면 그 한계를 당당하게 넘어서 사용할 수 있도록 그 벽을 무너뜨리도록 한다.

 

VSCODE로 활용할 수도 있다.

심지어는 터미널 혹은 커맨드창에서만 활용하는 것이 아니라 vscode(Visual Studio Code)에서도 활용이 가능하다. 이것은 파이썬을 WSL에 연결하여 활용한 것을 보여주고 있다. 빌드 및 디버깅까지 가능하게 함으로써, 얼마든지 로컬 환경에서 비주얼인 툴로도 활용이 어렵지 않다는 것을 보여준다. 비주얼 스튜디오 코드는 언어 및 프레임워크의 장벽을 넘어서서 어디든 활용이 폭 넓게 가능하기에 좋은 예시라고 생각되며, 특히나 vscode는 마이크로소프트가 개발하는 툴이기에 더욱 호환성이 좋지 않았을까 하는 생각도 들었다. 안드로이드 개발자인 나 스스로도 vscode로 한다면 윈도우에서 쉘스크립트로 이루어진 빌드를 아무 거리낌없이 할 수 있지 않을까 하는 생각이 들어서 조만간 시도해야겠다는 생각이 들었다.

 

 

> 괜찮은 부분

1. 생소하다 느낄 수 있는 WSL에 대해서 다루는 책이다.

WSL에 대한 책은 찾기가 어렵다.(네이버에서 'WSL 책'이라고 당장 검색해보라) 그래서 매우 드문 책이다. 그렇다고 가치가 없는 것이 아니다. 이미 나온지 수년이 된 구성요소로서 윈도우 사용자에게는 가뭄의 단비같은 책이 될 것이다. 윈도우에서 쉘 스크립트 활용이 어렵기에 리눅스나 맥으로 넘어간 개발자가 이미 많을 것이라고 생각이 들지만, 그래도 여러 이유로 여전히 윈도우를 활용하는 편이 낫다고 생각하는 개발자들에게 필요한 지식이기에 이 책은 귀한 책이라는 생각이다.

 

2. WSL의 아키텍처까지 상세히 다뤘다.

WSL2의 아키텍처를 포함하여 실행 흐름을 그림과 함께 상세히 다루었다. 그래서 이해하는 데 큰 도움이 되었다. 특히 WSL1과 WSL2와의 차이점에 많은 지면을 할애하였기 때문에 비교하며 발전사항을 알 수 있었다. 단순 활용방법에만 집중하여도 이미 실제적인 활용에는 문제 없는 수준이었겠지만, 본인을 비롯하여 구조와 원리를 궁금해하는 사람에게는 이러한 부분이 필요하다. 너무 깊게 다루지는 않았기 때문에 난이도가 그렇게 높게 느껴지지 않았다는 것은 또 하나의 장점이라고 볼 수 있다.

 

3. 윈도우와 상호작용하는 부분을 많이 다루어서 흥미로웠다.

윈도우와 통합되어 상호작용이 많은 WSL이기 때문에, 이러한 주제로 흥미를 유발하였다고 생각한다. 특히 탐색기에서 WSL을 네트워크 드라이브 연결하듯이 파일 접근이 가능하다는 점을 처음 알게 되었다. 이 밖에도 git의 서명키를 공유하는 부분이나, XRDP로 데스크탑모드로 접근하도록 하는 부분, 도커 활용과 비주얼 스튜디오를 통한 코딩 등 많은 부분이 도움이 된다는 것을 알려주고 있다. 단순히 윈도우내에 리눅스 체험하도록 한 것이겠거니 생각했다면 오산이다. 이 부분으로 WSL에 충분히 매력을 느끼도록 했다고 생각한다.

 

> 아쉬운 부분

1. 윈도우11에 대해 반영되지 않았다.

발행된지 한달이 안된 책이다. 이미 윈도우11은 작년부터 공개가 되어 있었으며, 이에 몇개의 가이드는 UI가 달라 조금은 당황한 부분도 있었던 것이 사실이다. 그래도 대충 이해할 수 있는 정도의 수준을 지닌 사람이 이 책을 볼 것이기 때문에 큰 문제라고 생각되지는 않으나 윈도우11의 사용자가 따라하기에는 아무래도 자의로 해석해야 하는 부분들이 있었기에 아쉬웠다.

 

2. 일부 최신화 및 상세설명이 필요한 부분이 존재하였다.

앞의 부분과 비슷한 부분일 수 있으나 윈도우 스토어에 대해서도 UI가 달라진 부분들에 대한 반영 뿐 아니라, 우분투에 대해서도 이 책에서는 18.04를 기준으로 진행하였지만, 20.04가 이미 LTS로 나온지 2년이 지나 얼마 후면 22.04가 나올 수도 있는 시기이기 때문에 굳이 18.04로 진행했어야 하는가 라는 생각을 갖기는 하였다. 또한 xrdp를 따라 진행하는 부분에서도 너무 설명이 간단하였는데, 생각보다 실행이 쉽지 않아서 구글에서 추가검색을 필요로 하였기 때문에 아쉬운 부분이었다.

 

3. 명령줄 실행 관련 오타가 종종 발견되었다.

실습을 진행할 때 명령줄 실행에 대한 부분(직접 발견한 부분은 74, 76, 141페이지)이 있었는데, 이러한 부분들로 오류를 경험하게 되었다. 결국 이런것들로 인해 신뢰도가 떨어져서 명령줄을 입력하는 부분마다 해당 명령어가 맞는지 다시 한번 확인 후 입력을 하게 되어 시간이 추가로 소요되었으며, 책이 갖는 의미가 부분적으로나마 퇴색된다고 생각도 들었다.

 

> 추천 독자

- 윈도우를 사용하고 있는 개발자

- 리눅스나 쉘스크립트 활용을 필요로 하는 개발자

- 듀얼부팅이나 2개의 머신으로 리눅스를 활용하고 있는 일반인

- 팀에서 리눅스, 맥, 윈도우 섞여서 사용하고 있는데, 공통 스크립트로 쉘 스크립트를 사용하려고 하는 팀장(또는 팀원)

 

> 개인적인 평점

- 가격: 9 / 10

- 내용: 8 / 10

- 디자인: 8 / 10

- 구성: 9 / 10

 

> 정보

저자: 프래틱 싱

옮긴이: 남정현

출판사: 한빛미디어

가격: 20,000원

전체 페이지: 188페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형

댓글