프로그래머의 기본기 편

1. 생산성 향상을 위한 Macbook/IDE 단축키 연습

우리가 좋아하는 스타크래프트, 롤, RPG 등의 게임에서 숙련된 플레이어들은 모두 단축키를 누구보다 잘 활용한다는 공통점이 있다.

  • 스타크래프트 프로들은 일반 유저들이 흔히 쓰는 부대 지정(ctrl + {숫자}), 부대 선택, 건물 단축키 뿐만 아니라 화면 저장, 저장한 화면으로 이동, 카메라 이동, 건물 부대지정 등의 방법을 활용하여 남들보다 같은 시간에 더 많은 명령을 유닛들에게 내릴 수 있다.
  • RPG에서도 한 직업이 쓸 수 있는 스킬들이 수십 가지가 되는데 이러한 스킬들을 왼손만 사용하여 누를 수 있는 단축키로 얼마나 효율적으로 배분하냐가 실력에 큰 영향을 미친다.

이처럼 잘 구축한 단축키 세팅, 그리고 그걸 활용하도록 기본기를 연습하면 당신의 두 손이 놀지 않고 바쁘게 움직일 수 있게 될 것이고, 그 만큼 당신의 능률도 오를 것이다.

프로그래머의 능률은 두 가지 측면에서 결정된다:

  1. 프로그래밍 속도: 이건 기술적인 부분이 아니라 그 사람의 머리가 얼마나 문제를 빨리 푸냐에 따라 달라지는 것이므로 기술적으로 익힐 수 없다. 그저 프로그래밍을 꾸준히 오래 연습하는 것이 유일한 향상 방법이다.
  2. 문서 작성 속도: 경력이 올라갈 수록 좋은 프로그램을 작성하는 것 만큼 문서를 잘 작성하는 게 중요해진다. 이러한 문서 작성 업무도 기술적인 부분이 아닌
  3. 기타 컴퓨터 작업: 메일이 왔을 때 그 브라우저에 가서 확인하고, 현재 브라우저에서 다른 탭을 열고, 새로 받은 파일을 여는 등의 작업을 하는 등 프로그래밍 뿐만 아니라 컴퓨터 사용자로써 하게 되는 전반적인 기본 컴퓨터 조작이다. 이러한 부분은 기술적인 부분으로 빠르게 배우고 개선할 수 있다.
    • 프로그래머의 가장 기본 손 자세는 양손이 키보드에 위치해 있을 때이다.
    • 만약 당신이 키보드로 해결할 수 있는 일을 능숙하지 못해 오른손을 마우스로 옮겨서 마우스로 클릭해서 해야 한다면 그 만큼 당신의 기본 능률이 저하되는 것이다
    • 마우스로 하는 거의 대부분의 일은 키보드 단축키나 터미널 명령어로 대체할 수 있으므로 그러한 단축키들을 외우고 자동으로 구사할 수 있어야 한다.

컴퓨터 단축키와 터미널 명령어를 공부하고 자유자재로 사용할 수 있도록 익히는 것이야말로 프로그래머의 기본기이다. 이러한 기본기를 철저히 익혀서 더 효율적인 업무를 진행할 수 있도록 컴퓨터 전반, 자주 사용하는 IDE, 여러 단축키와 명령어들을 정리하고 연습한다.

1-1. 컴퓨터 전반에 대한 단축키

저장/열기, 파일 닫기 등의 많이 알려진 단축키들은 제외한다. 컴퓨터공학부가 그 정도 단축키도 모를 것이라 생각하지 않는다.

1-1.맥북 관련 단축키

저장/열기, 파일 닫기 등의 많이 알려진 단축키들은 제외한다. 컴퓨터공학부가 그 정도 단축키도 모를 것이라 생각하지 않는다.

1) cmd + , : 프로그램의 시스템 환경설정을 염(preference)

2) cmd + ctrl + q : 빠르게 컴퓨터 잠자기 모드로

3) cmd + shift + 4 : 범위를 선택하고 스크린샷

4) cmd + shift + 3 : 전체 화면 스크린샷

5) cmd + space : spotlight 생성

6) cmd + option + d : dock 없애기

1-2. 익스플로러 관련 단축키

1) ctrl + tab: 크롬에서 다음 탭으로 이동 / ctrl + shift + tab: 크롬에서 이전 탭으로 이동

shift는 이렇게 반대 역할로 많이 쓰인다. 다음으로 이동하는 명령어에 shift를 조합하면 대부분 이전으로 이동하는 것으로 바뀐다.

