온 코딩

[Spring] 기본 개념 및 구조 본문

복습 ARCHIVE/모델별 프로젝트

[Spring] 기본 개념 및 구조

SummerON 2021. 6. 9. 16:52

Spring은 XML문서를 만져야하기 때문에 오류가 잦으니 조심,,,

Spring MVC

- MVC와 작동방식이 같음

1. 구조 

- 이름 따로 설정 불가

 

1) DispatcherServlet

- 브라우저로부터 송신 된 request를 일괄적으로 처리

 

2) HandlerMapping (ActionFactory 역할)

- requestURL과 Controller클래스의 맵핑처리 

 

3) Controller

 - Action 들 모음

- 비즈니스 로직을 호출하여 처리결과의 ModelAndView 인스턴스를 반환

 

4) View 

- .jsp(프레젠테이션층 - 출력)

 

5) ViewResolver

(url 변수가 가자고 있는 값)

- Controller 클래스로부터 반환된 View이름을 기본으로 이동처가 되는 View 인스턴스를 찾음


2. 개념정리

자바 기반 : 멀티 스레드로 실행 됨 

jsp/servlet 기반이기 때문에 세션관리 따로 하지 않아도 됨 

가볍게 사용할 수 있는 경량 프레임워크!

이미 기본 구조를 가지고 있는 것을 프레임워크라고 함

 

 - DI : 의존성 주입

 - AOP : 강점 지향 형태 설계

 

스프링 프레임 워크 : DI x AOP 컨테이너를 중심으로 스프링 MVC와 스프링 JDBC등을 포함하는 대중적인 제품

 

스프링을 사용하는 이유

 : 플랫폼 작업 등 큰 작업을 할 때 사용 

+

jsp는 자바코드에 html과 같은 꾸미기 요소를 넣기 위해 생김 

-> 이후 jsp 안에 들어가는 <% %>부분이 jstl/ <%= %>부분이 el 방식으로 변환


3. 특성

1) 애플리케이션 아키텍쳐

 개발효율을 높여줌

- 의도 파악이 쉬움

- 구조가 간단

- 테스트가 쉬움

 

유연함 

- 변경에 유리

- 기능 추가 쉬움

- 변화에 대응 가능 (견고한 구조)

 

=> 사용자의 요구와 개발자, 운영자의 요구를 모드 만족할 수 있는 애플리케이션 아키텍쳐가 

프레임워크나, 라이브러리로 구현되어 메뉴얼과 함께 제공 됨  

 

2) 논리층(레이어)

- 프레젠테이션층

   : UI, 일반적으로 Controller나 Action이 이름에 붙음

   : MVC 기본패턴에 따라 Controller 부분에는 servlet 사용

   : 클래스 간 연결에는 인터페이스로 연결 ( 부품화 시 필수 )

- 비지니스로직층 : 일반적으로 Service가 붙은 클래스

- 데이터엑세스층 : DAO

- 컨트롤러 : 화면전환, 동작제어, 세션관리 

 

물리층(티어)

 

4. 참고

-Spring MVC( 웹애플리케이션 MVC 프레임워크)
-Spring Batch( 배치처리용 프레임워크)
-Spring Security( 인증 허가 프레임워크)
-Spring Integration( 시스템 연계 프레임워크)
-Spring Data( 데이터 접근 추상화 프레임워크)

 

스프링 부트는 자주 사용하는 프로젝트 조합 준비 , 설정을 자동으로 수행 , 서버 포함하고 있다
=> 개발자가 적은 양의 애플리케이션 코드를 작성해서 바로 실행 할 수 있다
=> 드롭위저드 비슷한 개념으로 만들어진 프레임워크 보다 많은 예제와 자료가 있다
=> 웹애플리케이션 뿐 아니라 명령행 인터페이스 (CLI , Command Line 에서 동작하는 콘솔 프로그램이나 배치 ( 프로그램을 만들때도 사용)

 

+

logback : 알아서 로그값(실행중인 과정)을 보여줌  

- .log4j 기반으로 성능은 10 배빠르고 메모리 사용량은 적다 .
- 로그 설정변경 시 재시작 없이 바로 적용됨
- 구현체로 slf4j(Simple Logging Facede for Java) 를 함께 사용
trace : 모든 로그 출력
debug: 개발할 때 디버그 용도로 사용
info: 상태 변경 등과 같은 정보서 메 시지를 나타냄
warn : 프로그램의 실행에는 문제가 없지만 추후 시스템 에러의 원인이 될 수 있다는 경고성 메시지를 의미
error: 요청을 처리하던 중 문제가 발생한 것을 의미

 

스프링의 인터셉터는 어떤 URI 를 호출했을 때 해당 요청의 컨트롤러가 처리되기 전 또는 후에 작업을 하기 위해 사용된다 . 이러한 역할은 필터와 인터셉터로 수행

- 필터 : 디스패쳐 서블릿 앞 단에서 동작 

- 인터셉터 : 디스패쳐 서블릿 핸들러가 컨트롤러로 가기 전에 동작 

인코딩은 필터로 클라이언트 요청에 관련된 처리는 인터셉터로~

 

스프링은 개념을 이해 못하면 구현이 어렵기 때문에 따로 미리 공부를 해 놓을 것!

Comments