의견.png

프로토타입

위키원
mkp0312 (토론 | 기여)님의 2020년 9월 2일 (수) 15:43 판
이동: 둘러보기, 검색

프로토타입(prototype)은 '원형' 또는 '기본형'이라는 뜻으로서 다수의 사이트시스템을 개발하는데 필요한 기본 형태를 말한다. 시제품(試製品), 견본품, 초기형, 시작형이라고도 한다. 프로토타입은 정보시스템의 미완성 버전 또는 중요한 기능들이 포함되어 있는 시스템의 초기 모델이다. 프로토타입은 일반적으로 양산형으로 제작되기 전에 미리 제작해보는 초기 모델로, 사용자의 모든 요구사항이 정확하게 반영할 때까지 계속해서 개선·보완된다. 실제로 많은 애플리케이션들이 지속적인 프로토타입의 확장과 보강을 통해 최종 설계가 승인된다. 프로토타입을 복제하는 방식으로 사이트를 대량 제작을 할 수 있다. 프로토타입 개발 방법론은 소프트웨어 개발 방법론(SDM)의 일종이다.

개요

프로토타입의 목적은 소프트웨어 사용자가 설명을 기반으로 디자인을 해석하고 평가할 필요없이 최종 제품의 디자인에 대한 개발자의 제안을 실제로 시도하여 평가할 수 있도록 하는 것이다. 소프트웨어 프로토타입은 소프트웨어의 기능과 잠재적인 위협 또는 문제에 대한 이해를 제공한다. 프로토타입은 최종 사용자가 고려하지 않은 요구 사항을 설명하고 증명하는데 사용할 수 있으며, 개발자와 클라이언트 간의 상업적 관계에서 핵심 요소가 될 수 있다. 특히 인터랙션 디자인은 이러한 목표를 가지고 프로토 타이핑을 많이 사용한다.[1]

단계

프로토타이핑(prototyping)의 과정은 4단계로 구분된다.

  • 1단계: 사용자의 요구사항을 분석하며 시스템 설계자는 기본적인 요구사항이 도출되기까지 사용자와 함께 작업을 한다.
  • 2단계: 1단계에서 도출된 요구사항을 만족시키는 프로토타입을 개발하여 앞으로 개발될 시스템의 가장 핵심적인 기능 위주로 개발한다.
  • 3단계: 사용자가 개발된 프로토타입을 검토 및 사용을 통해 요구사항이 이행되고 있는지 확인하고, 보완을 위해 피드백을 제안한다.
  • 4단계: 수정과 보완이 이루어지며 수정된 후에는 3단계로 돌아가 사용자가 만족할 때까지 3단계와 4단계를 반복한다.[2]

프로토타입 치수

수평 프로토타입

사용자 인터페이스 프로타입의 일반적인 용어는 수평 프로토타입이다. 데이터베이스 액세스와 같은 저수준 시스템 기능보다 사용자 상호 작용에 초점을 맞추어 전체 시스템 또는 서브시스템에 대한 넓은 시야를 제공한다. 수평 프로토타입은 다음의 목록에 유용하다.

  • 사용자 인터페이스 요구 사항 및 시스템 범위 확인
  • 비즈니스로부터 인수를 얻기 위한 시스템의 데모 버전
  • 개발 시간, 비용 및 노력에 대한 예비 추정치를 개발한다.[1]

수직 프로토타입

수직 프로토타입은 단일 서브시스텝 또는 기능의 환전한 정교함을 강화한 것이다. 특정 기능에 대한 상세 요구사항을 얻는 데 유용하며 다음과 같은 장점이 있다.

  • 데이터베이스 설계 개선
  • 네트워크 크기 조정 및 성능 엔지니어링을 위한 데이터 볼륨 및 시스템 인터페이스 요구에 대한 정보 얻기
  • 실제 시스템 기능가지 드릴 다운하여 복잡한 요구사항을 명확히 한다.[1]

프로토타입 유형

소프트웨어 프로토타입에는 다양한 변형이 있다. 그러나 모든 방법은 어떤 식으로든 일회용 프로토타이핑과 진화형 프토로타이핑이라는 두 가지 주요한 형태의 프로토타입에 기반한다.

일회용 프로토타이핑

