이전의 프로그램 개발 방식은 Client 의 요청을 Server 에서 요청매핑, DB 호출, 응답을 모두 한 곳에서 처리하는 식이었다.
하지만 무언가 기존 개발 된 2-tier
구조에서 무언가를 변경, 수정을 해야하면, 손 댈 곳이 한두 군데가 아니어서 유지 관리가 힘들어 진다. 그래서 역할에 맞게 분할하여 3-tier
구조가 나왔다고 한다.
이후 클라이언트 요구사항이 다양지고 서비스가 더욱 복잡해 짐에 따라 유지 관리를 더욱 쉽게 하도록 계층을 이것보다 더 세분화 해서 나누고 있다고 한다.