> Framework 란?
- 정보시스템을 개발 또는 운영할 때 필요한 기본 기능을 미리 구현해 놓은 것.
- 추가 기능을 개발하여 조립함으로써 전체 정보시스템을 완성할 수 있음.
표준프레임워크 포털 eGovFrame
전자정부 표준프레임워크 서비스 EGOVERNMENT STANDARD FRAMEWORK 지속적인 품질관리 및 고도화를 통해 경쟁력 향상기술지원 및 교육 등을 통한 확산 보급
www.egovframe.go.kr
기본 환경 셋팅이 어렵다.
셋팅을 50~60% 해놓은 뒤 기능만 올리면 된다.
> 장점
- 객체지향 원칙 적용
- 프로그램이 가벼움
- 톰캣 서버 사용 가능
- 단순하고 깔끔한 코드 작성
- 생산성과 품질 향상
- 유연성과 확장성 증대
- 코드가 짧아진다.
- 시간/노력이 감소된다.
> 단점
- 웹 애플리케이션만 적용된다
> 등장배경
- 자바 기반 엔터프라이즈 애플리케이션 개발의 복잡함을 간소화하기 위해서 개발된 프레임워크
- POJO 개념 도입 -> 컴포넌트간 낮은 결합도 -> 테스트, 재사용성, 유지보수성 향상
POJO? : 평범한 자바객체
- 구현(implements) 또는 확장(extends)하지 않은 순수한 자바객체 의미
- 특정 interface나 class로 부터 상속받지 않음
- 어떠한 자바 API도 임포트하지 않음
- 다른 객체 접근을 위해서 스프링이 객체 주입(DI) =>중요 개념
메인 클래스는 구현해놓은 클래스가 반드시 있어야만 실행이 된다. 이 경우 구현 클래스를 변경해야할 사항이 생기면 프로젝트 내의 모든 클래스를 변경해야한다. 이것을 강한 결합 관계라고 하는데, 결합 관계가 강할수록 유지 보수 비용이 증가하기 때문에 좋지 않다. 이 강한 결합도를 해결하기 위해 spring이 등장하게 되었다.
> 의존성 주입(Dependency Injection)
- POJO에서 외부 객체 접근을 위해 필요한 객체를 스프링에서 주입하는 의미
- 제3자가 객체 주입 -> '제어의 역전(IoC)’ 라고 표현
> SPRING 주요 전략
- 자바의 복잡함을 간소화하기 위한 전략.
1. POJO를 이용한 가볍고, 비 침투적인 개발. (interface, class, API 침투 차단)
2. DI와 인터페이스 기반 느슨한 결합도(클래스 약결합).
3. 애스펙트 지향 프로그래밍을 통한 공통 관심사 재사용
> SPRING FRAMEWORK 특징
① 스프링은 경량 컨테이너
- 스프링은 자바 기반 프레임워크(JavaEE에 비해서 경량)
- 자바 객체 생성, 소멸 등의 라이프 사이클 관리
② 스프링은 DI(Dependency Injection) 지원
- 설정 파일(xml)이나 annotation을 통해서 객체 간 의존관계 설정
- 확장성과 유지보수성 (▲)
③ 스프링은 AOP(Aspect Oriented Programming) 지원
- 모듈에서 공통으로 필요한 부분(트랜잭션, 로깅, 보안)을 관심(Aspect)으로 분리해 놓고 필요한 경우 적용
④ 스프링은 POJO(Plain Old Java Object) 지원
- 스프링 컨테이너에 저장되는 자바 객체는 특정한 인터페이스를 구현하거나 클래스를 상속받지 않음
- 평범한 JAVA 객체
⑤ 스프링은 DB처리와 관련된 다양한 API 지원
- Spring-JDBC, iBatis, myBatis, Hibernate, JPA 등 ORM(Object Relational Mapping) 처리를 위해 널리 사용되는 라이브러리의 연동 지원
- 엔터프라이즈 어플리케이션(JMS, 메일, 스케줄링 등) 개발에 필요한 다양한 API를 설정 파일과 annotation 을 통해서 손쉽게 사용 (Struts2, JSF와 같은 프레임워크와의 연동 지원)
> SPRING 설치 순서
1. https://spring.io/tools 사이트 이동
2. 하단으로 내려서 Spring Tool Suite 3 wiki 링크 클릭
3. Spring Tool Suite 3.9.11 (New and Noteworthy)
5. 압축 푼 후 /sts-bundle/sts-3.9.11.RELEASE/STS.exe 실행
> SPRING 프로젝트 만들기
(현업에서는 Spring Starter Project를 많이 사용-스프링부트)
1. Package Explorer 오른쪽 클릭 -> New -> Spring Legacy Project 생성
2. Spring MVC Project 선택
3. 세 개 이상의 경로를 가진 패키지 생성(com.test.nonspring)
> Servers 설정
1. 기본적으로 같이 생성된 Servers 프로젝트는 삭제한다.
2. New -> Other -> Server -> Tomcat 9.0 설정
3. server.xml에서 63번라인에 포트번호를 8282로 변경
4. 상단 메뉴 window -> web browser -> chrome 선택
5.Run As -> Run On Server -> Tomcat 선택
> 기본 View 경로
src / webapp / WEB-INF / views / home.jsp
> 기본 Controller 경로
src/main/java / com.test.nonspring / HomeController.java
'Back > spring' 카테고리의 다른 글
[스프링 첫페이지 아예 안 열릴 때] Context initialization failed / Error creating bean with name '***Controller': Injection of autowired dependencies failed; (0) | 2021.07.01 |
---|---|
MyBatis 개념 (0) | 2021.06.30 |
javax.servlet.ServletException: 서블릿 [appServlet]을(를) 위한 Servlet.init() 호출이 예외를 발생시켰습니다. (0) | 2021.06.30 |
spring 환경 설정 (0) | 2021.06.23 |
스프링 컨테이너(spring container) 기본 흐름 (0) | 2021.06.22 |