교육/소소한 IT 개념
프레임워크, 라이브러리
라임07
2022. 9. 27. 13:22
라이브러리(Library)란?
- 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임입니다.
- 특정 기능을 모은 코드(함수들의 집합)이며 코드 작성 시 활용 가능한 도구들을 의미합니다.
- 라이브러리 사용시 필요한 로직을 직접 구현할 필요없이 라이브러리에서 제공하는 API를 호출하는 것을 통해 원하는 기능을 사용할 수 있게됩니다.
예) 톱, 망치, 삽 같은 연장도구
프레임워크(Framework)란?
- 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 상태로 클래스들을 제공하는 것입니다.
- 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다.
- Frame(틀, 규칙) + Work(일, 소프트웨어의 목적)
- 활용 가능한 여러 주요기능들(라이브러리들)을 모아놓은 것
예) 밀키트 → 주어진 재료로 요리가 완성되게끔 구조화된 형태
프레임워크 장점
- 생산성 향상 : 시간이 절약되며, DB 연동, 유저 인증 등 개발에 공통적으로 필요한 필수 기능들을 제공해주므로 빠르게 개발할 수 있습니다.
- 개발 일관성 향상 : 대규모 프로젝트를 공동 수행하는 많은 개발자들이 다른 언어와 코딩기법으로 작업을 하기에는 어렵습니다. 하지만 프레임워크는 개발에 필요한 과정들의 기본 규격이 되므로 여러 개발자들이 일관된 틀 아래 개발할 수 있게 됩니다. = 유지보수가 쉬워집니다.
- 퀄리티 향상 : 대부분의 개발자들이 검증한 코드이므로 버그 발생 확률이 적습니다.
프레임워크 종류
- 백엔드
프레임워크 | 개발 언어 | 특징 |
Spring | Java | 전자정부 프레임워크의 기반으로 국내에서 활용도가 가장 높음 |
Django | Python | 웹에서 조작 가능한 관리자 페이지를 기본적으로 제공하여 편리함 |
Express.js | Java Script | Node.js 런타임에서 작동하는 빠르고 간편한 웹 프레임워크로 프론트엔드와 같은 언어를 쓰기에 편리함 |
- 프론트엔드
프레임워크 | 개발언어 | 특징 |
Angular | JavaScript | 구글, 기업 공동체, 개인에 의해 개발됨 |
React(라이브러리) | JavaScript | 가장 많이 활용되었음(Facebook, Instagram 등) |
Vue.js | JavaScript | 최근 많이 떠오르고 있음 |