G21: 알고리즘을 이해하라


대다수 괴상한 코드는 사람들이 알고리즘을 충분히 이해하지 않은 채 코드를 구현한 탓이다


잠시 멈추고 실제 알고리즘을 고민하는 대신 여기저기 if문과 플래그를 넣어보며 코드를 돌리는 탓이다


프로그래밍은 흔히 탐험이다 알고리즘을 안다고 생각하지만 실제는 코드가 돌아갈 때까지 이리저리 찔러보며 굴려본다


돌아간다는 사실은 어떻게 아느냐고? 생각할 수 있는 테스트 케이스를 모두 통과하니까 (혹은 api 호출이 200 status)


이 방식이 틀렸다는 말이 아니다 하지만 돌아간다고 말하기는 뭔가 부족하다


구현이 끝났다고 선언하기 전에 함수가 돌아가는 방식을 확실히 이해하는지 확인하라


테스트 케이스를 모두 통과한다는 사실만으로 부족하다 작성자가 알고리즘이 올바르다는 사실을 알아야한다


알고리즘이 올바르다는 사실을 확인하고 이해하려면 기능이 뻔히 보일 정도로 함수를 깔끔하고 명확하게 재구성하는 방법이 최고다