작업 환경 변경하기

vim(terminal) 중심으로 업무하기

JC
Museion
4 min readNov 13, 2019

--

요즘 하는 업무는 사이트 개선이다. 사이트는 처음 설계한 지 4년 정도 되었고, 그동안 리팩토링 없이 기능 추가만 계속되고 있다.

개발 상황은 이러하고, 나는 주로 리눅스를 이용해 개발을 한다. 그동안 유지 보수를 할 때는 터미널 두 개 정도를 켜면 충분했지만 전체 개선 작업을 하려니 작업해야 하는 것이 많다. MVC를 모두 변경해야 하기 때문에 하나씩 열고 js, database까지 보려면 작업 창을 어떻게 해야 할지 정리가 되질 않는다. 여기에 다른 팀이나 디자이너와 메신저로 소통을 하다 보면 작업하던 화면이 헷갈려서 엉뚱한 작업을 하게 되는 경우가 발생하기도 한다.

여러 가지 방법을 고민하다가 현재는 터미널 두 개와 데이터베이스 앱, 연락 채널을 중심으로 구성했다. 아래는 내 작업 환경(workspaces) 구성이다.

모니터

회사에서 지급한 모니터는 총 3대이다. 3대를 모두 개발할 때 쓰면 여러 창을 띄우기에는 좋지만 봐야 하는 범위가 너무 넓어지기 때문에 한 대는 연락을 위한 모니터로 두기로 했다(모니터1). 여기에는 slack, telegram, 회사 메신저 등을 항상 볼 수 있게 만들었다. 다른 두 개의 모니터로만 개발을 진행한다. 여러 메시징을 잘 사용하기 위해 station 앱을 이용한다.

윈도 가상 데스크톱

윈도에서도 가상 데스크톱을 만들 수 있다. 첫 번째 데스크톱(데스크톱1)에는 윈도에서 사용할 개발 환경을 구성했다. 운영 서버에 연결할 수 있도록 하고, 운영 디비에 접속할 수 있도록 만들어놨다.

두 번째 데스크톱(데스크톱2)에는 리눅스를 띄어놓았다. 아예 데스크톱으로 구분을 하니 운영과 개발을 헷갈리지도 않고, 키보드를 하나 더 준비해서 물리적 환경도 분리했다.

데스크톱1을 이용할 때는 Microsoft 키보드를 이용하고, 데스크톱2를 이용할 때는 HHKB를 이용하는 것이다. 어떤 데스크톱을 이용하든 모니터1에는 station 앱을 켜놓았다. 데스크톱이 다르면 앱을 두 개 켤 수 있는 것 같다.

vim으로 개발하기

vim을 무척 자주 이용하는 데 기능을 제대로 쓰지 못한다는 생각이 많이 들었다. 기계인간 님의 글놀부 님의 글을 자주 찾아보면서 모르는 것을 따라 해보기도 하고, 유튜브에서. vim live coding 등의 검색을 통해 사용하는 방법을 찾아보기도 한다. 최근에는 vim session에 대해 알게 되었고, 이를 이용해 작업하면서 작업 속도가 빨라졌다.

vim session과 vim (v)split을 이용하면 여러 작업을 하면서 복사/붙여넣기를 쉽게 할 수 있다. 터미널을 여러 개 띄우면 복사/붙여넣기를 할 때 마우스를 이용해야 하는데, 하나의 터미널 화면을 분할하고, 각 파일을 켜서 작업을 했더니 편리하다. 그리고 이 화면 구성을 저장했다가 다시 불러오면(session) 작업을 이어서 하기에도 좋다.

모니터 한 대(모니터3, 데스크탑2)에 터미널 하나를 켜고 화면을 4개로 나눠 작업을 진행한다. 글씨도 적당하게 조절하면 작업하는데 어려움이 발생하지 않는다. 각 화면을 넘나들면서 리팩토링을 진행한다. 다른 모니터(모니터2, 데스크탑2)에는 터미널 하나를 띄우고 절반은 개선 전 코드를 찾아보면서 작업할 수 있도록 했다. 그리고 남은 절반에는 dbever 앱으로 데이터베이스를 확인해가며 작업을 하고 있다. 터미널을 여러 개 켜놓던 작업 환경이 터미널 두 개와 데이터베이스 하나만 켜서 원활하게 작업을 하고 있다.

vim mode

dbeaver에 플러그인을 통해 vim mode를 켤 수 있는 것을 알게 됐다. 키보드를 해피해킹으로 변경하면서 방향 키, end, home, page up/down을 바로 이용할 수가 없어서 불편했는데 vim처럼 쓸 수 있어서 빠른 작업을 할 수 있게 됐다.

웹 서핑은 Firefox를 주로 이용하는데 vimium 플러그인을 이용한다. linux에서 검색할 때는 아예 터미널에서 google을 검색할 수 있는 googler를 설치해서 사용하고 있다.

사용하는 프로그램에 대부분 vim 설정을 추가하자 마우스를 만질 일이 거의 없어졌다. 키보드를 이용해 대부분의 작업을 하고 싶었는데 드디어 내 목표에 가까워졌다. 본연의 업무에 집중하게 되자 더 나아진 것이다.

완전하지 않은

아직 부족한 부분도 있다. 웹 개발을 하고 있기 때문에 api 호출 결과를 UI로 확인해야 하는데, 이 작업은 개발자 도구를 통해 확인하는 것이 편하다. 데이터가 깔끔하게 표시되기도 하고, 실제 사용자가 보는 화면을 나도 봐야 하기 때문이다. 아직 세션 작업이 익숙하지 않아 vim을 닫는 경우도 많고, 잠시 쉴 떄 작업 환경을 어떻게 해야 하는지, 커밋을 할 때는 코드를 어떻게 해야 하는지 고민이 된다.

개발 환경을 한 번 크게 변경하자 개발 속도가 빨라지고 마음이 편해진다. 지금 구성한 환경을 어디에서든 쓸 수 있도록 잘 저장할 필요도 있다.

--

--

JC
Museion

책 읽는 개발자. 아빠. 생산성, 책, 개발에 관한 글을 남깁니다.