🔑 스프링을 공부하면서 구조를 먼저 이해해야 작동원리가 이해되는 것 같다. 기본을 토대로 활용까지 달려야겠다.
POJO(Plan Old Java Object)
: POJO기반의 구성으로 다른 프레임워크들과 달리 이 관계를 구성할 때 별도의 API등을 사용하지 않는 POJO의 구성만으로 가능하도록 제작되어 있습니다.
의존성 주입(DI)
: 의존성(Dependency)라는 것은 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미합니다. 주입(Injection)은 말 그대로 외부에서 밀어넣는 것을 의마합니다.
AOP(Aspect Oriented Programming)
: 반복적인 코드를 줄이고, 핵심 비즈니스 로직에만 집중할 수 있는 방법을 제공합니다. 대부분의 시스템이 가지고 있는 보안이나 로그, 트랜잭션과 같이 비즈니스 로직은 아니지만 반드시 처리가 필요한 부분을 스프링에서는 '횡단 관심사'라고 합니다.
트랜잭션의 지원
: 스프링은 트랜잭션의 관리를 어노테이션이나 XML로 설정할 수 있기 때문에 개발자가 매번 상황에 맞는 코드를 작성할 필요가 없도록 설계되어있다.
Spring Legacy project 생성하고 Spring MVC Project를 생성한다. Project마다 구조가 조금씩 다르기 때문에 필요한 구조로 설정한다.
스프링에서 명명규칙은 매우 중요하다. 나중에 팀원과 함께하기 위해 규칙적인 이름으로 설정한다.
servlet-context.xml
: mvc 관련된 내용
root-context.xml
: mvc 외에 Service, DataBase 내용
webapp - resources
: css, javascript 관련 파일
views
: jsp파일
src/main/java
: 작성되는 코드
src/main/resources
: mybatis, log4j 관련 xml파일
src/test/java
: java로 작성한 코드 테스트 내용
src/test/resource
: test와 관련된 파일
web.xml
: tomcat 관련
pom.xml
: maven이 사용하는 의존성 파일
Lombok은 자바에서 @Getter, @Setter 같은 annotation 기반으로 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()을 설정하는 생성자 등등을 자동으로 생성해 주는 라이브러리다.
@Data
: @RequiredArgsConstructor, @Setter, @Getter, toString 모두 가지고 있는 끝판왕 어노테이션
@NoArgsConstructor
: 파라미터가 없는 생성자 생성
@RequiredArgsConstructor
: 초기화 되지 않은 final 필드와 @NonNull 어노테이션이 붙은 필드에 대한 생성자 생성
@AllArgsConstructor
: 모든 필드에 대한 생성자 생성
@Setter
& @Getter
: getter 와 setter 메소드를 생성