Karen
15k
2016-01-22 13:42:40
11
10143

정개발의 "no more agile" - 2. 초보 개발자가 꼭 알아 두어야 할 다섯 가지 기술들


정개발의 "no more agile"

2. 초보 개발자가 꼭 알아 두어야 할 다섯 가지 기술들




  오늘은 아무도 가르쳐 주지 않는, 그리고 이제 와서 누군가에게 물어보기도 뻘쭘한 초보 개발자를 탈출하기 위해 필요한 테크닉에 대해 이야기해 보고자 한다.


  초보 개발자가 고급 개발자가 되어가는 과정을 한 마디로 정의하자면, '좀 더 게을러지기 위한 강렬하고 적극적인 의지의 표현'이 되겠다. '생산성'이니 '효율성''정확성' 같은 것들은  프로그래머에게 있어서 부수적으로 얻어지는 것일 뿐 목적이 될 수 없다. 오로지 끊임없이 편하고 게을러지기 위한 노력만이 있을 뿐이다.



1. 마우스 안 쓰기


   오늘날의 컴퓨팅 환경은, 시각·청각과 같은 인지 영역에 의거한 인간의 자연스러운 본능에 모든 행동이 정의되고 제약되는, 게슈탈트 심리학(http://blog.daum.net/kossdd/16483338)의 세계이다. 그러니까 버튼은 누르고 싶게 생겨야 하고, 이벤트 알람은 귀에 거슬리게 하여 주의를 끌 수 있어야 한다. 하지만 프로그래밍의 세계는 추상의 세계이다. 보이지 않는 본질을 파악하고, 이를 다시 추상화 해나가는 작업의 반복인 것이다.


  이러한 이유로 필자는 마우스(터치패드나 트랙패드를 포함) 안 쓰기를 초보 프로그래머에게 있어서 익혀야 할 기술의 첫번째로 이름을 올렸다.


  결론부터 말하자면, 마우스는 프로그래머의 적이다. 마우스는 인체공학적인 면에 있어서도 손가락만 움직이면 되는 키보드와는 그 편의성과 정확성, 속도 면에서 엄청나게 차이가 날 뿐만 아니라, 심리학에서 말해지는 몰입(flow)(https://ko.wikipedia.org/wiki/%EB%AA%B0%EC%9E%85) 상태를 방해한다는 점에서도 프로그래머와는 궁합이 좋지 않다.




  그럼에도 불구하고 마우스를 사용하게 되는 것은 순전히 직관에 끌리는 사람의 본능 때문이다. 오늘날의 컴퓨팅 환경은 직관, 즉 시각과 청각을 최대한 활용하도록 설계되고 있다. 그러니까 마우스를 사용하지 않는다는 것은 자연스러운 본능과의 싸움인 것이다. 하지만 걱정하지 말라, 결국 컴퓨팅 환경을 만들어내고 있는 것들 또한 프로그래머이며, 이들은 자신이 만든 프로그램에 키보드 사용자를 배려한 여러 장치를 해 놓는다. 단축키와 매크로 같은 것들 말이다.


  일단 오늘부터라도 작업에 주로 사용하는 어플리케이션의 주요 기능들을 반드시 단축키를 사용해서 진행하는 습관을 들여보자. IDE뿐만 아니라 워드나 오피스, 그리고 윈도우와 같은 OS 관련 단축키도 포함해서 말이다. 상급 개발자라고 하는 것은 무언가 대단한 이치를 깨달은 사람이 아닌, 별거 아닌 작은 습관들을 몸에 익힌 사람들일 뿐이다.




2. Command Line Interface


  상징적인 의미 이외에 현실적으로도, Command Line Interface (이하CLI)는 프로그래머가 보다 적극적이고 강렬하게 게을러지기 위해 꼭 필요한 중요한 도구이다. CLI는 동일한 작업의 반복 수행 뿐만 아니라 바로 위에서 언급한 마우스 사용의 억제에도 큰 도움이 된다.




  CLI는 쉘 자체로도 다양한 작업이 가능하지만, AWK나 GREP와 같은 툴을 함께 사용한다면 엄청난 시너지 효과를 낼 수 있다는 사실도 잊지 말자. 윈도우의 경우 powershell을 사용한다면 DOS스타일의 bat보다 훨씬 다양한 작업이 가능하지만,  cygwin(https://www.cygwin.com/)이나 unix utils(http://gnuwin32.sourceforge.net/)를 이용한 유닉스 스타일의 쉘 작업을 익혀 둔다면,  윈도우 뿐만 아니라 유닉스, 리눅스는 물론이오, BSD를 기반으로 한 Mac OS에서도 요긴하게 써 먹을 수 있다.


  어찌 되었든, 무조건 하루에 두 번 이상 행하는 작업들은 CLI를 이용해 자동화 할 궁리를 하자!




3. 정규표현식


  부끄러운 이야기지만, 필자 또한 정규 표현식을 제대로 다룰 수 있게 된 것은 비교적 최근의 일이다. 물론 그 이전에도 정규표현식을 전혀 사용하지 않은 것은 아니지만, 대부분 구글 검색에 의존해 완성된 식을 가져다가 파라메터를 바꿔서 쓰는 수준이었다. 변명을 하자면, 초보 개발자 시절 처음 접한 Perl 코드의 미칠 듯한 정규표현식 해석 경험이 일종의 트라우마로 남아 있었던 듯 하다.


  이 정규표현식텍스트 데이터를 다루는 데 있어서 엄청난 편의성을 제공한다. 특히 개발 도중 자주 직면하게 되는 복잡한 검색이나 치환 작업들을 다루는 데 있어서 대단히 편리한 도구이며, 게을러지기 위해서는 약간의 수고를 들여 꼭 익힐 필요가 있는 기술임에 의심의 여지가 없다.


  초보 개발자들에게는 다소 어려울 수 도 있지만 대부분의 이 바닥의 기술들이 그러하듯이 알고 나면 별 거 아니다. 게다가 요즘에는 친절한 웹 튜토리얼들이 넘쳐난다!




4. 터미널 기반 텍스트 에디터


  이클립스나 IntelliJ, Sublime, Brackets와 같은 뛰어난 IDE가 넘쳐나는 시대이지만, 아직까지 텍스트 편집기나 코딩 툴로서 ViEditor(이하 Vim)이나 Emacs를 애용하는 개발자가 많이 있다. 텍스트 환경 위에서 움직이는 이러한 툴들은, 위에서 언급한 키보드만 이용한 작업이라던지 터미널 상의 CLI인터페이스와 궁합이 좋기 때문이다. 


  필자는 20년 가까이 vi(http://www.vim.org/)를 사용해 오다가, 얼마 전에 Emacs(http://www.gnu.org/software/emacs/)로 넘어간 변절자 중 한 사람이지만, 양쪽 다 개발자에게 훌륭한 에디터라고 생각한다. emacs를 사용한다 하더라도, vi는 대부분의 unix/bsd계열 os에서 기본 텍스트 에디터로 채용하고 있으므로 기초적인 사용법은 꼭 익혀 두도록 하자.




5. 구글 파워 서칭


  응? 이 양반이 초보라고 사람 무시하나? 아무리 초보 개발자라고 해도 구글 못 쓰겠냐고?

  아니다. 개발자에게는 개발자다운 구글 사용법이 따로 있다.




  구글은 오늘날 프로그래머에게 있어서 문제 해결의 단서를 찾는 데에 절대 빼 놓을 수 없는 도구이지만, 의외로 구글이 제공하는 강력한 검색 옵션 기능들을 제대로 사용하는 개발자는 많지 않다.


  속는 셈 치고 구글에서 제공하는 Power Searching Advanced Power Searching 강의를 수강해 보자. 아니 최소한 무슨 내용을 다루는 지만이라도 살펴보자. 단언컨데, 적은 노력으로 큰 편의를 제공할 것이다.





칼럼 출처
http://www.moreagile.net/2014/12/HowtoBecomeAnExpertDeveloper.html



♣에디터 :

초보 개발자가 고급 개발자가 되어가는 과정을 한마디로 정의하자면 '좀 더 게을러지기 위한 강렬하고 적극적인 의지의 표현'이 되겠다. '생산성'이니 '효율성', '정확성'같은 것들은  프로그래머에게 있어서 부수적으로 얻어지는 것일 뿐 목적이 될 수 없다. 오로지 끊임없이 편하고 게을러지기 위한 노력만이 있을 뿐이다.
멋진 말씀이십니다...!!ㅋㅋㅋbb  ;D
10
13
  • 댓글 11

  • 우주대존맛
    1k
    2016-01-22 15:21:48

    좋은글 감사합니다.

    0
  • dkfemdnjs
    179
    2016-01-22 16:01:04

    좋은글 감사합니다.


    마우스는 안쓰고 단축키를 쓰고 싶은데 잘 안외어 지네요 ㅠㅠ


    정규 표현식도 몇번 써보긴했었는데 정말 매력적입니다.


    다만.. 아직 이해가 잘 안되서 ㅠㅠㅋ

    0
  • 앙개발찌
    320
    2016-01-22 16:04:47

    정규식 튜토리얼 정말 좋은거같습니다.

    좋은정보 감사합니다.

    0
  • 일루미나타
    79
    2016-01-22 16:05:39
    글 잘 봤습니다 ^^
    0
  • 초오찌
    5k
    2016-01-22 18:18:19

    하아 진짜 이런 정말 좋은 글을 올리시면 너무 좋잖아요!💕

    1
  • 욥욥욥
    906
    2016-01-22 20:05:23

    마우스를 쓰면 안된다는 말을 듣고 사용해야 유용한 상황임에도 절대 안쓰려고 어색한 키보드질을 하는 분들이 가끔 있더라고요;;

    키보드 비중을 많이 두되 적절히 혼용하시는게 좋은거 같아요

    제가 추천드리고 싶은 작은 기본기는 키보드를 정확하게 치는 것입니다.

    오타나 불필요한 움직임을 줄이고 손가락 열개를 다 써서 정확하게 치는 것 말이죠

    독수리 타법이나 새끼손가락 안쓰는 분들도 꽤 많이 봤고, 키보드를 두드려 패면서 엄청 빠른데 필요없이 엔터, 스페이스 엄청 두드리고 오타 엄청 많아서 중간중간 백스페이스 연타하고;;

    초장에 버릇들면 잘 안고쳐지는 것 같더라고요

    이상 '작은 기본기' 였습니다;;

    정개발님 글 잘 봤습니다~~

    0
  • smasma
    2k
    2016-01-23 10:22:18

    Emacs 로 넘어가시다니..에잇.변절자.. ^^!

    0
  • 아야나미
    2k
    2016-01-25 20:52:38

    단축키 많이 애용하고 있는데 ㅎㅎ

    근데 직접 코딩할 때.. 변수명 같은 것도 직접 타이핑 했었는데(코딩한다는 느낌이 들어서!)

    마우스 움직이기도 귀찮고..

    근데.. 요즘 변수명들 복붙하니까 확실히 에러율이 낮아지는...(이런 의미의 마우스를 지양하라는 말씀은 아니겠죠 ㅜㅜ)

    정확하게 타이핑하면 마우스 사용량이 더 줄어들텐데 ㅜㅜ

    정규식.. 책 이번에 샀는데.. 귀차니즘을 보호하기 위해 읽어야 한다는 귀차니즘을 깨야할텐데 ㅜㅜ

    좋은글이라 댓글이 길어졌습니다..

    추운데 감기 조심하세요~~

    0
  • godizen
    82
    2016-01-26 14:34:47

    마우스를 전혀 안 쓰긴 어렵더라구요.

    빨콩이 마우스이지만 그래도 빨콩을 사용하면서 마우스를 전혀 안 쓴지 어느덧 4년 정도가 흘렀네요.

    저도 마우스를 안 쓰는 건 추천드립니다.


    윈도우 기본 텍스트 에디터는 gvim을 사용하고 있고

    이클립스에 vim 플러그인 설치하면 충분하죠. 물론 단축키를 변경해야하는 번거로움은 있을 수 있지만요. ㅎㅎ;;

    이쯤되면 리눅스 환경에 적응하는게 그리 어렵지 않다고 봅니다.

    0
  • 정개발
    1k
    2016-01-27 21:51:52

    요즘은 atom을 씁니다 ^^

    emacs 키는 벌써 가물가물 ㅋ

    1
  • latelove
    550
    2016-02-03 13:38:38

    '좀 더 게을러지기 위한 강렬하고 적극적인 의지의 표현'

    복붙했어요 고급될려고요. 아직은 초급인가봐요 마우스로 드래고했거든요.


    ㅎㅎㅎ


    위에 글은 무시하시고 잘 읽었습니다. 

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.