스프링 4일차


스프링 MVC의 핵심 구성요소

1. 브라우저로부터 서버로 요청 전송

2. DispatcherServlet에서 모든 요청을 받아서 세부 컨트롤러를 호출해준다.

3. HandlerMapping에서 요청 URL과 매칭되는 컨트롤러 검색

4. <<spring bean>> HandlerAdapter 로 처리 요청을 보낸다.

5. 세부 컨트롤러를 실행

6. 결과 리턴(어댑터가 논리적 이름과 실행 결과를 포장해서 넘겨준다. 이것이 Model And View이다)

7. View Resolver가 논리적 이름을 가지고 해당 설정한 뷰를 찾아서 뷰 객체를 반환해준다.

8. 이 뷰를 브라우저로 결과를 보내준다.


-----------


@RequestMapping을 이용한 경로 매핑







Posted by moyaiori
,

수료프로젝트 적용 기술및 프로젝트 아이디어

앵귤라 JS

리액트 JS

실제 데이터 파싱

실시간 사람매칭등

켜놓으면 반응이 오는 그런 사이트 -> 증권

모바일

위키 백과 스타일 디자인

다양한 메신져별 이모티콘 공유

전국시도에 대한 체육시설 예약관리 통합 -> 프로젝트 아이디어

공공 API 활용

- NAS(network storage server)

계정마다 파일 저장하는 폴더지정해서

개인이 파일 업로드나 다운로드 공유등 할수 있다.



스프링 3일차


수료프로젝트 적용 기술및 프로젝트 아이디어

앵귤라 JS

리액트 JS

실제 데이터 파싱

실시간 사람매칭등

켜놓으면 반응이 오는 그런 사이트 -> 증권

모바일

위키 백과 스타일 디자인

다양한 메신져별 이모티콘 공유

전국시도에 대한 체육시설 예약관리 통합 -> 프로젝트 아이디어

공공 API 활용

- NAS(network storage server)

계정마다 파일 저장하는 폴더지정해서

개인이 파일 업로드나 다운로드 공유등 할수 있다.



스프링 3일차

AOP(Aspect Oriented Programming)


 - 대표적인 공통 기능 사용방법들

상속, 스테틱메소드, 위임 형식이 있다.


- Cross-Cutting Concem(횡단 관심)

애플리케이션의 다양한 관점(point)에 영향을 미치는 공통 기능

끼워넣기

1. 공통기능과 주 업무기능을 분리한다.

일상 생활의 객체를 프로그램을 클래스하고 한다면

공통기능을 표현하는 방법이 Aspect라고한다

Aspect도 클래스이다.


상속은 부모자식간에 결합이 높고 그외 방식은 코드가 어렵고 반복으로 사용되는대 이것에 대안으로 Aspect안에 공통 기능을 정의하고 새롭게 만드는 특성을 변경하지않고 해당 기능을 어떻게 어디에 적용할지 선언적으로 정의한다.

 = > 문제를 바라보는 관점에 따라 "핵심관심사항" 과 "횡단관심사항" 으로 분리하여 개발하는 것이 아니라 횡단 관심사항을 핵삼관심사항에 투명하게 주입하는 새로운 프로그래밍 개발 모델이다.


- 핵심관심

주로 작업하는 업무기능을


 - Aspect

횡단관심사를 적용하려는 소스코드의 위치를 모아둔것

시점, 위치(지점)

밑의 모든 내용을 포함


 - Joinpoint

메소드단위로 실행

스프링은 메소드 joinpoint만 지원한다.

aop라는게 원래 있는대 3가지 방식이있는대 스프링 AOP는 메소드 joinpoint만 지원한다.

3가지 방법

필드

메소드

컴파일시


 - Advice

joinpoint에서 실행되는 코드(실제 횡단관심사가 적용되는것)

어느시점에 적용되는지에 대한 정보를 가지고 있다.

기능 + 시점


 - Pointcut

지점을 나타낸다.

어드바이스들이 실행될 메소드의 위치


 - 스프링의 실행시 advice구성

Aspect들은 Spring이 관리하는 빈(bean)에 실행시 proxy 클래스와 함께 감싸서(wrapping)구성됨

별도로 구성된 proxy가 횡단관심 코드에 접근할때 요청을 가로채서 Advice를 호출한후에 원래 요청을 수행한다.


 - Advice

5가지 시점이 있다.

Before : 메소드 앞에서 실행

After : 메소드 뒤에 실행

AfterReturning : 메소드가 정상 종료한 다음에 실행

Around : 앞뒤에 실행

AfterThrowing : 예외가 발생했을때 실행


xml 설정 기반 AOP 구현

@Aspect 애노테이션 기반의 AOP구현

두가지 방법이 있다.


Aspect 지정시 execution지정자 패턴

접근제한자 / 리턴타입 / 패키지명 + 클래스명 + 메서드명 / 매게 변수 형식으로 구성되어있다.

모든이라는 표현은 * 와 (..)가 있다.


 - Spring MVC

특정 기술이나 방식에 얽매이지 않으면서 "웹 프레젠테이션 계층"의 다양한 기술들을 조합하거나 확장해서 사용할 수 있는 매우 유연하고 확장성이 뛰어난 웹 애플리케이션 개발의 기본틀을 제공한다.


 - FrontController

1. Dispatcher Servlet에서 모든 http요청을 받는다.

2. 세부컨트롤러를 요청

3. 모델 생성

4. 모델 & 뷰 를 프론트 컨트롤러에 반환

5. 모델을 뷰에 넘겨주고

6. 모델을 담은 뷰를 생성해서 반환해서

7. http 응답해준다.


Spring MVC 요청 처리 순서

 - DispatcherServlet이 요청을 수신

단일 Front Controller Servlet에서 요청을 수신하여 처리를 다른 컴포넌트에 위임할때

Handler Mapping에서 세부 컨트롤러에 대한 정보를 URL과 맵핑하여 세부 컨트롤러에 위임한다.


디스패치 서블릿을 설정

web.xml에 등록


2.5 방식을 통한 스프링 컨트롤러 호출방식 예제로 이해해보기


Posted by moyaiori
,

스프링 2일차


어제는 XML 방식의 IOC와 DI를 했고 오늘은 어노테이션(3.0 이후로 지원하는)을 이용한 스프링 구조


Spring 애플리케이션 작성 절차

1. POJO 클래스 작성


applicationContent에서 스코프를 지정할 수 있는대 prototype은 getbean 할때마다 생성하고 싱글톤은 하나의 객체를 생성해서 사용하는 방식을 결정할 수 있다.


session과 request가 있는대 이것은 webApplication에서 구현시 필요하다


어노테이션 방식

@Component - XML 설정시 <bean>태그와 같다, 클래스를 가리킨다

@Resource - XML 설정시 <property> 태그와 같다. 해당 값의 의존성을 주입한다.

@Value - 객체 생성시 초기화

@Autowired - 알아서 이름을 찾아서 할당해준다.


도메인 클래스와 DTO의 차이

도메인 - 약간의 비즈니스 로직을 가지고있는 데이터 객체

DTO - 순수한 데이터만을 가지고있는 객체


Spring JDBC개요

스프링에서 JDBC를 쉽게 활용할수 있게 해주는 모듈


- jdbc Template

메소드를 활용하여 직접 이용할수 있는 형태이다. (1.0)

- NameParameterjdbcTemplate

sql에 파라미터를붙여 sql을 만들수 잇다(2.0)


mybatis 적용한 예제 실습


Posted by moyaiori
,