맨위로가기

인터페이스 빌더

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

인터페이스 빌더는 1988년 NeXTSTEP 0.8에 처음 도입된, 그래픽 사용자 인터페이스(GUI)를 마우스로 쉽게 디자인할 수 있도록 돕는 툴이다. 장 마리 훌로가 개발했으며, 버튼, 메뉴, 윈도우 등의 인터페이스 객체를 드래그 앤 드롭 방식으로 배치할 수 있게 했다. 초기에는 Lisp 언어로 개발되었으며, 월드 와이드 웹 개발에도 기여했다. Mac OS X에 통합되어 Cocoa 및 Carbon 프레임워크를 지원하며, 실용적인 RAD 도구로서 델파이, Visual Basic 등에도 영향을 미쳤다. 현재는 Xcode에 통합되어 독립적인 애플리케이션으로서는 더 이상 사용되지 않는다.

더 읽어볼만한 페이지

  • NeXT - 스티브 잡스
    스티브 잡스는 애플의 공동 창업자이자 CEO, 픽사의 CEO, 디즈니의 이사회 멤버로서, 혁신적인 기술과 디자인으로 정보기술 산업에 큰 영향을 미친 미국의 기업인이다.
  • NeXT - NeXTSTEP
    NeXTSTEP은 NeXT에서 개발한 마하 커널 기반의 유닉스 계열 운영 체제로, BSD 소스 코드를 포함하며 디스플레이 포스트스크립트, 독점적인 창 관리 엔진, Objective-C 언어 및 런타임 환경을 제공하고 현대적인 운영체제 인터페이스 발전에 기여하여 macOS의 기반이 되었으며 최초의 웹 브라우저와 앱 스토어 개발에 영향을 미쳤다.
  • 프로그래밍 도구 - SWIG
    SWIG는 C/C++ 코드를 다른 프로그래밍 언어에서 사용할 수 있도록 인터페이스를 자동으로 생성해주는 도구로서, 복잡한 데이터 형식 처리, 메모리 관리 등을 지원하며, LLDB, GNU Radio, TensorFlow 등 다양한 프로젝트에서 활용된다.
  • 프로그래밍 도구 - 소스 코드 편집기
    소스 코드 편집기는 구문 강조, 자동 완성, 들여쓰기 등의 기능으로 코드 편집을 용이하게 하고 개발 도구 실행 환경을 제공하며, 텍스트 편집 대신 AST를 조작하는 구조 편집기도 존재한다.
  • MacOS 소프트웨어 - 김프
    김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
  • MacOS 소프트웨어 - X (소셜 네트워크)
    트위터는 140자 이내의 짧은 글(트윗)로 실시간 소통하는 소셜 네트워크 서비스로, 모바일 환경에 최적화되어 빠른 정보 확산과 실시간 대화를 가능하게 하지만, 가짜 뉴스 유포 등의 문제점도 제기되고 있다.
인터페이스 빌더 - [IT 관련 정보]에 관한 문서
개요
인터페이스 빌더 로고
개발사애플
최초 출시1988년
최신 버전"3.2.6 / 출시일: 2011년 3월 15일"
"4.0 / 출시일: 2011년 3월 9일"
운영체제macOS
종류소프트웨어 개발
라이선스상용 소프트웨어, Xcode 제품군에 포함됨
웹사이트애플 개발자 웹사이트

2. 역사

인터페이스 빌더는 1988년 넥스트스텝(NeXTSTEP) 0.8에 처음으로 들어갔다. 인터페이스 빌더는 장 마리 훌로(Jean-Marie Hullot)가 고안 및 개발한 작품이었다. 처음에는 Lisp 언어(Expertelligence 사의 ExperLisp)로 되어 있었다. 마우스를 사용하는 그래픽 사용자 인터페이스에 배치될 버튼, 메뉴, 윈도 등을 만드는 몇 안 되는 초창기 상용 응용 소프트웨어 중 하나였다. 당시, 유럽 입자 물리 연구소의 팀 버너스 리가 NeXT 워크스테이션을 이용하여 월드 와이드 웹을 개발할 때 쓰인 툴 중 하나가 바로 인터페이스 빌더였다.

