brunch

You can make anything
by writing

C.S.Lewis

by 이현아 Jun 10. 2022

3. 밤샘 개발을 줄여주는 도구들

말문을 트이게 만드는 IT지식

이번 글을 총 8개 중 3번째 챕터입니다. 원활한 이해를 위해 차례로 읽어보시는 것을 추천드려요.

글 하단에 모든 챕터를 확인하실 수 있습니다.



“이번 프로젝트는 Vue.js로 개발을 진행합니다.”
“Google 지도 SDK가 필요해요.”
“이 앱은 리액트 네이티브로 개발했어요.”


만약 개발자가 백지에서 시작해 모든 코딩을 직접 만들어야 한다면 정말 어렵고 시간도 많이 걸리겠죠? 그래서 개발자들은 효율적인 작업을 위해 라이브러리, 프레임워크, SDK라는 것을 사용합니다.


이 셋은 대체 무엇이며 어떤 차이가 있는지 지금부터 알아봐요!





1. 라이브러리 (Library)


라이브러리는 말 그대로 도서관이라는 뜻으로 ‘코드 예제들의 모음집’입니다. 여기서 원하는 기능을 구현하는 코드를 찾고 내 작업에 맞게 수정해서 사용합니다.


만약 여러분이 버튼을 만들어야 한다면, 라이브러리에서 ‘버튼’ 코드를 찾아 가져온 뒤 원하는 영역만 수정하여 사용하면 됩니다. 그림과 같이 적합한 버튼 라이브러리를 가져와 색깔과 이름만 부분적으로 수정합니다. 물론 실제 코드는 그림보다 훨씬 복잡하게 이루어져 있지만 이해를 위해 쉽게 풀어 적었으니 참고해 주세요!



라이브러리는 개발자 자신이 직접 코드를 수집하여 만들기도 하지만, 다른 사람이 만들어서 공유한 라이브러리를 가져다 쓰기도 합니다. 인터넷에 무수히 많은 라이브러리가 존재하고 개발자는 원하는 코드가 있는 라이브러리를 탐색해서 사용하면 되는 것이지요.


많이 쓰는 라이브러리로는 react.js, jQuery, Chart.js, JUnit, Jackson 등이 있어요.


음식을 만든다고 가정해보면, 라이브러리는 필요한 도구와 재료를 여기저기서 구입해서 만드는 거예요. 이마트, 홈플러스, 롯데마트 등에서 좋은 재료를 손질해서 판매합니다. 음식을 만들기 위해 필요한 가스레인지와 프라이팬 같은 조리도구, 가전도 완제품으로 만들어서 판매하죠. 그러면 사용자는 여기저기에서 필요한 도구들과 재료를 구입해서 내가 원하는 음식을 만들면 됩니다.


근데.. 이렇게 하나하나 모두 구입해서 사용하려면 음식 하나를 만드는데 얼마나 오랜 시간이 걸릴까요? 그래서 이번에는 프레임워크와 SDK에 대해 알아보겠습니다.





2. 프레임워크 (Framework)


프레임워크는 ‘Frame(틀, 뼈대)+Work(작업)’의 합성어입니다. 말 그대로 정해진 틀 안에서 작업을 할 수 있는 프로그램이에요. 프레임워크는 사용하는 언어, 파일 배치, 규칙 등을 모두 정해주기 때문에 개발자는 정해진 형식에 따라 코드를 작성해야 합니다. 대신 이미 뼈대를 완성해 제공하는 만큼 더 빠르고 쉽게 완성할 수 있어요.


프레임워크는 사용 목적에 따라 적합한 프로그램을 사용하는 것이 중요합니다. 아래 그림에 웹과 애플리케이션을 만드는 대표적인 프레임워크가 있어요. 더 많은 프레임워크가 있지만 일단 대표적인 것들만 알아둘까요?




프레임워크는 라이브러리의 불편함을 해결하기 위해 나왔습니다. 라이브러리가 재료를 하나하나 구입해서 사용한다고 했었죠? 프레임워크는 조리 환경을 만들어 준다고 생각하면 쉬워요. 이미 가스레인지, 프라이팬, 뒤집개 등 필요한 가전과 도구를 준비해뒀을 뿐만 아니라 수도, 전기, 가스까지 다 뚫어둔 거죠. 얼마나 편리한가요! 하지만 조리 스튜디오에 저마다의 규칙이 있는 겁니다. 마치 ‘생선을 손질할 때는 노란색 도마를 쓰세요!’, ‘나무판자 위에는 뜨거운 냄비를 올리지 마세요!’와 같이 말이죠.





3. SDK (Software Development Kit)


SDK는 애플리케이션을 개발하는 키트입니다. 일반적으로 SDK에는 컴파일러, API 등이 들어있어요. 여기에 라이브러리나 프레임워크가 포함될 수도 있고, 설명서가 포함될 수 있습니다. 좋은 SDK라면 개발자가 개발하기 편리하도록 최대한 많은 재료와 도구, 그리고 설명이 들어있겠죠?


SDK는 운영체제(IOS, Android 같은)에서 자신의 운영체제를 쓰도록 유도하기 위해 배포하기도 합니다. 그래서 특정 운영체제에서만 작동하는 경우도 있어요. SDK는 자바 개발도구인 JDK, Window 7 SDK, MAC OS X SDK 등이 있습니다.


아직도 헷갈린다면 SDK는 밀 키트를 구입해서 음식을 만든다고 생각해보세요. 밀 키트에는 특정 음식을 만들기 위한 재료들을 필요한 양만큼 모아서 판매하죠. 소스도 이미 다 만들어져 있고, 심지어는 알루미늄 냄비를 주는 키트도 있습니다. 재료를 하나하나 구입해서 만드는 것보다는 훨씬 편리하겠죠?






어때요, 이제 라이브러리와 프레임워크와 SDK의 차이를 알 것 같나요?

이렇게 개발자가 사용하는 도구들을 알아봤습니다. 이제 개발자가 어떻게 일을 하는지 조금이나마 이해할 수 있을 거예요.


잘못된 표현이나 추가적으로 덧붙이고 싶은 내용이 있다면 언제든 댓글 달아주세요 :)






글쓴이: 이현아


오늘이 모여 인생을 만든다. 오늘도 성장하고 있는 2년 차 UX 디자이너 이현아입니다. 자라온 날보다 성장할 오늘이 더 많은, 그렇기에 다양한 경험으로 인생을 다채롭게 채워가고 싶은 주니어 이현아입니다.





다른 시리즈 보러가기

말문을 트이게 만드는 IT 지식


1. 운영체제(OS)와 웹, 네이티브, 하이브리드


2. 개발자라고 다 같지 않다 : 프론트엔드, 백엔드


3. 밤샘 개발을 줄여주는 도구들 : 라이브러리, 프레임워크, SDK  --> 현재글


4. 한 번 보면 더 볼 일 없는 네트워크 관련 용어들


5. 갑자기 물어보면 말문이 막히는 서버와 클라이언트


6. 서버와 클라이언트, 그 사이의 용어들


7. 화면 크기에 반응하는 웹 UI : 반응형 웹, dp, dpi, em, rem


8. 모두를 위한 서비스 : 웹 접근성, 대체텍스트


9. 콘텐츠의 재탄생 : 파싱, 크롤링


10. 데이터 바꿔치기 : SPA






※참고 자료


https://book.naver.com/bookdb/book_detail.nhn?bid=16415934

매거진의 이전글 2. 개발자라고 다 같지 않다 : 프론트엔드/백엔드
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari