지금은 IDE의 시대이다.

 

IDE는 통합개발환경의 약자다. 컴파일,링크를 하는 빌드기능과 실행 후 디버그 등 프로그램을 시작하고 완성할 수 있는 기능을 제공해준다.

 

어떤 IDE 를 사용해도 코딩 속도를 올리기 위한 기능들은 상당수 존재한다.

 

많이 사용하는 기능은 단축키를 사용하면 빨라질 것이다. 단축키가 시작이다.

 

똑같은 단어의 입력을 반복하다 보면 가르쳐주지 않아도 자연스럽게 단축키를 사용하게 된다.

 

예를 들어서 인텔리제이에서 Ctrl + D를 누르면 바로 아래줄로 라인복사한다.

 

라인복사

동일한 타입을 선언하고 변수이름을 넘버링할 때 빠른 작업이 가능하다. 라인복사를 사용하면 int a1 ~ a5 까지 다섯개를 만들 때 실제로 전부 입력하는 코드는 처음 한줄에 불과하다. 거의 5분의1이다.

 

물론 배열 문법을 사용할 수도 있다. 여기서 이야기하는 것은 동일한 코드를 입력하지 않는 방식이다. 그것이 1줄이건 100줄이건. 같은 속성의 문장은 두번 입력할 필요가 없다는 것이다.

 

위치를 옮겨야 되면 [Ctrl +Alt +위아래 방향키]로 바로 이동이 가능하다. 이런 경우도 단축키를 모르면 드래그하여  Ctrl + C나V로 클립보드에 복사 후 Ctrl +V로 붙여넣기 해야한다. 단축키를 사용하면 훨씬 간단하다. 손이 마우스로 가거나, 키보드에 있는 손의 모양을 바꿀 필요가 없으니까 속도가 빠르고 작업 실수도 적어지며 또 모니터를 뚫어져라 쳐다볼 필요가 없기에 피곤하지가 않다.

 

단축키를 사용하기 시작했다면 그 다음은 자동완성기능이다. 인텔리제이의 File 메뉴 - Settings 에 들어가보면 Editor 에서 Live Templates 이 있다. 여기 Java 를 열어보자.

 

 

 

 

라이브 템플릿 자동완성 기능이다. 각 요소들은 편집가능하지만 그대로 사용하는 것만으로도 유용하다.

 

예를 들어 기본적인 콘솔 메소드인

System.out.println();

println() 메소드 같은 경우 입력하려면 길어보인다. 내용도 입력해야 하는데 매번 반복이 지겹다.

 

자동완성 기능인 sout 을 입력하면 바로 문장이 완성된다.

sout은 파이썬의 print 보다도 1글자 적다.

 

반복해서 사용될 유용한 템플릿 키워드를 알아보자.

 

main()

 

메인 메서드 템플릿이다. 빈 프로젝트로 시작할 때 유용하다.

St()

 

String 클래스이다. 대문자 S에 주의한다.

 

fori

 

for 문 기본 뼈대를 만든다. 가장 많이 쓰는 i 인덱스 형태로 생성해준다. 중간 조건식만 타이핑하면 된다.

 

soutv

 

 

fori와 함께 사용해서 인덱스 출력문을 만든다.

 

ifn

 

 

조건식이 null 인 경우 if문.

 

이 밖에도 반복문에 대한 여러 자동완성 기능이 있다. it 를 입력하고 기다리면 사용가능한 템플릿을 선택할 수 있다.

 

 

커서가 위치한 라인의 문맥에 따라 보이지 않는 템플릿이 있을 수 있다. 예를들어 메서드가 아니면 제어문 템플릿인 fori 를 사용할 수 없다.

 

*단축키의 세팅

단축키는 File 메뉴의 Setting 의 Keymap에서 확인할 수 있다.

 

코드 작성시 편집 단축키를 많이 사용한다. 기본적으로 많이 사용하는 복사,이동,삭제에 대한 단축키는 외우지 않아도 몸에 익숙해질 것이다. 그 외 자주쓰는데 불편한 키가 있다면 여기서 바꿀 수 있다.

 

Run 실행 메뉴가 기본으로 Shift + F10 이 되어있는데, 글쓴이는 F1으로 바꿔서 사용한다. F1은 인텔리제이 온라인 도움말이다. F1이나 되는 좋은 자리에 있는데 도움말은 잘 안보니까 대체해서 사용한다. 확실히 유용하다고 느낄 것이다.

 

단축키와 자동완성을 잘 활용하면 타이핑 횟수가 줄어들어서 코딩 속도가 올라가고 생산성이 좋아진다.

 