원래 이 소프트웨어는 ''SOS 인터페이스''라고 불렸으며, 장-마리 훌로(Jean-Marie Hullot)가 파리 근처 로쿠앙쿠르의 Inria에서 연구원으로 재직하는 동안 개발되었다. 그는 Inria를 사임한 후 소프트웨어의 소유권을 유지하도록 허가받았으며, 1년 동안 이 소프트웨어를 정식 기능을 갖춘 제품으로 개발했는데, 현재는 ''인터페이스 빌더''[1]로 명명되었으며 1986년에 미국에서 ExperTelligence에 의해 매킨토시용으로 배포되었다.[2] 이 소프트웨어는 Lisp (ExperTelligence의 ''ExperLisp'' 제품용)으로 작성되었으며 매킨토시 툴박스와 깊이 통합되었다. ''인터페이스 빌더''는 1987년 1월 샌프란시스코에서 열린 MacWorld Expo에서 발표되었다.[3]

데니슨 볼레이(Denison Bollay)는 MacWorld Expo 이후 장-마리 훌로를 스티브 잡스에게 시연하기 위해 NeXT로 데려갔다. 잡스는 그 가치를 인식하고 이를 NeXTSTEP에 통합하기 시작했으며, 1988년에는 NeXTSTEP 0.8의 일부가 되었다. 이는 버튼, 메뉴, 윈도우와 같은 인터페이스 객체를 마우스를 사용하여 인터페이스에 배치할 수 있도록 허용한 최초의 상용 애플리케이션이었다.

''인터페이스 빌더''의 초창기 사용 중 하나는 CERN에서 팀 버너스리(Tim Berners-Lee)가 NeXT 워크스테이션을 사용하여 개발한 최초의 웹 브라우저인 월드 와이드 웹의 개발이었다.

인터페이스 빌더의 원형은 넥스트 스텝 0.8에 포함된 개발 환경의 핵심 소프트웨어로, 1988년에 장마리 휴로에 의해 개발되었다. 그가 개발한 매킨토시용 인터페이스 설계 소프트웨어인 SOS Interface영어가 전신이라고 할 수 있다.[6]

인터페이스 빌더는 이후 프로젝트 관리 및 코드 편집 등을 담당하는 프로젝트 빌더와 역할을 분담하며 개발이 지속되었다. 이후 Mac OS X에 이식되어 Cocoa 및 Carbon 프레임워크를 지원하는 종합 리소스 편집에 사용되었다. 이 외에도 WebObjects 인터페이스 설계 등에 사용된다.

실용적인 RAD 툴로서는 상당히 초기에 등장한 부류에 속하며, 델파이 및 Visual Basic에 적지 않은 영향을 미쳤다.

Mac OS X v10.3 이후, 프로젝트 빌더는 Xcode로 이전되었지만, 인터페이스 빌더의 역할은 변하지 않았다.

Xcode 4.0이 되면서 인터페이스 빌더는 Xcode에 통합되어, IDE의 애플리케이션으로는 소멸되었다.

2. 1. 초기 개발 (1986~1988)

인터페이스 빌더는 원래 SOS 인터페이스라고 불렸으며, 장-마리 훌로(Jean-Marie Hullot)가 Inria에서 연구원으로 재직하는 동안 개발되었다.[1] 그는 Inria를 사임한 후 소프트웨어 소유권을 유지하도록 허가받았으며, 1년 동안 이 소프트웨어를 정식 기능을 갖춘 제품으로 개발했다. 현재는 인터페이스 빌더[1]로 명명되었으며 1986년에 미국에서 ExperTelligence에 의해 매킨토시용으로 배포되었다.[2] 이 소프트웨어는 Lisp (ExperTelligence의 ''ExperLisp'' 제품용)으로 작성되었으며 매킨토시 툴박스와 깊이 통합되었다. 인터페이스 빌더는 1987년 1월 샌프란시스코에서 열린 MacWorld Expo에서 발표되었다.[3]

