📌 라이브러리
⭐ 개념
- 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것
- 프레임워크에 비해 자유롭다
- 단순 활용가능한 도구들의 집합
- 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것
⭐ 예시
- Python pip로 설치한 패키지/모듈 (tensorflow, pandas, beautifulsoup 등등)
- Node.js에서 npm으로 설치한 모듈
- HTML의 클라이언트 사이드 조작을 단순화하는 JQuery
- 웹에서 사용자 인터페이스 개발에 사용되는 React.js
📌 프레임워크
⭐ 개념
- 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것
- 라이브러리에 비해 엄격하다
- 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서 필요한 코드를 짜 넣는다
- 가져다가 사용한다기보다는 거기에 들어가서 사용한다는 느낌
⭐ 예시
- Java 서버 개발에 사용되는 Spring
- Python 서버 개발에 사용되는 Django, Flask
- 안드로이드 앱 개발에 사용되는 Android
- 웹 개발에 사용되는 Angular, Vue.js 등
- 루비로 작성된 MVC패턴을 이용하는 Ruby on Rails
💡 IoC(Inversion Of Control)