일반적으로 코딩을 하게 되면 많은 라이브러리와 프레임워크를 접하게 된다. 라이브러리와 프레임워크는 쉽게 보면 누가 만들어 놓은 코드 혹은 기능들을 가져다 쓰는것인데, 뭔가 비슷한 느낌을 가지고 있으면서도 또 서로 다른 이번 기회를 통해 라이브러리가 무엇이고, 프레임워크가 무엇인지 정확하게 짚고 넘어가자.
우선 단도직입적으로 라이브러리와 프레임워크의 차이점을 문장으로 정리하자면 다음과 같다.
'Who is Controlling?'
누가 누구를 컨트롤 하냐의 문제인데, 2가지가 있다.
1. 내가 코드를 컨트롤한다
2. 누군가의 규칙을 따라 코딩을 한다.
라이브러리?
라이브러리의 가장 좋은 예시는 JQuery이다.
제이쿼리는 웹사이트에 동적인 요소를 넣을 수 있는데, 내가 웹 서비스를 만들고 있을 때 코딩을 하다가 동적인 요소가 필요하면 제이쿼리를 부르는 것이고 이것을 가지고 내가 코딩을 해 나가는 것이다
여기서 제이쿼리는 필수적인 요소가 아니라서 내가 뭐 다른 것으로 교체하고싶다 혹은 대체하고 싶다면 충분히 대체가 가능하며 이로인해 프로젝트가 망가지거나 그렇진 않다.
독립성을 가진 최소단위의 기능 최소단위? -함수(메서드)단위
개발할 때 프로그램이 사용하는 비휘발성 자원의 집합
- 재 사용 가능한 최소 단위 기능 또는 기능들의 집합 (프레임워크도 마찬가지)
- 기능을 사용하기 위해 다른 기능이 필요하지 않아야 한다
ex ) 대용량의 데이터를 정렬, 역정렬
데이터를 하나씩 반환, 반환하면서 삭제
날짜에서 요일을 반환, 시간을 반환
숫자의 사칙연산
라이브러리는 표준 라이브러리와 사용자 라이브러리
* 표준 라이브러리는 언어가 제공해주는 기본 함수
ex ) SDK
* 사용자 라이브러리는 표준 라이브러리를 사용하여 만든 라이브러리
-기능별로 그룹화 하여 Wrapping
framework?
하지만 프레임워크는 그렇지않은데, 라이브러리는 내가 호출해서 사용하지만, 프레임워크는 그 반대인 프레임워크가 나를 부르는 것이다.
결국 프레임워크가 정한 규칙에 따라서 코딩을 하게 되고, 이에대한 결과로 결과물이 정상동작 할 것이다.
대표적으로 프레임워크의 예시가 DJango(웹 프레임워크)이다.
라이브러리와 프레임워크의 차이는 결국 흐름에 대한 제허의 권한이 어디에 있는지에 달려있다.
우선 프레임워크는 전체적인 흐름을 자체적으로 가지고 있어, 개발자가 그 속에서 필요한 코드를 작성하지만, 라이브러리는 사용자가 흐름에 대해 제어를 하며 필요한 상황시 가져다 쓰는 것을 말한다.
1. 느리다, 무겁다, 비용이 많이 든다 (단)
수많은 조건과 불필요한 리소스들이 있다 (단)
2. 통제가 안된다(오픈소스는 가능) (단)
3. 세팅, 학습하는데 오래 걸린다 (단)
1. 개발이 편하다. 재사용이 가능하다. 개발 일정이 단축된다(장)
2. 전문적인 고민과 노하우가 있어서 오류가 적다(장)
3. 재사용이 가능하다
- 라이브러리와 다른 프레임웍의 집합 여러 라이브러리와 프레임워크가 포함되어 있음
- 여러 라이브러리와 프레임웍을 이용해 다른 모듈을 만들어 냄
- 프레임 워크는 뼈대, 기반 구조
'기술면접 관련 및 참고하기' 카테고리의 다른 글
HTTP는 뭔데요? ( CS 특강 - HTTP/HTTPS/통신 흐름, TLS/SSL 등) - 작성 중 (0) | 2022.11.25 |
---|---|
운영체제(Operating System) 프로세스(Process)와 쓰레드(Thread) - 우테코 Tech 내용 추가 (2022.12.02) (1) | 2022.11.19 |
자바는 어떻게 메모리를 사용할까요? (자바의 메모리 사용) (0) | 2022.11.17 |
크롤링(Crawling)과 스크래핑(Scraping)?? (0) | 2022.03.12 |
Java와 C계열의 차이점 (0) | 2022.01.16 |