VisualWorksIntroduction2:Page1

From 흡혈양파의 번역工房
Revision as of 09:24, 27 December 2012 by Onionmixer (talk | contribs) (타이틀 오류 수정)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

cincom_tutorial_vwlogo
cincom_tutorial_cincomlogo
cincom_tutorial_vwtutorial2
cincom_tutorial_stlogo

입문서 : parcel
cincom_tutorial_openbook Parcel은 VisualWorks의 코드를 포함하는 단순한 파일입니다. 예를 들어, 게임 "테트리스"와 같은 완전한 어플리케이션을 포함하는 경우도 있습니다. 한편, 개발하는데 도움이 되는 코드를 포함하는 경우도 있습니다. UIPainter같은 Parcel이 그렇습니다. 이 Parcel은 GUI를 생성하는데 도움을 줍니다. 외부로 코드 덩어리를 격납함으로서, 개발환경을 가능한한 작게, 가능한한 간소하게 유지할 수 있습니다. 필요한 것만 사용하면 됩니다. 완전한 어플리케이션(테트리스 게임 처럼)에서는, 코드를 한 개의 파일에 넣는 방법이 효율적입니다.
cincom_tutorial_certificate 이 입문서는 Parcel을 상세하게 설명하는 것이 목적입니다. 보다 고도의 Smalltalk 프로그레밍의 깊은 부분에서 세세한 부분을 요구하게되면, Parcel은 없어선 안될 존재입니다. 이렇게 강력한 파일들에 대해 조금이라도 더 이해할 수 있도록 최선을 다하겠습니다.
cincom_tutorial_question Parcel이란 무엇인가요?

위 설명으로 이해가 어려운 경우엔 "코드를 지적인 방법을 통해 파일로 저장"한다 생각해주십시오. 이 지적이라는 것은, 다른 Parcel을 로드(앞서 로드)하는 Parcel 능력에서 유래합니다. UIPainter Parcel을 사용하여 GUI 어플리케이션을 작성할 때, 이것을 인식할 것입니다.


예를들어, GUI 어플리케이션을 작성할 때, UIPainter Parcel이 이미 로드되어 있을 필요가 있습니다. 이 Parcel은 새로운 캔버스(윈도우)의 생성이나 캔버스상의 버튼이나 입력필드 등의 오브젝트 배치를 가능하게 하는 VisualWorks의 코드가 포함되어 있습니다. 하지만, 단순히 "Save to File"으로 작업을 저장한 경우, 단순히 클래스와 그 메서드가 저장될 뿐입니다. UIPainter(개발 코드)는 아무것도 저장되지 않습니다. 하지만, parcel로서 코드를 저장하면, 개발을 계속하기 위해 필요한 컴포턴트인 UIPainter Parcel을 저장한 Parcel로부터 호출할 수가 있습니다.


VisualWorks를 실행시켰을 때, UIPainter Parcel이 자동적으로 로드되지 않는다고 가정합니다. "Save to File"으로 GUI코드를 저장한 것 뿐이라면, VisualWorks를 실행할 때마다 GUI편집을 위해서 우선 UIPainter를 로드해서 코드를 파일 인 해야만 합니다. Parcel에서 UIPainter를 Preload하면 충분하기에, 자신의 Parcel만 로드하면 됩니다

cincom_tutorial_merge Parcel은 무엇과 닮았나요?


아래 그림은 File Browser 화면을 캡쳐한 것입니다. parcel 디렉토리가 표시되어 있습니다. 모든 파일을 표시할 수는 없습니다만, File Browser 툴은 이 디렉토리에 146개의 파일이 있는 것을 나타내고 있습니다.

그림 A-1. 파일 브라우저에 의한 parcels 디렉토리 일람

파일 일람을 보면 같은 이름의 파일이 꼭 두 개씩 있습니다. 통상적으로, Parcel은 쌍을 이루고 있습니다. "완전"한 Parcel은 PST 파일과 PCL 파일의 두 가지 파일로 이루어져 있습니다.

그림 A-2. 완전한 parcel은 두 개의 파일로 구성

.PST 파일은 parcel의 소스 코드를 포함합니다. 로드한 parcel 코드를 브라우즈할 때, 시스템은 그 parcel의 클래스나 메서드의 소스 코드로서 .PST 파일을 보러 갑니다.

