좋은 프로그래머가 되기 위해서는 좋은 코드를 작성할 줄 알아야 할 것이다. 그렇다면 좋은 코드는 무엇이고, 나쁜 코드는 무엇일까?
나쁜 코드는 요약하자면, 다른 사람이 코드를 읽고 그 흐름이나 의도를 파악할 수 없는 코드를 말한다. 나쁜 코드의 문제점은 :
본 수업을 통해서는 다음을 배우게 된다고 한다
1. 나쁜 코드와 좋은 코드를 구분하는 방법
2. 좋은 코드를 작성하는 방법
3. 나쁜 코드를 좋은 코드로 변환하는 방법
나쁜 코드를 작성하는 것이 처음에는 빨라 보이지만 이는 착각이다. 결국 나쁜 코드는 팀의 개발 속도를 늦추며, 나중에 전체 시스템을 다시 디자인해야 할만큼 문제가 커진다
새로운 시스템도 결국 관리되지 않으면 나쁜 코드로 변해버린다
✔️ 좋은 코드가 나쁜 코드로 변하는 이유는 다음과 같다
1. 요구사항이 변경된다
2. 일정이 너무 빡빡하다
3. 관리자와 고객이 너무 엄격하다
모든 개발자는 나쁜 코드가 얼마나 팀 전체의 진행을 느리게 하는지 알고 있지만, 여전히 마감 기한을 맞추기 위해 나쁜 코드를 작성하게 된다(찔려 막..)
하지만 나쁜 코드를 작성한다고 마감 기한을 지킬 수 있는 것이 아니다. 오히려 나쁜 코드가 즉각적으로 개발 속도를 늦추고, 결국 마감 기한을 맞추지 못하게 된다
유일한 해결책은 항상 코드를 가능한 한 깨끗하게 유지하는 것이다
그래서 뭐가 클린 코드인데~?
Bjarne Stroustrup (C++ 창시자)
"나는 내 코드를 우아하고 효율적으로 만드는 것을 좋아한다. 로직은 직관적이어야 하고, 의존성은 유지보수를 용이하게 하기 위해 최소화되어야 한다. 에러 처리는 완벽해야 한다. 클린 코드는 사람들이 원칙 없는 최적화를 통해 코드를 엉망으로 만들고 싶지 않게 한다. 클린 코드는 한 가지를 잘 한다."
Michael Feathers
마치 누군가가 코드를 작성하는 것에 진심으로 신경을 쓴 것처럼 보여야 한다"고 정의합니다. 클린 코드는 더 이상 개선할 여지가 없을 만큼 깔끔하게 작성된 것이며, 모든 요소들이 잘 고려된 결과여야 한다
Ron Jeffries는 우선순위에 따라 클린 코드를 정의한다
프로그래머는 단순한 코드 작성자가 아닌 저자와 같다. 따라서 프로그램은 쉽게 읽혀야 하며, 이는 책임 있는 프로그래머의 기본적인 의무이다!
코드를 작성하는 시간보다 읽고 탐색하는 시간이 훨씬 더 많기 때문에, 코드를 쉽게 읽을 수 있도록 작성해야 코드 작성도 쉽게 할 수 있게 된다.
보이스카우트 규칙 : "캠프장을 처음보다 더 깨끗하게 하라"
이 규칙을 코딩에 적용하여 코드를 수정할 때마다 조금씩 더 깨끗하게 유지하려고 노력해야 한다. 예를 들어, 하나의 변수 이름을 더 명확하게 바꾸거나, 너무 큰 함수를 분리하는 등의 작은 변화가 누적되면 코드가 점점 더 나빠지는 것을 막을 수 있다.