1. WAS와 WEB SERVER의 차이
- 비즈니스 로직이 있다면 WAS
- 비즈니스 로직이 없다면 WEB Server
2. Spring Framework란?
- 자바 객체 직접 관리
- 객체의 라이프 사이클을 스프링이 직접 관리하여, 객체를 스프링으로 부터 얻어 온다.
- IoC(Inversion of Controll) - 제어의 역전
- 제어권을 개발자가 아닌 프레임워크가 갖고 있어서, 필요한 코드를 호출할 경우 스프링에서 사용자의 코드를 호출한다.
- DI (Dependency Injection) - 의존성 주입
- 객체를 생성할 때 필요한 외부의 객체를 스프링이 생성하여 주입해준다.
- AOP (Aspect-Oriented Programming) - 관점 지향 프로그래밍
- 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 따로 관리한다.
- ERROR 코드별로 나눠서 ENUM으로 관리했던걸 생각하면 될 듯
❇️ Framework와 library의 차이점
→ 둘 다 개발자들을 돕기위한 것들이지만, 라이브러리 같은 경우 개발자가 필요한 경우 가져다 쓰는 방식으로, 제어권을 개발자가 갖고 있지만, 프레임워크의 경우 클래스나 인터페이스 같이 프레임워크가 규정한 규칙에 맞게 제공한 것을 개발자가 그에 맞게 사용하는 것을 말한다. 즉, IoC(Inversion of Controll) 제어의 역전의
예시이다.
3. Spring MVC
- Model : 데이터를 관리하고 비즈니스 로직을 처리하는 부분
- View : 비즈니스 로직 처리결과를 사용자의 인터페이스에 표현하는 부분
- Controller : 사용자의 요청에 맞게 Model과 View 를 중개하는 부분
4. MVC의 흐름
- 클라이언트가 url로 요청(request)을 보낸다.
- 디스패쳐 서블릿이 해당 요청을 받고, 핸들러 메핑을 통해 맞는 컨트롤러를 찾는다.
- 찾았다면 핸들러 어탭터에게 요청을 맡긴다.