.PCL 파일은 "parcel 로더"이며, 로드할때 시스템 안에 코드를 인스톨하기 위해 사용합니다. .PCL은 로드 스피드를 향상시키기 위해서 바이너리 형식을 취하고 있습니다. .PST(소스) 파일은, 코드가 요구될 때까지 디스크에 놓여있습니다. 이것은 .PST 파일을 포함하지 않음으로서, 유저는 소스 없이 parcel을 배포할 수 있습니다.

cincom_tutorial_question parcel은 왜 "잘 다듬어진" 파일 인인가요?

parcel은 의존하고 있는 parcel의 일람을 보유하고 있습니다. 예를들어, VisualWorks의 헬프를 로드하면 VWHelp라 불리우는 parcel을 로드합니다. 하지만, VWHelp parcel 내부에서는 실제로 다른 parcel의 호스트로서 로드합니다.

그림 A-3. VWHelp parcel이 요구하는 다른 parcel

이 기능이 없으면, 분할된 코드의 덩어리를 하나 하나 File In 해야합니다. 두 번째로, 이러한 다른 코드의 덩어리들을 어떤식으로 인지하는 것일까요?

cincom_tutorial_question parcel은 어째서 Smalltalk 코드를 보관하는 효율적인 방법인가요?


개발자 입장에서 보면, parcel은 컴포넌트 기술입니다. 각 parcel은 명확한 용도를 가지고, "필요로 하는" 기초를 불러옵니다.

그림 A-4. 기본 VisualWorks 이미지 외 코드를 보유

GUI 어플리케이션을 생성하지 않는다면, UIPainter parcel은 필요 없습니다. 데이터 베이스에 ODBC로 억세스하는 어플리케이션을 작성하는 경우, ODBCEXDI parcel이 필요하게 됩니다. 그렇지 않다면, 그러한 parcel은 로드하지 않을 것입니다. DLL에 격납된 Windows 함수를 호출하고 싶은 경우, DLLCC parcel이 필요하게 됩니다. 그렇지 않다면, 그러한 parcel은 로드하지 않을 것입니다. 필요로하는 parcel(컴포넌트)만을 로드하면 됩니다. 결과적으로, 필요로 하지 않는 코드에서 스페이스가 비대화 되는 일은 없습니다.

cincom_tutorial_question parcel을 로드하는 방법은?


VisualWorks 메인 런쳐 윈도우에서 System>>지정 parcel 로드... 메뉴를 선택해주십시오.

그림 A-5. 지정 parcel 로드 다이얼로그

이 목록을 좁히기 위해서는 문자와 와일드 카드(애스터리스크 : *)을 지정합니다.

cincom_tutorial_question 이미 로드된 parcel을 인지하기 위해서는?


parcel 일람을 표시하면, 이미 로드된 parcel은 이텔릭체로 표시되어있습니다. 예를들어, VisualWorks의 헬프를 로드합니다. VisualWorks 메인 런쳐 윈도우에서 Help>>Help Load 메뉴를 선택해주십시오. 그리고, 모든 일람을 확인하기 위해서 *를 사용해, parcel 로드 화면을 표시해주십시오.

그림 A-6. VWHelp parcel은 이미 로드됨

parcel 일람 첫 부분에 있는 복수의 Arbor parcel도 똑같이 로드되어 있는 것에 주의해주십시오.

그림 A-7. VWHelp parcel이 로드되니 Arbor parcel도 로드됨
cincom_tutorial_question parcel 로더는 이러한 parcel들을 어디서 찾아내나요?


parcel 로더는, "parcel 패스"에 존재하는 모든 PCL파일을 검색합니다. parcel 패스는 통상 parcel이 놓여있는 디렉토리 일람입니다. 이 일람은 시스템 메뉴의 Settings에서 설정 가능합니다.


VisualWorks 메인 런쳐 윈도우에서 System>>Settings 메뉴를 선택해주십시오. 환경설정 다이얼로그가 표시되면, 왼쪽에 있는 트리에 parcel 패스라는 항목을 찾을 수 있습니다. parcel 패스를 클릭해주십시오.


그림 A-8. parcel 패스 일람
cincom_tutorial_question parcel은 단순히 툴인가요?


그렇지 않습니다. parcel은 완성된 어플리케이션을 포함할 수 있습니다. Tetris를 로드해봅시다.

그림 A-9. Tetris parcel을 로드
cincom_tutorial_certificate 정리

parcel에 대한 자세한 정보는, Application Developers Guide(AppDevGuide.pdf)에 있습니다. PDF파일은 \doc 디렉토리에 있습니다.


| 이전으로 돌아가기 |