728x90

 

모듈 , 라이브러리 그리고 프레임워크


 

프로그램은 작은 부분들이 모여서 크고 복잡한 부분으로 발전합니다. 그 과정에서 기존에 작성되었던 코드의 재활용과 손쉬운 유지보수를 위해 다양한 방법들이 사용됩니다.

하나의 복잡한 코드를 여러 개의 모듈로 나누어서 분리하는 방법이 그중 하나이며, 아래와 같은 장점을 가지고 있습니다.

자주 사용되는 코드를 별도의 파일로 만들게 되면 해당 코드가 필요할 때마다 사용할 수 있으며, 별도의 파일로 존재하기 때문에 해당 부분을 리팩토링하여 개선하게 되면 모든 코드에도 반영이 손쉬운 장점이 있습니다. 또한, 필요한 로직을 해당 위치에서 로드해 사용하기 때문에 메모리 낭비를 줄일 수 있습니다. 

이렇게 분리하는 방법을 학습해나가다보면 모듈, 라이브러리, 프레임워크라는 용어 들이 등장합니다. 해당 용어의 사전적 정의는 많이 나와 있으나, 실무에서 커뮤니케이션 할 때 사용시에는 각각의 개념을 정확히 알지 못하는 상태에서 사용하는 경우도 있습니다.

그래서 한번 정리하며 복습해보는 시간을 가져보도록 하겠습니다.

 

1. MODULE

 

 

Module은 별도의 파일로 독립도니 기능을 의미합니다. 순수한 javascript에서는 모듈이라는 개념이 분명하게 존재하지 않는다고도 합니다. javascript가 구동되는 호스트 환경에 따라 서로 다른 모듈화 방법이 제공됩니다. 
여기서 호스트 환경이란 ?  JavaScript가 구동되는 환경을 의미한다. 예를 들어, Node.js는 JavaScript의 문법을 따르지만 이 언어가 구동되는 환경은 브라우저가 아니라 시스템을 제어하는 서버 측 환경을 의미합니다.

모듈을 만들면 다른 파일에서 해당 모듈을 불러와서 선언한 후 사용할 수 있습니다.

 

 

2. LIBRARY

 

 

라이브러리는 모듈과 비슷한(거의 같은) 개념이다 생활 코딩에서는 설명하는 차이점은 다음과 같습니다. 모듈이 프로그램을 구성하는 작은 부품의 느낌이라면, 라이브러리는 자주 사용 되는 로직을 잘 정리한 집합 느낌입니다. 사전적 의미로는 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임으로 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함할 수 있습니다. 

 

3. Framework

 

 

복잡한 문제를 해결하거나 서술하는 데에 사용 되는 기본 개념 구조, 즉 뼈대입니다. 애플리케이션 개발에 바탕이 되는 템플릿과 같은 역할을 하는 클래스들과 인터페이스의 집합으로 애플리케이션을 구축할 때 공통적인 부분을 제공합다.
개발자가 처음부터 모든 것을 개발을 할 수 있지만, 프레임워크를 사용하면 원하는 기능에만 집중하여 구현할 수 있습니다. 프레임워크 안에는 기본적으로 필요한 기능을 갖추고 있으므로 라이브러리(혹은 모듈)이 포함되어 있습니다.

728x90
반응형

'[EEEEEEETC]' 카테고리의 다른 글

[복 - 습] JPA Repository  (1) 2024.03.12

+ Recent posts