티스토리 뷰
오늘은 프레임워크와 라이브러리에 대해서 공부해 보기로 했다.
(저도 이 글을 쓰면서 정리해 나가는 부분이라 오류가 있을 수 있습니다. 발견하시면 댓글로 알려주세요:))
프레임워크(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
https://codedragon.tistory.com/5939
https://www.youtube.com/watch?v=t9ccIykXTCM
'Computer Engineering > Common' 카테고리의 다른 글
[Git] 비어있지 않은 로컬 저장소로 Clone하기 (0) | 2022.06.08 |
---|---|
[programmers] MySQL - Level 2 문제풀이 (1/2) (0) | 2022.04.27 |
[programmers] MySQL - Level1 문제풀이 (0) | 2022.04.27 |
Visual Studio Shortcut (0) | 2022.03.28 |
정규 표현식(Regex) (0) | 2021.09.28 |