깨끗한 코드란 무엇인가
책 『클린 코드(Clean Code)』에서 저자는 언제나 코드를 최대한 깨끗하게 유지하는 습관을 가지라고 말합니다.
그렇다면 깨끗한 코드란 무엇인가?
이에 대한 유명하고 노련한 프로그래머들의 의견을 정리해 보았습니다.
비야네 스트롭스트룹(Bjarne Stroustrup)
C++ 창시자, The C++ Programming Language 저자
비야네는 '우아한'이라는 단어를 사용한다. '우아한'이란 단어는 사전에 따르면 "외양이나 태도가 기품있고 단아하며 보기에 즐거운; 교묘하고 단순해 보기에 즐거운"이라는 뜻이다. 비야네에 따르면 깨끗한 코드는 '보기에 즐거운' 코드다.
비야네는 효율도 언급한다. 단순히 속도만을 뜻하는 것이 아니다. CPU 자원을 낭비하는 코드도 우아하지 못하다.
그래디 부치(Grady Booch)
Object Oriented Analysis and Design with Application 저자
그래디는 가독성을 강조한다. 깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다.
코드는 추측이 아니라 사실에 기반해야 한다. 반드시 필요한 내용만 담아야 한다. 코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야 한다.
데이브 토마스(Dave Thomas)
OTI 창립자이자 이클립스 전략의 대부
데이브는 깨끗한 코드란 다른 사람이 고치기 쉽다고 단언한다. 실제로 읽기 쉬운 코드와 고치기 쉬운 코드는 엄연히 다르다!
테스트 케이스에 대해 언급했다. 테스트 주도 개발(Test Driven Development)이라는 분야는 오늘날 가장 근본적인 원칙 중 하나가 되었다.
테스트 케이스가 없는 코드는 깨끗한 코드가 아니다. 아무리 코드가 우아해도, 아무리 가독성이 높아도, 테스트 케이스가 없으면 깨끗하지 않다.
데이브는 '최소'라는 단어를 두번이나 사용했다. 작을수록 좋다.
데이브는 또한 코드가 '문학적'이어야 한다고 말한다. 요점은 인간이 읽기 좋은 코드를 작성하라는 말이다.
마이클 페더스(Michael Feathers)
Working Effectively with Legacy Code 저자
한 마디로 요약하면 '주의'다.
깨끗한 코드는 주의 깊게 작성한 코드다. 누군가 시간을 들여 깔끔하고 단정하게 정리한 코드다. 세세한 사항까지 꼼꼼하게 신경 쓴 코드다. 주의를 기울인 코드다.
론 제프리스(Ron Jeffries)
Extreme Programming Installed와 Extreme Programming Adventure in C# 저자
워드 커닝햄(Ward Cunningham)
Wiki 창시자, Fit 창시자, eXtreme Programming 공동 창시자, 디자인 패턴을 뒤에서 움직이는 전문가, Smalltalk와 객체 지향의 정신적 지도자, 코드를 사랑하는 프로그래머들의 대부
깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다. 읽으면서 짐작한 대로 돌아가는 코드가 깨끗한 코드다. 명백하고 단순해 마음이 끌리는 코드가 깨끗한 코드다.
각 모듈은 다음 무대를 준비한다. 모듈을 읽으면 다음에 벌어질 상황이 보인다.
워드가 말하는 '아름다운 코드'란 무엇인가?
우리는 항상 언어가 문제에 적합하지 않다며 언어를 비난한다. 하지만 워드는 그 책임을 우리 자신에게 돌린다. "코드가 그 문제를 풀기 위한 언어처럼 보인다면" 아름다운 코드라 말한다. 언어를 단순하게 보이도록 만드는 책임이 우리에게 있다는 뜻이다. 우리 업계에는 특정 언어를 신봉하는 광신자가 아주 많다. 하지만 프로그램을 단순하게 보이도록 만드는 열쇠는 언어가 아니다. 언어를 단순하게 보이도록 만드는 열쇠는 프로그래머다.
'뉴런조각 > Booklog' 카테고리의 다른 글
[레버리지] "돈은 그렇게 버는 게 아니다" 책 레버리지 리뷰 (0) | 2019.10.12 |
---|---|
우아한 형제들 CTO 김범준의 개발자 추천 도서 10권 (0) | 2019.09.13 |
비트코인(Bitcoin)은 디지털 금이 되었습니다 (0) | 2019.09.11 |
부의 추월차선(The Millionaire Fastlane) #2 - 돈을 버는 방식은 바뀌었습니다 (0) | 2019.09.08 |
부의 추월차선(The Millionaire Fastlane) #1 - 돈을 버는 세가지 길 (0) | 2019.09.07 |
댓글