2) ctrl + t: 새로운 탭 만들기

3) ctrl + 0 ~ 8: 0 ~ 8 번 탭으로 이동

4) cmd + l: url 입력 창으로 이동

5) /: 구글에서 검색 창으로 이동

6) alt + -> / alt + <- : 앞으로 가기/뒤로 가기

7) cmd -/cmd +: 줌 아웃/줌 인

8) F11: 전체 화면 모드로 전환

9) spacebar: 한 페이지씩 내려감

10) shift + spacebar: 한 페이지씩 올라감

11) cmd + w: 현재 탭 닫음

12) cmd + shift + w: 현재 윈도우 닫음

13) cmt + shift + t: 가장 최근에 닫은 탭을 다시 연다.

1-3. Visual Studio Code 관련 단축키

1) shift + cmd + p : pallette

2) shift + p : 파일 검색창

3) cmd + / : 선택한 영역 모두 주석 처리

4) ctrl + option + cmd + n: 새로운 파일 생성

5) option + cmd + [/] : fold/unfold

6)

1-4. intellij 프로그램들

1) cmd + b: 구현으로 가기/사용 위치로 이동

2) F2: 다음 에러로 이동

3) cmd + Enter: 현재 컨텍스트 액션 표시

4) cmd + e : 최근에 실행한 파일로 이동

5) ctrl + cmd + l : formatting

6) shift + shift : Search Everything

1-5. Vim Normal Mode

Vim을 굉장히 좋아한다. 그 자유도와 키보드로만 사용 가능한 명령어 목록이 가진 포텐셜은 무궁무진하다. 대신 Vim을 정말 효과적으로 잘 쓰려면 그 수 많은 단축키들과 명령어들을 잘 숙지하고 있어야 한다. 아는 만큼 나오는 정직한 친구가 바로 Vim이다.

1) » / « : indent / cancel indent

2) {/} : jump to prev/next paragraph

3) ctrl + e/y : 한 줄 아래/위로 스크린 옮김

4) ctrl + f/b: 한 스크린 아래/위로 스크린 옮김

5) ctrl + d/u: 반 스크린 아래/위로 옮김

6) zz: 커서가 스크린 중앙이 되도록 스크린 옮김

7) R: ESC가 눌릴 때까지 replace

8) qa: record macro a

9) q: stop recording macro

10) @a: run macro a

11) @@: rerun last macro

12) cmd + enter(visual studio code only): normal mode에서 새로운 줄 만듬.

1-6. Vim Markers

1) :marks : 현재 mark 리스트 출력

2) ma : 현재 위치를 a 레지스터에 저장

3) `a : a에 저장된 위치로 이동

4) :ju : list of jumps

5) `0 : Vim이 가장 마지막에 나간 부분으로 이동

