프레임워크 개념


1.sw 재사용성

2.디자인패턴 프레임워크란? 둘의 관련성

3.프레임워크 구성요소 종류


재사용 방법

copy & paste

가장 기본적인 방법이다.

ex)날짜 형태 지정 java

a클래스에 있는 코드를  b클래스에서 사용하기위해 복사 붙여넣기한다.

문제점- jdk가 바뀐다면? 코드가 있는 모든 클래스에 영향이가게된다.


method function(메소드호출)

a클래스에있던 코드를 메소드를 생성하여 집어넣는다.

클래스이름.메소드로 사용가능하다.

(호출하는쪽에는 영향이안감)


문제점 - MethodSignature(메소드명, 리턴타입, 아큐먼트 갯수,타입등)

복사 붙여넣기보단 진보된 방식이지만 작업영역간 결합도 문제 존재한다.


Class

메소드를 클래스 내부에 구현해서 만들어놓은것이다.

메소드를 구성해놓은 클래스를 상속한다.

자식 클래스에서 사용한다.

메서드방식보단 개선된 방식이다.


문제점 - signature 문제는 그대로있다.


AoP(관심의 분리)

- OOP를 supprt해주는 개념

- C에서도 사용가능

*관심사 분리

주제:은행

횡단관심모듈(기능적 로직)

ex)보안,로깅

핵심관심모듈(비지니스로직)

ex)계좌이체,입출금,이자계산

위빙 : 핵심관심모듈에서 횡단관심모듈을 직접 호출하지 않음(프레임워크에서 해줌)


AoP란?(간단설명)

간단하게말해, 계좌이체를 하게될때 로그를 남기게되는데 

코드상에서 직접호출하지 않고 프레임워크에서 처리해준다.







디자인패턴과 프레임워크의 관련성

디자인패턴의 정의

프로그램개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나이다.

개발과정에 발견된 Know_how를 축적하여 이름붙인다.

재사용하기 쉽게 특정 규약을 묶어서 정리한것.

대표적인 디자인패턴(GOF)에서 23가지 지원한다.


디자인패턴 사용하는 이유

- 요구사항 변경에따른 소스코드변경 최소화

- 팀 프로젝트시 범용적인 코딩 스타일적용

- 인수인계시 직관적인 코드 사용


프레임워크의 정의

- 비기능적(Non-Funtional) 요구사항(성능,보안,로깅,확장성,안정성등)을 만족하는 구조와

구현된 기능을 안정적으로 실행하도록 제어해주는 잘만들어진 구조의 라이브러리 덩어리

또 애플리케이션들의 최소한의 공통점을 찾아 하부 구조를 제공함.

- 개발자들이 시스템 하부구조 구현하는데 들어갈 노력을 절감해준다.


프레임워크를 사용하는이유

비기능적인 요소(보안,로깅) 초기개발단계마다 구현해야하는 불합리함 극복할수있다.

- 기능적인 요구에만 집중(비지니스로직)하면된다.

- 반복적으로 발견되는 문제를 해결하기위한 특화된 Solution이다.



디자인패턴과 프레임워크의 관련성

- 디자인패턴은 프레임워크의 핵심적인 특징(프레임워크내부에 디자인패턴 적용해서 사용)이 있다.

- 프레임워크를 디자인패턴이라고는 하지못함. 디자인패턴을 사용하고있는 것이다.

- 프레임워크는 디자인 패턴과함께 패턴이 적용된 라이브러리를 제공한다.


프레임워크가 내부적으로 디자인패턴사용한다.

프레임워크를 사용하면 녹아들어가있는 디자인패턴을 사용하게된다.






프레임워크의 구성요소와 종류

Ioc(제어의 역전)

ClassLibrary

Design Patterm


IOC(제어의 역전)

- 인스턴스 생성 부터 소멸이 컨테이너가 처리(개발자가 안함)한다.

- 프레임워크한테 권한을 넘김으로써 개발자 코드가 신경쓸 부분을 줄여준다.

차이점


프레임워크(IOC적용) 사용할때

 라이브러리 사용할때

 프레임워크가 개발자가 작성한 코드를 호출

 개발자가 라이브러리 호출(스트링유틸사용시)


주도권이 프레임워크가 가지고있음(제어의 역전)

Spring 컨테이너가 IOC지원함.

-메타데이터(XML설정)를 통해 beans를 관리하고 어플리케이션의 중요부분을 형상한다.

bean들을 의존성 주입을 통해IoC지원한다.


ClassLibrary

특정 부분의 기술적인 구현을 라이브러리 형태로 제공(반제품) 기본적인 뒷단을 구성되어있다.

프레임워크코드가 유저코드를 호출(이게 제어역전)한다.





디자인패턴

디자인 패턴 + 라이브러리 = 프레임워크

프레임워크 사용시 라이브러리의 디자인패턴을 보면 구성을 이해하기쉽다.

커스터마이징할때도 디자인패턴의 이해가 필요하다.


'개발 소발 > 개발 Spring' 카테고리의 다른 글