데니슨 볼레이(Denison Bollay)는 MacWorld Expo 이후 장-마리 훌로를 스티브 잡스에게 시연하기 위해 NeXT로 데려갔다. 잡스는 그 가치를 인식하고 이를 NeXTSTEP에 통합하기 시작했으며, 1988년에는 NeXTSTEP 0.8의 일부가 되었다. 이는 버튼, 메뉴, 윈도우와 같은 인터페이스 객체를 마우스를 사용하여 인터페이스에 배치할 수 있도록 허용한 최초의 상용 애플리케이션이었다.

인터페이스 빌더의 원형은 넥스트 스텝 0.8에 포함된 개발 환경의 핵심 소프트웨어로, 1988년에 장마리 휴로에 의해 개발되었다. 그가 개발한 매킨토시용 인터페이스 설계 소프트웨어인 SOS Interface영어가 전신이라고 할 수 있다.[6]

2. 2. NeXTSTEP 통합 (1988)

스티브 잡스는 인터페이스 빌더의 가치를 인식하고 넥스트스텝에 통합하기 시작하였다.[1][2][3] 1988년 NeXTSTEP 0.8에 포함되어 최초로 상용 응용 소프트웨어로 제공되었으며, 버튼, 메뉴, 윈도 등을 마우스를 사용하여 그래픽 사용자 인터페이스에 배치할 수 있게 하였다. 유럽 입자 물리 연구소의 팀 버너스 리가 NeXT 워크스테이션을 이용하여 월드 와이드 웹을 개발할 때 사용한 도구 중 하나가 바로 인터페이스 빌더였다.[6] 당시 한국은 인터넷 초기 단계였으며, 이러한 기술 발전은 한국의 IT 산업 발전에 큰 영향을 미쳤다.

2. 3. Mac OS X 및 Xcode 통합 (1990년대 후반~)

인터페이스 빌더는 Mac OS X에 이식되어 Cocoa 및 Carbon 프레임워크를 지원하는 리소스 편집 도구로 활용되었다.[6] 또한 WebObjects 인터페이스 설계 등에도 사용되었다. 인터페이스 빌더는 프로젝트 관리 및 코드 편집 등을 담당하는 프로젝트 빌더와 역할을 분담하며 개발이 지속되었다. 실용적인 RAD 툴로서는 상당히 초기에 등장한 부류에 속하며, 델파이 및 Visual Basic에 적지 않은 영향을 미쳤다.

Mac OS X v10.3 이후, 프로젝트 빌더는 Xcode로 이전되었지만, 인터페이스 빌더의 역할은 변하지 않았다. Xcode 4.0부터 인터페이스 빌더는 Xcode에 완전히 통합되어, 독립적인 애플리케이션으로서의 존재는 사라졌다.

3. 설계

인터페이스 빌더는 오브젝티브-C 및 Swift 개발자에게 사용자 인터페이스 객체의 ''팔레트'' 또는 컬렉션을 제공한다. 이러한 사용자 인터페이스 객체에는 텍스트 필드, 데이터 테이블, 슬라이더 및 팝업 메뉴와 같은 항목이 포함된다. Interface Builder의 팔레트는 완전히 확장 가능하며, 이는 모든 개발자가 새로운 객체를 개발하고 Interface Builder에 팔레트를 추가할 수 있음을 의미한다.

