@Maven
-> 자바용 프로젝트 관리 도구
-> pom.xml 프로젝트의 버전정보 및 라이브러리 정보를 통합하여 관리
-> 일반적으로 개발자가 필요한 라이브러리를 직접 추가했지만,
Maven을 사용하면 pom.xml 문서에 사용하고자하는 라이브러리를 등록하여
자동으로 프로젝트에 추가
@Maven의 장점
- 표준 및 외부 저장소를 활용한 편리한 의존관계 라이브러리 관리
- 모든 프로젝트에 대해 일관된 Structure Convention 제시(구조화 된 규약)
Convention 제시 (구조화 된 규약)
- 라이브러리 문서화로 이식성 향상
@@POM
-> Project Object Model 이라는 뜻으로 하나의 프로젝트에서 사용하는
자바버전, 라이브러리, 플러그인 구성을 통합하여 관리할 수 있게
설정정보를 XML파일에 문서화 한 것
https://maven.apache.org
maven.apache.org
버전<3.5.3>
@ 프레임워크
-> 사전적의미 뼈대, 틀
-> 어플리케이션 개발 시 정해진 것 없이 개발을 한다면 체계화 되어있지 않고,
만들어지는 구조가 정해지지 않아서 시간이 오래 걸림
-> 기본구조를 프레임워크가 제공, 개발자입장에서 보면 초급,중급,고급개발자간의 간격
줄여 줄 수 있음
-> 프레임워크로 개발된 어플리케이션은 유지보수가 쉽다.
@ Spring Framework
-> 로드 존슨이 2004년에 만든 오픈소스 프레임워크
-> 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 Spring이라고 부름
-> 대한민국 공공기관의 웹서비스 개발 시 사용을 권장하는 전자정부 표준 프레임워크의 기반
-> 왜 이름이 Spring 일까?
-> 스프링 개발 이전이 개발자에게 겨울이고, 새로운 봄
@ Spring의 특징
1. DI(Dependancy Injection / 의존성 주입)
-> 설정파일이나 어노테이션을 통해 객체간 의존관계를 설정하여 개발자가 직접 의존하는
객체를 생성 할 필요가 없음
MemberService service = new MemberService();
-> MemberService service;
2. Spring AOP (관점 지향 프로그래밍)
-> DB 트랜잭션 처리나 로깅처리와 같이 여러 모듈에서 공통으로 필요로 하는 기능의 경우
해당 기능을 분리해서 관리
3. Spring JDBC
-> Mybatis, Hibernate 등의 DB영속성 프레임 워크와 연결 할 수 있는 인터페이스를 제공
4. Spring MVC
-> MVC 디자인 패턴을 통해 웹 어플리케이션의 Model, View, Controller 사이의 의존 관계를
DI컨테이너에서 관리하여 개발자가 아닌 서버가 객체들을 관리하는 어플리케이션 구축 가능
STS(Spring Tool Suite)
-> Spring 프레임워크를 사용하기 위한 개발 툴
@Spring IoC
-> inversion of Control 로써 제어의 역행이라는 뜻을 가지고 있음
-> 프로그램 구동시 필요한 객체에 대한 생성, 변경 등의 관리를 개발자가 아닌 컨테이너가
직접 관리 하는 것
@IoC 컨테이너의 역할
-> 객체의 생명주기와 의존성 관리
-생명주기: 생성-> 초기화 -> 사용 -> 소멸
-의존성 : 개발자가 직접 객체를 생성 할 수 있지만 권한을 컨테이너에 맡김으로써
소스코드 구현시간을 단축 할 수 있음
@ Spring DL
-> Dependency Lookup 의존성 검색이라는 뜻으로 컨테이너가 제공하는 API함수로 필요한
Bean을 검색하여 사용하는 방식
@ Spring DI
-> IoC구현의 핵심 기술로, 사용하는 객체를 직접 만드는 것이 아니라 컨테이너가 Bean의
설정정보를 읽어와 자동으로 해당 객체에 연결하는 것
@@DI의 장점
-> 개발자가 작성하는 코드가 단순해 짐
-> 각 객체간 종속관계(결합도)를 해소 할 수 있음
@@객체간 종속관계(결합도)
-> 한 클래스에서 필드객체를 생성 할 때 발생하는 두 객체간의 관계
-> 각 객체간 내용이 수정되는 경우 영향을 미치는 정도
'이공계전문기술연수 > Spring Framework' 카테고리의 다른 글
<이공계기술전문연수> 1. Framework 특징 (0) | 2019.11.19 |
---|---|
<이공계기술전문연수> Spring MVC (0) | 2019.11.11 |
<이공계기술전문연수> Spring 결합도 / beanTest / 어노테이션 (0) | 2019.11.11 |
<이공계기술전문연수> Maven 설정 (0) | 2019.11.11 |
<이공계기술전문연수> mybatis 설정 / mybatis 특징 (0) | 2019.11.03 |