폐쇄형 프로토타이핑(close-ended prototyping)이라고도 한다. 폐기(Throwaway) 또는 신속한 프로토타이핑(Rapid Prototyping)은 최종 제공 소프트웨어의 일부가 되지 않고 결국 폐기될 모델을 만드는 것을 의미한다. 사전 요구사항 수집이 완료된 후 시스템의 간단한 작업 모델을 구축하여 사용자에게 요구사항이 완성된 시스템으로 구현될 때 어떤 모습일지 시각적으로 보여준다. 이것을 신속한 프로토타이핑이라고도 한다. 일회용 프로토타이핑을 사용하는 가장 분명한 이유는 매우 초기 단계에서 신속하게 수행할 수 있기 때문이다. 사용자들이 요구사항에 대한 빠른 피드백을 받을 수 있다면 소프트웨어 개발 초기에 이를 개선할 수 있다. 개발 라이프사이클 초기에 변경하는 것은 그 시점에서 다시 실행할 것이 없기 때문에 매우 비용 효율적이다. 상당한 양의 작업을 수행한 후에 프로젝트가 변경되면 소프트웨어 시스템에 많은 종속성을 가지기 때문에 작은 변경을 구현하는 것만으로도 많은 노력이 필요할 수 있다. 시간과 비용의 한정된 예산으로 인해 폐기될 프로토타입에 비용을 많이 지출할 수 없기 때문에 일회용 프로토타입을 구현하는 데는 속도가 매우 중요하다.

프로토타입은 외관, 상호작용 및 타이밍 측면에서 실제 제품과 유사한 충실도에 따라 분류할 수 있다. 충실도가 낮은 일회용 프로토타입을 만드는 한 가지 방법은 종이 프로토타입(paper prototyping)이다. 프로토타입은 종이와 연필을 사용하여 구현해 실제 제품의 기능을 모방한 것이지만 전혀 닮지 않았다. 고밀도 일회용 프로토타입을 쉽게 제작할 수 있는 또다른 제작 방법은 GUI Builder를 사용하여 클릭 더미(click dummy)를 만드는 것이다. 클릭 더미는 목표 시스템과 유사하지만 어떤 기능도 제공하지 않는 프로토타입이다.

스토리보드, 애니매틱스, 드로잉의 사용은 일회용 프로토타이핑과 동일하지는 않지만 같은 계열에 속한다. 이것들은 비기능적인 구현이지만 시스템이 어떻게 보일지 보여준다.

일회용 프로토타입에서는 프로토타입은 폐기되고 최종 시스템은 구축될 것이라는 생각으로 제작되고 이 접근법의 단계는 다음과 같다.

  1. 예비 요구사항 작성
  2. 프로토타입 디자인
  3. 사용자 경험 / 프로토타입 사용, 새로운 요구사항 지정
  4. 필요한 경우 반복
  5. 최종 요구사항 작성[1]

신속한 프로토타이핑(Rapid Prototyping)

신속한 프로토타이핑은 비교적 짧은 조사 후 매우 초기 단계에서 시스템의 다양한 부분의 작업 모델을 만드는 것을 포함한다. 구축에 사용되는 방법은 일반적으로 매우 비공식적이며, 가장 중요한 요소는 모델이 제공되는 속도이다. 그 후 모델은 사용자가 자신의 기대치를 재점검하고 요구사항을 명확히 할 수 있는 출발점이 된다. 이 목표가 달성되면, 프로토타입 모델은 'thrown away'(버려지기)되고, 확인된 요구사항을 기반으로 시스템이 공식적으로 개발된다.[1]

종이 프로토타이핑(paper prototyping)

인간과 컴퓨터의 상호작용에서 종이 프로토타이핑은 사용자 중심 설계 프로세스에서 널리 사용되는 방법이며, 특히 사용자 인터페이스를 설계하고 테스트하기 위해 개발자가 사용자의 기대와 요구에 부합하는 소프트웨어를 만들 수 있도록 돕는 프로세스다. 그것은 버려지는 프로토타입핑이며 손으로 제작한 시제품이나 모델의 모델로 사용할 인터페이스 도면을 만드는 것을 포함한다. 종이 프로토타이핑은 간단해 보이지만, 사용적합성 시험 방법은 사용하기 쉬운 제품의 설계에 도움이 되는 유용한 피드백을 제공할 수 있다. 이것은 많은 사용적합성 전문가들이 지원한다.[3]

GUI Builder

