지식 창고/CS 전공 지식

[ 감귤'S 기초 상식 01] 코딩에서 " 라이브러리 " 란 무엇일까??

감귤밭호지차 2022. 11. 30. 15:18

개발 공부를 하다보면 주변 개발자들로부터 꼭 라이브러리 정독하는 습관을 가지라는 말을 많이 듣습니다. 어렴풋이 라이브러리의 의미는 알지만 남들에게 설명하라고 하면 할 수 없는 수준의 지식이기에 한번 정확하게 정리를 해보겠습니다.

 

 

◈ 라이브러리(Library)란?? 

 

의미 그대로 도서관 = 책들의 집합 이라고 이해하겠습니다. 코딩/프로그래밍에서 말하는 '라이브러리'는 미리 지식/기능들을 모아둔 집합소(도서관)에서 필요할 때마다 기록된 코드를 빼와서 재사용 할 수 있도록 ClassFunction으로 만들어 진 것입니다. 

 

  • 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 :