2019백업

1. 디자인 패턴과 프레임워크

728x90

SW 재사용 방안들

Method Signature가 변경되어도 변경된 메서드를 사용하는 클래스에서 코드 수정이 없게하자.

Copy & Paste

-> 1) Method -> 2) Inheritance (클래스 상속) -> 3) AOP

 

Method Signature : 메서드 명 , 리턴 타입, 아규먼트 개수, 타입

 

1) MethodSignautre를 변경하면 이 메서드를 사용하는 모든 클래스에 영향을 준다.

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

 

2) 클래스 재사용 (상속) : 부모클래스에서 클래스 내용을 변경 했을 때

부모 클래스를 상속 받은 자식클래스는 자동적으로 변경된 메서드를 사용하게 된다.

그러나 부모클래스에서 메서드 Signature가 변경 되었을 때 여전히 자식클래스에 영향을 줄 수 있다.

 

3) AOP (Aspect Oriented Programming)

OOP를 대체 하는 기능은 아니고 support해주는 개념이다.

AOPOOP를 더욱 OOP 답게 만들어 줄 수 있다.

기존의 절차적 프로그램(C)에도 적용이 될 수 있다.

관심의 분리 : 핵심 관리 모듈과 횡단 관심 모듈로 나누어 구현한다.

AOP가 핵심 관심 모듈의 코드를 직접 건드리지 않고 필요한 기능이 동작하도록 하는데 위빙(weaving)이라고 하는 특수한 작업이 필요하다. weaving은 프레임워크에서 해준다.

, AOP에서 위빙 작업을 통해 핵심 모듈 사이 사이에 필요한 횡단 관심코드가 동작하도록 엮어지게 된다.


디자인 패턴이란?

디자인 패턴:

프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법중 하나, 이후에 재사용하기 좋은 형태로 특정 규약을 묶어서 정리 한 것

 

대표적 디자인 패턴 : GoF(Gang of FOur) 네명의 컴퓨터 과학자가 만든 서적.

https://gone-sw.tistory.com/4

 

디자인 패턴을 사용하는 이유

1. 요구사항은 수시로 변경 -> 요구사항 변경에 대한 source code 변경을 최소화
2. 여러 사람이 같이 하는 팀 프로젝트 진행 -> 범용적인 코딩 스타일을 적용
3. 상황에 따라 인수 인계하는 경우도 발생 -> 직관적인 코드를 사용

 

프레임워크의 정의

비기능적 요구사항(성능, 보안, 확장성, 로깅, 안정성 등)을 만족하는 구조와 구현된 기능을 안정적으로 실행하도록 제어해주는 잘 만들어지 구조의 라이브러리의 덩어리이다. 

프레임워크는 애플리케이션들의 최소한의 공통점을 찾아 하부 구조를 제공함으로써 개발자들로 하여금 시스템 하부 구조를 구현하는데 들어가는 노력을 절감 해준다.

 

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

1. 비기능적인 요소들을 초기 개발 단계마다 구현해야 하는 불합리함을 극복
2. 기능적인 요구사항에 집중 할 수 있도록 해준다.
3. 디자인 패턴과 마찬가지로 반복적으로 발견되는 문제를 해결하기 위한 특화된 Solution을 제공 
(ex: 한글이 깨짐 -> 한글이 깨질 때 사용하는 함수를 제공)

 

프레임워크와 디자인 패턴의 관계

프레임워크는 디자인 패턴으로 구현된 클래스를 제공하는 것이다.

반응형

'2019백업' 카테고리의 다른 글

3. Spring Framework 개요  (0) 2019.06.20
2. 프레임워크의 구성요소와 종류  (0) 2019.06.20
6.20 스프링 세팅  (0) 2019.06.20
JAVA-HashTable  (0) 2019.03.29
JAVA-ArrayList  (0) 2019.03.29