본문 바로가기
Programming/Computer Science

라이브러리와 프레임워크에 대한 짧은 생각

by IN.0 2020. 7. 1.
728x90
반응형

참고 영상

 


 

내가 처음 프레임워크와 라이브러리의 존재에 대해 알게 된 것은

파이썬 문법 공부를 어느정도 하고 나서 '웹페이지를 만들고 싶은데 파이썬으로 어떻게 하는 거지?'라는 의문을 가지고

구글에 '파이썬 웹 프로그래밍'을 검색했을 때였다.

당시에는 Django와 Flask 둘 중에 하나를 선택하면 된다는 정도만 알았고,

이게 프레임워크라는 것은 장고(Django) 교재를 사고나서 알았다.

어쨌든 장고를 공부하면서 처음엔 '이게 파이썬이랑 무슨 상관이지?'라는 생각을 많이했다.

매일 메모장처럼 생긴 파이썬 기본 쉘에서만 끄적이다가 장고 사용을 위해 파이참을 깔았는데,

장고를 실행하면 자동으로 생성되는 이 파일들은 뭔가 싶기도 하고, 이걸 다 알아야 한다는 부담감도 있었다.

그래서 프레임워크에 대한 내 첫인상은 '복잡함'이었다.

 

프레임워크가 무엇인지 정확히 정의하진 못해도, 대충 이런 거구나 느낄 때쯤

딥러닝에도 관심이 있어 numpy를 잠깐 경험해보았다.

장고와 마찬가지로 설치가 필요한 도구이지만, 그냥 import random이나 import time처럼

가져다 쓰는 형태이고, 프로젝트 구조를 건드리지도 않으며 '파이썬을 사용하고 있다.'는 느낌은 그대로였다.

그래서 라이브러리는 프레임워크보다는 가볍고 간편한 것이구나 하고 느꼈다.

(설치가 필요 없는 것은 모듈, 설치를 해야 하는 것은 라이브러리라고 생각했는데,

방금 검색해본 결과 모듈과 라이브러리는 보통 동일한 용어로 취급한다고 한다.)

 

어쨌든 프레임워크와 라이브러리를 비교하자면 이케아와 철물점이라고 생각했다.

프레임워크는 특정 목적(django의 경우 웹사이트 만들기)을 달성하기 위해 필요한 모든 도구를 묶어서 개발자가 조립하도록 유도하고,

라이브러리는 필요한 도구가 있으면 따로 가져오 느낌이었다. (의자를 만드는데 나무판자는 있는데 못이 없어서 철물점에서 못만 따로 사는 것처럼..)

꽤 오랫동안 이 생각을 가지고 있었는데 (지금도 괜찮은 관점이라고 생각한다)

위에 첨부한 영상을 보며 생각이 조금 바뀌었다.

 

보통 판타지 만화나 소설을 보면 세계관이 크게 두 가지로

1. 비현실적인 존재를 현실 세계에 소환하는 것

2. 비현실적인 세계로 소환당하는 것

이렇게 나뉜다.

여기서 1번은 라이브러리이고, 2번은 프레임워크로 볼 수 있지 않을까? 하는 생각이 들었다.

물론 영상에서 언급했듯이 모든 도구가 라이브러리 / 프레임워크로 딱 나누어 떨어지는 것은 아니지만

영상을 보고 내 나름대로 정의를 내리면서 재밌었다.

728x90
반응형

댓글