GUI 디자이너라고도 알려진 그래픽 사용자 인터페이스 빌더(또는 GUI 빌더)는 WYSIWYG 편집기를 사용하여 설계자가 그래픽 제어 요소(흔히 위젯이라고 함)를 정렬할 수 있도록 하여 GUI 생성을 단순화하는 소프트웨어 개발 툴이다. GUI 빌더가 없는 경우, 프로그램이 실행될 때까지 시각적 피드백 없이 소스 코드에 각 위젯의 파라미터를 수동으로 지정하여 GUI를 구축해야 한다. 사용자 인터페이스는 일반적으로 이벤트 중심 아키텍처를 사용하여 프로그래밍되므로 GUI 구축자는 이벤트 중심 코드 생성도 단순화한다. 이 지원 코드는 위젯을 애플리케이션 로직을 제공하는 기능을 트리거하는 송신 및 수신 이벤트와 연결한다. Glade Interface Designer와 같은 일부 그래픽 사용자 인터페이스 빌더는 그래픽 제어 요소에 대한 모든 소스 코드를 자동으로 생성한다. Interface Builder와 같은 다른 것들은 애플리케이션에 의해 로드되는 직렬화된 개체 인스턴스를 생성한다.[4]

진화형 프로토타이핑

진화형 프로토타이핑(브레드보드 프로토타이핑이라고도 함)은 일회용 프로토타이핑과는 상당히 다르다. 진화형 프로토타이핑을 사용할 때의 주요 목표는 구조화된 방식으로 매우 견고한 프로토타입을 제작하여 지속적으로 개선하는 것이다. 이러한 접근방식의 이유는 진화형 프로토타입이 구축되면 새로운 시스템의 핵심이 되고, 개선사항과 추가 요구사항이 구축되기 때문이다. 진화형 프로토타이핑을 사용하여 시스템을 개발할 때 시스템은 지속적으로 개선되고 재구축된다. 진화형 프로토타입은 기능적 시스템이라는 점에서 일회용 프로토타입보다 장점이 있다. 사용자가 계획한 모든 기능이 제공되지는 않지만 최종 시스템이 제공될 때까지 임시로 사용할 수 있다. 진화형 프로토타이핑에서 개발자는 전체 시스템을 개발하는 대신 이해하는 시스템의 일부를 개발하는 데 집중할 수 있다.[1]

증분 프로토타이핑

최종 제품은 별도의 프로토타입으로 제작된다. 결국 개별 프로토타입은 전체 설계에 통합된다. 증분 프로토타이핑을 통해 사용자와 소프트웨어 개발자 간의 시간 간격이 줄어든다.[1]

익스트림 프로토타이핑

개발 과정으로서의 익스트림 프로토타이핑은 특히 웹 애플리케이션 개발에 사용된다.기본적으로 웹 개발은 앞의 단계를 기준으로 3단계로 세분화한다. 1단계는 주로 HTML 페이지로 구성된 정적 프로토타입이다. 2단계는 시뮬레이션 된 서비스 계층을 사용하여 프로그래밍되고 완전한 기능을 한다. 3단계는 서비스가 구현된다. 이 프로세스를 익스트림 프로토타이핑이라고 하며 두 번째 단계에 주의를 기울여야 한다. 이 프로세스는 계약 이외의 서비스에 대해서는 거의 관계없이 완전한 기능의 UI가 개발된다.[1]

장단점

장점

  • 프로토타이핑은 사용자 중심의 개발 방법으로 사용자의 요구 만족을 극대화할 수 있다.
  • 개발 시간을 줄일 수 있다.
  • 오류를 초기에 발견할 수 있다.
  • 수정과 보완이 용이하다.[2]

단점

  • 시스템의 유지보수에 필수적인 시스템의 문서화 과정이 지나치게 축소되거나 생략될 수 있다.
  • 최종적으로 시간과 비용이 훨씬 많이 들 수 있다.
  • 프로토타이핑으로 완성된 시스템은 컴퓨터 자원의 활용 측면에서 볼 때 효율적이지 못하다. 그러나 최근 컴퓨터 관련 기기들의 성능은 좋아지는 반면, 가격은 하락하면서 이 문제의 비중은 크게 감소되고 있다.[2]

각주

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 WIKIPEDIA,〈Software prototyping〉, 《WIKIPEDIA》, 2020-08-08
  2. 2.0 2.1 2.2 위키백과,〈프로토타입〉, 《위키백과》, 2020-08-16
  3. WIKIPEDIA,〈Paper prototyping〉, 《WIKIPEDIA》, 2020-07-09
  4. WIKIPEDIA,〈Graphical user interface builder〉, 《WIKIPEDIA》, 2020-08-21

참고자료

같이 보기


  의견.png 이 프로토타입 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.