카테고리 없음

라이브러리 프레임워크 차이점

letsgojieun 2021. 8. 18. 18:14

 

라이브러리와 프레임워크는 모두 프로그램 개발을 좀 더 쉽게 하기 위함이라는 공통점이 존재한다

큰 틀에서 보면 둘 다 똑같아보이는데 어떠한 차이점이 존재하는지 더 명확하게 구분해보자

 

 

라이브러리 ?

쉽게 말하면 라이브러리는 여러 가지 툴 같은 '도구'의 모음이라고 볼 수 있다.

프로그래밍에서 어떤 특정한 기능을 구현하기 위해 필요한 함수를 가져다 쓰는 함수의 집합이다

정해진 틀 없이 우리가 원하는 흐름대로 이것저것 가져다가 붙여 넣는다고 생각하면 된다

 

 

프레임워크?

영어를 그대로 해석해보면 일하는 틀! 즉 뼈대나 기본구조를 의미하며 프레임워크를 통해

일정하게 짜인 틀을 가지고 일을 한다고 생각할 수 있다.

위의 라이브러리는 우리의 입맛대로 필요한 기능을 이것저것 가져와서 붙여 넣지만,

프레임워크는 사용하기 위해선 룰이 존재하기 때문에 이 규칙을 지켜가면서 일정한 틀 안에서 개발을 해야 한다

 

이 두 개를 함께 사용이 가능한데,

프레임워크라는 큰 틀 (공간)에 우리가 들어가서 그 안에서 프레임워크의 룰을 지키며 추가로 원하는 부분은

라이브러리 기능을 가져와서 사용할 수 있다 (라이브러리를 써도 되고 안 써도 됨)

 

 

라이브러리와 프레임워크의 차이점?

흐름을 누가 쥐고 있느냐가 가장 큰 차이점이다.

라이브러리의 경우 개발의 흐름에 대한 제어를 개발자가 하며 필요한 상황에 가져와서 사용하는 것이고,

프레임워크의 경우에는 프레임워크 자체가 전체적인 흐름을 쥐고 있어서 이를 따라서 개발자가 그 안에 코드를 작성하는 것이다. 

 

 

프레임워크와 라이브러리를 검색해보면 '제어의 역전' 이란 말을 자주 접할 수 있다

 

제어의 역전이란?

원래 프로젝트를 생성해서 그 흐름을 정하는 건 개발자의 몫으로 어떤 순서를 부여하느냐에 따라 흐름을 제어하는 것이

일반적인 사고이다

하지만 프레임워크에선 이와 반대로 이러한 흐름을 프레임워크 자체가 갖고 있어서 개발자의 제어 권한을 프레임워크가 갖게 되므로 이러한 제어의 권한을 프레임워크에게 주었기 때문에 이를 제어의 역전이라고 말한다.

이러한 제어의 역전은 객체 관리에 덜 신경 쓸 수 있게 되며 약한 결합을 통해 객체 간 의존관계를 쉽게 변경이 가능하게

도와주기 때문에 코드의 재사용성과 유지보수성을 높여준다는 장점이 존재한다

 

 

Ref.

https://velog.io/@damiano1027/Spring-%EC% 9D%98% EC% A1% B4% EC%84% B1-%EC% A3% BC% EC% 9E%85-%EC% A0% 9C% EC%96% B4% EC% 9D%98-%EC%97% AD% EC% A0%84

https://juyeop.tistory.com/23

https://engkimbs.tistory.com/673

 

 

 

 

반응형