<출처 : unsplash>

이런 분께 꼭 필요한 콘텐츠에요.

  • 개발 용어가 궁금한 사업,서비스,마케팅 기획직군

이 콘텐츠로 어떤 것을 알 수 있나요?

  • 프레임 워크에 대한 기본 개념을 알수 있어요
  • 프레임 워크가 어떨 때 필요한지 알수 있어요

 

Contents Summary

  1. 프레임워크란?
  2. 프레임워크 종류

여러분이 빵가게를 창업한다고 생각 해 보세요. 가장 먼저는 '빵' 이 있어야 되겠죠.  그래서 우유와 밀가루와 설탕을 구매합니다. 창업을 위해 배운대로 열심히 빵을 만듭니다. 그런데, 막상 먹어보니 맛이 없습니다. 그럼 어떡하죠. 네 '버립니다.'   

새롭게 몇번이고 만들다 보니 제법 맛있는 빵이 만들어 집니다. 한 숨 돌리고 나니, 가게를 임대해야 하고, 이름도 지어야 하고, 홍보도 필요합니다. 메뉴판부터, 접객용 테이블과 의자, 포스 설치, 거기에 트렌디하게 주문용 키호스크까지 세팅한다면? 여러분은 어떨 것 같으세요.

하지만, 이것 보다 훨씬 빠르게  '빵' 가게를 오픈 할 수 있는 방법이 있습니다. 소위 시중에 유명한 브랜드의 프랜차이즈 가맹 사업부에 문의하면 됩니다. 파리바게뜨, 뚜레주르 같은 곳에 문의를 하면, 매장 인테리어부터, 메뉴구성, 결제시스템, 접객 및 운영 방법까지 모든 것을 한꺼번에 제공해 주거든요.

앞서 말씀드린 '파리바게뜨', '뚜레주르'가 바로 "프레임워크"입니다.

<출처 : 파리바게뜨,뚜레주르>

프레임워크란?

이처럼 목적에 필요한 것을 고민할 필요 없이 이용할 수 있도록 일괄로 가져다 쓰도록 만들어 놓은 '구조화된 틀'입니다.

회사에서 IOS앱을 만든다면 어떤 절차가 필요할까요? 중요한 건 앱을 개발할 경우 개발자는 모든 개발 요소를 하나,하나 만들지는 않습니다. 왜냐하면, 버튼은 이미 애플에서 만들어 놓은 걸 가져다 쓰고 있기 때문이에요. 그럼 애플이나, 안드로이드는 왜? 이런 도구들을 미리 만들어 놓을까요?

애플이나 구글은 앱스토어에 좋은 앱들이 많아지기를 희망합니다. 그래야 이런 앱들을 사용하기 위해, 사람들이 휴대폰을 사고, 패드를 사고, 스마트기기를 구매하기 때문이에요. 그런데 생각 해 보세요. 이런 앱을 하나 만들고 개발하는데 1년 이상이 걸리고 몇 년씩 걸린다면 어떤 일이 일어날까요? 이용자는 없고, 앱이 활성화 되지 못하면, 애플도 구글도 매출이 안될거에요.

하지만, 여러분이 아시는 것처럼 하루에도 수십, 수백개의 신규 앱이 만들어 집니다. 심지어 앱다운로드 순위까지 매겨지고, 국민앱, 인기앱의 반열에 오르기 위해 경쟁합니다.

이렇게 많은 앱들이 출시되고, 이용되고, 경쟁할 수 있는 진짜 이유를 알고계세요? 바로,  애플과 구글이 제공하는 프레임워크 덕분입니다. 애플이나, 구글은 프레임워크를 개발해서 오픈하고 사용법까지 제공합니다.  즉, 개발자 입장에서는 마치 사전과 같이 개발을 위해 가이드가 망라된 책인 셈이죠. [그림1] 은 애플의 App framework 가이드 이미지입니다. 애플의 애플리케이션을 개발하기 위해 필요한 프레임워크입니다. 

 

<그림1. 출처 : https://developer.apple.com/develop/>

 

버튼이나 제공되는 것들에서 어떤 요소들을 바꾸면, 실제 화면이 어떻게 바뀌는 것 까지 세세하게 설명이 되어 있습니다. 디자인은 물론 폰트까지 바꿀 수도 있습니다. 중요한 건 개발자들은 이런 내용들을 일일이 기억할 필요가 없습니다. 필요할 때 검색해서 가져다 쓰기만 하면 됩니다.


앞서서 설명한 프레임워크의 빵가게 예시처럼  목적에 따라 고민할 필요없이 이용할 수 있도록 일괄로 가져 다 쓰도록 만들어 놓은 틀이라고 했습니다.

다른 설명을 예로 들자면 마치 자동차, 비행기, 배와 같은 운송 (수단)에 가깝기도 합니다.  사람이 탑승해서 시동을 걸고, 기어를 넣고, 핸들을 작동하고, 운전을 합니다. 애초 만들어진 수단을 가져다가 메뉴얼대로 이용하기만 하면 되는거죠. 얼마나 편하겠어요. 그걸 가져 다 사용할 수 있는 이용법만 알면 됩니다.  

하늘을 날려면 비행기를 타고, 도로를 달리려면 자동차가 유용합니다. 바다에서는 배를 타야만 하겠죠. 애초 목적에 맞게 만들어졌기 때문에, 톱이나 망치를 가지고 탈 것을 직접 만들 필요를 없게 하는 것! 그것이 바로 '프레임워크' 입니다.

 

개발자들은 스스로 프레임워크를 만들기도 합니다. 하지만, 한 번 만든 후에는 오류도 수정해야 하고 관리를 해야해서 리소스가 들어갑니다. 차라리 남들이 만들어놓은 프레임워크를 쓰는게 수정이나 업데이트가 빨라서 보통은 제공되는 프레임워크를 가져다 씁니다. 

만약, 기존 프레임워크의 기능을 바꾸고 싶다면, 프레임워크를 고치기만 하면 됩니다. 처음부터 다시 만드는 것보다는 시간과 비용이 덜듭니다.  예를 들면, 마트에 가려고 처음부터 볼트와 너트로 자전거나 차를 만든다고 생각해 보세요. 그냥 있는 것 활용해서 내가 만들고 싶은 탈 것을 만들어 쓰면 됩니다.

앞서 비유한 프레임워크의 사전적 정의는 다음과 같습니다.
; 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임 (간단하게 프레임워크라고도 부른다.) 사전적 정의대로 해석 해 해볼까요? 

'FRAME 프레임(틀, 규칙or법칙)'+'WORK 워크(일, 소프트웨어의 목적)' 어떤 개발이나 소프트웨어든 일종의 규칙이 있고, 그 규칙을 정하는 일입니다. 마치,
부대찌개를 효과적으로 만들 수 있는 "간편 부대찌개 만들기 세트" → 딱 주어진 재료만 사용하면 완성되도록 구조화 되어있는 형태.

<출처 : unsplash>


쉽게 성을 만들 수 있는 "장난감 성만들기 DIY 세트" → 주어진 재료만 써서 가이드대로 만들면 성이 완성 되도록 구조화 된 셋트. 이 처럼 '프레임워크'는 목적에 따라 효율적으로 구조를 짜놓은 개발 방식입니다. 그렇다면 프레임워크의 종류에는 어떤 것들이 있을까요?