프레임워크 시작하기
1. SW 재사용 방안
-복사, 붙이기
-메서드 정의, 호출
-클래스 재사용(상속)
-AOP (Aspect Oriented Programming) : 로깅, 보안
2. 디자인 패턴
-GoF(Gang of Four) - Design Patterns : 재사용 가능한 객체 지향 소프트웨어 요소
-구조적인 가이드라인
-구현된 기반 코드를 제공하지 않음
3. 프레임워크
1)비기능적 요구사항(성능, 보안, 확장성, 안정성)을 만족하는 구조와 구현된 기능
2)비기능적 요소들을 초기 개발 단계마다 구현해야 하는 불편함 개선
3)기능적인 요구사항에 집중할 수 있도록 해줌.
4)기반 클래스 라이브러리, 구현 코드 제공
4. 디자인패턴 & 프레임워크
-디자인패턴은 프레임워크의 핵심적인 특징
-프레임워크를 사용하는 애플리케이션에 그 패턴이 적용됨.
5. 프레임워크 & 라이브러리 비교
특징 | 프레임워크 | 라이브러리 |
유저코드 작성 | 프레임워크 클래스를 기반 | 독립적으로 작성 |
호출 흐름 | 프레임워크 코드가 유저코드를 호출 | 유저코드가 라이브러리를 호출 |
실행 흐름 | 프레임워크가 제어 | 유저코드가 제어 |
객체의 연동 | 프레임워크가 정의 | 독자적으로 정의 |
=>프레임워크와 라이브러리 구분하는 방법 : 실행 제어가 어디에서 일어나는가에 달려 있음!
-라이브러리 : 개발자가 만든 클래스에서 직접 호출하여 사용-프레임워크 : 프레임워크에서 개발자가 만든 클래스를 호출하여 실행의 흐름에 대한 제어를 담당함.
6. 프레임워크 = 디자인패턴 + 라이브러리1) 웹 : Spring MVC
2) ORM (Object Relational Mapping) : MyBatis, Hibernate, JPA, Spring JDBC
3) AOP : Spring AOP
4) DI (Dependency Injection) : Spring DI
5) Build와 Libaray 관리 : Ant, Maven, Gradle
6) JavaScript : jQuery, React, Vue, Angular
프레임워크
1.프레임워크(Framework) 정의
-어떤 것을 구성하는 구조 or 뼈대'
-'기능을 미리 클래스나 인터페이스 등으로 만들어 제공'
2. 프레임워크(Framework) 장점
1)일정한 기준에 따라 개발이 이루어지므로 품질이 보장된 애플리케이션 개발 가능
2)개발 후 유지보수 및 기능의 확장성에서도 고품질 보장
3. 스프링 프레임워크
Spring makes it easy to create Java Enterprise Applications.
---------------------------
1) 대규모의 복잡한 데이터를 관리하고,
이러한 데이터를 이용해 비즈니스 프로세스 지원 및 자동화함.
- 비즈니스의 근간으로 보안과 안정성, 확장성이 필요하며, 뛰어난 성능,서비스의 안정성 요구.
- 다수의 사용자가 접근함, 분산된 다른 엔터프라이즈 애플리케이션과 통함됨.
- 데이터 입/출력을 위한 다양한 사용자 인터페이스가 제공됨
- Java EE (Enterprise Edition) : Java SE를 포함하며 multi-tier(Clent,Middle,EIS),
엔터프라이즈 애플리케이션 개발환경 제공함.
2) Java 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크.
->전영역 포괄하는 범용적인 프레임워크
3) 컨테이너(Container)
-톰캣은 서블릿 컨테이너라고 부른다
=> 톰캣을 실행하면 톰캣은 서블릿의 생성, 초기화, 서비스 실행, 소멸에 관한 모든 권한 가지고 서블릿 관리.
-스프링은 애플리케이션에서 사용되는 여러 가지 빈(클래스, 객체)을 개발자가 아닌 스프링이
직접 권한을 갖고 관리한다.
4. 스프링 특징
1) EJB보다 가볍고 배우기도 쉬우며 경량 컨테이너의 기능 수행
2) 제어 역행(IoC, Inversion of Control) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어함.
3) 의존성 주입 (DI, Dependency Injection) 기능을 지원함.
4) 관점 지형 (AOP, Aspect-Oriented Programming) 기능을 이용해 자원 관리함
5) 영속성과 관련된 다양한 서비스를 지원함
6) 수많은 라이브러리와의 연동 기능 지원함
'📒 education archive > 🌿Spring' 카테고리의 다른 글
[국비학원 기록/Spring] 트랜잭션(Transaction), 두 개의 계좌에 대한 동시 계좌이체 구현 예제 (0) | 2022.01.04 |
---|---|
[국비학원 기록/Spring] 마이바티스 MyBatis Framework 사용, 회원 정보 조회, 수정, 삭제 예제 (0) | 2022.01.04 |
[국비학원 기록/Spring] 스프링 MVC 패턴, model1, model2 (0) | 2022.01.02 |
[국비학원 기록/Spring] 의존성 주입, setter, 생성자 예제 (0) | 2022.01.02 |
[국비학원 기록/Spring] IoC, DI, AOP 개념 정리, 예제 (0) | 2022.01.02 |