Framework vs Library

김젼이 ·2022년 8월 4일
1

프레임워크(Framework)

-소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 틀이다.
-재사용이 가능하도록 소프트웨어 구성에 필요한 기본을 제공한다.
-정보시스템의 개발 및 운영을 지원하는 도구 및 가이드 등을 포함한다.

Spring, React, Angular, View, Django

  • 특징
특징설명
모듈화 (Modularity)프레임워크는 구현을 인터페이스 뒤에 감춰 모듈화를 강화하고 설계와 구현 변경에 따르는 영향을 최소화한다.
재사용성 (Reusability)인터페이스를 통해 여러 애플리케이션에서 반복적으로 사용하는 일반적 컴포넌트를 정의하여 재사용성을 높인다.
확장성 (Extensibility)다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 확장한다.
제어의 역행 (Inversion of Control)프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하고 외부의 이벤트에 대해 애플리케이션이 어떤 메서드를 수행해야할지 결정한다.

*다형성(Polymorphism) : 한 타입의 참조 변수로 여러 타입의 객체를 참조 할 수 있도록 하는 것이며, 여러 가지 형태를 가질 수 있는 능력을 의미한다.

  • 구성요소
구성요소설명
개발환경설계, 구현, 테스트 등 개발에 필요한 지원 도구 모음
실행환경자바 기반 응용시스템 개발 시 필수적 기능을 패턴화해 미리 구현해둔 라이브러리 코드 모음
운영환경표준 프레임워크 기반 개발 시스템에 대한 운영 시 필요한 의사소통 및 모니터링 도구 모음
관리환경표준 프레임워크에 대한 기술 지원, 업그레이드 등 관리하기 위한 내부 업무 시스템

라이브러리 (Library)

-모듈과 패키지를 총칭하며, 효율적인 프로그램 개발을 위해 필요한 프로그램을 모아 놓은 집합체를 의미한다.
*모듈이 개별 파일이라면 패키지는 파일들을 모아 놓은 폴더라고 볼 수 있다.

Bootstrap, jQuery

라이브러리는 도움말, 설치 파일, 샘플 코드 등으로 구성된다.

  • 라이브러리 종류
종류설명
표준 라이브러리-프로그래밍 언어가 기본적으로 가지고 있는 라이브러리를 의미
-각 프로그래밍 언어의 표준 라이브러리는 여러 종류의 모듈과 패키지를 가지며, 표준 라이브러리를 이용하면 별도의 파일 설치 없이 날짜와 시간 등의 기능을 이용 할 수 있음
외부 라이브러리-표준 라이브러리와 달리 별도의 파일을 설치
-외부 라이브러리는 누구나 개발하여 설치 할 수 있으며, 인터넷 등을 이용하여 공유할 수도 있음
  • 표준 라이브러리 상세
표준 라이브러리설명예시
입출력핵심 입력과 출력 함수들을 정의C언어<studio.h>/JAVA:Scanner Class
문자열문자열 처리 함수들을 정의C언어<string.h>/JAVA:String Class
시간 처리데이터와 시간 처리 함수들을 정의C언어<time.h>/JAVA:Data Class
수학일반적인 수학 함수 정의C언어<math.h>/JAVA:Math Class

1) 문자열 라이브러리 함수
문자열 함수를 사용하기 위해서는 string.h 헤더 파일을 include하여 사용한다.

함수설명
strcat문자열끼리 연결하는 함수(String Concatenate) /(A,B); B를 A 문자열 뒤에 붙임 = AB
strcpy문자열을 복사하는 함수(String Copy) /(A,B); B문자열을 A문자열에 복사 = BB
strcmp문자열을 비교하는 함수(String Compare) /(A,B); A>B(1), A=B(0),A<B(-1)
strlen문자열 길이를 알려주는 함수(String Length)

2) 표준 라이브러리 함수
표준 라이브러리 함수를 사용하기 위해서는 stdlib.h. 헤더 파일을 include 하여 사용한다.

함수설명
atoi문자열(str)을 정수(int)형으로 변환하는 함수
atof문자열(str)을 실수형(float, double)으로 변환하는 함수
itoa정수(int)형을 문자열(str)로 변환하는 라이브러리 함수

3) 수학 라이브러리 함수
수학 라이브러리 함수를 사용하기 위해서는 math.h 헤더 파일을 include하여 사용한다.

함수설명
ceilceil(n); 소숫점 올림
floorfloor(n); 소숫점 내림

프레임워크 VS 라이브러리 비교

가장 큰 차이점은 개발의 주도권을 누가 가지고 있는가다!

프레임워크는 개발 주도권이 프레임워크에 있어 웹개발 시작부터 기능 구현까지 다 프레임워크를 따라야 하지만 라이브러리는 개발 주도권이 개발자에게 있어 원하는 라이브러리를 가져와 개발자가 원하는대로 기능만을 사용 할 수 있다.

profile
호기심이 많은 프론트엔드 개발자

0개의 댓글