ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL]Day 18. 라이브러리? 프레임 워크?
    IT 지식 2020. 9. 28. 16:31
    728x90

     

     

     

    개발을 하다보면 라이브러리를 활용해야 한다거나 프레임워크를 사용해야 한다는 말을 많이 듣게 됩니다. 문맥상 나에게 필요한 기능을 가져다 쓴다는 것은 알겠는데, 신입 개발자 입장에서 그 둘의 차이점이 뭔지 명확하게 와닿지 않는다는 것이 문제입니다. 

     

    이렇게 넘어가시면 안됩니다.

     

    오늘은 라이브러리와 프레임워크의 차이점에 대해 알아보는 시간을 가져보도록 하겠습니다. 

     

    1. 라이브러리(library) 란?

     

    라이브러리란 영문사전을 찾아보면 도서관이라는 뜻입니다. 왜 이런 이름이 붙었을까요? 

     

    우리가 도서관을 가서 하게 되는 일은 우리가 읽고 싶은 책을 찾아서 읽는 것입니다. 경우에 따라서는 읽는 것에서 나아가 그 지식을 실생활에 활용하는 일까지 하게 되죠. 라이브러리는 이처럼 우리가 개발을 하다가 필요한 기능이 생겼을 때, 다른 사람들이 미리 구현해 놓은 기능을 인용해 사용할 수 있는 요소를 말합니다. 좀 더 간단한 문장으로 요약하자면, '특정 기능에 대한 도구나 함수들의 모음' 이라고 할 수 있겠네요. 

     

    다른 사람들이 미리 구현해놓은 이 지식들은 우리가 필요한 기능을 구현하기 위해 처음부터 기능을 설계하지 않아도 쉽게 사용할 수 있다는 점에 있어서 개발자들에게 너무나도 값지고 중요한 도구들이라고 할 수 있습니다. 

     

    나를 위해 미리 준비해두었다니..!!

    2. 프레임워크란?

     

    프레임워크 역시 큰 틀에서의 개념은 라이브러리와 유사합니다. 이 역시 특정한 기능을 구현하기 위해 필요한 알고리즘, 데이터베이스 등을 모아놓은 집합체라고 할 수 있습니다. 프레임워크를 사용할 때 주의할 점은 해당 프레임워크에서 요구하는 문법이나 규칙들을 따라야한다는 것이죠. 이를 어기고 코딩한다면 공들여 만들어 놓은 코드들이 전혀 작동하지 않는 상황을 맞이하게 될 것입니다.

     

     

     

    3. 그렇다면 라이브러리와 프레임워크의 차이점이 뭐죠?

     

    라이브러리와 프레임워크의 가장 큰 차이점은 '흐름에 대한 제어권한의 차이'라고 할 수 있습니다. 이렇게 말해서는 와닿지 않는 분들을 위해 다르게 표현해보자면, '개발자가 코드를 얼마만큼이나 제어할 수 있느냐'라고 할 수 있습니다.

     

    프레임워크는 전체적인 흐름을 그 스스로가 가지고 있어, 이를 사용하는 개발자는 프레임워크가 요구하고 제시하는 틀 안에서 코딩을 작성해야 합니다. 프레임워크의 문법을 어긴다면 이를 사용할 수 없게 되는 것이죠(이를 제어의 역전이라고 표현합니다). 반면, 라이브러리는 개발자가 전체적은 흐름의 주도권을 가지고 있으며, 개발자가 필요한 순간에 이를 주도적으로 활용할 수 있습니다. 

     

    이렇게 설명을 듣고 다시한번 단어를 살펴본다면 용어에 대한 이해가 좀 더 명확해지실 겁니다. 

    라이브러리: 도서관(라이브러리)처럼 내가 필요한 책(도구)을 가져다 활용하는 것.

    프레임워크: 주어진 틀(프레임) 안에서 틀이 요구하는 방식으로 작업(워크)하는 것 .

     

    4. 라이브러리와 프레임워크의 예시.

     

    라이브러리의 예:

    React JS, jQuery, Beautifulsoup etc...

     

    프레임워크의 예:

    Angular JS, django

     

    5. 마치며.

     

    개발환경에서 라이브러리와 프레임워크를 잘 활용하는 것은 너무나도 중요합니다. 작업의 개발 속도를 높여주기 때문에 돈과 시간을 절약할 수 있고, 스스로 코드를 작성했을 때 발생할 수 있는 오류를 최소화할 수 있기 때문입니다. 라이브러리와 프레임워크를 잘 활용하셔서 한층 더 행복한 개발 생활을 누리셨으면 좋겠습니다~^^

     

    728x90

    'IT 지식' 카테고리의 다른 글

    [TIL]Day 20. 리액트(React)란?  (0) 2020.10.04
    [TIL]Day 19. 문자 인코딩이란?  (0) 2020.09.29
    [TIL]Day 17. addEventListener 에 대해  (0) 2020.09.23
    [TIL]Day 16. HTTP와 DOM의 개념  (0) 2020.09.22
    [TIL]Day 15. JS 정리(2)  (0) 2020.09.21

    댓글

Designed by Tistory.