목록2019/04/09 (2)
규도자 블로그
알고리즘 문제들을 푸는 걸 좋아했는데 점점 나만의 재량으로 풀 수 없는 문제들이 나올 때, 예를 들어 다이나믹 프로그래밍이나 그래프이론, 탐색 등의 요소가 가미됐을 때 들었던 생각들이다. 그러니까... 기분이 이상했다고 해야하나. 창의력 문제였던 줄만 알았던 알고리즘 문제조차 사실은 수학문제들 처럼 공식을 알아서 대입해야만 풀 수 있는 것들이었고 결국엔 공식의 적절한 활용과 응용으로 풀어내는 것들이었다는 걸 깨닫고 나니 결국 알고리즘도 수학이랑 다를 게 없구나 하는 생각이 들었다. 사실 이런 생각들이 물밀듯이 들어왔던 계기가 있는데 얼마 전에 에라토스테네스의 체를 응용해야하만 하는 문제를 만났을 때였다. 에라토스테네스의 체가 뭔지도 몰랐던 나는 어리둥절했고 위키피디아에 검색해봐서 아 이게 에라토스테네스의..
내가 코드를 작성할 때 중요하게 생각하는 것이 있다. 정확성은 프로그램이 가져야할 필수요소이고 애초에 정확성이 없다면 프로그램으로서의 가치가 없으므로 딱히 강조하지 않겠다. 그밖에 중요하게 생각하는 건 바로 간결성과 가독성이다. 그 중에서도 특히 중요한 건 가독성이라고 생각한다. 코드는 결국 사람이 읽기 때문이다. 코드는 결국 다시 읽힌다. 그사람은 당신의 팀원일 수도, 또 당신 자신일 수도 있다. 만약 옛날에 무아지경으로 마구마구 작성해놓은 코드가 다시 필요하다고 할 때 마구잡이로 조사놓은 변수이름들과 코드를 보면 어떤 느낌일까. 예전의 당신이 원망스러워질 것이다. 나는 이러한 경험을 몇 번 겪고 나서 나만의 일정한 규칙을 정해서 변수를 작성하기 시작했다. 그 이후로는 다른 클래스나 다른 파일에서 어떠..