1. '프레임워크' 란
2. '라이브러리' 란
3. 차이점
| '프레임워크' 란
프로그램을 개발 할 때 필요한 메뉴얼을 제공해주는 뼈대 역할을 한다.
일정한 요소와 규약이 짜여진 틀 안에서 개발자가 쉽게 개발할 수 있도록 해준다.
장점
- 이미 1. 검증된 코드로 짜여진 틀이 있기 때문에 2. 시간과 비용을 아낄 수 있으며 3. 유지보수에 안정적이다.
단점
- 정해진 틀이 있기 때문에 라이브러리에 비해 1. 덜 자유로우며 프레임워크에 있는 2. 코드를 습득하고 이해하는 시간이 필요하다.
JAVA - Spring, Python - Django, Ruby - Ruby on Rails 등이 있다.
| '라이브러리' 란
프로그램을 개발 할 때 쓰이는 공구를 제공해주는 도구 역할을 한다.
개발에 필요한 함수나 변수들을 미리 구현해놓은 도구로 적재적소의 공간에 호출하여 사용한다.
장점
- 1. 코드를 재사용하기 쉽고, 이미 구현된 기능들을 쓸 수 있어 2. 개발 시간을 단축 할 수 있다.
단점
- 같은 라이브러리를 가진 여러 프로그램이 동시에 실행 될 경우 코드의 중복으로 메모리 자원을 낭비한다.
C++ - STL, HTML - JQuery, React.js 등이 있다.등
| '프레임워크' VS '라이브러리' 차이점
둘은 연필깎이 (=프레임워크) 와 칼 (=라이브러리)로 비유하면 쉽다.
10개의 연필을 깎아야 한다면,
연필깎이로 깎을 땐 같은 틀 안에서 10개 모두 같은 모양으로 쉽게 깎을 수 있지만
칼 이라는 도구를 이용하면 다양한 모양(방법)으로 깎을 수 있다.
차이점으로는 '제어 흐름' 의 권한이 어디있는지에 있다.
프레임워크는 애플리케이션의 코드가 프레임워크가 제공한 짜여진 틀 안에서 동작하기 때문에
제어 흐름은 사용자가 아닌 프레임워크가 가지고 있다.
반면, 라이브러리는 개발자가 필요할 때 직접 라이브러리를 호출하여 사용하기 때문에 사용자가 제어흐름을 가지고 있다.
'백준' 카테고리의 다른 글
[JAVA] 백준 4948번 베르트랑 공준 (0) | 2023.05.13 |
---|---|
[JAVA] 백준 1929번 소수 구하기 (0) | 2023.05.12 |
[JAVA] 백준 4134번 다음 소수 (0) | 2023.05.10 |
[JAVA] 백준 2485번 가로수 (0) | 2023.05.08 |
[JAVA] 백준 1735번 분수 합 (0) | 2023.05.08 |