3계층 아키텍처란? - 애플리케이션을 3개의 논리적 및 물리적으로 계층을 나누어 구성한다는 의미이다. 하나의 기능을 수행하는 코드를 각 계층으로 나눌 시 유지/보수가 쉬우며 별도의 개발 팀에 의해 동시에 개발될 수 있고 또한 다른 계층에 영향을 주지않는다는 장점이 있다. 크게 컨트롤러 / 서비스 / 레퍼지토리로 나누게 되는데, 컨트롤러는 클라이언트에서 요청이 왔을때 그것을 서비스로 전달하고 서비스에서 가공된 데이터를 다시 클라이언트에게 전달하는 구조다. 다음 서비스는 비즈니스 로직을 사용하는 최중요 코드이다, 이 계층에서 핵심 기능들이 수행된다. 마지막으로 레퍼지토리 계층은 전달받은 데이터를 이용해 데이터베이스와 직접적인 연결이 이루어지는 계층이다. 데이터베이스에서 데이터를 가져와 전달하거나 전달받은 데..