코드리뷰했을 때 맞닥뜨렸던 두번째 큰 산인 스프링 프레임워크에 대해 정리하기에 앞서서
매우 중요한 기초공사부터 빌드업을 하고 넘어가자(면접에도 마이 나온다칸댜잉)
라이브러리? 프레임워크?
일단 라이브러리, 프레임워크 둘다 누군가가 적어놓은 코드를 우리가 우리의 프로젝트를 위해 가져다 쓰는 것임.
Who is controling?
(내가 코드를 컨트롤을 하는가/ 누군가 정해준 규칙을 따르는가)
Library
"I call Library"
예시) JQuery
- 웹사이트에 인터렉티브한 요소를 넣을 수 있다
웹사이트를 코딩하는데, 내가 필요할 때 JQuery를 소환해서 "내가"코딩해가는 거야.
-쉽게 대체가 된다. 대체해도 프로젝트가 망하지 않아.
-시간을 절약하려고 사용
Framework
"Framework calls me"
예시) django
프레임워크는 부르는게 아니다. 프레임워크가 나를 부른다.
- 프레임워크의 규칙을 따라야해(내가 코드의 규칙을 결정하는 입장이 아니다)
-> 어디에 코드를 넣어야 하는지 알려줘
-장고에서 어드민 패널을 만들고 싶으면, 무조건 코드 admin.py를 써야해. url파일로 만들고 싶으면 url.py를 써야해
(번외)React
-앱의 UI를 빌드업할 떄 "내가" React를 부른다.
(생각해보면 리액트는 규칙이나 폴더 구조, 컴포넌트 명 그런게 없었다)
그러나 "리액트가" 우리의 컴포넌트를 부른다. => 이 경우 리액트를 프레임워크라고 부른다.
리액트가 컴포넌트를 부르는거니까. 뭐가 틀리고 맞는지의 규칙을 알려주기 위해
내가 컴포넌트를 쓰면 리액트가 그걸 불러와서 스크린에 보여준다.