프로그래머의 기본기 편
1. 생산성 향상을 위한 Macbook/IDE 단축키 연습
우리가 좋아하는 스타크래프트, 롤, RPG 등의 게임에서 숙련된 플레이어들은 모두 단축키를 누구보다 잘 활용한다는 공통점이 있다.
- 스타크래프트 프로들은 일반 유저들이 흔히 쓰는 부대 지정(ctrl + {숫자}), 부대 선택, 건물 단축키 뿐만 아니라 화면 저장, 저장한 화면으로 이동, 카메라 이동, 건물 부대지정 등의 방법을 활용하여 남들보다 같은 시간에 더 많은 명령을 유닛들에게 내릴 수 있다.
- RPG에서도 한 직업이 쓸 수 있는 스킬들이 수십 가지가 되는데 이러한 스킬들을 왼손만 사용하여 누를 수 있는 단축키로 얼마나 효율적으로 배분하냐가 실력에 큰 영향을 미친다.
이처럼 잘 구축한 단축키 세팅, 그리고 그걸 활용하도록 기본기를 연습하면 당신의 두 손이 놀지 않고 바쁘게 움직일 수 있게 될 것이고, 그 만큼 당신의 능률도 오를 것이다.
프로그래머의 능률은 두 가지 측면에서 결정된다:
- 프로그래밍 속도: 이건 기술적인 부분이 아니라 그 사람의 머리가 얼마나 문제를 빨리 푸냐에 따라 달라지는 것이므로 기술적으로 익힐 수 없다. 그저 프로그래밍을 꾸준히 오래 연습하는 것이 유일한 향상 방법이다.
- 문서 작성 속도: 경력이 올라갈 수록 좋은 프로그램을 작성하는 것 만큼 문서를 잘 작성하는 게 중요해진다. 이러한 문서 작성 업무도 기술적인 부분이 아닌
- 기타 컴퓨터 작업: 메일이 왔을 때 그 브라우저에 가서 확인하고, 현재 브라우저에서 다른 탭을 열고, 새로 받은 파일을 여는 등의 작업을 하는 등 프로그래밍 뿐만 아니라 컴퓨터 사용자로써 하게 되는 전반적인 기본 컴퓨터 조작이다. 이러한 부분은 기술적인 부분으로 빠르게 배우고 개선할 수 있다.
- 프로그래머의 가장 기본 손 자세는 양손이 키보드에 위치해 있을 때이다.
- 만약 당신이 키보드로 해결할 수 있는 일을 능숙하지 못해 오른손을 마우스로 옮겨서 마우스로 클릭해서 해야 한다면 그 만큼 당신의 기본 능률이 저하되는 것이다
- 마우스로 하는 거의 대부분의 일은 키보드 단축키나 터미널 명령어로 대체할 수 있으므로 그러한 단축키들을 외우고 자동으로 구사할 수 있어야 한다.
컴퓨터 단축키와 터미널 명령어를 공부하고 자유자재로 사용할 수 있도록 익히는 것이야말로 프로그래머의 기본기이다. 이러한 기본기를 철저히 익혀서 더 효율적인 업무를 진행할 수 있도록 컴퓨터 전반, 자주 사용하는 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에서도 한 직업이 쓸 수 있는 스킬들이 수십 가지가 되는데 이러한 스킬들을 왼손만 사용하여 누를 수 있는 단축키로 얼마나 효율적으로 배분하냐가 실력에 큰 영향을 미친다.
이처럼 잘 구축한 단축키 세팅, 그리고 그걸 활용하도록 기본기를 연습하면 당신의 두 손이 놀지 않고 바쁘게 움직일 수 있게 될 것이고, 그 만큼 당신의 능률도 오를 것이다.
프로그래머의 능률은 두 가지 측면에서 결정된다:
- 프로그래밍 속도: 이건 기술적인 부분이 아니라 그 사람의 머리가 얼마나 문제를 빨리 푸냐에 따라 달라지는 것이므로 기술적으로 익힐 수 없다. 그저 프로그래밍을 꾸준히 오래 연습하는 것이 유일한 향상 방법이다.
- 문서 작성 속도: 경력이 올라갈 수록 좋은 프로그램을 작성하는 것 만큼 문서를 잘 작성하는 게 중요해진다. 이러한 문서 작성 업무도 기술적인 부분이 아닌
- 기타 컴퓨터 작업: 메일이 왔을 때 그 브라우저에 가서 확인하고, 현재 브라우저에서 다른 탭을 열고, 새로 받은 파일을 여는 등의 작업을 하는 등 프로그래밍 뿐만 아니라 컴퓨터 사용자로써 하게 되는 전반적인 기본 컴퓨터 조작이다. 이러한 부분은 기술적인 부분으로 빠르게 배우고 개선할 수 있다.
- 프로그래머의 가장 기본 손 자세는 양손이 키보드에 위치해 있을 때이다.
- 만약 당신이 키보드로 해결할 수 있는 일을 능숙하지 못해 오른손을 마우스로 옮겨서 마우스로 클릭해서 해야 한다면 그 만큼 당신의 기본 능률이 저하되는 것이다
- 마우스로 하는 거의 대부분의 일은 키보드 단축키나 터미널 명령어로 대체할 수 있으므로 그러한 단축키들을 외우고 자동으로 구사할 수 있어야 한다.
컴퓨터 단축키와 터미널 명령어를 공부하고 자유자재로 사용할 수 있도록 익히는 것이야말로 프로그래머의 기본기이다. 이러한 기본기를 철저히 익혀서 더 효율적인 업무를 진행할 수 있도록 컴퓨터 전반, 자주 사용하는 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 | 가로로 파일 스플릿
이러한 명령어들을 코딩할 때 의식적으로 사용하면서 숙련도를 높이자.