6) `. : 파일의 마지막 변동이 시작한 위치로 이동

7) ‘” : 파일의 가장 마지막 수정 위치로 이동

1-7. Vim Registers

레지스터는 스타의 화면 저장과 같은 기능으로, Vim을 마스터하는 데 가장 중요한 feature 중 하나라고 한다. 이번에 잘 익혀서 더 효율적으로 Vim을 활용하는 게 목표다.
매크로를 저장하는 것도 레지스터라 둘이 같이 사용한다.

1) “xy : x register의 컨텐츠 저장

2) “xp : x register의 컨텐츠 붙여넣기

3) “+y : system clipboard register에 저장(이러면 시스템이랑 vim이랑 환경 공유 가능!!)

4) “+p : system clipboard register 내용 붙여넣기

special registers:

1) 0 : last yank 2) “ : 최근 삭제/yank 3) % : 현재 파일 이름 4) # : 현재 파일 다른 이름 5) + : clipboard 6) / : 가장 최근 검색한 pattern 7) : : 가장 최근 입력한 command 8) . : 가장 최근 입력한 text 9) _ : 가장 최근 작은 delete

1-8. Vim 명령어들

1) :h : keyword help창

2) :ter : terminal window 연다.

3) k : 커서에 있는 키워드에 대한 설명 쪽으로 이동

4) :tabnew : 새로운 탭 생성

5) :vim /pattern/ {files} : pattern을 여러 파일에서 검색함.

6) :cn/p : 다음/이전 매칭으로

7) :copen : 전체 매칭 리스트가 담긴 파일 열기

8) :cclose : quickfix window 닫기

9) gt/T : 다음/이전 탭으로 이동

10) ngt : n번째 탭으로 이동

11) :tabc : 현재 탭 닫기

12) :sp file : 세로로 파일 스플릿

13) :vs file : 가로로 파일 스플릿

프로그래머의 기본기 편

1. 생산성 향상을 위한 Macbook/IDE 단축키 연습

우리가 좋아하는 스타크래프트, 롤, RPG 등의 게임에서 숙련된 플레이어들은 모두 단축키를 누구보다 잘 활용한다는 공통점이 있다.

  • 스타크래프트 프로들은 일반 유저들이 흔히 쓰는 부대 지정(ctrl + {숫자}), 부대 선택, 건물 단축키 뿐만 아니라 화면 저장, 저장한 화면으로 이동, 카메라 이동, 건물 부대지정 등의 방법을 활용하여 남들보다 같은 시간에 더 많은 명령을 유닛들에게 내릴 수 있다.
  • RPG에서도 한 직업이 쓸 수 있는 스킬들이 수십 가지가 되는데 이러한 스킬들을 왼손만 사용하여 누를 수 있는 단축키로 얼마나 효율적으로 배분하냐가 실력에 큰 영향을 미친다.

이처럼 잘 구축한 단축키 세팅, 그리고 그걸 활용하도록 기본기를 연습하면 당신의 두 손이 놀지 않고 바쁘게 움직일 수 있게 될 것이고, 그 만큼 당신의 능률도 오를 것이다.

프로그래머의 능률은 두 가지 측면에서 결정된다:

  1. 프로그래밍 속도: 이건 기술적인 부분이 아니라 그 사람의 머리가 얼마나 문제를 빨리 푸냐에 따라 달라지는 것이므로 기술적으로 익힐 수 없다. 그저 프로그래밍을 꾸준히 오래 연습하는 것이 유일한 향상 방법이다.
  2. 문서 작성 속도: 경력이 올라갈 수록 좋은 프로그램을 작성하는 것 만큼 문서를 잘 작성하는 게 중요해진다. 이러한 문서 작성 업무도 기술적인 부분이 아닌
  3. 기타 컴퓨터 작업: 메일이 왔을 때 그 브라우저에 가서 확인하고, 현재 브라우저에서 다른 탭을 열고, 새로 받은 파일을 여는 등의 작업을 하는 등 프로그래밍 뿐만 아니라 컴퓨터 사용자로써 하게 되는 전반적인 기본 컴퓨터 조작이다. 이러한 부분은 기술적인 부분으로 빠르게 배우고 개선할 수 있다.
    • 프로그래머의 가장 기본 손 자세는 양손이 키보드에 위치해 있을 때이다.
    • 만약 당신이 키보드로 해결할 수 있는 일을 능숙하지 못해 오른손을 마우스로 옮겨서 마우스로 클릭해서 해야 한다면 그 만큼 당신의 기본 능률이 저하되는 것이다
    • 마우스로 하는 거의 대부분의 일은 키보드 단축키나 터미널 명령어로 대체할 수 있으므로 그러한 단축키들을 외우고 자동으로 구사할 수 있어야 한다.

컴퓨터 단축키와 터미널 명령어를 공부하고 자유자재로 사용할 수 있도록 익히는 것이야말로 프로그래머의 기본기이다. 이러한 기본기를 철저히 익혀서 더 효율적인 업무를 진행할 수 있도록 컴퓨터 전반, 자주 사용하는 IDE, 여러 단축키와 명령어들을 정리하고 연습한다.

1-1. 컴퓨터 전반에 대한 단축키

저장/열기, 파일 닫기 등의 많이 알려진 단축키들은 제외한다. 컴퓨터공학부가 그 정도 단축키도 모를 것이라 생각하지 않는다.

1-1.맥북 관련 단축키

저장/열기, 파일 닫기 등의 많이 알려진 단축키들은 제외한다. 컴퓨터공학부가 그 정도 단축키도 모를 것이라 생각하지 않는다. 명령어 | 하는 일 –|– cmd + , | 프로그램의 시스템 환경설정을 염(preference) cmd + ctrl + q | 빠르게 컴퓨터 잠자기 모드로 cmd + shift + 4 | 범위를 선택하고 스크린샷 cmd + shift + 3 | 전체 화면 스크린샷 cmd + space | spotlight 생성 cmd + option + d | dock 없애기

1-2. 익스플로러 관련 단축키

명령어 | 하는 일 –|– ctrl + tab| 크롬에서 다음 탭으로 이동 / ctrl + shift + tab: 크롬에서 이전 탭으로 이동 ctrl + t| 새로운 탭 만들기 ctrl + 0 ~ 8| 0 ~ 8 번 탭으로 이동 cmd + l| url 입력 창으로 이동 /| 구글에서 검색 창으로 이동 alt + -> / alt + <- | 앞으로 가기/뒤로 가기 cmd -/cmd +| 줌 아웃/줌 인 F11| 전체 화면 모드로 전환 spacebar| 한 페이지씩 내려감 shift + spacebar| 한 페이지씩 올라감 cmd + w| 현재 탭 닫음 cmd + shift + w| 현재 윈도우 닫음 cmt + shift + t| 가장 최근에 닫은 탭을 다시 연다.

1-3. Visual Studio Code 관련 단축키

명령어 | 하는 일 –|– shift + cmd + p | pallette shift + p | 파일 검색창 cmd + / | 선택한 영역 모두 주석 처리 ctrl + option + cmd + n| 새로운 파일 생성 option + cmd + [/] | fold/unfold

1-4. intellij 프로그램들

명령어 | 하는 일 –|– cmd + b| 구현으로 가기/사용 위치로 이동 F2| 다음 에러로 이동 cmd + Enter| 현재 컨텍스트 액션 표시 cmd + e | 최근에 실행한 파일로 이동 ctrl + cmd + l | formatting shift + shift | Search Everything

1-5. Vim Normal Mode

Vim을 굉장히 좋아한다. 그 자유도와 키보드로만 사용 가능한 명령어 목록이 가진 포텐셜은 무궁무진하다. 대신 Vim을 정말 효과적으로 잘 쓰려면 그 수 많은 단축키들과 명령어들을 잘 숙지하고 있어야 한다. 아는 만큼 나오는 정직한 친구가 바로 Vim이다.

명령어 하는 일
”» / «” indent / cancel indent
{/} jump to prev/next paragraph
ctrl + e/y 한 줄 아래/위로 스크린 옮김
ctrl + f/b 한 스크린 아래/위로 스크린 옮김
ctrl + d/u 반 스크린 아래/위로 옮김
zz 커서가 스크린 중앙이 되도록 스크린 옮김
R ESC가 눌릴 때까지 replace
qa record macro a
q stop recording macro
a run macro a
@@ rerun last macro
cmd + enter(visual studio code only) normal mode에서 새로운 줄 만듬.

1-6. Vim Markers

명령어 | 하는 일 –|– :marks | 현재 mark 리스트 출력 ma | 현재 위치를 a 레지스터에 저장 a | a에 저장된 위치로 이동 :ju | list of jumps 0 | Vim이 가장 마지막에 나간 부분으로 이동 `. | 파일의 마지막 변동이 시작한 위치로 이동 ‘” | 파일의 가장 마지막 수정 위치로 이동

