[용어] 라이브러리(Library), 프레임워크(Framework), 솔루션(Solution), 플랫폼(Platform) 개념 정의
■ 라이브러리 (Library)
1. 개념
- 소프트웨어 개발 시 필요한 기능(함수, 클래스 등)을 미리 구현해 놓은 코드 모음
2. 호출방식 :
- 개발자가 애플리케이션의 제어권을 가지며, 필요한 시점에 라이브러리의 기능을 호출하여 사용
- 프레임워크와 라이브러리의 가장 큰 차이점은 '제어의 역전(Inversion of Control, IoC)'에 있음.
- 라이브러리는 개발자가 직접 코드를 호출하지만, 프레임워크는 개발자가 작성한 코드를 프레임워크가 호출하여 사용. 즉, 애플리케이션의 흐름을 프레임워크가 주도하며, 개발자는 프레임워크가 정해놓은 규칙에 따라 필요한 부분을 채워 넣는 방식으로 개발을 진행
3. 주요 라이브러리 예시 :
- jQuery: HTML 문서 조작, 이벤트 처리, 애니메이션, Ajax 등을 쉽게 할 수 있도록 지원하는 JavaScript 라이브러리
- React.js: 사용자 인터페이스(UI)를 만들기 위한 JavaScript 라이브러리. (프레임워크의 특징도 일부 가지고 있다.)
- TensorFlow, PyTorch: 머신러닝 및 딥러닝 모델 개발을 위한 Python 라이브러리
- NumPy, Pandas: 데이터 분석 및 과학 계산을 위한 Python 라이브러리
- Matplotlib: 데이터 시각화를 위한 Python 라이브러리
■ 프레임워크 (Framework)
1. 개념
- 소프트웨어 개발을 위한 기본적인 구조나 뼈대, 즉 '틀'을 제공하여 개발 과정을 수월하게 만들어주는 환경
2. 호출방식 :
- 프레임워크가 애플리케이션의 전체 흐름을 제어하며, 개발자는 프레임워크가 정의한 규칙과 구조에 따라 코드를 작성
3. 주요 프레임워크 예시 :
- Spring: 자바(Java) 기반의 웹 애플리케이션 개발을 위한 프레임워크로, 제어의 역전(IoC)과 관점 지향 프로그래밍(AOP)을 지원
- Django, Flask: 파이썬(Python) 기반의 웹 개발 프레임워크
- Angular, Vue.js: 사용자 인터페이스(UI) 개발을 위한 JavaScript 프레임워크
- Ruby on Rails: 루비(Ruby) 기반의 웹 개발 프레임워크
- .NET Framework: Microsoft에서 개발한 윈도우 프로그램 개발 및 실행 환경
■ 솔루션 (Solution)
1. 개념 :
- 특정 문제를 해결하기 위해 라이브러리, 프레임워크, 하드웨어 등 여러 요소를 조합하여 만들어진 통합된 시스템
- 단순히 소프트웨어뿐만 아니라 하드웨어, 서비스, 기술 지원 등을 포함할 수 있음
- 솔루션은 특정 목적을 달성하기 위해 이미 완성된 형태로 제공되며, 사용자는 복잡한 기술적 세부 사항을 알지 못해도 원하는 기능을 바로 사용할 수 있음
- 객의 요구에 따라 일부 기능을 맞춤화(Customizing)할 수 있다는 특징이 있음
2. 주요 플랫폼 예시 :
- 전사적 자원 관리 (ERP, Enterprise Resource Planning): 기업의 재무, 회계, 인사, 생산, 판매 등 경영 활동 프로세스들을 통합적으로 연계해 관리하는 시스템 (예: SAP ERP, Oracle ERP)
- 고객 관계 관리 (CRM, Customer Relationship Management): 고객 정보를 수집, 분석하여 고객과의 관계를 개선하고 비즈니스 성과를 높이는 데 활용하는 시스템 (예: Salesforce, HubSpot)
- 공급망 관리 (SCM, Supply Chain Management): 제품의 생산부터 유통까지의 전 과정을 효율적으로 관리하여 비용을 절감하고 경쟁력을 강화하는 시스템
- 콘텐츠 관리 시스템 (CMS, Content Management System): 웹사이트의 콘텐츠를 쉽게 제작, 관리, 게시할 수 있도록 돕는 시스템 (예: WordPress, Drupal)
- 그룹웨어 (Groupware): 기업 내 구성원들의 업무 효율성과 협업을 지원하는 통합 업무 시스템 (예: Microsoft 365, Google Workspace)
■ 플랫폼 (Platform)
1. 개념 :
- 플랫폼은 공급자와 수요자 등 여러 그룹이 참여하여 각자가 얻고자 하는 가치를 교환할 수 있도록 구축된 환경을 의미
- IT 분야에서는 서비스나 기능이 작동될 수 있는 기반을 제공하는 시스템을 지칭하는 용어로 사용
2. 주요 플랫폼 예시 :
- 운영체제 (OS) 플랫폼: 애플리케이션이 실행될 수 있는 기본적인 환경을 제공(예: Microsoft Windows, Google Android, Apple iOS)
- 서비스 플랫폼 (애플리케이션 플랫폼): 특정 서비스를 중심으로 공급자와 수요자를 연결하고 새로운 가치를 창출(예: Facebook, Instagram, YouTube, TikTok, Netflix, Amazon, eBay, 쿠팡, 배달의민족, Airbnb, Uber 등)
- 하드웨어 플랫폼: 특정 하드웨어를 기반으로 다양한 소프트웨어와 서비스가 실행되도록 하는 환경을 제공(예: 플레이스테이션, Xbox와 같은 게임 콘솔, 스마트폰 단말기)
- 개발 플랫폼: 개발자들이 소프트웨어를 만들고 배포할 수 있는 환경과 도구를 제공(예: Google Play Store, Apple App Store)
■ 참고정보
- 라이브러리 (Library) vs. 프레임워크 (Framework)
https://while1.tistory.com/175
https://velog.io/@ohsg97/Framework-vs-Library
https://velog.io/@weda/WEB-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-vs-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC
- 솔루션 vs. 플랫폼
https://whdrns2013.github.io/etc/20250714_001_solution_platform/
https://csshark.tistory.com/184
https://play-with.tistory.com/333