Open topgaren opened 4 years ago
: 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 컨테이너.
일반적으로 객체를 생성하고 다른 객체와의 의존성을 만들기 위해선 프로그래머가 직접 객체를 생성하는 방식으로 진행되었다. 즉 객체를 제어하는 주체는 프로그래머였다. 그러나 스프링 컨테이너가 객체의 생성 및 소멸을 담당함으로써 객체에 대한 제어권은 프로그래머가 아니라 스프링 프레임워크로 넘어가게 되었다.
의존 관계가 생기는 상황은 다음과 같다. 클래스 B의 내부에서 클래스 A의 인스턴스를 생성하여 참조한다면, 클래스 B는 클래스 A에 대한 의존 관계가 생기게 된다. 그리고 위 처럼 new
키워드를 사용하여 내부적으로 객체를 생성하는 방식이 아니라 외부에서 객체를 생성하고 그 인스턴스를 넣어주는 것을 의존성 주입(Dependency Injection)이라고 표현한다.
스프링 프레임워크는 핵심 비즈니스 로직 구현에 집중할 수 있는 방법을 제공한다. 대부분의 시스템이 가지고 있는 보안, 로그, 트랜잭션 등 비즈니스 로직은 아니지만 반드시 처리해야하는 부분을 가리켜 스프링에서는 "횡단 관심사(Cross-Concern)"라고 한다. 스프링 프레임워크에서는 이러한 횡단 관심사를 모듈로 분리시킴으로써 반복적으로 나타나는 코드를 제거할 수 있게 한다.
Reference https://hoonmaro.tistory.com/32 https://limmmee.tistory.com/13?category=654011
위키백과 "모델-뷰-컨트롤러" 모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
MVC 패턴에 따라 웹 애플리케이션을 제작할 수 있도록 스프링에서 제공하는 프레임워크.
Image 참고 : http://egloos.zum.com/springmvc/v/504151
<!-- file: src/main/webapp/WEB-INF/web.xml -->
<!-- Processes application requests -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- file: src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml -->
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<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>
Image 출처 : https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html
src
src/main/java
: 개발되는 Java 코드의 경로.src/main/resources/
: 서버가 실행될 때 필요한 파일들의 경로.src/test/java
: 테스트 전용 코드를 위한 경로.src/test/resources
: 테스트 시에만 사용되는 파일들의 경로.webapp
resources
: 정적 데이터(image files, .css, .js, fonts 등)WEB-INF
WEB-INF
디렉터리는 웹 브라우저를 통한 접근이 불가능하다. 따라서 외부로 노출되면 안되는 정보들은 해당 디렉토리 안에 위치시키는 것이 좋다. classes
: 작성한 Java Servlet 파일들이 나중에 *.class 형태로 모두 해당 경로에 저장된다.spring
: Spring과 관련된 설정 파일을 저장하는 경로.views
: Controller와 매핑되는 *.jsp 파일들을 저장하는 경로.web.xml
: Web Application 설정을 위한 Web Deployment Descriptor
.pom.xml
Reference https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html https://jeong-pro.tistory.com/96
Spring Framework Study