코딩에서 라이브러리란?

youneeo·2023년 8월 22일
0

프로그래밍 언어를 배우고 'hello world'를 프린트할 줄 알게 되고 이제 무언가 필요한 작업을 하려고 하면 가장 먼저 라이브러리(library)와 만나게 된다. 이미 여러 프로그래밍 언어를 아는 사람에게는 익숙한 단어이지만 어떤 프로그래밍 언어를 이제 막 배우기 시작한 사람은 라이브러리 개념부터가 헷갈린다. 인터넷을 찾아보면 여러 사이트가 라이브러리의 정의를 설명해주기는 하지만 대부분 IT용어로 설명하여 감을 잡기가 힘들다. 이 글은 이러한 어려움을 겪는 사람들을 위한 글이다.

라이브러리(Library)의 의미
우리는 라이브러리라고 하면 보통 '도서관'을 떠올린다. 책장이 잔뜩 들어서고 책장에는 책이 가득한 건물을 우리는 도서관이라고 부른다. '관'이라는 한자 자체가 건물을 뜻한다. 그래서 '라이브러리'하고 하면 우리는 커다란 건물을 떠올리게 되고 여기에서 영어 뉘앙스와 약간의 차이가 발생한다. 영어로도 library라고 하면 보통 도서관 건물을 뜻하긴 한다. 그러나 뉘앙스상 초점은 외형적인 건물이 아니라 안에 들어찬 책들에 더 맞춰진다.

라틴어 libre에서 파생된 library는 책들의 집합에 가까운 뜻을 지녔다. 그러니까 건물이 아니더라도 서적들이 모여있으면 라이브러리에 해당하는 셈이다. 프로그래밍에서 말하는 라이브러리(library)에 대한 감을 제대로 잡으려면 라이브러리를 도서관이 아닌 '책들의 집합'이라고 이해하는 편이 좋다.

또한 프로그래밍에서 말하는 라이브러리는 그 분야가 더 구체적이다. 특정한 주제에 대한 라이브러리가 그 주제를 더 구체적으로 다루는 책들로 구성된다. python 을 예로 들어보자.
Python은 저런 식으로 수많은 라이브러리를 갖췄다. 파이썬이 매력적이고 인기 많은 언어로 떠오른 이유도 라이브러리가 풍부하기 떄문이다. 저 중에서 개인적으로 많이 활용하는 'PDF 텍스트 추출 라이브러리'를 살펴보자. 이 라이브러리는 다음과 같은 (책에 해당하는)여러 부분들로 이루어진다.
라이브러리를 왜 써야 하나?
라이브러리를 쓰는 이유는 크게 두 가지이다.

1.모든 기능을 직접 코딩하지는 못하기 때문에
2.시간을 절약하기 위해
보통 1) + 2)의 이유로 라이브러리를 쓰게 된다. 위에서 예시로 든 'PDF TEXT 추출 라이브러리'의 경우 1)본인 스스로 PDF에서 TEXT를 추출해내는 기능을 직접 코딩하지 못하기 때문에, 2)직접 코딩이 가능하다고 해도 이미 잘 만들어진 라이브러리를 쓰면 시간이 훨씬 절약되기 때문에 라이브러리를 쓰게 된다.

예를 들어 각종 도형을 그려려야하는 작업을 해야 한다고 가정해보자. 삼각형 10개, 사각형 10개, 원 10개를 그려야 한다. 이 도형들은 모두 크기가 달라야한다. 이 때 선택지는 크게 두 가지이다.

1.총 30개의 도형을 하나하나 코딩하여 그리기
2.삼각형의 경우 세 변의 길이, 사각형의 경우 네 변의 길이, 원의 경우 지름의 길이를 입력하면 각 도형을 입력해주는 방법서(라이브러리) 활용하기
이 두 방식을 작업 순서 중심으로 비교해보자.

설명 효과를 위해 극단적인 예시를 들었지만 실제로 코딩을 하다 보면 위와 같은 상황에 맞닥뜨리게 되곤 한다. 좀 이른 말이지만 그래서 코딩에서는 코딩 실력만큼이나 사전 설계가 중요하다.

python은 다른 언어들보다도 라이브러리를 쉽게 불러오고 사용하도록 만들어졌다. 그리고 라이브러리가 수없이 많다. 이에 후에 대해서는 따로 다루도록 하겠다.
라이브러리는 누가 만드나?
누구나 마음만 먹으면 책을 낼 수 있든 라이브러리도 누구나 만들 수 있다. 자신을 위해서든 남을 위해서든 어떤 작업을 간편하게 수행하기 위해 무언가를 작성했다면 그것이 바로 라이브러리가 된다. 다만 어떤 책은 잘 팔리고 어떤 책은 안 팔리듯 라이브러리도 어떤 라이브러리는 유명해져서 많은 사람들이 쓰기도 하고 어떤 라이브러리는 아무도 안 쓰기도 한다.

다른 언어들 보다도 python은 그야말로 무궁무진한 라이브러리를 갖췄다. 라이브러리 사용법만 익히면 python을 공부한지 얼마 안 된 사람들도 엄청나게 많은 기능을 쉽게 사용할 수 있다. PDF에서 텍스트를 긁어오는 코드를 나는 작성하지 못한다. 하지만 pdfplumber와 같은 라이브러리 덕분에 그 라이브러리를 쉽게 불러와 필요한 기능을 사용하여 나에게 필요한 코드를 작성할 수 있게 된다. 이것이 python의 강점이자 python이 인기가 있는 이유이다.

이에 대한 추가적인 이야기는 pyhton과 관련된 글에서 진행하도록 하겠다.

profile
정돈된 공간에서 생각하기를 좋아합니다.

0개의 댓글