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

앵귤라 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
,