인터페이스를 구축하기 위해 개발자는 팔레트에서 인터페이스 객체를 창 또는 메뉴로 드래그하기만 하면 된다. 객체가 내보낼 수 있는 ''액션''(메시지)은 애플리케이션 코드의 ''타겟''에 연결되고, 애플리케이션 코드에서 선언된 ''아울렛''(포인터)은 특정 객체에 연결된다. 이러한 방식으로 모든 초기화는 런타임 전에 수행되어 성능을 개선하고 개발 프로세스를 간소화한다. Interface Builder가 독립 실행형 애플리케이션이었을 때 인터페이스 디자이너는 nib 파일을 개발자에게 제공할 수 있었고, 개발자는 이를 프로젝트에 드롭할 수 있었다.

Interface Builder는 애플리케이션의 인터페이스를 애플리케이션에서 사용되는 인터페이스 객체 및 관계를 포함하는 번들로 저장한다. 이러한 객체는 다른 컨텍스트에서 직렬화 또는 마샬링이라고도 하는 프로세스를 거쳐 XML 파일 또는 확장자를 가진 NeXT 스타일의 속성 목록 파일로 아카이브된다. 애플리케이션을 실행하면 적절한 NIB 객체가 아카이브 해제되어 소유 애플리케이션의 바이너리에 연결되고 활성화된다. UI를 구성하는 코드를 생성하는 거의 모든 다른 GUI 디자이너 시스템과 달리 (눈에 띄는 예외로는 Glade, Embarcadero Technologies의 Delphi 및 C++Builder가 있으며, 이들은 UI 객체를 유사하게 스트리밍한다), NIB는 실행할 준비가 된 아카이브된 객체 자체를 포함하고 있기 때문에 종종 ''동결 건조''라고 불린다. Interface Builder 버전 3부터 .nib과 기능적으로 동일하지만 평면 파일에 저장되어 개정 관리 시스템에 저장하고 diff와 같은 도구로 처리하는 데 더 적합한 새로운 파일 형식(.xib 확장자)이 추가되었다.

3. 1. 팔레트 및 오브젝트

인터페이스 빌더는 오브젝티브-C 개발자에게 텍스트 필드, 데이터 테이블, 슬라이더, 팝업 메뉴 등을 포함하는 사용자 인터페이스 오브젝트의 "팔레트"를 제공한다. 이 팔레트는 확장 가능하여 개발자가 새로운 오브젝트를 개발하여 추가할 수 있다. 인터페이스를 구축하기 위해, 개발자는 팔레트에서 오브젝트를 윈도나 메뉴로 끌어다 놓으면 된다. 오브젝트가 내보낼 수 있는 액션(메시지)은 응용 소프트웨어 코드의 타겟에 연결되고, 응용 소프트웨어 코드 내의 아울렛(포인터)은 특정 오브젝트에 연결된다. 이러한 초기화 방식은 런타임 전에 수행되어 성능을 개선하고 개발 프로세스를 간소화한다.

3. 2. 드래그 앤 드롭 방식

인터페이스 빌더는 텍스트 필드, 데이터 테이블, 슬라이더, 팝업 메뉴 등 사용자 인터페이스 객체들의 "팔레트"를 오브젝티브-C 및 Swift 개발자에게 제공한다. 이 팔레트는 확장 가능하여, 누구나 새로운 객체를 개발하여 추가할 수 있다.

인터페이스를 구축하기 위해서는, 개발자는 팔레트에서 윈도나 메뉴로 인터페이스 객체를 드래그 앤 드롭 방식으로 배치하면 된다. 객체가 내보낼 수 있는 액션(메시지)은 응용 소프트웨어 코드 내의 타겟(target)에 연결되고, 응용 소프트웨어 내의 아울렛(outlets, pointers)은 특정 객체에 연결된다. 이러한 방식은 모든 초기화를 런타임 전에 수행하여 성능을 개선하고 개발 프로세스를 간소화한다.

3. 3. Nib 파일

Nib 파일은 인터페이스 디자인 정보를 저장하는 파일 형식이다. 객체를 직렬화하여 아카이브하며, 런타임에 아카이브 해제되어 애플리케이션에 연결된다. Nib 파일은 실행 준비가 완료된 객체를 포함하고 있어 "동결 건조"라고 불리기도 한다.

