일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- js datepicker
- jsp 팝업띄우기
- 자바 정규표현식 예제
- spring crud게시판
- crud게시판
- 정보처리기사실기정리
- jsp게시판만들기
- 2020정보처리기사실기정리
- 자바기초
- 스프링 CRUD게시판
- 2020정보처리기사실기
- 프로그래머스 쿼리문
- 2020정보처리기사실기요약
- 프로그래머스 MYSQL
- jsp 날짜팝업
- 게시판만들기
- html기초
- 오버라이딩
- 프로그래머스 SQL
- PLSQL
- 자바연산자
- 날짜지정팝업
- spring crud
- 스프링게시판만들기
- Oracle기초
- CRUD게시판만들기
- 정처기실기정리
- 자바배열예제
- 오라클설치
- 스프링 crud
- Today
- Total
영보의 SystemOut.log
[spring] 스프링 @MVC구조와 @AOP 및 @Annotation 살펴보기 본문
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() 메소드를 사용한다.