Framework
https://start.spring.io/
- Java Servlet ? 클라이언트 웹 요청 처리에 특화된 Java클래스의 일종
Spring MVC 같은 Java 기반의 웹 애플리케이션 내부에서 여전히 사용
- Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.
- 특정 환경에 종속적이지 않아야 한다.
Ioc/DI
, AOP
, PSA
기술을 지원.![]ex) 서블릿 기반의 애플리케이션을 웹에서 실행할 때 별도의 main()
메서드가 존재 x
서블릿 컨테이너의 경우, 클라이언트의 요청이 들어올 때마다 컨테이너 로직(service()메서드)이 서블릿을 직접 실행시켜줌.
main() 메서드처럼 애플리케이션이 시작되는 지점을
엔트리 포인트
라고 한다.
의존성 주입( IoC 개념을 좀 더 구체화 시킨 것 )
클래스 다이어그램 도구 : https://online.visual-paradigm.com/diagrams/features/
클래스 간의 의존 관계 성립
- 클래스끼리 사용하고자 하는 클래스의 객체 생성 후 참조하게 되면 의존 관계가 성립
- 생성자를 통해서 어떤 클래스의 객체를 전달 받는것 (의존성 주입)
클래스의 생성자로 객체를 전달 받는 코드가 있다면, 객체를 외부에서 주입 (의존성 주입)
결합을 할 때
느슨한 결합
이 필요하다. <인터페이스 사용>
- 애플리케이션의 핵심 업무 로직에서 로깅이나 보안, 트랜잭션과 같은 공통 기능 로직들을 분리하는 것