더북(TheBook)

4.1.3 고수준 코드와 저수준 코드를 분리하지 않아도 되는 경우

모든 기능을 고수준 코드와 저수준 코드로 분리할 필요는 없다. 소프트웨어 시스템의 모든 기능이 복잡한 것은 아니기 때문이다. 더 간단한 기능에서는 실행할 내용에 대한 고수준 기술과 그 구현을 섞는 것이 허용된다. 고수준 코드의 구현 세부 사항을 비공개 메서드로 캡슐화하면, 필요할 때 구현 세부 사항으로 쉽게 이동할 수 있다. 항상 그렇듯이 복잡성이 증가한다고 느껴지면 코드를 즉시 리팩터링해야 한다.

기능의 복잡성과 관계없이, 절대 섞지 말아야 할 것은 인프라 코드비즈니스 코드다. 비즈니스 로직이 SQL 쿼리나 웹 서비스에서 정보를 가져오는 HTTP 호출 코드와 섞이지 않도록 해야 한다. 이런 경우 항상 ‘무엇’을 설명하는 고수준 인터페이스를 두고, 구현 세부 사항을 저수준 클래스에 넣어야 한다. 이에 대해서는 6장에서 더 자세히 다루겠다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.