인프런 커뮤니티 질문&답변

김민지님의 프로필 이미지
김민지

작성한 질문수

스프링 핵심 원리 - 기본편

IoC, DI, 그리고 컨테이너

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

작성

·

299

0

프레임워크 vs 라이브러리 프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면 그것은 프레임워크가 맞다. (JUnit) 반면에 내가 작성한 코드가 직접 제어의 흐름을 담당한다면 그것은 프레임워크가 아니라 라이브러리다.
-> 여기서 제어한다는게 무슨 의미인지 모르겠어요
예시를 들어주실 수 있나요?
 
 
    • 라이브러리와는 달리 프레임워크는 이미 프로그래밍할 규칙이 정해져 있습니다.예를 들어, 설정파일로 사용되는 XML에 어떤 태그를 써야하며, 어떤 함수를 추가적으로 작성해야하고, 소스 파일을 어느 위치에 넣어야하며, DB와 연동하기 위해 무엇을 써넣어야 하는지 정해져 있습니다.보통 이런 대부분의 작업은 프레임워크가 하고자 하는 일에 비하면 아주 작은 일이며, 사람은 극히 일부분만 조정함으로써 목적을 달성할 수 있습니다.
    • 라이브러리는 사용자가 필요할때 언제 어디서 호출할지 결정할 수 있지만 프레임 워크는 가져다 쓴다기보단 거기에 들어가서 사용하는 느낌이다. 프로그래밍규칙이 정해져있다.

    구글링해서 여기까지는 알겠는데 정확하게는 잘 모르겠어요..

답변 1

1

안녕하세요. 김민지님, 공식 서포터즈 OMG입니다.

라이브러리의 경우, 우리가 작성하는 코드에서 실행을 시킬지 말지, 어느 시점에 사용할지 말지를 정할 수 있습니다.

반면 프레임워크는 만들어진 그 틀 안에서 실행과 동작이 이뤄집니다.

스프링도 그러하고, Junit도 마찬가지입니다.

Junit을 사용한다 했을 때 Junit자체를 쓸지 안쓸지 결정하는 것은 개발자의 몫이지만, Junit을 사용한다고 했을 때 그 실행결과에 대한 처리는 Junit이 담당하지 개발자가 담당하는 영역은 아닙니다.

이러한 관점으로 보시면 될 것 같아요.

추가로 유튜브에도 라이브러리 vs 프레임워크로 검색하시면 많은 영상을 확인하실 수 있으니 참고하시면 이해에 많은 도움이 되실꺼에요


감사합니다.

김민지님의 프로필 이미지
김민지

작성한 질문수

질문하기