솔루션 엔지니어로 일을 시작하면 좋든 싫든 리눅스를 다루게 된다. 서버 os로 리눅스가 인기가 좋기 때문인데 오픈 소스 배포판도 많은데다가 성능, 호환, 안전성 뭐하나 윈도우보다 빠지는 게 없기 때문에 자주 볼 수밖에 없다.
만약 그전까지 평생 만져본 OS라고는 윈도우 밖에 없었다면 처음엔 CLI 로 컴퓨터를 다루는 게 어색하고 폴더 이동하고 파일 편집하는 것조차 겁이나서 마치 독수리 타법을 치듯 조심스럽게 다루게 될텐데 cd, ls, pwd, vi 정도 명령어만 익숙해져도 디렉터리 이동하고 편집하는 수준까지는 어렵지 않게 할 수 있게 된다.
그러다보면 디렉터리 이동이 손에 익으면서 나도 모르게 cd 와 pwd ls 를 빠른 속도로 연타하며 원하는 경로를 자유자재로 찾아가는 순간을 만나게 되는데 마치 피아노를 치는듯한 경쾌한 키보드 소리의 리듬을 듣고 있다보면 스스로 도취되기도 한다. “어? 나 리눅스 좀 하는 듯?”
그러나 실상은 좀 하긴 개뿔 리눅스에 대해 1% 나 이해하고 있어도 다행인 수준이다. 당장 리소스 현황을 제대로 보고 이해할 줄 아나 간단한 쉘 스크립트를 짤 줄 아나 하면 이거 못하는 사람이 대부분이고 심지어 리눅스의 파일 소유, 권한 개념 조차 머리에 안 박혀 있는 사람, 패키지 설치할 때 repo 개념을 제대로 모르는 사람도 흔하다고 본다.
남 욕하자고 쓰는 글은 아니고 결국은 내 얘기가 될 수 있는 거다. 2년 넘게 엔지니어로 일하면서 느낀 게 뭐냐면 어느 정도 수준부터는 일하면서 자연스럽게 실력이 늘어나는 게 아니라 의식적으로 노력을 해야 성장할 수 있다는 것이다.
이건 리눅스도 마찬가지인데 사실 따로 배우려고 노력하지 않아도 선배들 하는 거 곁눈질로 보고 어쩔 수 없이 무조건 해야하는 작업 정도는 살기 위해선 배울 수밖에 없기 때문에 6개월~1년쯤 하면 누구나 기본은 할 줄 알게 된다.
문제는 딱 그 기본에서 더 이상 발전이 없다는 건데 그럴 수밖에 없는 게 거기까지만 해도 일하는데 큰 문제가 없기 때문이다. 내 의지와 관계 없이 새로운 문제가 발생하거나 무언가 요청받지 않는 이상은 그냥 시간만 보내면서 알고 있는 걸 강화하는 수준에 머물게 되는 거 같다.
의식적인 공부가 필요하다. 공부를 하면서 이미 할 줄 아는 것이라도 더 효율적인 방법을 계속 찾아야되고 구현할 수 있는 기술을 늘려야 된다. 그리고 이론으로 배운 걸 실제로 적용해보면서 체득해야 한다.
개인적으로는 책을 꾸준히 보고 있긴 한데 내가 이미 알고 있다고 생각하는 것도 알고보니 제대로 모르는 경우가 많고 내가 미처 생각하지 못했던 것들을 보게 되면 “어? 이거 이런 식으로 활용할 수 있겠는데?” “그때 문제 됐던 게 혹시 이거 때문이었나?”하는 생각도 하게 된다.
결론으로 다시 돌아오면 익숙해지는 건 자연스럽게 되는 거지만 역량을 늘리는 건 의식적인 공부가 필요하다는 거다. 리눅스 명령어를 빠르게 칠 수 있게 된 걸 리눅스를 잘 하게 된 걸로 착각해선 안 된다.