검수요청.png검수요청.png

템플릿

위키원
(Template에서 넘어옴)
이동: 둘러보기, 검색

템플릿(Template)의 일반적인 의미는 형판, 형틀 어떤 특정한 모양을 만들기 위해 만들어진 틀을 말한다. 어떤 제품을 만들 때의 '본' 또는 '틀'이라고 생각하면 되며, 웹문서에서 내용이 바뀌는 부분과 바뀌지 않는 부분을 따로 표시해 두어 같은 구성의 페이지를 쉽게 만들 수 있게 해놓은 것을 말한다.

아사달 스마트 호스팅 가로 배너 (since 1998).jpg
이 그림에 대한 정보
[아사달] 스마트 호스팅

개요[편집]

템플릿(Template)의 사전적인 의미는 어떤 것을 만들 때 안내 역할을 하는, 사용상의 형식이다.[1] 웹사이트에서 쓰이는 템플릿은 어떤 도식이나 서식에서 자주 사용되는 기본 골격, 스프레드시트에서 각종 데이터 처리를 위해 표의 일정한 구조를 만들어 놓고 사용자가 데이터를 입력만 하면 되도록 해 놓은 것이라고 할 수 있다. 그래픽 프로그램에서 자주 사용하기 위해 미리 정해 놓은 그림이나 이미지의 일정한 패턴이나 시스템 플로차트에 사용되는 기호들을 표현하기 쉽도록 기호의 표준 모양을 파 놓은 자, 자주 사용되는 명령어를 따로 저장해 놓은 목록 등 사이트상의 기본 구성 형식이나 디자인 양식을 말한다.[2] 솔루션에 비유하자면 일정한 구조 골격은 프로그램을 말하며, 사용자가 데이터를 입력한다는 부분은 디자인 부분이 된다. 프로그램과 디자인이 별개로 존재하므로, 이용자는 각종 툴을 이용하여 HTML 파일을 수정하거나 생성하여, 모양을 만들면 되고 프로그램 파일은 수정할 필요 없이 모든 부분의 디자인을 변경할 수 있는 방식을 말한다.[3]

특징[편집]

템플릿이라고 하면 보통 자주 쓰는 포맷을 만들어서 열었을 때 필요한 정보만 치면 되도록 하는 파일이라고 이해하면 쉽다. 템플릿 파일은 단순 문서에서 보이는 정보만 아니라 다른 것들도 같이 저장되기 때문에 보통 문서 파일보다 많은 내용을 담고 있다. 오피스 응용 프로그램마다 약간씩 템플릿에 저장하는 내용이 다를 수 있지만, 워드로 예를 들자면 모든 문서 파일에 정보는 담고 있으면서 빌딩 블록과 필드 코드 등을 담고 있는 것이 템플릿이다. 빌딩 블록은 흔히 자주 사용하는 머리글, 바닷글, 자동 페이지 번호, 표지등 여러 가지 빠른 입력을 모아놓은 모든 걸 통틀어서 빌딩 블록이라고 한다. 템플릿 파일을 특별히 사용하지 않더라도 모든 문서는 템플릿으로부터 시작한다. 모든 문서는 열릴 때 템플릿으로부터 정보를 읽어서 이 문서가 어떤 테마를 사용하는지, 스타일을 사용하는지 엑셀(Excel)의 경우 어떤 셀을 숨기며 어떤 행을 보여주는지 모든 것을 결정한다. 특별한 템플릿이 없으면 모든 파일은 오피스 프로그램에 저장된 normal.dotx라는 노멀 템플릿을 기준으로 문서를 구성하게 된다. 워드의 경우에는 기본 템플릿이 파일로 존재하고 찾기 쉬운데 파워포인트, 엑셀 엑세스 경우는 기본 템플릿이 기본 세팅에 같이 존재하므로 파일로 따로 존재하지는 않으나 개념은 모두 같다.

워드(Word)의 DOTA은 단순 템플릿 파일으로서의 기능 뿐 아니라 워드의 모든 기본테마, 스타일, 유저 세팅 정보까지 담고 있다. 만약 유저 인터페이스(interface)를 바꿨다 하면 이것도 normal.dotm에 저장되며 이 세팅은 어떤 다른 서식을 써도 그대로 유지된다. 그래서 노멀 템플릿은 글로벌 템플릿이라고 하며 노멀 템플릿에 저장된 내용은 모든 문서에서 사용할 수 있다. normal.dotx파일로 문서를 만들고 그 문서에 많은 작업을 하고 저장을 한다 해도 새로 생성되는 문서는 문서 1, 문서 2 형태인 빈 문서로 생성된다. 즉 따로 normal.dotx에 저장하지 않으면 문서의 변경사항은 그 문서에 정보를 제공한 템플릿에 영향을 주지 않는다. 굳이 템플릿을 만들지 않고 일반 파일에다 사용할 때마다 복사해서 쓰면 되지 않겠냐라는 생각을 가질 수 있지만, 템플릿을 쓰지 않는다면 실수로 포맷이 변경되기 쉽고 여러 사람이 공동 작업을 할 때 하나의 파일로 일관되게 작업을 할 수 있어 매우 유용하다.[4]