AOP란? AOP 기초개념  (0) 2020.07.09
Spring IoC(Inversion of Control),Bean,의존성주입이란?  (0) 2020.07.08
SpringMVC란?  (0) 2018.01.11
MVC패턴이란?  (0) 2018.01.11
Mybatis Mapper 인터페이스란?  (0) 2018.01.11

STS,maven이란?


STS

스플링 이클립스(이크립스확장판)

스프링 지원 플러그인과 관련된 도구 지원


빈 정의 가능하다.

ex)beans.xml

class="SDD"

뒤에서 자세히나옵니다.


설정파일 생성.

위저드(XML파일형식)


bean정의

- 설정파일설정(의존관계) 프로퍼티 그래프형태로 볼수있다.


sts에서 프로젝트확인시 AOP적용대상 표현해준다.(빨간색으로 표현)


메이븐이란?


라이브러리관리 + 빌드툴(ANT역할 제공)


Dependent(의존관계) Libray 관리한다.

여러 프로젝트에서 사용하는 jar공유한다.

모든 프로젝트 빌드 프로세스를 일관되게 가져갈수있다.


과거 라이브러리 검색후 다운받아서 프로젝트에 추가하는 방식을 줄여준다.


Pom.xml에서 다운가능하다.


Pom.xml이란?

-메이븐프로젝트 생성시 생성된다.

-프로젝트정보를 표시한다.(bulid)

-dependencies(메이븐 자르 설정)

-dependency로 설정한다.

-dependenc <=사용하고싶은 Library(설정하면 local pc에 다운로드)

ex)


-Maven Repositories View기능이 있다.

-Window -> showview



'개발 소발 > 개발 Spring' 카테고리의 다른 글

Bean등록 및 메타정보구성이란?  (0) 2017.11.21
bean,properties설정이란?  (0) 2017.11.20
Junit,Spring-Test란?(의존성예제)  (0) 2017.11.20
IoC,DI란?  (0) 2017.11.20
Spring프레임워크란?  (0) 2017.11.20

Spring프레임워크란?


스프링 프레임워크의 정의와 전략

스프링 프레임워크의 특징

스프링 페리임워크의 기능요소


스프링프레임워크란?

Java 엔터프라이즈 개발을 편하게 해주는 오픈소스이다.(경량급 애플리케이션 프레임워크)

엔터프라이즈 개발(뒷단을 제공 비지니스로직개발에 전념)보안,인증등을 제공한다.

스프링프레임워크의 전략

삼각형이다.(Portable Service Abstraction,Aop,Di)

Portable Service Abstract(서비스 추상화)

- 트랜잭션 추상화,Object Xml MAppting,데이터 액세스의 Exception을 제공한다.

- 개발자는 기술사용하는 인터페이스만 사용한다.


Di(의존관계주입)

객체지향 개발 충실하기위한 설계가 가능하도록 한다.

확장가능한 객체이다.(인터페이스만들고 구현클래스를 생성하게한다.)


AOP(관점지향프로그래밍)

기술 관련 코드를 분리에서 사용하게한다.


POJO

일반적인 자바 오브젝트이다.(HttpServlet는 웹컨테이너가잇어야해서 아님)

특정환경이나 규약에 종속되지않고 JRE만잇으면 사용가능한다.


스프링 프레임워크의 특징

컨테이너 역할

자바객체의 라이프사이클을 관리 ,스프링 컨테이너로부터 필요한 객체를 가져와사용한다.

DI지원

Spring 설정파일(XML) 이나 어노테이션 @ex 통해서 객체간의 의존관게를 설정한다.

AOP지원(관점지향)

핵심모듈(업무로직)에서 공통적인 로직(로그)을 분리에서 적용한다.

POJO지원

어떠한 규약에 종속되지않는 자바객체개발가능하다.

트랜잭션 처리를 위한 일관된 방법을 지원

DB(COMMIT,ROLLBACK)등을 코드가 아닌 설정(XML,@어노테이션)으로 설정해서 모두 동일한 코드사용가능하다.

영속성 관 관련된 다양한 API 지원

Mybatis,Hibernate 등 DB처리위한 ORM프레임워크들과 연동지원한다.



스프링 프레임워크의 기능요소

7가지

 Spring Core

 스프링프레임워크에 기본기능제공(bean) *컨테이너기능

BeanFactory 지원

 Spring Aop

 업무로직과 공통로직을 분리

 Aspect 지향프로그래밍

 Spring Orm

 db 프레임워크와 연동가능하게함 

 Spring DAO

 jdbc코딩과 예외처리 간편화시킴 AoP 트랜잭션 관리 서비스 제공

 Spring Web

 웹애플리케이션 개발에 필요한 기본기능 제공

 다른 웹프레임워크와 연동

 Spring Context

 core부분을 확장

 국제화,이벤트,유효성검증등

 Spring WebMvc

 애플리케이션 로직과 웹애플리케이션을 분리에서 개발하게함


'개발 소발 > 개발 Spring' 카테고리의 다른 글

Bean등록 및 메타정보구성이란?  (0) 2017.11.21
bean,properties설정이란?  (0) 2017.11.20
Junit,Spring-Test란?(의존성예제)  (0) 2017.11.20
IoC,DI란?  (0) 2017.11.20
STS,maven이란?  (0) 2017.11.20

+ Recent posts