Spring - 기본, 프로젝트 생성
스프링
JAVA에서 웹 애플리케이션을 신속하게 개발할 수 있게 하는 경량급 오픈 소스 프레임워크다.
스프링은 의존성 주입이나 관점 지향 프로그래밍(필터), 웹 MVC 프레임워크를 함께 제공한다.
스프링은 별도의 API를 사용하여 코드를 따로 작성하지 않는 정책을 쓰고 있다.
또한 스프링은 MVC 패턴의 컨트롤러에서 HttpServlet 클래스를 상속받지 않아도 된다.
의존성 주입 지원
의존성 주입이란 객체 간 관계를 관리할 때 사용하는 기법으로 객체 사이의 의존 관계를 직접 생성(new)하거나 제어하는 것이 아닌 외부의 빈 설정 파일을 활용해 주입할 수 있다.
컨테이너가 객체 의존 관계를 자동으로 연결하므로 객체들의 관계에 관여하지 않아도 된다.
*빈 설정 파일(.xml)에서 객체 생성해주면 된다.
public class A {
private B b;
public A(B b){
this.b = b;
}
}
public class C{
private D d;
public void setD(D d){
this.d = d;
}
}
위 코드는 각 객체간 의존성을 주입하는 방법으로 각각 생성자, Setter 메서드를 통해 의존성을 주입하는 방법이다.
스프링에서는 두 방식을 간단한 애너테이션만으로 처리할 수 있다.
*애너테이션은 @으로 시작한다. JSP MVC 패턴을 공부할 때 컨트롤러에 사용했던 @WebServlet을 예로 들 수 있다.
의존성 주입 장점
두 객체 간의 의존 관계를 줄여 코드의 유연성을 증가시키고, 특정 객체가 변하더라도 의존 관계에 있는 객체에 미치는 영향이 적다.
AOP지원(관점 지향 프로그래밍)
객체 지향을 보완하는 패러다임으로 애플리케이션 전체에 걸쳐 사용되는 기능을 애스팩트라는 공통 모듈에 담아 재사용할 수 있게한다.
트랜잭션 지원
트랜잭션이란 쪼갤 수 없는 최소 단위의 작업으로 애플리케이션을 개발할 때 데이터 무결성과 일관성을 보장하는 필수 기법이다.
데이터베이스를 이용할 때 신경써야할 부분은 여러 작업으로 진행할 때의 트랜잭션 처리다.
스프링 설치
![]() |
1. IDE에서 Help ㅡ> Eclipse Marketplace... 클릭
![]() |
2. Find에서 Spring 검색 후에 Spring Tools 4 Install ㅡ> 전부 다 체크 후에 Confirm ㅡ> Finish
이후 쭉 진행하면 설치 완료
프로젝트 생성
![]() |
New ㅡ> Maven Project
![]() |
워크스페이스 설정
![]() |
Filter에 webapp을 검색하여 org.apache.maven.archetypes 선택
![]() |
Group Id
- 프로젝트를 고유하게 식별할 수 있는 식별자.
- 보통 회사나 조직의 도메인 이름을 거꾸로 사용 (예: com.springmvc)
- 여러 프로젝트를 관리할 때 이 값을 통해 프로젝트를 구분할 수 있다.
Artifact Id
- 생성되는 프로젝트의 이름.
- 이 값이 빌드된 JAR 또는 WAR 파일의 이름이 된다.
- 위 이미지에서는 test로 설정되어 있다.
Version
- 프로젝트의 현재 버전을 나타낸다.
- 기본값은 0.0.1-SNAPSHOT이며, "SNAPSHOT"은 아직 개발 중인 버전을 의미한다.
- 출시된 버전이라면 1.0.0과 같이 명시한다.
Package
- Java 소스 파일이 포함될 기본 패키지 이름.
- Group Id와 Artifact Id를 조합한 기본 패키지가 자동으로 설정된다. (예: com.springmvc.test)
![]() |
프로젝트를 생성하면 콘솔에 빌드 로그가 출력되며, 도중에 "Y: "가 표시될 경우 "Y"를 입력한 후 Enter를 눌러야 빌드가 진행된다.