프레임워크와 라이브러리
소프트웨어 개발 생산성을 높이고, 효율적인 개발을 가능하게 한다.
프레임워크(Framework)
특정 개발 방식을 위한 기본 구조 제공
보통 프레임워크가 라이브러리보다 더 포괄적인 기능 세트를 제공함
- 사용 사례 : 웹 애플리케이션 개발, 모바일 애플리케이션 개발, 데스크탑 애플리케이션 개발 등
- 예시 : Angular, React(라이브러리지만 프레임워크처럼 사용됨), Vue.js(웹 프론트 개발), Django(파이썬 웹 개발), Spring(자바 백엔드 개발)
라이브러리(Library)
특정 기능을 수행하기 위해 재사용 가능한 함수나 객체의 집합
개발자가 코드의 특정 부분을 구현할 때 그 기능을 제공함
- 사용 사례 : 특정 알고리즘, 데이터 구조, 네트워킹 도구, 이미지 처리 기능 등
- 예시 : jQuery(웹 개발), NumPy(파이썬에서 수치 계산), React(사용자 인터페이스 구축)
언어별 프레임워크, 라이브러리
JavaScript
프레임워크 : Angular, React, Vue.js..
- Angular는 타입스크립트 기반 프론트 개발 프레임워크
- React는 사용자 인터페이스 구축을 위한 효율적이고 유연한 라이브러리(프레임워크처럼 사용됨)
- Vue.js는 웹 인터페이스 개발을 위한 진보적 프레임워크
라이브러리 : Lodash, Moment.js, D3.js..
- Lodash 유틸리티 라이브러리로 다양한 편의 기능 제공
- Moment.js 날짜와 시간 다루는 작업 간소화
- D3.js 데이터 시각화
Python
프레임워크 : Django, Flask..
- Django는 빠른 개발과 깔끔한, 실용적인 디자인 지향 고수준 웹 프레임워크
- Flask는 경량 웹 애플리케이션 프레임워크, 간단하지만 확장 가능한 웹/앱에 적합
라이브러리 : NumPy, Pandas, Matplotlib
- NumPy 과학 계산을 위한 기본 패키지, 다차원 배열 객체와 배열 조작을 위한 다양한 도구 제공
- Pandas 데이터 분석과 조작을 위한 라이브러리
- Matplotlib 데이터 시각화
Java
프레임워크: Spring, Hibernate
- Spring은 강력한 엔터프라이즈 애플리케이션을 위한 종합적인 프로그래밍 및 구성 모델 제공
- Hibernate는 Java 언어를 위한 객체 관계 매핑(ORM) 라이브러리
라이브러리: Apache Commons, Google Guava
- Apache Commons Java SE 기능을 보완하는 자바 컴포넌트 모음
- Google Guava 코어 자바 라이브러리의 확장으로, 콜렉션, 캐싱, 프리미티브 지원, 병렬성 라이브러리, 공통 어노테이션 등을 제공
C#
프레임워크: .NET Framework, ASP.NET
- .NET Framework는 윈도우 애플리케이션, 웹 서비스 및 웹 애플리케이션 개발을 위한 포괄적 프레임워크
- ASP.NET는 동적 웹 페이지 개발을 위한 웹 애플리케이션 프레임워크
라이브러리: Entity Framework, Newtonsoft.Json
- Entity Framework 데이터베이스와의 상호작용을 단순화하고 객체지향적인 방식으로 데이트 관리할 수 있게 도움
- Newtonsoft.Json Json데이터의 직렬화 및 역직렬화, 데이터 변환을 쉽게 처리할 수 있게 도움