1-7. Vim Registers

레지스터는 스타의 화면 저장과 같은 기능으로, Vim을 마스터하는 데 가장 중요한 feature 중 하나라고 한다. 이번에 잘 익혀서 더 효율적으로 Vim을 활용하는 게 목표다.
매크로를 저장하는 것도 레지스터라 둘이 같이 사용한다.

명령어 하는 일
“xy x register의 컨텐츠 저장
“xp x register의 컨텐츠 붙여넣기
“+y system clipboard register에 저장(이러면 시스템이랑 vim이랑 환경 공유 가능!!)
“+p system clipboard register 내용 붙여넣기

special registers:

register | 하는 일
–|–
0 | last yank
” | 최근 삭제/yank
% | 현재 파일 이름
”#” | 현재 파일 다른 이름
”+” | clipboard
/ | 가장 최근 검색한 pattern
가장 최근 입력한 command  
. 가장 최근 입력한 text
_ 가장 최근 작은 delete

1-8. Vim 명령어들

명령어 | 하는 일 –|– :h | keyword help창 :ter | terminal window 연다. k | 커서에 있는 키워드에 대한 설명 쪽으로 이동 :tabnew | 새로운 탭 생성 :vim /pattern/ {files} | pattern을 여러 파일에서 검색함. :cn/p | 다음/이전 매칭으로 :copen | 전체 매칭 리스트가 담긴 파일 열기 :cclose | quickfix window 닫기 gt/T | 다음/이전 탭으로 이동 ngt | n번째 탭으로 이동 :tabc | 현재 탭 닫기 :sp file | 세로로 파일 스플릿 :vs file | 가로로 파일 스플릿

이러한 명령어들을 코딩할 때 의식적으로 사용하면서 숙련도를 높이자.