아직 학부생이지만, 좋은 가르침을 많이 받아서 기록해두고자 합니다.
Main 함수 내부에 많은 것을 넣지 않기.
이를태면 아래와 같은 형식이 좋습니다.
int main(int argc, char *argv[]) {
SolveQuiz();
return 0;
}
괄호는 열자마자 닫기.
저는 위 Main함수를 작성할 때, { } 괄호를 같이 작성한 다음
그 사이에 내용을 쓰고 Enter를 이용해 정리했습니다.
IDE를 사용한다면 알아서 해주는 기능이죠. :-)
한 번이라도 작업이 반복된다면, 함수로 만들기.
예를 들어 아래와 같은 코드가 있다고 가정해봅니다.
void SolveQuiz() {
for (int i = 0; i < 10; i++) ...
for (int i = 0; i < 10; i++) ...
}
반복되는 for loop를 함수로 만들어줄 수 있습니다.
void loop(int iter) {
for (int i = 0; i < iter; i++) ...
}
void SolveQuiz() {
loop(10);
loop(10);
}
코드가 간결해질 뿐만 아니라, 가독성이 높아집니다.
이때 좋은 함수를 만들기 위해 고민하는 시간은 무척 값집니다.
객체지향 언어에서, Design Pattern 과 객체의 개념 명확히 익히기.
https://www.oodesign.com/
무척 유용합니다.
시간을 많이 들이더라도 꼭 익히는 것을 추천합니다.
주석으로 생각하기.
이를테면 이런 식입니다.
void print_arr() {
// 배열을 출력하는 함수.
// 출력이 끝나면 종료되므로, void로 했다.
// 출력에는 시작점, 끝점, 배열이 필요하지? 그럼 매개변수는...
...
}
생각의 흐름을 눈으로 보면 명확해집니다.
그리고 나중에 자신이 어떤 의도로 코드를 작성했는지 알 수 있습니다.
상상 이상으로 짧은 시간 만에 코드의 역할을 잊어버리게 됩니다.
개인적으로, 작성한 코드를 다음 날 다시 보면 이해가 되지 않았습니다.
모든 일을 최소 단위로 나누고 진행하기.
-> 과제를 해야지 ... 를 개선해봅시다.
-> 컴퓨터를 켜고, Visual Studio를 열고, 로직을 고민하고, 코드를 작성하고, 고쳐나가야지 ... 와 같이, 상세할수록 좋습니다.
이렇게 문제상황을 나누어서 생각하는 건 해결의 출발점입니다.
알고리즘 문제를 푸는 것과 같습니다.
코드 관리에 익숙해지기.
GitHub를 통한 버전 관리의 중요성을 뼈저리게 느낀 일이 있습니다.
정말 오랜 시간을 들여 만들어낸 프로그램이 있었습니다.
버전 관리는 고사하고 백업조차 하지 않았습니다.
대체 뭘 잘못한건지, 프로그램 전체가 먹통이 되어 버렸습니다.
한참을 복원하려 애썼습니다.
분명 코드 한 줄 추가하기 전에는 잘 됐으니까요.
Ctrl + Z는 만능이 아니었습니다.
결국 실패했고, 하나하나 다시 만들었습니다.
당연하게 움직이는 건 없다는 것을 기억하기.
마법처럼 동작하는 앱이라도, 그 내부에는 얼마나 많은 예외처리를 한땀한땀 만들어 두었을 겁니다.
그래서 세상의 모든 process에 관심을 가질 필요가 있습니다.
예를 들면 이렇습니다.
출근할 때, 버스를 타고, 커피를 사고, 사원증을 찍고 ...
버스의 교통카드 인식은 어떻게 이루어질까요?
카페의 DB 구조는 어떨까요? 포스기는 어떻게 구현했을까요?
생각할 거리는 이렇게 많고, 분명 개발자로서의 삶에 도움이 됩니다.
생활을 편리하게 하기 위한 방법을 생각하는 사람들이니까요.
바쁘게 사는 사람의 성취가 더 높다는 것을 기억하기.
1년 안에 여행도 가고, 프로젝트도 하고, 운동도 하고, ... 여유가 없어보이나요?
하지만 바쁘게 살아본 경험이 있다면, 그때의 놀라운 성취를 기억할 겁니다.
개인적인 경험을 말씀드리려고 합니다.
대학 입학 후 2년동안 아무것도 하지 않았습니다.
원하지 않았던 대학에 통학하게 되면서,
왕복 5시간이 걸리니까 집에 가면 아무것도 못 하는 게 당연하다고 생각했습니다.
그리고 3학년이 되었습니다.
C# WinForm을 다루고, Android Studio로 앱을 만들고, MySQL로 원하는 결과를 보고, VMware로 리눅스 환경에서 vim 에디터를 이용한 코딩을 하고, 유튜브를 시작하고, velog도 시작했습니다. 계속 미루던 운동과 건강한 식단 기록도 시작했습니다. 좋아하는 여행도 다녀왔습니다.
스스로가 달라진 것은 아무것도 없었습니다. 그저 해야만 하는 환경이 있었을 뿐이고, 해냈습니다. 생각보다 별 거 아니었습니다.
저는 부지런한 사람이 절대 아닙니다. "해야만 하는 환경"속에 자신을 밀어넣는 것이 중요합니다.
내가 지금 여기 있는 이유를 생각해보기.