information processing

1-13. 개발 프레임 워크

nana-log 2022. 6. 26. 22:13

CHAPTER 5. 서버 프로그램 구현
Section 2. 개발 프레임워크

1. 프레임워크의 개념

개발프레임워크는 뼈대 / 예전엔 함수사용햇지만 요즘 프레임워크 사용
뼈대에다 비즈니스로직을 올림 ..생성 소멸 반복

- 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록
여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어
- 소프트웨어 개발에 바탕이 되는 템플릿과 같은 역할을 하는 클래스들과 인터페이스의 집합
- 소프트웨어 개발시 공통적인 부분을 제공

 

2. 프레임워크의 특징

 모듈화 (modularity)
- 프레임워크는 구현을 인터페이스 뒤에 감추는 캡슐화를 통해서 모듈화를 강화
- 설계와 구현의 변경에 따르는 영향을 최소화시킴으로써 쉽게 소프트웨어의 품질을 향상시킴


 재사용성 (reusability)

뼈대가지고 재사용 가능

- 프레임워크가 제공하는 인터페이스는 여러 어플리케이션에서 반복적으로 사용할 수 있는 일반적인 컴포넌트를
정의할 수 있게 함으로써 재사용성을 높여준다.
- 소프트웨어의 품질, 성능, 신뢰성, 상호 운용성을 향상시키고, 프로그래머의 생산성을 높여준다.

 확장성(extensibility)
- 다형성(polymorphism)을 통해 애플리케이션의 프레임워크의 인터페이스를 확장할 수 있게 한다.

-오버로딩: 다양한인자값을 통한 확장
-오버라이딩: 상속받아 재정의


 제어의 역흐름(inversion of control)

보통 프로그래머가 함수를 짠 순서대로 움직이지만 프레임워크가 제어를 다른 데로 돌릴 수 있음

- 프레임워크가 외부의 이벤트에 대해 애플리케이션이 어떠한 메소드들을 수행해야 하는지 결정


3. 프레임워크의 구분

 Java 프레임워크
- 전자정부 표준 프레임워크

스프링을 가져다 다듬은게 전자정부 표준 프레임워크
20년주기 프로젝트를 다른회사가 1-2년주기로 입찰하기 때문에 전자정부프레임워크 만듬

- 스트럿츠
- 스프링


 ORM 프레임워크

orm은 프레임워크라고 하긴 그렇고
spl문 안쓰고 객체와 데이터베이스 연동

- 아이바티스(iBatis)
- 마이바티스(myBatis)
- 하이버네이트(Hibernate)


 자바스크립트 프레임워크
- 앵귤러제이에스(AngularJS)
- ReactJS
- ExtJS


 프론트엔드 프레임워크

프론트엔드 프레임워크는 css

- Bootstrap
- Foundation
- MDL

 

4. 라이브러리(Library)

프레임워크: 전체 뼈대 제공
라이브러리: 특정 언어에서 재사용할 수 있는 함수들의 모임 (ex: #include stdioh)

- 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 또는 리소스(클래스, 템플릿, 설정 데이터 등)를
모아둔 것
- 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수
있도록 Class나 Function
- 라이브러리는 어플리케이션의 특정 기능, 프레임워크는 어플리케이션의 구조


5. API(Application Programming Interface)

api: 프레임워크나 라이브러리 사용해 완제품 만든 것
완제품을 다른 프로젝트(외부)에 사용 (ex: 주소찾기)

- 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다.
- API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게
만든 인터페이스

엑셀같은 프로그램의 다른이름으로저장,파일열기는 윈도우api


 API 특징
- 개발 비용 감축
- 반복 작업 줄이기
- 쉬운 유지 관리
- 새로운 수익 채널의 확대
- 비즈니스 파이의 확장

쉬운유지관리의 예: 구글api는 구글에서 관리
비즈니스 파이의 확장의 예: 구글은 내 정보를 가져감