관리 메뉴

사과하는 제라스

[CS 지식 공부] 그쪽도 라이브러리와 프레임워크의 차이를 아세요?(feat. API) 본문

CS 지식 공부

[CS 지식 공부] 그쪽도 라이브러리와 프레임워크의 차이를 아세요?(feat. API)

Xerath(제라스) 2023. 12. 26. 18:57

목차

    728x90
    반응형

    안녕하세요. 개발자 제라스입니다~ 👋🏻🤖👋🏻

     

    라이브러리(Library)와 프레임워크(Framework).

     

    두 개념이 워낙 비슷하기도 하면서 꽤나 많이 다르기에 주된 차이점을 알아보려 합니다.

    그럼 시작해보겠습니다!

    서론

    라이브러리와 프레임워크... 차이점을 잘 아시나요??🥺🥺

    저는 이거 솔직히 몰랐어요ㅎㅎㅎ

    React Native 개발을 하면서 의외로 사람들이 이걸 프레임워크인지 라이브러리인지 헷갈려 하는 사람이 많다고 하더라구요.

     

    여기서 TMI~~

    React는 JavaScript 라이브러리인 반면,

    React Native는 이 React를 사용해서 만든 JavaScript 프레임워크입니다.

     

    그럼 이 라이브러리가 뭔지 프레임워크는 또 뭔지 차이를 한번 알아봅시다!

    라이브러리(Library)

    라이브러리소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임입니다.

    동작하는 완전한 프로그램이 아닌, 특정한 부분 기능만을 수행하도록 제작된, 컴파일되어 기계어의 형태로 존재하는 프로그램이라고 하는데...

     

    뭐라는거야 못 알아먹게...

     

    쉽게 얘기하면 API처럼 그냥 갖다가 두면 자동으로 쓰이는 거라기보다는 이 라이브러리라는 것은 import해서 가져다가 어떤 기능을 만들 때 편하게 쓰는 겁니다.

     

    아니 그럼 API는 또 뭔 차인뎁쇼??

     

    그럼 API도 같이 봅시다.

    API두 개 이상의 소프트웨어 컴포넌트 사이에서 상호 작용할 수 있도록 정의된 인터페이스입니다.

    이 API라는 것은 주로 클래스, 프로토콜, 함수 이런 거인데 보통 다른 SW 개발자들이 이 서비스에서 원하는 기능을 쉽게 쓸 수 있도록 만들어 둔 부분들인 거죠.

     

    예시로 보자면...

    ex) 유튜브 API, 네이버 지도 API, Kakao API 등등

    서비스 중 일부 부분들을 가져다 쓸 수 있도록 만들어 둔 일종의 통로인 거죠!

    일상에서 예시를 들자면 제가 앱에서 네이버 지도를 띄우는데 내 위치를 표시하고 싶어요. 그럴 땐 내 위치 정보만 툭 갖다주면 알아서 그걸 가지고 제 위치를 네이버 지도 위에 띄워주겠죠?

    아 물론 이 네이버 지도를 앱에 띄우는 것도 API를 쓴거죠!

     

    여기까진 API 이놈 이해할 만하죠?

     

    아니 그럼 라이브러리는 API랑 뭔 차이심??

    그건 비유를 하자면 API는 내가 어떤 목공소에 의자 만들어주셈~ 한 거라면 라이브러리는 철물점에 가서 나 의자 만들거니까 나사, 볼트, 철제 합판 등등을 사오는 거에요.

    즉, 내가 필요한 것들을 가져다가 필요할 때 쓰려는데 그런 집합소가 라이브러리에요. 그래서 우린 이 라이브러리를 import해놓고 필요한 것들을 갖다 쓰는 거죠.

     

    다시 말해서, 미리 자주 사용되는 기능들(ex. 함수나 객체 같은 형태)을 만들어둔 거고 나중에 개발할 때 가져다 쓰는 거죠.

    프레임워크(Framework)

    그럼 프레임워크의 정의부터 봅시다!

    프레임워크는 프로그램을 개발하기 위해 사용되는 틀을 제공하는 프로그램입니다.

    또 쉽게 보자면 개발을 하는 데에 있어서 정해진 틀이 있고 우리는 그거에 맞춰 개발하면 결과물이 뚝딱~ 나온다는 거죠!

    그래서 이 프레임워크를 쓰면 그 안에서 폴더 구조가 만들어지기도 하고 우리는 이 일률적인 구조 안에서 일정한 틀을 갖고 개발을 하는 겁니다.

    이런 걸 제공해주는 아이가 바로 프.레.임.워.크 라는 겁니다 ㅎㅎ

    예시로는 Spring, React Native, BootStrap 등이 있습니다.

     

    근데 얘 안에도 클래스, 메소드 등등이 정의되어 있어서 우리는 이걸 갖다가 써요.

     

    앙? 그럼 라이브러리 아님?

     

     

     

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

    둘의 차이점은 제어흐름의 권한이 어디있는지입니다.

    라이브러리는 개발하는 우리가 직접 애플리케이션 코드의 흐름을 제어해야 합니다.

    만약 개발을 하다가 으엇? 이거 필요해! 하면 거기서 호출해다가 쓰는 거죠.

     

    반면, 프레임워크는 우리가 프레임워크가 정해둔 틀에 맞춰서 애플리케이션 코드를 짜고 그 틀 안에서 이 코드들이 실행되는 겁니다. 즉, 내가 필요할 때 가져다가 직접 쓰는 라이브러리와 달리 얘는 프레임워크가 알아서 내가 짠 코드들을 실행하기에 수동적인 거죠.

    내 제어흐름 권한을 프레임워크에게 주는 겁니다. 이걸 제어의 역전(Inversion Of Control)이라고 합니다.

     

    다시 정리하자면 라이브러리는 내가 짠 코드에서 원할 때 갖다 쓰는 아이고, 프레임워크는 내가 짠 코드를 자기만의 틀에 맞춰 실행하는 아이인 거죠. 그렇기에 사실상 프레임워크 안에 라이브러리가 들어가는 개념이긴 합니다.

    출처: https://cocoon1787.tistory.com/745

     

    왁왁왁...! 이해해버렸어!!

    마무리

    오늘은 라이브러리와 프레임워크의 차이에 대한 포스팅을 적를 알아보았습니다.

    중간에 API도 같이 알아봤는데 꽤 비슷한 녀석들인데 꽤 다른 아이들인 것 같기도 하네요ㅎㅎ

     

    처음으로 제대로 된 포스팅을 시작하게 된 것 같은데

    앞으로도 많은 관심 가져주시면 더 좋은 정보와 쉬운 설명으로 돌아오겠습니다!

     

    그럼 오늘도 제라스틱한 하루되세요!

    참고

     

    [개발상식] 프레임워크(Framework) 와 라이브러리(Library)의 차이

    🚀 "프레임워크와 라이브러리의 차이를 아시나요?"" "음... 프레임워크는 뼈대이고 라이브러리는 모듈 같은 것이고....😰" "그럼 최근에 사용하신 프레임워크와 라이브러리를 알려주세요." "... ex

    cocoon1787.tistory.com

     

     

    API, 라이브러리, 프레임워크의 차이 ( 개념 / 비유 / 예시 )

    누구에게나 이상하리만치 정말 와닿지 않는 개념이 있다. 나에게는 그것에 API와 라이브러리의 구분이었다. 프레임워크와 라이브러리의 구분은 알겠다. 그러나 API와 라이브러리의 구분은 너무

    velog.io

     

    라이브러리 (컴퓨팅) - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. Ogg Vorbis 파일을 재생하기 위해 libvorbisfile을 사용하는 응용 프로그램의 개요도 라이브러리(영어: library)는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사

    ko.wikipedia.org

     

    프레임워크 - 나무위키

    이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

    namu.wiki


    아직 꼬꼬마 개발자입니다.

    더 나은 설명이나 코드가 있다면 언제든 환영입니다.

    적극적인 조언과 피드백 부탁드립니다!

     

    그럼 오늘도 개발 가득한 하루되세요!

    - Xerath -

    🤖🤖🤖🤖🤖🤖🤖

     

    728x90
    반응형