ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [기초개념]라이브러리와 프레임워크
    프로그래밍 2023. 3. 11. 22:04

    💀프레임 워크

    프레임워크 : 뼈대 ,골격이라는 의미로 일정한 형태와 기능을 갖추고 있어 기능 구현에 집중하여 개발 할 수 있도록 도와준다.

    예를 들어 DB연동하기위해 무엇을 써야하는지 메모리 관리, 이벤트 루프 등의 공통된 부분의  작업은 프레임워크가 관리하고,

    사용자는 정해준 방식대로 움직이면 된다.

     

    프레임워크의 예

    • Java서버 개발을 위한 Spring
    • Python의 Django,Flask
    • 안드로이드 앱 개발을 위한 Android
    • 웹 개발의 Angular,Vue.js,Next.js등

     


     

    ⚒️라이브러리

    프레임워크 처럼 큰 골격이나 규칙이 정해져있지 않고, 조금더 좁은 문제를 해결하기 위한 도구.

    필요에 따라 라이브러리를 사용 할 수 있으므로 자율성이 보장 된다.

     

     

    라이브러리의 예

    • 인터페이스 개발을 위한 React
    • node.js에서 npm으로 설치한 모듈들 
    • JQuery 등

     

     


     

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

    "제어 흐름"의 권한이 어디에 있는가

     

    선택의 자유 라이브러리

    도구를 가지고 무엇을 만들어야 한다고 생각해 보자. 사람은 도구를 선택할 수 있는 입장에 있기 때문에,

    어떤 도구를 사용하든 원하는 것만 만들어 내면 된다. 

    땅을 파야한다면 삽을 이용할 수도 있고,삽이 없다면 곡괭이를 이용할 수 있다. 모든 도구의 선택은 작업자의 마음에 달려있다.

    이렇게 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰게 된다.

    즉, 개발자에게 전적으로 제어 흐름이 있으며 필요할 때마다 자유롭게 라이브러리를 호출하여 사용할 수 있다. 

     

    제어의 역전 프레임워크

    프레임워크를 탈것이라고 생각해 보자. 탈 것은 각각의 규칙과 조작법을 가지고 있다.

    예를 들어 차를 타고 바다를 건넌다거나, 비행기를 타고 도로를 달릴 수 없다. 정해진 길로만 다녀야 한다.

    자동차를 타고 달릴 땐 신호를 지켜야 하고 조작을 하며 운행을 해야 한다. 이렇게 탈것에는 규칙이 있고, 이 규칙을 지켜야 한다.

    규칙을 잘 지키면 원하는 목적지까지 편하게 도착할 수 있다.

    근데 우리가 자동차 페달을 밟으면 앞으로 움직인다는 것을 알지만, 자동차 내부에서는 어떤 동작을 하는지까지는 알지 못한다.

    이렇게 프레임워크는 제어의 역전(IoC : Inversion of Control) 개념이 적용되어 있다. 프레임워크에게 제어의 흐름을 넘겨

    개발자가 작성하는 코드에서 신경 써야 할 부분을 줄인다는 뜻이다.

    프레임워크는 전체적인 흐름을 쥐고 있으며 애플리케이션의 코드(사용자가 작성)는 프레임워크에 의해 사용된다.

    프레임워크가 짜놓은 틀 안에서 수동적으로 동작하기 때문에 제어의 흐름은 프레임워크에게 있다. 

     

     

     

Designed by Tistory.