활용[편집]

템플릿은 많은 곳에서 시간을 줄이고 퀄리티를 높이기 위해 사용되고 있다. 반복되는 구조를 템플릿으로 저장해 놓거나 다른 사람이 제작한 템플릿을 쓰게 되면 굳이 반복되는 작업을 하느라 시간 낭비를 하지 않아도 된다.

  • 웹사이트
웹사이트 템플릿이란, 빠르게 웹사이트를 개발할 수 있도록 준비된 웹사이트 디자인 제품이다. 무료 또는 유료로 구할 수 있으며 필요에 따라 이미지나 동영상 혹은 다른 요소를 첨가해서 맞춤 제작하기 쉽도록 되어있다. 보통 웹개발자가 만들며 HTML부터 CSS, 그리고 그 외 필요한 여러 코드까지 모든 필요한 요소가 담겨 있다. 템플릿을 사용하면 전체 웹 개발과정이 간소화되기 때문에 프로그래밍에 대한 지식이 거의 없는 사람들도 쉽게 자신만의 웹사이트를 만들 수 있다. 웹사이트 템플릿은 규모가 큰 기업에서도 정형화된 웹페이지를 통해 많은 양의 콘텐츠를 선보일 필요가 있을 때 사용하기도 한다. 누가 사용하든 템플릿은 생각을 웹사이트로 구현하는 데 걸리는 시간을 줄여준다.
웹사이트를 디자인하는 과정은 워드프레스(WordPress)나 줌라(Joomla)같이 인기 많은 웹템플릿을 사용하면 상당 부분 간소화할 수 있다. 대부분 과정이 이미 자동화되어 있기 때문에 웹디자인과 관련된 기술적인 요소를 하나하나 공부할 필요가 없다. 버튼 한 개만 클릭하면 '테마'라고 불리는 웹사이트 템플릿을 설치할 수 있는데 테마를 설치하고 난 다음에는 코드 한 줄 쓰지 않아도 원하는 대로 맞춤 제작하는 것이 가능하다.[5]
  • 파워포인트
파워포인트(PowerPoint)에서의 템플릿이란 작업 시 슬라이드의 배경으로 사용하는 각종 디자인 서식을 가리킨다. 템플릿을 구성할때는 프레젠테이션하려는 내용과 어울리는 사진이나 이미지 등을 사용하고, 화려한 디자인보다는 깔끔하고 집중할 수 있는 디자인이 청중의 시선을 모을 수 있다. 또 매 슬라이드마다 다르게 템플릿을 적용하면 청중을 혼란하게 할 수 있고 내용 전달에도 어려움이 있으므로, 가급적 일관성 있는 디자인으로 구성하는 것이 좋다.[6]
  • 동영상
영상 콘텐츠의 시대가 도래하고 디지털 동영상 시청이 매년 폭발적으로 증가하고 있는 추세에 따라 페이스북(Facebook), 인스타그램(Instagram), 유튜브(YouTube)와 같은 영상 콘텐츠가 유통될 수 있는 SNS의 발달과 함께 광고의 영상화가 가속화되어, 영상 콘텐츠는 이제 마케팅 부분에 있어 빼놓을 수 없는 부분으로 자리 잡았다. 하지만 동영상 콘텐츠의 제작은 비교적 높은 가격선을 형성하고 있어, 소상공인이나 스타트업 등 영세사업자들에게 진입장벽이 다소 높은 편이다. 이에 비디오몬스터나 망고보드 등 누구나 비디오 콘텐츠를 제작할 수 있는 환경을 조성하고 비디오 제작 시장을 혁신하고자 서비스를 제공하기 시작했다.[7]
디자인 플랫폼 망고보드가 동영상을 편집 제작할 수 있는 동영상 템플릿 서비스를 2020년 7월 23일 시작한다고 밝혔다. 망고보드는 2017년 10월 디자인 플랫폼 서비스를 시작한 이래로 카드 뉴스, 상세페이지, 프레젠테이션, 포스터, 유튜브 썸네일 등 다양한 형태의 콘텐츠를 누구나 쉽게 디자인할 수 있는 디자인 템플릿 서비스를 제공해 왔다. 2018년 5월 동영상 제작 기능을 오픈했고, 2020년 7월 동영상 전용 템플릿까지 제공하게 됨으로써 본격적으로 동영상 제작 영역으로 서비스를 확대하게 된 것이다. 망고보드의 동영상 템플릿은 동영상 애니메이션 효과를 입힌 슬라이드로 구성돼 있다. 슬라이드에 있는 동영상 소스, 사진, 아이콘, 폰트 등을 사용자가 원하는 대로 수정하고 편집할 수 있다. 슬라이드의 개수를 늘리거나 줄일 수 있고 슬라이드 순서도 바꿀 수 있으며, 레이아웃을 자유롭게 편집할 수 있다는 점에서 일반적인 동영상 템플릿 서비스에 비해 사용자의 자유도가 높다. 또한 망고보드에서 제공하는 동영상 재료들 (동영상 소스, 투명영상, 사진, 아이콘, 폰트 등)을 활용하면 템플릿을 더욱 다양한 방법으로 편집할 수 있다. 망고보드 동영상 템플릿은 다양한 용도를 고려해 개발됐다. 다양한 주제의 광고 홍보용 동영상부터 유튜브 인트로 영상, SNS용 동영상까지 만들 수 있는 여러 종류의 템플릿을 출시일부터 사용할 수 있으며, 망고보드 관계자에 의하면 앞으로 더 많은 템플릿이 계속 추가될 예정이다.[8]

