개발툴은 일반인들에겐 낯선 분야다. 그렇지만 개발자 세계에선 개발툴은 혁신의 엔진으로 통한다. IT혁신에서 개발자의 역할이 크다는 것을 감안하면 개발자들이 쓰는 연장인 개발툴도 좀 더 의미있게 다뤄질 필요가 있다. 세상에는 정말이지 다양한 개발툴들이 있다. 개발자들은 자신에게 맞는 것을 골라쓴다. 시장을 통일한 개발툴은 없으며, 앞으로도 마찬가지일 것이다. 다양성은 개발툴의 세계를 상징하는 키워드다. 일반인들에게는 낯설지만 개발자들 사이에선 개발의 시작점인 개발툴의 세계를 기획 시리즈에 담아봤다.[편집자주]
'옆자리 동료의 손이 빨라졌다''신들린 타이핑으로 팀에서 돋보이는 코더가 된 기분'
소프트웨어 개발자는 개발툴과 함께 숨을 쉰다. 한발 더 나아가 개발자가 툴로 숨을 쉰다고 봐도 좋다. 개발툴의 춘추전국시대. 유행은 있지만, 대세는 없다. VI와 이맥스는 유닉스의 자식들이지만, 지금도 개발자의 잇템이다. 하지만 툭하면 튀어나오는 새로운 툴을 쓰는 옆자리 동료의 모니터를 보자니 이런 생각이 든다. 아, 나도 지우고 갈아탈까?
취향따라, 습관따라, 언어따라 다르지만, 개발자는 툴을 욕망한다. 개발자를 빛나게 만드는 툴의 세계로 들어가보자.
■생산성 甲, VI
전산실은 팬 돌아가는 소리와 키보드 소리로 가득했고, 재규어 같은 손가락 놀림으로 탄생하는 코드가 터미널을 채웠다. 개발자들은 유닉스가 남긴 문화에 오마주를 표하고 있다.
"마우스를 쓰는 건 죄악이다."
유닉스의 유산과도 같은 VI는 지금도 많은 사랑을 받는다. 라이벌인 이맥스처럼 터미널로 모든 것을 말한다. VI 유저는 마우스에 손을 가져갈 일이 없다는 말로 VI에 찬사를 보낸다. 키 위에 얹은 손가락의 기본자세를 최대한 깨뜨리지 않는데서 느껴지는 힘. 화살표키도 너무 멀단다. h, j, k, l가 화살표 키 대신 프롬프트를 옮겨준다. 혹자는 '화살표 키로 이동하다가 손을 삘 수도 있다'고 할 정도다. 일단, 키보드에 손을 대고 휘리릭! 정말 빠르다!.
"한 터미널 안에서 모든 게 이뤄진다."
VI는 터미널 창 하나에서 여러 일을 처리할 수 있다. 화면분할, 파일 이동, 파일 간 붙여넣기 등등 여러개의 VI 터미널을 띄우지 않아도 된다.
VI는 고전이다. 지금은 가장 성공한 클론인 VIM이 대세다. VIM은 되돌리기(undo)가 무한대다. VIM의 개발자는 우간다를 너무 사랑해서 VIM 시작 화면에 우간다를 도와달라는 메시지를 남겼다.
“VI는 모든 곳에 있다."
하도 VI를 많이 쓰다보니, 수많은 개발툴들이 VI의 키맵을 똑같이 쓸 수 있게 해준다. 그래서 VI툴을 떠나도 VI의 치명적 매력에서 벗어나는 건 어렵다. VI를 쓰다가 지금은 비주얼스튜디오를 쓰고 있다는 한 개발자는 "어떤 새로운 OS가 나타나도 VI를 쓸 수 있을 것"이라고 말했다.
VI는 유닉스 계열 OS엔 웬만해선 다 기본으로 깔려 있다. 남의 시스템을 만져야 할 때 VI는 신의 선물이다. 어쩌다 남의 시스템을 만져야하고, 내가 쓰던 툴이 없다면? 당황하지 마라. 터미널을 열고 'VI'만 쳐라. NT커널이라면? 안타깝다.
마지막으로 VI 입문자를 위한 주의사항. 커맨드모드와 인서트모드를 꼭 확인하라. 커맨드모드에서 복사해온 코드를 붙여넣기 했다가 시스템의 노래를 들을 수 있다.
■써봤다면 엑스 마키나, EMACS
리누스 토발즈, 마크 안드레센, 마크 저커버그의 공통점은? 모두 이맥스 에디터를 쓴다는 사실이다. 리처드 스톨만의 자유소프트웨어운동과 함께 호흡한 GNU 이맥스 에디터가 30년만에 24.5 버전을 선보였다. 아랍어와 히브리어까지 지원하는 이번 에디션은 향상된 커스텀테마 시스템과 이맥스 리스프 언어의 사전식 어휘 참조 기능까지 갖춰 커널 개발은 물론 최신 오픈소스 컨트리뷰션에도 100% 완벽하게 호환된다. 아무 에디터나 쓰지 않는 유니크한 당신에겐 최신 GNU 이맥스 에디터가 딱이다.
“이맥스 쓰는 친구들, 터미널만 봐도 똑같은 모양이 없다.”“나는 구문강조 정도 붙여서 쓰는데, 팀엔 화려하게 쓰는 사람도 많다.”
이맥스는 코즈모폴리탄의 상상력을 마음껏 펼칠 수 있는 튜닝을 허용한다. 데스크톱 테마 조율에 관심이 있다면 이맥스 개발자의 터미널만 봐도 묘한 동질감을 느낄 것이다. 라이벌 VI 사용자의 눈에는 비록 그게 변태스러울지라도.
“VI를 안 쓸 수는 없다. 이맥스 안 깔린 컴퓨터도 있으니까.”
이맥스 개발자들이 VI를 배척하는 건 아니다. 항상 이맥스를 띄워 놓는다는 커널 엔지니어조차 간단한 파일 보기, 수정, 스크립트 작성, 배치 처리시 날렵한 VI를 선호한다. 이맥스는 조금 무겁게 느껴진다.
잠깐 샛길로 빠져 꼬꼬마 개발자들에게 피가 되고 살이 될 조언 하나. 자바 개발하려면 빠른 컴퓨터부터 사라. 시스템 리소스를 많이 쓰니까. 이 얘기가 이맥스 쓸 사람에게도 유효하다.
“이맥스 쓰는 사람을 나는 사람으로 보지 않는다.”
사람이 아니면 뭐란 말인가? 반 기계화된 사람, 엑스마키나! 놀리는 게 아니라 동경을 담은 표현이다. 이맥스 툴에서 제공하는 기능을 아주 그냥 기가 막히게 쓰는 사람을 보고 나니까, 따라하기가 정말 어렵겠구나 싶더라는 것. 터미널 작업에 VI를 쓴다는 그는 이맥스 쓰는 사람들에게 뭔가 여유가 있겠구나 느꼈다고.
“이맥스가 어렵다고? 매뉴얼 앞부터 4장만 읽으면 끝!”
남들이 어려워서 피한다는 이맥스를 메인 에디터로 리눅스 커널을 커밋하는 고수의 비급이다. 개발자들이 일반적으로 쓰는 기능은 이맥스 매뉴얼 처음부터 4페이지까지 내용에 다 들어 있다나. 치트시트라는 단축키 조합 테이블도 있단다. 익숙잖다면 컨트롤키 누르느라 새끼손가락이 좀 저릿 할게다.
당신의 시스템 속 이맥스는 자란다. 어제의 이맥스와 오늘의 이맥스는 다르다. 이것저것 붙이다보면 어느새 IDE를 뛰어넘는 무언가를 만들었을지 모른다. 축하한다. 당신은 코딩하는 자비스를 만들었다.
■"내가 창조한 동산에서만 놀지어다" X코드
X코드 개발자들에게 세팅 커스터마이징을 꿈꾸는 건 사치다. 코딩 스타일에 대한 논쟁도 필요없다. ‘애플느님’이 하라는대로 쓰라는대로 따르면 그만. 애플과 맞춰간다고 생각하지 마라. 우리는 그저 길들여질 뿐이다.
"우리는 키워드와 인자값에 대한 제한도 있다"
변수명을 단어의 약어나 부호로 쓰지 않고 조오금 길지만 전체 단어를 쓰도록 유도한다. 영어권에서는 이런 길게 쓰는 변수명이 유리하다. 영어를 못하는 건 우리 잘못이다.
"코딩 컨벤션 논란? 그런 거 없다"
애플의 샘플코드가 곧 코딩스타일 바이블이다. X코드 입문자인가? 가능한 애플에서 나오는 스타일대로 코딩하려고 노력한다면 고수가 될 수 있다.
"X코드를 시작하려면 하드부터 비우고 오라""무겁다고 생각마라. 맥프로를 써라"
X코드7을 설치하려면 하드디스크에 8GB 정도는 내어줘야지. X코드7을 깔기 위해 하드를 비우고 있는 당신이라면 이전에 보지 못했던 신기능을 쓸 자격이 충분하다.
"스위프트는 특수문자의 향연이다""오브젝티브C도 함께 쓸 수 있도록 허락해주셨지만 스위프트기반으로 가야할 것 같다"
스위프트는 특수문자의 향연이다. 골뱅이(@) 샵(#) 느낌표(!) 물음표(?) 키가 없어 닳아져야 '저 친구 스위프트좀 해봤구나'하는 소릴 들을 수 있다.
스위프트는 오브젝티브C 객체지향 패러다임을 많이 깨뜨렸다. 그렇다고 함수형패러다임 관점에선 순수한 함수형 언어도 아니다. 객체지향과 함수형 패러다임 양쪽에서 환영받지 못하는 혼혈왕자 같다. 일단 오브젝티브C와 스위프트 두 언어로 함께 개발할 수 있도록 허락해주셨다는 점에 감사하자.
개발자들은 마우스로 손을 가져가는 걸 낭비라 여기기 쉽다. 하지만 X코드를 쓰는 사람은 마우스를 사랑한다. 특히 여러 뷰를 가진 모바일 앱 GUI를 만지려면 키보드 못지 않게 마우스도 자주 써야 한다. 인터페이스빌더를 쓰지 않고 코딩으로 레이아웃을 짠다면, 당신은 점점더 갈라지는 iOS기기 파편화에 지쳐 쓰러질 지 모른다. 컴퓨터 중 아이패드보다 높은 해상도를 가진 건 없다. 아이패드 앱은 아이패드에 담겨야 한눈에 보인다.
■자바는 이클립스의 목적어다
닷넷에 비주얼스튜디오가 있다면, 자바에는 이클립스가 있다. 자바로 개발한다면 이클립스를 당연히 쓰게 될 정도다. 무엇보다 자유롭다. 자바뿐 아니라 무수한 개발언어를 품에 안았다. 수많은 플러그인 덕에 개발자는 이클립스 하나로 많은 걸 할 수 있다.
"자바를 시작하려면 아주 좋은 컴퓨터부터 사라"
IDE의 총아 이클립스는 비대해졌다. 플러그인 잘못 깔았다가 두통약 찾기 십상이다. 개발자의 뒷목을 잡게 하는 에러가 턱밑 어퍼컷처럼 보이지 않는 곳에서 치고 들어온다. 그래서 자바 개발자 사이에서 젯브레인의 인텔리J(IntelliJ)가 떴다. 스테이블하고 스피디하다고 인텔리J로 갈아탄 사용자들은 말한다. 안드로이드 개발 때문에 이클립스를 쓸 수밖에 없던 이들도 안드로이드스튜디오로 떠나갔다.
인텔리J는 젯브레인에서 돈받고 파니 품질관리 측면에선 이클립스보다 낫다. 20만원만 투자하면 2년 동안 지겹게 쓴다. 가끔 젯브레인이 할인행사도 한다. 인텔리J를 쓴다면 개발자의 시간을 소중히 생각해 준다는 느낌을 받게될 것이다. 윈도가 블루스크린 때문에 악명이 높다면 맥은 그런 다운타임 없지 않은가? 이클립스가 윈도라면 인텔리J는 맥이다.
한편, 자바용 개발툴의 적통, 오라클의 넷빈즈는? 운명하신 것 같다. 자바의 아버지 제임스 고슬링은 쓰고 계실까?
■누구에겐 당연한 것, MS 비주얼스튜디오
여전히 윈도 개발을 위해 비주얼스튜디오를 써야 하는 시대다. 다른 플랫폼 적응에 성공했는진 묻지 않겠다. 중요한 건 비주얼스튜디오가 돌아가는 환경이다. 윈도 클라이언트와 서버 전용 개발툴처럼 여겨지는 비주얼스튜디오2015가 오는 20일 출시되는 게 전혀 이상하지 않은 까닭이기도 하다. 플랫폼과 디바이스에 관계 없이 개발자를 지원하는 MS 크로스플랫폼 전략의 실체이며, 비가 오나 눈이 내리나 코딩의 열정이 사그라지지 않도록 빠른 속도와 뛰어난 디버깅 능력을 자랑한다. SI개발자가 아닌 이상 하루 20시간 이상 코딩할 일은 없으니 크래시 확률은 걱정 말도록… 시각적 완성도와 안정성이 의외로 탁월하다는 점에 깜짝 놀랄 거다.
“에디터 한글 폰트는 비주얼스튜디오가 갑이다.”
이름만 대면 다 알만한 유명 게임사 프로그래머의 코멘트. 다른 OS의 개발툴 편집기는 한국어판 윈도의 ‘맑은고딕’처럼 먹어주는 폰트가 없단다. 몇년 전까지만 해도 내장 시스템엔 칙칙한 명조 계열 글꼴이 전부였고 지금도 다국어입력기(IME) 처리가 묘하게 거슬리기도 한다고.
다른 플랫폼을 안 다뤄본 무지의 편견 아니냐고? 윈도 개발로 밥벌이를 한다지만 소싯적엔 이클립스, 서브라임텍스트를 만져 봤고 요즘도 취미 삼아 인텔리J로 자바 코딩을 한다는 사람이다. 그는 나름대로 크로스플랫폼 개발자의 로망을 갖고 있단다.
“비주얼스튜디오도 다크 테마가 기본인 줄 알았다.”“다크테마는 유행이다.”
경북 구미에서 상경해 입사한 개발자 K씨. 팀에 배정돼 게임서버 프로그래밍을 맡았다. 팀원들과 동일한 개발툴 설정을 쓰라는 십계명을 받고 시내산에서 하산한 그는 순전히 유행의 산물인 비주얼스튜디오의 다크테마도 바꿀 수 있는지 어떤지가 그리 중요치 않았다더라.
다크 테마는 왜 유행일까? 통계적 과학적 수학적 원칙을 깡그리 무시한 조사 결과 2가지 장점이 있는 것으로 파악됐다. 하나는 좀 있어보인다는 거. 다른 하나는 노트북 디스플레이의 RGB화소를 모두 쓰지 않음으로써 화소 수명을 늘리고 배터리도 아주 조금은 아낄 수 있을 것 같은 기분이 든다는 거.
다크 테마 얘기한 김에 하나 더. 네임드 자바 개발자 모 씨는 이클립스의 다크 테마를 어설프다고 일갈했다. 바탕은 시꺼먼데 스크롤막대는 허옇게 떠서 별명이 ‘드라큘라테마’라나.
■취향을 저격하는 에디터와 IDE는 많다
VI와 이맥스의 성전 속에서 노트패드++와 서브라임텍스트는 데스크톱 개발자와 프론트엔드 웹 개발자 속으로 표표히 퍼져나갔다. 믿거나 말거나지만 스택오버플로의 연례 개발자 설문조사에서 노트패드++와 서브라임텍스트는 사용자비율 1, 2위를 차지한다.
어떤 서브라임텍스트 유저는 세이브하면 자동으로 빌드하게 하는 스크립트를 짜서 확장으로 붙인다고 전해진다.
올해 마이크로소프트에서 투척한 비주얼스튜디오코드도 있다. 리눅스와 OS X에서 쓸 수 있는 코드 에디터다. 비주얼스튜디오코드는 재즈의 에릭 감마와 C# 컴파일러의 대가 에네르스 하일스베르의 합작품이다. 웹 개발을 위한 준IDE라 불러도 될 만큼 기능이 좋다. 스크립트어 때문에 골머리를 썩히고 있는 OOP 개발자라면 비주얼스튜디오코드를 써보고 울지도 모른다.
어도비시스템즈에서 만든 '브래킷(brackets)’도 웹 개발자와 웹퍼블리셔에게 인기다. 어도비는 브래킷을 오픈소스로 풀었다. HTML과 CSS코딩을 할 수 있는데, 실시간 미리보기 기능이 있다. CSS문법으로 HTML을 자동으로 만들어주기도 하는 기특한 녀석이다.
웹 개발자가 브라우저의 내장 개발자도구를 쓰는 경우도 부쩍 늘었다. 인터넷익스플로러, 크롬, 파이어폭스, 사파리, 엣지 등은 내장된 개발도구를 누구나 쓸 수 있다. 모여서 만들었는지, 남이 한걸 따라했는지, UI는 대동소이하다. 에디터 깔 필요없이 브라우저를 열어 자바스크립트 함수를 만들고, 바로 실행하고, 디버깅하는 당신. 지나가던 이성이 발길을 돌려 당신에게 다가갈지도 모른다.
서버 개발자는 IDE를 편안하게 느낀다. 힘들 때 도움의 손길을 내밀어주고, 실수하면 바로 지적질하고. 엄마 품에 안긴 기분을 느끼는가 싶다. 그러나 비주얼스튜디오나 이클립스로 포근함을 느끼기란 생각보다 쉽지 않다. 그래서 새로운 IDE세력이 치고 나왔다. 젯브레인이다.
젯브레인은 여러 언어별로 IDE를 판다. 비주얼스튜디오에 붙일 수 있는 닷넷 플러그인도 있고, 요즘 파이선 개발에선 ‘파이참(pyCharm)’이 뜨겁다. C계열 언어를 위한 ‘씨라이온(CLion)’, PHP를 위한 ‘PHP스톰(PHPStorm)’, 루비온레일즈를 위한 ‘루비마인(RubyMine)’, 자바스크립트 등 프론트엔드를 위한 ‘웹스톰(WebStorm)’, 심지어 iOS와 OS X 개발자를 위한 ‘앱코드’도 있다. 안드로이드스튜디오도 젯브레인에서 구글에게 만들어주는 OEM(?) 툴이다.
[연재 순서]
① 뇌섹 개발자로 만들어주는 툴의 세계
관련기사
- 개발자를 위한 소소한 개발툴 활용팁2015.07.23
- 개발툴에 대한 선배의 조언2015.07.23
- 개발자들, 왜 코드 빈 칸 때문에 싸우지?2015.07.23
- 기트허브, 아톰 에디터 첫 정식판 공개2015.07.23