인터페이스 빌더는 애플리케이션의 인터페이스를 번들로 저장하는데, 여기에는 인터페이스 객체 및 관계가 포함된다. 이러한 객체는 직렬화 또는 마샬링이라고도 하는 프로세스를 거쳐 XML 파일이나 .nib 확장자를 가진 NeXT 스타일의 속성 목록 파일로 아카이브된다. 애플리케이션 실행 시, NIB 객체는 아카이브 해제되어 소유 애플리케이션의 바이너리에 연결되고 활성화된다.

.xib 파일 형식은 .nib과 기능적으로 동일하지만, 평면 파일에 저장되어 개정 관리 시스템에 적합하다.

4. 기능

버튼, 메뉴, 윈도우 등의 GUI 컴포넌트를 마우스로 배치할 수 있는 RAD 도구이다.

또한, 사용할 수 있는 GUI 컴포넌트에는 텍스트 필드, 데이터 테이블, 슬라이더, 팝업 메뉴 등이 있다.

이러한 GUI 컴포넌트를 마우스로 드래그하여 팔레트에 드롭함으로써 인터페이스를 쉽게 만들 수 있다.

인터페이스 빌더(Interface Builder) 단독으로는 소프트웨어를 개발할 수 없으므로, 그 역할은 리소스 편집기와 유사하다.

그러나 GUI의 단독 테스트가 가능하다는 점, 클래스 설계 및 코드 생성 기능까지 포함한다는 점, 팔레트라고 불리는 자체 제작 컴포넌트를 조합할 수 있다는 점에서, 차라리 내부/사용자 양쪽 인터페이스의 프로토타입 제작을 수행하는 도구에 가깝다.

nib 파일 또한, 단순히 리소스 정보를 보관하는 것이 아니라, 실제로 동작하는 객체를 직렬화한 것이다.

4. 1. RAD 도구

인터페이스 빌더는 버튼, 메뉴, 윈도우 등의 GUI 컴포넌트를 마우스로 배치하고 연결할 수 있는 RAD 도구이다. 텍스트 필드, 데이터 테이블, 슬라이더, 팝업 메뉴 등 다양한 GUI 컴포넌트를 지원한다. 이러한 컴포넌트들을 마우스로 드래그하여 팔레트에 드롭하는 방식으로 인터페이스를 쉽게 만들 수 있다.

4. 2. 프로토타이핑

인터페이스 빌더는 리소스 편집기와 유사하지만, GUI 단독 테스트, 클래스 설계 및 코드 생성 기능을 포함한다. 팔레트라고 불리는 자체 제작 컴포넌트를 조합하여 내부 및 사용자 인터페이스의 프로토타입 제작을 지원한다. nib 파일은 단순한 리소스 정보 보관이 아니라, 실제로 동작하는 객체를 직렬화한 것이다.

5. 호환 소프트웨어

GNUstep에는 인터페이스 빌더의 클론인 Gorm이 존재한다.

5. 1. Gorm (GNUstep)

GNUstep에는 인터페이스 빌더의 클론인 Gorm이 존재한다.

6. 영향

6. 1. RAD 도구에 대한 영향

6. 2. 웹 기술 발전

참조

[1] 웹사이트 Jean-Marie Hullot, from perforated cards to the iPhone - Inria https://www.inria.fr[...] 2023-05-17
[2] 서적 Micro Marketworld 1987-02-09: Vol 10 Iss 6 http://archive.org/d[...] Infoworld Media Group 1987-02-09
[3] 간행물 Dr. Dobb's Journal, March 1987 http://archive.org/d[...] Dr. Dobb's Journal
[4] 문서 NeXT interface builder
[5] 문서 Xcode interface builder
[6] 문서 The NeXTonian http://rixstep.com/2[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com