개발 공부를 하다보면 주변 개발자들로부터 꼭 라이브러리 정독하는 습관을 가지라는 말을 많이 듣습니다. 어렴풋이 라이브러리의 의미는 알지만 남들에게 설명하라고 하면 할 수 없는 수준의 지식이기에 한번 정확하게 정리를 해보겠습니다.
◈ 라이브러리(Library)란??
의미 그대로 도서관 = 책들의 집합 이라고 이해하겠습니다. 코딩/프로그래밍에서 말하는 '라이브러리'는 미리 지식/기능들을 모아둔 집합소(도서관)에서 필요할 때마다 기록된 코드를 빼와서 재사용 할 수 있도록 Class나 Function으로 만들어 진 것입니다.
- Java에서는 jQuery
- Python에서는 [수학적계산 Library, PDF TExt 추출 Library, DB 접속 Library ,,,etc ]
- 객체지향 프로그래밍(OOP)는 기본적으로 각 기능마다 함수화하는 것으로 클래스 라이브러리라고 할 수 있음.
- Window에서 DLL확장자(동적 링크 라이브러리)
∴ 라이브러리는 왜 사용하는 것일까??
(1) 우리는 모든 기능을 직접 코딩할 수 없고
(2) 업무 효율을 위한 시간 절약을 위해서
라이브러리는 누구나 마음을 먹으면 만들 수 있습니다. 나를 위해서든 남을 위해서든 어떠한 작업을 간편하게 수행하기 위해 무언가를 작성했다면 그것이 바로 라이브러리가 되는 것입니다.
이렇게 알아보다보니 왜 많은 기업들이 라이브러리에 기여한 적이 있는 가를 우대 사항으로 꼽는 이유를 알 것 같았습니다.
∴ JavaScript에서 자주 쓰이는 라이브러리는??
대표적인 (1) jQuery : jQuery.com 에 들어가보면 다양한 기능들을 사용할 수 있게 많은 설명들이 있습니다.
이외에도 다양한 기능을 쉽게 사용할 수 있는 라이브러리들이 있으니 열심히 구글링구글링...💻💻
1. jQuery UI(User Interface)
2. 사이트를 향상 시키는 15가지 JS 라이브러리
3. 웹개발에 자주 쓰는 자바스크립트 라이브러리들
(2) Tweeter Boot Strap ( 라이브러리 X , 프레임워크입니다!! )
프론트엔드 개발을 빠르고 쉽게 할 수 있는 jQuery 기반의 오픈 소스 웹 프레임워크입니다.
템플릿 양식, 버튼, 네비게이션 바 등의 요소들의 디자인을 CSS와 JS로 만들어 놓은 것입니다. HTML/CSS에 대한 기본 지식을 가지고 있으면 누구나 쉽게 접근 가능합니다. 또한 반응형 모바일 우선 웹 프로젝트 개발에서 유용하게 사용되고 있습니다. JS를 선택적으로 확장할 수 있고, Github의 오픈 소스로 사용 가능 합니다.
∴ 라이브러리와 프레임워크의 차이?!🤨
라이브러리와 프레임워크 모두 재사용 가능한 코드의 모음이며, 프로그래밍을 쉽게 할 수 있도록 도와주는 역할을 가지고 있습니다. 이 두 개의 중요한 차이점은 "제어 흐름"의 권한이 어디에 있는가입니다.
#라이브러리
위에서도 설명했지만, 어떤 특정한 기능을 구현하기 위해 미리 만들어진 함수들의 집합이며 필요할 때만 자유롭게 꺼내서 사용할 수 있는 일종의 도구(도서관에서 필요한 책 꺼내기! - 하지만 잘못된 책을 꺼내면 잘못 사용하겠쥬?) 입니다.
라이브러리를 사용하더라도 프레임워크가 정한 방식에 따라야 하지만 이를 어떻게 사용할 지는 개발자가 자유롭게 정할 수 있습니다. 대표적인 라이브러리에는 'React' , 'jQuery'가 있습니다.
※ C++의 표준 템플릿 라이브러리(STL)
※ Node.js에서 npm으로 설치한 모듈
※ HTM의 클라이언트 사이드 조작을 단순화하는 jQuery
※ 웹에서 사용자 인터페이스 개발에 사용되는 React.js
엥?! React가 프레임워크가 아닌 라이브러리였다니..? >> Express.js는 Node.js에서 가장 인기 많은 'Web Framework'
:: 설명쓰 - (아직 React를 안 써봐서 이해가 안감쓰)
#프레임워크
정해진 매뉴얼 룰을 제공하며 개발시 필수적인 코드와 알고리즘 같은 기능을 제공해서 재사용이 가능하도록 해주는데 다만 정해진 룰을 지켜야 합니다. (자유도는 적지만 규칙만 따르면 쉽게 높은 완성도를 보장하는 결과를 만들 수 있음)
클래스와 라이브러리가 합쳐진 구조로 대표적인 프레임워크에는 위에서 잠깐 설명한 'BootStrap'를 비롯하여 'Angular', 'Vue', 등이 있습니다.
※ Java - Spring
※ Python - Django, Flask
애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느정도 구조를 제공하고 이를 기반으로 우리는 코드를 작성해서 개발을 하는 것 입니다. 웹/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리합니다. 우리는 프레임워크가 정해준 규칙/방식대로 클래스, 메서드등을 구현하면 됩니다.
※ 프레임워크에서 라이브러리를 사용할 수 있음.
참고 블로그
링크 1 : 라이브러리란 무엇일까_Writingstudio
링크 2 : [개발용어]라이브러리, 프레임워크, 아키텍쳐, 플래폼이란?_개발자스럽다.blog
링크 3 : JS 라이브러리의 세계
링크 4 : [Bootstrap] 부트스트랩이란?
링크 5 : 프레임워크와 라이브러리 차이점 쉽게 이해하기
링크 6 : [개발상식] 프레임워크와 라이브러리의 차이
링크 7 :
'지식 창고 > CS 전공 지식' 카테고리의 다른 글
**작성중**네트워크 제 1편 : [심화편] OSI 7계층과 TCP/IP 계층 (0) | 2023.05.01 |
---|---|
[ 릴레이 블로깅 챌린지 3탄 ]네트워크 제 0 편 : 네트워크란 ? 찍먹으로 알아보는 네트워크 기본 (1) | 2023.04.29 |
[ 감귤'S 기초 상식 03] REST API 란? (0) | 2023.03.29 |
📍네트워크 정리 중인데 재료는 인터넷에서 쥽쥽띠 (0) | 2022.12.24 |
[감귤's 기초 상식 02 ] SPA, SSR, CSR 너네는 대체 뭐냐..? (0) | 2022.12.07 |