영보의 SystemOut.log

[spring] 스프링 @MVC구조와 @AOP 및 @Annotation 살펴보기 본문

국비교육(아이티센 입사교육)/Spring

[spring] 스프링 @MVC구조와 @AOP 및 @Annotation 살펴보기

영보로그 2021. 11. 2. 10:25
반응형

 

MVC 프레임워크 구조의 수행 흐름

# 프레임 워크를 사용함으로서 얻는 장점

장점 내용
효율적 처음부터 다 만드는 것이 아니라 이미 틀이 잡아져 있는 것을 바탕으로 만들기 때문에 시간과 비용이 절약되며 더 생산적이고 효율적
퀄리티 및 안정성 향상  어느정도 검증이 이루어진 코드를 사용하는 것이기 때문에 치명적인 오류나 설계상의 문제를 가지고 있을 가능성이 매우 낮음. 그렇기 때문에 일정 수준의 퀄리티와 안정성 보장 가능
유지보수 유리  프레임워크는 보다 코드가 체계적으로 구성되어 있기 떄문에 중간에 코드를 작성하는 사람이 바뀐다고 하더라도 상대적으로 코드를 이해하기 쉽고, 유지보수를 함에 있어서 유리함

 

 

 

 스프링 AOP와 스프링 MVC 구조의 수행 흐름

 

# AOP (Aspect Oriented Programming: 관점 지향 프로그래밍

 - AOP란 업무 등 특정 책임이 있는 클래스(예를 들어 주문 클래스나 계좌 클래스) 안에 본질적인 처리만 기술하고, 본질적이지 않은 처리 는 밖으로 꺼내는 기술이다.

 - 구체적으로는 로그 출력(로깅), 예외처리, 보안인증, 트랜잭션 처리 등 공통화할 수 있는 처리를 Aspect라는 하나의 단위로 모아서 어떤 오브젝트가 원래 해야할 일만을 하게 만드는 기술이다. 즉 기능을 핵심 비즈니스 로직과 공통모듈로 구분하고, 핵심로직에 미치지 않고 사이사이에 공통 모듈을 효과적으로 잘 끼워넣도록 하 는 개발 방법을 말한다.

 

 

# 스프링 AOP에서 사용하는 용어

용어 내용
advice  언제 어떤 기능을 적용할 지에 대한 정의. 관점으로서 분리되고 실행시 위빙(weaving)된 구체적인 처리를 의미한다.
aspect  여러 객체에 공통으로 적용되는 공통 관심 사항
weaving  핵심로직에 공통로직을 삽입하는 것
joinpoint 공통 기능 적용 가능 지점. 즉 실행시의 처리 플로우에서 advice를 위빙하는 포인트를 의미한다. 구체적으로 ‘메소드 호출’이나 ‘예외발생’ 이라는 포인트를 joinpoint로 정의한다.
pointcut   joinpoint 중에 실제로 적용할 지점. 하나 또는 복수의 joinpoint를 하나로 묶는 것을 말한다.
advisor  advice와 pointcut을 하나로 묶어 다루는 것을 말한다. advisor는 관점 지향에서 ‘관점’을 나타내는 개념이다.

 

ModelAndView는 컴포넌트 방식으로 ModelAndView 객체를 생성해서 객체 형태로 리턴한다.

값을 넣을 때는 addObject() 메소드를 사용하고, setViewName() 메소드로 보낼곳 View를 세팅한다.

 

 

# Properties 클래스
- 특별한 타입의 Map으로 키와 값이 모두 String인 Map이다
- K, V 형태로 데이터를 저장한다.
- 주로 웹 애플리케이션의 스프링 환경 설정과 속성을 저장하는데 사용한다.
- 주로 MVC(Model, View, Controller) 디자인 패턴에서 쓰인다.
- key, value 모두 String 타입이다.


# 스프링 환경 설정 파일을 만들 때 알아둬야할 엘리먼트들

엘리먼트들 내용
<property> 빈(bean)의 프로퍼티에 값을 주입
<props> java.util.Properties 타입의 컬렉션의 값을 정의하는데 사용하는 엘리먼트
<prop> <props> 컬렉션의 맴버 값을 정의할 때 사용한느 엘리먼트

 

 

 

스프링 어노테이션 기반 구조의 수행 흐름

Model은 매개변수(Prameter) 방식으로 해당 메소드에(Model model) 파라미터를 넣어주고 String 형태로 리턴한다. Model은 값을 넣을 때 addArribute() 메소드를 사용한다.

 

 

반응형