더북(TheBook)

비즈니스 계층은 데이터베이스나 스토리지 기술에 대해 아무것도 모른다. 필요할 때 DB 계층을 호출할 뿐이다. DB 계층은 데이터베이스 기능을 DB와 분리된 형태로 캡슐화한다. 이렇게 분리하면 스토리지 계층의 모의 구현을 비즈니스 계층에 쉽게 연결할 수 있기 때문에 비즈니스 로직을 테스트하기가 더 쉬워진다. 더 중요한 것은 이 아키텍처로 비즈니스 계층이나 웹 계층의 코드를 한 줄도 변경하지 않고 백그라운드에서 DB를 변경할 수 있다는 점이다. 그림 3-5에서 이러한 종류의 계층화가 어떤 모습인지 볼 수 있다.

▲ 그림 3-5 모바일 앱 API의 기본 아키텍처 예제

여기서 단점은 API에 새로운 기능을 추가할 때마다 새로운 비즈니스 계층 클래스나 메서드, 관련 DB 계층의 클래스와 메서드를 만들어야 한다는 것이다. 특히 마감이 코앞이고 기능이 비교적 단순한 경우에는 작업량이 많아 보일 수 있다. “단순한 SQL 쿼리를 위해 이런 모든 번거로움을 감수해야 하는 이유는 무엇일까?”라고 생각할 수도 있다. 최전방에서 많은 개발자의 환상을 실현시키고 기존의 추상화를 거슬러 보자.

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