C++ 템플릿[편집]

템플릿을 사용하여 프로그래밍하는 것을 일반화(Generic) 프로그래밍이라고도 한다. C++에서의 템플릿은 함수나 클래스를 만들 수 있는 틀이라고 생각하면 된다. 즉 함수나 클래스(class)가 틀 안에 들어가는 것이다. 템플릿을 사용하지 않고 여러 타입에 대해서 동작하는 함수를 만들려면 각 타입에 대해 함수를 오버로딩(overloading) 해야 할 것이다. 하지만 하나의 템플릿만으로 함수를 오버로딩하는 효과를 가질 수 있다면 이것이 일반화 프로그래밍의 목표라 할 수 있다.[9]

C++의 특징 중 하나인 일반화 프로그래밍(generic programming)은 데이터를 중시하는 객체 지향 프로그래밍과는 달리 프로그램의 알고리즘(algorithm)에 중점을 둔다. 이러한 일반화 프로그래밍을 지원하는 C++의 대표적인 기능 중 하나가 바로 템플릿이다. 템플릿은 매개변수의 타입에 따라 함수나 클래스를 생성하는 메커니즘을 의미하며, 타입이 매개변수에 의해 표현된다. 템플릿을 사용하면 타입마다 별도의 함수나 클래스를 만들지 않고, 여러 타입에서 동작할 수 있는 단 하나의 함수나 클래스를 작성하는 것이 가능해진다.[10]

  • 함수 템플릿
함수 템플릿은 함수의 일반화된 선언을 의미한다. 함수 템플릿을 사용하면 같은 알고리즘을 기반으로, 서로 다른 타입에서 동작하는 함수를 한 번에 정의할 수 있다. 임의의 타입으로 작성된 함수에 특정 타입을 매개변수로 전달하면, 컴파일러는 해당 타입에 맞는 함수를 생성해준다. 함수 템플릿이 각각의 타입에 대해 처음으로 호출될 때, 컴파일러는 해당 타입의 인스턴스를 생성한다. 이렇게 생성된 인스턴스는 해당 타입에 대해 특수화된 템플릿 함수이다. 이 인스턴스는 함수 템플릿에 해당 타입이 사용될 때마다 호출된다.
  • 클래스 템플릿
클래스의 일반화된 선언을 의미한다. 함수 템플릿과 동작은 같으며, 그 대상이 클래스라는 점만 다르다. 클래스 템플릿을 사용하면 타입에 따라 다르게 동작하는 클래스 집합을 만들 수 있다는 장점이 있다. 즉, 클래스 템플릿에 전달되는 템플릿 인수(template argument)에 따라 별도의 클래스를 만들 수 있게 된다.
클래스 템플릿의 특징은 하나 이상의 템플릿 인수를 가지는 클래스 템플릿을 선언할 수 있고, 클래스 템플릿에 디폴트 템플릿 인수를 명시할 수 있다는 점이다. 또한 클래스 템플릿을 기초 클래스로 하여 상속할 수 있다.[10]

각주[편집]

  1. 템플릿 네이버 사전 - https://ko.dict.naver.com/#/entry/koko/d67e128aa1e941a59f8994ba50781d86
  2. 템플릿 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=857711&cid=42346&categoryId=42346
  3. 홍길순, 〈템플릿 파일이란 무엇인가요?〉, 《시퀀스엔 광고관리》, 2016-08-12
  4. 제이킴, 〈서식(Template) 파일의 뜻〉, 《티스토리》, 2015-10-20
  5. 위시캣, 〈Q. 웹사이트 템플릿 이란?〉, 《위시캣》, 2014-07-18
  6. 파워포인트 템플릿 - https://terms.naver.com/entry.nhn?docId=1831672&cid=42279&categoryId=42279, 《네이버 지식백과》
  7. 온라인뉴스팀, 〈디자이너 템플릿으로 손쉽게 제작하는 영상 제작 서비스 론칭〉, 《넥스트데일리》, 2019-02-09
  8. 김수진, 〈고퀄리티 동영상, 누구나 만들 수 있다. 망고보드 동영상 템플릿 출시〉, 《디아이투데이》, 2020-07-22
  9. C언어 예술가, 〈C++ 템플릿(template) 이해하기〉, 《티스토리》
  10. 10.0 10.1 chy0428, 〈(C++) 템플릿 (template)〉, 《벨로그》, 2020-08-01

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 템플릿 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.