몇 달 전 작성했던 코드를 다시 보며 무슨 생각으로 작성했는지 궁금했던 적 있나요? 동료가 적절한 시간 안에 그 코드를 이해하던가요? 읽기 쉬운 코드 작성은 프로그래머의 필수 자질입니다. 실제로 읽기 쉬운 코드 작성은 가장 중요한 의사소통 능력 중 하나입니다. 즉 읽기 쉬운 코드는 여러분을 대신해주는 홍보 담당자이자 명함입니다. 프로그래머가 지녀야 할 자질을 보여주어야 할 누군가에게 모든 것을 말해주고 초보자인지 전문가인지 금방 드러냅니다.
진실은 코드에 있습니다. 개발자의 의도나 문서에 적힌 약속은 잊으세요. 컴퓨터는 코드에서 명령한 대로 수행합니다. 컴파일러는 자바 코드를 받아 엄격히 제한된 여러 규칙에 기반해 기계적 표현인 바이트코드를 만듭니다. 코드가 규칙을 어기지 않았다면 컴파일합니다. 규칙을 어기면 화면은 오류 메시지로 가득 찹니다. 그게 전부입니다.
컴파일러는 자바 코드가 유효하면 항상 처리할 수 있지만 인간은 꼭 그렇지 않습니다. 사람이 읽고 이해하기 쉬운 코드를 작성하기란 컴파일되는 코드를 작성하기보다 훨씬 어렵습니다. 그래서 1장을 “이해하기 쉬운 전문적인 코드 작성”으로 시작하려고 합니다. 쓸모없는 비교와 부정을 빼야 하는 이유, 불 표현식을 간소화하는 방법처럼 코드를 읽기 쉽게 만드는 비결을 소개하겠습니다.
이해하기 쉬운 코드에는 버그가 적습니다. 1장을 다 읽고 나면 버그가 거의 없는 더 나은 코드를 작성할 수 있을 거예요. 조건 표현식에서 NullPointerException이 없어질 것이고 switch 실패나 GOTO FAIL 버그와 같은, 잘 알려지지 않은 버그 유형도 배우게 됩니다. 또한 코드 대칭(code symmetry)과 같은 일반적인 디자인 원칙도요. 그러면 시작해 봅시다!