물론 코드에 담겨있는 내용이 더 중요하다. 내용없는 코딩이야 소용이 없을 것이다. 장인은 도구를 탓하지 않는다는 옛말도 있지만 컴퓨팅의 세계에서 도구는 상당히 중요하다. C언어의 프로들이 윈도우에서 비주얼 스튜디오를 사용하는 이유가 있다. IDE에서 제공하는 기능들이 필요하기 때문이다.

 

 소프트웨어의 발전방향은 비슷하다. 예전엔 시간을 많이 들여 힘들게 했던 일을 쉽게 만드는 것이다. 포토샵 같은 프로그램도 마찬가지다. 캔버스에 그림을 그릴 때 쉽게 하지 못했던 일들(수정하기, 효과넣기)을 클릭 몇번만으로 가능하게 한다. Unity 같은 게임엔진에서는 클릭 몇번으로 간단한 게임을 개발할 수 있다.

 

형태는 다르지만 본질은 비슷하다. 과거에는 길고 지루했던 작업들이 줄어드는 것이다. 일을 줄이면서 추상화를 시킨다. 파이썬 같은 언어가 대표적인 추상형 언어이다. 거기에선 C언어에서 처럼 컴퓨터의 작동원리를 알 필요가 없다. 사용하려는 기능을 선택하고 pip 로 모듈을 다운로드 받아 실행하면 그만이다. 이런 일이 너무 빨리 일어나면서 사람들은 혼동을 겪고 있다.

 

당연하다. 대학에서 C언어와 컴퓨터를 배운지 10년도 체 되지 않았는데 갑자기 파이썬이나 프론트엔드 기술이 유행처럼 등장했다. 몇개월 심하면 몇주의 단기과정을 끝내고 온 비전공자들과 취업시장에서 동등한 취급을 받게 되는 경우가 생긴다. 컴퓨터에 대한 기존의 장벽이 허물어져 버린 것이다. 그것은 누구의 잘못도 아니다. 컴퓨터 소프트웨어의 발전과정에서 자연스러운 흐름일 뿐이다.

 

아주 시간이 오래걸리고 지루한 과정도 블랙박스에 담아버리고 사용자는 그 블랙박스를 조작하는 메뉴얼만 있으면 된다. 그게 프로그래밍을 개발하는 이유다. hackr.io는 Programming 의 뜻을 정의한다.

 

Programming is a way to “instruct the computer to perform various tasks”.

 

프로그래밍은 여러가지 작업을 수행하도록 컴퓨터에 지시하는 방법이다.

 

 

What is Programming? [Beginner's Guide]

Learning programming is fascinating, but getting to know What is Programming is the first step to begin. Start here!.

hackr.io

그 작업들은 원래 인간이 하던 일이었다. 계산일 수도 있고 장부에 기록하는 일 일수도 있다. 또는 사람들이 볼 수 있도록 게시판에 알리는 내용일 수도 있고 물건의 배송정보를 전달하는 것일 수도 있다.

 

이전에는 컴퓨터 프로그래머들이 컴퓨터의 뇌인 CPU의 모든 것을 들여다 보면서 작업을 했다. 그런데 시간이 갈 수록 CPU에 지시는 직접 내리는 일 조차 지루해졌다. 그래서 각 단계를 관리할 수 있는 계층을 프로그래밍 해버린다. 함수가 만들어지고 클래스를 설계하고 파이썬에서는 그냥 모듈이다.

 

필요한 것이 무엇인가에 따라 그 기능을 하는 모듈을 가져오면 된다. 파이썬이 C/C++보다 느린 이유는 명확하다. 내부에서 컴퓨터가 하는일이 더 많기 때문이다. 그만큼 사람은 일을 하지 않아도 된다. 이런 변화때문에 일반인들이 쉽게 프로그래밍을 할 수 있게 되면서 코딩은 대중화가 된다. 이런 흐름이면 나중에는 드래그와 클릭만 해도 코딩이 가능하게 될 것이다.

 

개인적으로는 VR 코딩에 기대하고 있다. 최근에 오큘러스 퀘스트 2를 보니까 프리핸드로 타자가 가능한 수준이 된 것 같다. VR전용의 컴파일러가 등장하는 것은 시간 문제라 본다. 3D 공간을 활용해 코딩할 날도 머지 않았다고 본다.

 

자동완성과 단축키를 사용하면서 이게 나중에 어떻게 변하게 될지 질문을 던져보는 것도 재미있다.

 

불과 몇년뒤면 그렇게 말할지도 모른다. 2020년에는 단축키와 자동완성을 엄청 두들기면서 코딩했지. 지금은 그럴 필요가 없어 ㅋㅋ

 

기술이란 그런 것이다. 현재에는 항상 만족하지 못하면서 과거를 보면 또 미개해 보인다. 과거의 우리 자신은 아무것도 느끼지 못했음에도 불구하고 말이다.

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band