코딩을 빌리다. 라이브러리
해당 브런치에 남김 글은 초고입니다. 완성된 작품은 해당 "오늘부터 IT를 시작합니다."로 출간하였습니다!!
구매하여서 완성된 글을 종이책의 정감과 편안함으로 읽어보시길 바랍니다^^
감사합니다.!!
http://www.yes24.com/Product/Goods/111417594
도서관에는 지식들이 있습니다. 누군가의 인생을 지식을 기록한 책들이 가득합니다. 주말에는 어김없이 도서관에 가서 책을 빌립니다. 우선 관심 있는 장르의 책이 모여있는 열람실을 찾아 들어갑니다. 언제나 그랬듯이 IT 도서가 가득한 책장이 앞에 나타납니다. 서가에서 몇 권의 책을 훑어 보고 마음에 드는 도서를 겨드랑이 끼우고 또 다른 책을 살펴봅니다. 그렇게 2권의 책이 정해지면 대출반납 데스크를 찾아갑니다. 구민 회원증을 제시한 후에 대출을 완료합니다. 요즘은 비대면이 유행인지라 무인대출 반납기로 좀 더 쉽게 책을 빌릴 수 있습니다. 그렇게 오늘도 저는 누군가의 인생을, 누군가의 지식을 빌려 갑니다.
뉴욕 공립도서관(New York Public Library)은 세계 5대 도서관이자 철학이 살아 숨 쉬고 예술이 꿈틀거리는 뉴요커들이 사랑하는 뉴욕의 심장부입니다. 철강왕 '카네기 재단'의 후원으로 설립되었고, '뉴욕시'와 민간 예산이 조합된 ‘거버넌스’의 형태의 조직으로 운영되고 있습니다. 이 다큐멘터리는 명품 다큐 제작자 '프레더릭 와이즈먼'이 감독을 맡은 작품입니다. 123년의 역사를 가진 뉴욕 시민의 지식의 등대가 되어주는 이 도서관을 12주 간 기록한 영화입니다. 도서관은 책을 보관하고 책을 대여해주는 유통점 같은 공간으로 여겼던 우리들 생각을 깨트린 작품입니다. 이 도서관은 지식을 얻고 싶은 사람들을 위한 간절한 공간이고 그런 사람들이 모여 문화 공동체를 이룬 공간입니다. 그런 공동체를 위해 이 도서관의 직원들은 쉬지 않습니다. 강연, 예술 공연, 교육 프로그램, 취업 박람회 등 시민들을 위해 다양한 이벤트들을 위해 노력합니다. 그렇게 뉴욕 공립도서관을 찾아온 모든 이들에게 누구나 무료로 사유할 수 있는 지식을 제공하고 그 누군가의 지식을 통해 성장한 한 시민이 다시 도시를 이끌어 가는 힘이 됩니다.
프로그래밍에서 라이브러리라는 단어는 왠지 생소할 수 있습니다. 해당 단어를 직역하면 '도서관'이라고 번역이 됩니다. 도서관(圖書館)의 '館'은 건물을 뜻합니다. 그래서 책이 들어 있는 건물이 자연스럽게 떠오를 수 있습니다. 하지만 library는 라틴어 'libre'에서 파생되었습니다. 이 단어는 '모여 있는 책' 즉 뜻을 지녔습니다. 다시 말하면 라이브러리는 해당 관련 지식이 모여있는 집합이라고 생각할 수 있습니다.
개발에서도 '라이브러리'라는 단어는 그렇게 쓰입니다. 누군가의 지식을 함축해 놓은 코딩의 결과 물입니다. 코딩과 글쓰기는 매우 닮아 있습니다. 다만 영어와 한국어 차이처럼 그것을 표현하는 언어가 다를 뿐입니다. 그렇기 때문에 잘 짜인 라이브러리는 책 한 권과 같습니다. 어느 선배 개발자가 만들어 놓은 귀한 지식을 가져다 쓸 수 있기 때문입니다. 그것이 바로 코딩과 도서관이 말하는 라이브러리입니다.
조금만 더 라이브러리의 개념을 살펴보겠습니다. 소프트웨어 개발 시 공통으로 사용할 수 있는 기능들을 모듈화 한 것이 바로 '라이브러리'입니다. 라이브러리는 스스로 동작하는 완전한 프로그램이 아닌 특정한 기능만을 수행할 수 있도록 개발된 형태입니다. 그 자체를 직접 실행하기보다는 개발자가 사용법에 따라 프로그램에 보태어서 필요한 기능들을 재생산하는 개념입니다.
라이브러리를 사용하는 이유는 책이 전하는 지식을 대물림 하는 모습과 닮아 있습니다. 만약 강아지에 대해 알고 싶다면 강아지를 입양하고 행동과 특성을 직접 연구하여서 지식을 습득하지 않습니다. 그렇게 한다면 단순하 특정 동물의 지식을 얻기 위해 낭비되는 시간이 아까울 수 있습니다. 코딩에서의 라이브러리도 이와 마찬가지입니다. 개발자가 특정 서비스를 만들기 위해 모든 기능을 직접 코딩하는 건 매우 어렵습니다. 예를 들면 사용자의 IP 주소를 가져오는 기능을 구현해야 한다고 하면, 이 기능만을 개발하는데 한 달 아니 일 년이 걸릴지도 모릅니다. 하지만 라이브러리를 이용하면 누군가 만들어 놓은 수고를 이용할 수 있습니다. 간단하게 그 지식을 라이브러리라는 구조로 가져다 쓰게 된다면, 불필요한 시간을 소비하지 않게 되고, 시간은 절약되며, 필요한 시스템을 만들 수 있는 여건을 만들 수 있습니다. 브라우저 점유율 1위 크롬도 구글이 모든 것을 만들지 않았습니다. 오픈소스로 공개된 25개의 라이브러리 코드를 활용하여 만들어졌고, 훌륭한 라이브러리가 주는 도움으로 인해 2008년부터 우리는 크롬을 사용할 수 있게 되었습니다.
라이브러리의 종류는 두 가지로 나뉠 수 있습니다. 프로그래밍 언어를 만든 개발자들이 제공하는 표준 라이브러리와 외부 개발자들이 만들어 배포하는 외부 라이브러리입니다.
* 표준 라이브러리(standard library)
- 제작사에서 제공하는 정식 라이브러리를 의미합니다.
- 프로그래밍 언어의 여러 구현체에서 통용될 수 있도록 만들어진 라이브러리를 의미합니다.
- 표준 라이브러리를 이용하면 별도의 파일 설치 없이 다양한 기능을 이용할 수 있습니다.
* 외부 라이브러리
- 별도의 파일을 설치하여야 사용할 수 있습니다.
- 누구나 개발하여 사용하고 공유할 수 있습니다.
- 다운로드를 통하여 라이브러리를 사용할 수 있습니다.
책에서 지식을 빌립니다. 그리고 지식을 통하여 한 단계 더 빠르게 성장합니다. 코딩에서 라이브러리를 빌립니다. 그리고 그 라이브러리를 통하여 개발자는 한 단계 더 성장하고, 새로운 프로젝트를 완료합니다. 코딩을 빌린다는 말은 조금 낯설 수 있습니다. 하지만 책과 코딩의 공통점이 있다면 많이 빌려서 읽을수록 성장할 수 있다는 것입니다. 그리고 조금 더 나아가 누군가에게 빌려줄 책을 라이브러리를 만들 수 있는 개발자가 되는 것은 어떨까요?
코딩을 개발자의 인생을 빌리다. 라이브러리