# 프레임워크 vs 라이브러리
# 둘의 차이
누군가가 만든 규칙에 내가 무조건 따라야하는가? vs 내가 누군가가 만든 기능을 컨트롤 하는가?
# 라이브러리
- 대표적으로 제이쿼리가 있다
- 웹에서 코딩을 하는데 제이쿼리가 필요할 경우 우리는 cdn이든 npm이든 불러서 사용할 수 있다. 제이쿼리가 필요 없으면 안쓰고 다른 것을 써도된다.
- 내가 원하는 대로 코딩한다
- 누군가가 만든 (라이브러리) 기능을 내가 컨트롤 한다
- 쉽게 대체가 가능하고, 쓰기 싫으면 다른 라이브러리 쓰면된다.
# 프레임워크
- 대표적으로 장고가 있다.
- 기능을 구현하기 위해서는 무조건 해당 프레임워크의 기능을 써야하는 경우
- 프레임워크가 어디에 템플릿을 넣어라, 함수를 넣어라, 뷰를 넣어라 같이 프레임 워크의 규칙을 무조건 따라야 한다
# 리엑트, 뷰는?
- 리엑트, 뷰의 경우 장고와는 다르게 폴더 구조, 컴포넌트 이름 등 딱히 규칙에 정해진 것이 없다 (라이브러리 같은 모습)
- 실제 리엑트는 본인들이 라이브러리하고 말하고 있음
- 그러나 state, props를 컴포넌트에 넘길 때는 리엑트 또는 뷰가 가진 규칙을 지켜야하기 때문에 프레임워크 같은 모습도 보여준다.
- 이것도 아니고, 저것도 아닌 상황 ( 그냥 있는 기능을 잘 쓰는 것이 맞는 듯하다 )
# 그래서 결론은?
- 요즘 프론트에서는 라이브러리 프레임워크가 짬뽕되어 사용되는 현상이 다분하기 때문에 굳이 나눌 필요가 없다고 생각한다. 그냥 개념정도만 알아두면 좋을 것 같다.