Spring Framework 구조
POJO(Plain Old Java Object): 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용 될 수 있는 방식으로 설계된 오브젝트
Spring DI ( Dependency Injection )
- 스프링 컨테이너에 필요한 클래스들의 bean을 생성해 놓고 필요할 때 꺼내서 사용
- 객체의 의존성을 직접(new) 연결하는게 아니라 spring(xml)이 연결
- 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입
의존성 주입 방법
1.xml파일 내부에서 설정 2.자바 파일에서 Annotation을 사용
Spring IoC ( Inversion of Control )
- 프로그램을 제어하는 패턴 중 하나
- DI는 IoC패턴의 구현체 중 하나
- 약한 결합을 이용하여 객체 간 의존 관계를 쉽게 변경할 수 있음
- 개발자 대신 스프링 컨테이너가 필요에 따라 Bean들을 관리(제어)해주는 행위
따라서 Spring은 DI Framework 혹은 IoC Framework라고도 한다.
스프링 프레임워크 프로젝트 구조

빌드
- 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물
- 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물(
war파일을 톰캣 서버의 webapp 서버에 넣으면 해당 프로젝트를 사용할 수 있음)
빌드 도구란 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이다.
Maven은 빌드 도구 중 하나로, 필요한 라이브러리를 Maven 설정 파일(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다.
*<dependencies> 태그 안에 사용할 외부 라이브러리를 기입
출처: https://goddaehee.tistory.com/199 [갓대희의 작은공간:티스토리]

<패키징>


해당 프로젝트의 target 폴더 안에 war파일이 생성된다. 버전이 다르면 다른 war파일로 인식된다.
servlet-context.xml 파일
<!-- Controller 어노테이션이 있는 클래스의 객체를 스프링 컨테이너가 자동으로 생성함 -->
<annotation-driven />
<!-- View Resolver는 prefix + 컨트롤러에서 반환한 jsp 파일명 + suffix에 접근하여 해당 jsp파일을 찾아 랜더링함 -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<!-- 어노테이션을 스캔할 패키지 설정 -->
<context:component-scan base-package="com.test.root" />
MVC 패턴
https://cocoon1787.tistory.com/733
[개발상식] MVC 패턴이란? (Model-View-Controller)
🚀 이번 포스팅은 개발자 면접에서 자주 나오는 질문 중의 하나인 "MVC패턴"에 대한 내용입니다. MVC패턴의 의미와 사용해야 하는 이유, 사용 예시 등등에 대해 알아보겠습니다. 💡 MVC 패턴이란?
cocoon1787.tistory.com
MVC2 모델
- Model : 데이터 처리하는 영역
- View : 화면을 구현하는 영역
- Controller : 요청 경로를 처리하는 영역

