보다시피 몇몇 코드 블록을 새 줄로 분리했습니다.
먼저 IDENTITY 필드를 다른 상수들과 분리했습니다. IDENTITY 필드는 특정 단위와는 독립적이고 마일과 킬로미터 간 두 변환률보다 더 추상적이니 분리해야 합니다.
getConversionRate()에서는 두 if 블록을 서로 분리했습니다. 확인하는 사항이 다르니까요. 첫 번째 if는 같은 단위인지 확인하고 두 번째 if는 변환합니다. 빈 줄을 사용해 수직으로 분리하면 읽는 사람이 더 명확히 이해할 수 있습니다.
경험에 비추어보면 연관된 코드와 개념은 함께 그루핑하고 서로 다른 그룹은 빈 줄로 각각 분리해야 합니다.
수직 공간이라는 개념은 훨씬 더 확장된 개념입니다. 로버트 C. 마틴은 자신의 저서 <클린 코드>에서 수직 서식화를 신문에 비유해 설명했습니다. 훌륭한 기사는 제목(클래스명)으로 시작해 섹션 머릿말(공개 멤버, 생성자, 메서드)에 이어 세부 내용(비공개 메서드)이 나온다고요. 코드를 이렇게 조직하면 코드를 읽어 내려가기만 해도 이미 클래스를 훨씬 더 쉽게 이해할 수 있습니다. 클래스에서 기능(feature)을 찾기도 훨씬 쉬워집니다.