# Differences between framework and library > 프레임워크와 라이브러리의 차이에 대한 생각. <프레임워크>와 <라이브러리>의 차이에 대한 생각. ## 의존성 역전? 가장 널리 쓰이는 구분법은 [의존성 역전](https://wiki.g15e.com/pages/Dependency%20inversion.txt) 여부인 것 같다. 내 코드가 호출을 하면 그건 라이브러리이고, 내 코드가 호출을 당하면 그건 프레임워크라는 구분. ## 경계가 모호한 상황 하지만 그 경계가 분명하지 않은 경우가 종종 있다. 라이브러리인 경우에도 콜백이 존재할 수 있고, 프레임워크인 경우에도 <템플릿 메서드> 패턴처럼 내가 호출하기도 한다. ## 쓰는 사람에 따라 다른 상황 어떤 라이브러리/프레임워크는 어떻게 쓰느냐에 따라 좀 더 프레임워크처럼 쓸 수도 있고 좀 더 라이브러리처럼 쓸 수도 있다. 그래서 이를테면 "[리액트](https://wiki.g15e.com/pages/React.txt)는 리액트 개발자가 라이브러리라고 했으니까 라이브러리가 맞다"는 류의 주장(종종 듣습니다)엔 동의하지 않는 편이다. ## 제약을 가하는 정도에 따른 구분 그러므로 내가 선호하는 구분은 다음과 같다. 내 코드에 상대적으로 많은 제약을 가하면 프레임워크에 가깝고, 제약을 덜 가하면 상대적으로 라이브러리에 가깝다는 식으로 느슨하게 생각하는 게 유익하다고 생각한다. 제약의 원인이 코드 자체의 설계로 인한 것이건 내가 그 코드를 가져다가 쓰는 방식으로 인한 것이건 간에. 이런 식으로 배타적 소속성보다는 정도(degree)로 생각하기가 유익한 경우가 많다. 두 개념 사이의 경계가 모호하다고 하더라도 개념을 지칭하는 용어가 있으면 때때로 유익하기도 하므로, 용어의 구분 자체가 무의미하다고 생각하지는 않는다.