톰캣(Tomcat)
- 자바 기반 웹 애플리케이션 서버.
- 서블릿 컨테이너 역할도 한다.
- 서블릿 객체 생성/초기화/호출/종료 까지의 생명주기 관리.
- 서블릿 객체를 싱글톤으로 유지.
- 멀티쓰레딩으로 다중 요청을 동시에 처리.
서블릿(Servlet)
- 웹 서버 → 톰캣 통해 요청이 들어오면 앱으로 넘겨주고, 앱에서 반환하는 응답을 다시 웹 서버로 전달.
- 스프링에서는 DispatcherServlet 이 서블릿을 담당. https://mangkyu.tistory.com/18
계층 아키텍쳐(layered architecture)
- 애플리케이션 내에 각 컴포넌트를 비슷한 관심사끼리 묶은 구조.
계층 | 역할 | 컴포넌트 |
presentation | • 클라이언트의 요청 해석 및 응답 | • 서블릿
• 뷰 & 뷰 리졸버
• 컨트롤러 |
business 또는 service | • 도메인 객체의 조합을 통해 비즈니스 로직 구현
• 비즈니스 처리 전 유효성 검사 | ㅤ |
domain (optional) | • 비즈니스에 필요한 각 도메인 정의 | • Entity in JPA
• django 모델과 유사) |
data access 또는 persistence | • 데이터베이스 접근 | • DAO 또는 Repository in JPA |