✅ React.js는 라이브러리고, Next.js는 프레임워크라고 한다.
둘 다 소프트웨어 개발 시간 단축, 유지관리 용이성을 위해 개발자가 사용하는 도구인데,
라이브러리와 프레임워크는 뭐가 다른 걸까?
1. 프레임워크(Fremework)란?
- 애플리케이션의 구조, 틀을 제공하는 클래스와 인터페이스 집합
- 개발자는 프레임워크가 제공하는 요소와 규칙, 가이드에 따라 코드를 작성해야 함
- 개발 범위가 정해져 있어 기능 구현에 집중하여 개발 가능
- 검증된 패턴과 구조로 정형화 되어 품질을 보장하고, 통일성과 유지보수성 높음
- 대규모이거나 복잡한 개발에서 주로 사용
주요 프레임워크: Mybatis, Spring Framework, Django, Android, Angular, Vue...
2. 라이브러리(Library)란?
- 특정 기능을 수행하는 단순 활용 가능한 도구 집합
- 개발자가 필요에 따라 선택적으로 사용
- 전체 구조에 관여하지 않으므로 사용자가 스스로 원하는 방식으로 구조 설계 가
- 필요한 기능만 선별해 사용할 수 있으므로 유연성과 선택의 폭을 넓혀줌
- 작은 규모이거나 단순한 프로젝트의 경우 사용
주요 라이브러리: jQuery, chart.js, axios,
3. 결론
프레임워크와 라이브러리의 차이는 애플리케이션 제어 흐름의 주도성이 누구에게 있는가의 차이다. 제어의 역전(IoC, Inversion of Control)이라고도 한다.
전체적인 흐름을 프레임워크가 쥐고 제어한다면 프레임워크, 개발자가 흐름을 만들고 필요에 따라 가져다 쓴다면 라이브러리이다.
프레임워크는 직접 제어 흐름의 주도성을 갖기에 애플리케이션의 구조와 틀을 제공하고, 개발을 위한 기본적인 형태와 필수 요소를 포함한다. 설정 파일, DB 연동 규칙 등등 미리 정해진 규칙과 구조를 개발자가 따라야 하므로 제어권은 프레임워크에 있다.
라이브러리는 개발자가 제어 흐름의 주도성을 갖기에 주도적으로 코드를 작성하고, 라이브러리가 그 과정을 보조한다.
필요에 따라 프레임워크와 라이브러리를 선택해서 사용한다.
참고)
'LAMP > Tool' 카테고리의 다른 글
[Github] 대표 Branch명 master에서 main으로 변경 (0) | 2022.06.08 |
---|