저는 angular 프레임워크와 react 라이브러리를 학습하였습니다.
프레임워크와 라이브러리 차이에 대한 질문에,
프레임워크는 잘 준비된 틀과 같습니다. 보통 붕어빵 틀과 같은 비유를 드는데, 밀가루의 양, 반죽상태에 따라 달라지지만
틀을 통해 나온 붕어빵들은 대개 비슷한 모양의 결과물이 나옵니다. 이는 장점이자 단점이기도 합니다
잘 준비되어있으므로 생산성이 증가되며 다른 고민할 필요 없이 프레임워크에 대한 사용법을 이해하면 됩니다.
angular의 경우 라우팅을 한다던가, 상태관리를 할 때에 있어 다른 라이브러리 필요 없이 프레임워크 내에 기능이 존재합니다.
반면 라이브러리는 요리로 비유하자면 조미료처럼 활용가능한 도구에 불과합니다.
react의 경우 라이브러리 이기때문에 react-router라던가, redux 같은 추가적인 라이브러리를 설치하여 결과물을 내는데
이는 자유도가 높은 장점을 지니게 됩니다.
가장 큰차이는 제어의 흐름이 어디에 있냐이며 프레임워크는 제어를 프레임워크가, 라이브러리는 애플리케이션이 흐름을 제어합니다.
[참고]
아직까지 개념이 모호하다면 좀 더 구체적인 예를 들어보도록 하겠습니다.
일단 모든 소스코드든 라이브러리든 간에 메모리에 들어가는 정보는, 컴파일러나 인터프리터에게는 호출 가능한 모듈일 뿐입니다.
이런 물리적인 계층을 보지말고, 그 위의 논리적인 계층을 봐야 합니다.
라이브러리는 톱, 망치, 삽같은 연장입니다.
사람이 들고 썰고, 바꿔들고바꿔 들고 내려치고, 다시 바꿔 들고 땅을 파는 겁니다.
프레임워크는 차, 비행기, 배같은 탈 것입니다.
사람이 타서 엔진 켜고, 기어 넣고, 핸들 돌리고, 운전하거나, 조종하거나 해야 합니다.
도구를 쓸 때, 급하면 썰어야 할 곳에 망치를 쳐도 됩니다. 땅 파야할 때 톱으로 땅을 긁어내도 됩니다.
사람은 도구를 선택하는 입장이기 때문에, 어떤 도구를 사용하든 원하는 것을 만들어낼 수 만 있으면 됩니다.
반면에, 탈것은 정해진 곳으로만 다녀야 합니다.
차를 타고 하늘을 날거나, 배를 타고 땅으로 갈 수는 없습니다.
하지만, 그 목적에 맞게 만들어져 있기 때문에, 톱이나 망치를 들고 먼저 탈것을 만들어야 할 필요가 없습니다.
그저 정해진 규칙에 맞춰서 엔진, 기어, 핸들만 잘 돌리면 되는 것입니다.
출처: https://webclub.tistory.com/458 [Web Club]
'공부 > TIL-D' 카테고리의 다른 글
0620 (0) | 2019.06.20 |
---|---|
@Input @Output (0) | 2019.06.20 |
float , float 부작용 해제하는 방법 (0) | 2019.06.03 |
DOCTYPE의 변화 (0) | 2019.06.02 |
style (0) | 2019.06.01 |