티스토리 뷰

오늘은 프레임워크와 라이브러리에 대해서 공부해 보기로 했다.

(저도 이 글을 쓰면서 정리해 나가는 부분이라 오류가 있을 수 있습니다. 발견하시면 댓글로 알려주세요:))

프레임워크(Framework)란?

: 뼈대, 골조 

프레임워크(Framework)는 영문 뜻 그대로 뼈대 골조를 의미한다.

 

It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions. 

 

- Build 하고 Deploy하는 방법을 표준 방법을 제공

- 보편적이고 재사용 가능한 소프트웨어 환경

- 규모가 큰 소프트웨어 플랫폼에서 어플개발을 가능하게하는 특징적인 기능 제공 

 

좀 더 구체적으로, 

 

Software frameworks may include support programs, compilers, code libraries, toolsets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.

 

- 지원 프로그램, 컴파일러, 코드 라이브러리, 툴셋, 그리고 서로 다른 요소들을 결합하는 API를 포함함.

 

사실 여기서 좀 막혔다.. 내가 아는 프레임워크의 범위보다 좀더 넒다는 생각이 들었다...

 

잘 알려진 프레임워크에는 다음과 같은 것들이 있다.

 

1. 스프링 프레임워크 : 주로 자바에서  프레임워크. 인기가 많은 거 같다. 모집공고에 기술 스택으로 자주 보인다.

2. 앵귤러 JS : 자바 스크립트에서 쓰이는 프레임워크. 인기가 많은 거 같다. 모집공고에 기술 스택으로 자주 보인다. 

3. Prism : .Net 개발에서 쓰이는 프레임워크. 내가 쓰고 있다. MVVM 패턴 구현할때나 IOC로 Service Class 만들때 사용하고 있다. Nuget Package로 라이브러리처럼 다운받을 수 있지만, 사용하기 위해서 규칙이 존재한다. 특정 클래스 이름으로 만들기, 특정 함수안에서 무언가를 정의해야 한다 등등.. 

 

이해한대로 정리하자면, 프레임워크는 (엔터프라이즈급) SW개발에서 재사용적이고, 모듈화되고 (MVC나 MVVM 같은) 구조적인 패턴을 구현할 수 있도록 제어해주는 도구 혹은 시스템으로 이해된다. 

프레임워크와 라이브러리

프레임워크를 더 잘 이해하기 위해서, 우리는 종종 프레임워크를 라이브러리와 비교한다.

사실 이와 관련해 잘 정리된 블로그, 동영상들이 많이 있는데 정리 차원에서 한번 더 적어 본다. 

한마디로 정의하자면, 프레임워크와 라이브러리는 제어의 권한, 주체가 다르다. 

여기서 제어(Control)란 Create(생성), Dispose(소멸), Call(호출) 등을 의미한다. 

 

- 프레임워크가 우리의 코드를 제어한다. 

- 우리의 코드가 라이브러리를 제어한다. 

- 프레임워크가 라이브러리를 포함한다. 

참조

https://en.wikipedia.org/wiki/Software_framework

 

Software framework - Wikipedia

Type of library that helps structure other software In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-s

en.wikipedia.org

https://codedragon.tistory.com/5939

 

프레임워크에 대한 이해 - 소프트웨어 프레임워크의 정의, 프레임워크의 특징, 프레임워크의 구

프레임워크에 대한 이해 ·      소프트웨어 프레임워크의 정의 ·      프레임워크의 특징 ·      프레임워크의 구성 요소 ♣소프트웨어 프레임워크의 정의 ·      효율적인 정보시스

codedragon.tistory.com

https://mangkyu.tistory.com/4

 

프레임워크와 라이브러리의 차이점

프레임워크와 라이브러리의 차이에 대해서 포스팅을 해야겠다고 생각했던 것은 어떤 분이 예전에 페북에서 'Angular Js와 React Js의 차이'에 대해서 물었던 글을 본 것에서 부터 시작하였습니다. 많

mangkyu.tistory.com

https://www.youtube.com/watch?v=t9ccIykXTCM