Web-Based HTML Editor 비교 및 미리보기

웹개발시 종종 필요로 하는 웹기반 HTML에디터..

Sourceforge에 등록되어 있는 오픈소스 웹기반 HTML 에디터의 종류와 기능비교  및 미리보기

순서는 Sourceforge의 Activity 순

 

- FCKeditor (http://sourceforge.net/projects/fckeditor/)
  * IE의 Editor Object 를 이용하여 제작
  * jsp, php, asp에 대응하는 이미지 업로드 및, 브라우징 기능
  * 미리 정의된 3가지 형태의 툴바 형태제공
  * 간편하게 기존 소스에 추가 가능
  * 테이블 편집 기능 지원
  * 타 사이트 내용 copy&paste시 이미지 경로 변경 필요
  * 다양한 언어 지원(한글포함)

  * 완성도 높음.. 강추!
  * sample -
http://pistos.pe.kr/FCKeditor/_test/test.php

- HTMLarea (http://sourceforge.net/projects/itools-htmlarea)
  * 이미지 업로드 지원 안함
  * 풀스크린 편집 지원
  * 영문메뉴만 지원
  * 타 사이트 내용 copy&paste시 이미지 경로 변경 필요 없음  
  * PHP Image Editor 지원 (
http://sourceforge.net/projects/imgmngedt/)

  * 한글화 및 이미지업로드만 커스터마이징하면 FCK에 떨어지지 않을듯
  * sample -
http://pistos.pe.kr/htmlArea/examples/full-page.html

 

- SPAW web-based WYSIWYG editor control (http://sourceforge.net/projects/spaw/)
  * 예쁜 디자인
  * 이미지 라이브러리 기능
  * 이미지 업로드 지원 안함  
  * 타 사이트 내용 copy&paste시 이미지 경로 변경 필요 없음

  * 디자인만 놓고 보면 최고! 그러나 이미지삽입부분이 맘에 들지 않고, 사소한 버그가 좀 있는듯.
  * sample -
http://pistos.pe.kr/spaw/test.php

 

- hypertextarea (http://sourceforge.net/projects/hypertextarea/)
  * 기본적인 기능만 제공
  * 이미지 업로드 지원 안함
  * 심플한 디자인
  * 타 사이트 내용 copy&paste시 이미지 경로 변경 필요 없음

  * 바로 갖다 쓰기엔 스크립트에러의 압박이 심함..
  * sample -
http://pistos.pe.kr/hypertextarea/javascript/demo.html

 

- RichText-editor (http://sourceforge.net/projects/richtext/)
  * 브라우저 언어설정이 한글인경우 문제있음(한글지원 커스터마이징 필요)
  * 이미지 업로드 지원 안함
  * 타 사이트 내용 copy&paste시 이미지 경로 변경 필요 없음

  * 한때는 꽤 잘나가는 녀석이었는데... 이제는 경쟁력이 떨어짐.. 가져다 쓰려면 고쳐야 할것도 많음.
  * sample -
http://pistos.pe.kr/richtext/editor/rte/richedit.html

 

- aynHTML (http://sourceforge.net/projects/aynhtml/)
  * 이미지업로드 지원
  * 이미지 저장소 지원
  * 깔끔한 디자인
  * 타 사이트 내용 copy&paste시 이미지 경로 변경 필요 없음

  * 나름대로 깔끔함.. 소스보기시 컬러링도 해주고.. 간단히 쓰기엔 좋을듯
  * sample -
http://pistos.pe.kr/aynHTML/

 

- XsDhtmlEditor (http://sourceforge.net/projects/xsdheditor/)
  * 심플한 디자인
  * 이미지 업로드 지원
  * 타 사이트 내용 copy&paste시 이미지 경로 변경 필요 없음

  * 바로 쓰기에는 버그가 좀 있음..
  * sample -
http://pistos.pe.kr/XsDhtmlEditor/

 

- bpEditor ( http://sourceforge.net/projects/bpeditor/)
  * 만들다 만듯..ㅡㅡ
  * sample -
http://pistos.pe.kr/bpShitEditor/bpShitEditor.php

'오픈소스SW' 카테고리의 다른 글

Open Source 기반의 차트 프로그램  (0) 2008.12.26
Ajax Scripts  (0) 2008.12.26
core file 분석  (0) 2008.04.17
탭 방식으로 html에 옷을 입혀주는 css  (0) 2008.02.02
공개웹방화벽을 이용한 보안대응  (0) 2008.01.11
ERP/ISP/ITA 모두 경영정보시스템(MIS)분야에서 등장하는 주제입니다.
MIS분야가 해결하고자 하는 중심 이슈 중 하나는 "IT를 어떻게 조직 목적/전략에 부합시킬 것인가"라는 명제인데 위의 개념들은 모두 그런 목
적 배경 하에서 등장했습니다.

ERP는 약간 scope이 다르니 따로 떼어놓고 생각하는 게 좋고, ISP/ITA를 같이 비교를 하는 것이 좋습니다.

ERP는 쉽게 이야기해서 조직 내 흩어진 DB들을 하나로 통합하자는 계획을 세우는 것입니다. 그래서 조직의 가치사슬 상의 모든 프로세스들이 각자
의 DB가 아닌 통합 DB에 데이터를 저장하고 활용함으로써 데이터의 중복도 방지하고 데이터의 분석도
용이하게 하는 목적이 있습니다. DB통합의 목적은 딱히 한가지로 정의할 수 없지만 궁극적으로는 조직 전략의사결정을 지원하여 조직의 목적을 달성하
도록 하는 데 있습니다.
(ERP 참고 : http://ees.khu.ac.kr/iee/ees9/main0.html)

ISP는 80년대 말 James Martin의 정보공학방법론을 시초로 하여 지금까지 가장 많이 사용되어 온 정보화전략계획 방법론입니다.
여기서는 조직의 다양한 차원에서 현황을 분석하고 이를 바탕으로 미래 모델을 제시하고 정보화이행계획을 수립하게 됩니다.

ITA는 오늘날 EA(Enterprise Architecture)라는 용어로 더 많이 사용되고 있습니다.
그리고 ISP와 비교했을 때 상응하는 용어는 정확하게는 ITA가 아니라 EAP(Enterprise Architecture)가 됩니다.
EAP에서 수행하는 작업은 ISP와 유사하나, EAP는 ISP에 비해 "관리적 측면"에서 더 보완된 개념입니다.

ISP에서 도출된 산출물들은 조직의 방향성을 이끌어 내기위한 재료이지, 그것 자체를 관리하는데 초점을 두지 않습니다.
하지만, EAP를 통해 도출된 산출물들을 EA라는 틀(프레임워크라고 합니다.)에 담아 체계적으로 정리하고, 각각의 산출물 간 상호관계를 파악하는 데 중점을 둡니다. 그리고 그렇게 정의된 현재의 EA(AS-IS EA)를 미래의 EA(TO-BE EA)로 바꿔가는 이행계획을 수립함으로써 IT가 조직목적에 부합될 수 있도록 합니다.

따라서, EAP에서 나온 산출물들을 EA프레임워크에 정리한 것이 조직의 아키텍처(Enterprise Architecture)가 되는 것이고, 이 아키텍처를 잘 관리함으로써 ISP와는 다른 여러가지 유익을 얻을 수 있습니다. 이 아키텍처의 관리를 위해 EAMS Enterprise Architecture)라는 시스템이 사용되는 것도 ISP와의 차이라고 할 수 있습니다.

EA는 IT가 조직목적에 부합하도록 하는 본래의 목적 이외에도, 조직 내 업무 프로세스 관리, 정보자원관리, 데이터 관리, 물리적 자원관리 등 종합적인 자원관리 도구로도 사용할 수 있고, 조직 내 투자프로세스와 연동시키면 투자관리 지원도구로도 사용될 수 있고, 나가아가서는 조직 개편이나 기업 간 M&A 같은 조직 차원의 변화관리에도 사용될 수 있습니다. EA는 조직을 모든 차원에서 투명하게 들여다 볼 수 있는 청사진인 셈입니다.

Toad DBA Suite로 패키징된 제품 중에서 먼저 TDM 제품에 대한 리뷰를 간략하게 작성해 보았다.

 

<먼저, 본 리뷰에서 언급한 사항 중에 툴에 대해서 깊이 있게 알지 못해서 혹은, 특정 기능을 찾지 못해서 잘못된 내용을 기술할 수도 있음을 미리 알린다. 나름 기능을 찾기 위해 매뉴얼도 찾아보고 했지만, 자료도 부족하고 영어 울렁증이 있어서 말이다.>

 

TDM은 데이터 모델링 툴이다. 대표적인 데이터 모델링 툴로는 국내에서 많이 사용하는 Allfusion ERWin, DA#(encore), ER/Studio(Embarcadero), PowerDesigner(Sybase), Visio(Microsoft) 등이 있으며 UML 툴에서 데이터모델링을 지원하거나 eclipse plug-in으로 나온 제품들도 있다.

 

예전에 TDM의 초기버전은 논리모델이 없었으며, 물리모델만을 모델링 할 수 있도록 구성되어 있었던 것으로 생각된다. 이번 버전은 기존의 기능에 논리모델 기능 및 여러가지 다양한 기능을 추가하여 나온 제품인 듯 하다.

<?xml:namespace prefix = o /> 

"百聞 不如一見"

 

 

TDM을 설치 후에 처음으로 실행한 화면이다.

TDM TOAD만큼 유명한 제품이 아니라서 그런지 샘플모델을 디폴트로 로드되도록 구성되어 있다. 첫 느낌은 색깔이 화려한게 일단 맘에 든다.

 

LDM & PDM

TDM이 다른 모델링 툴과 가장 차이점은 LDM(Logical Data Model) PDM(Physical Data Model)을 작성하고 관리하는 방식인 것 같다.

대부분의 모델링 툴은 LDM PDM을 동일한 구조를 갖도록 구성해야 한다.

 

위의 그림과 같이 Super Type Sub Type으로 구성된 논리모델이 있을 때, 물리모델에서는 테이블 단위로 구성되기 때문에 물리모델 단계에서 각 엔티티를 하나의 엔티티로 통합하거나 각각의 서브타입으로 분리하거나 하는 방식으로 변경을 한다.

Erwin이나 대부분의 모델링 툴에서는 논리모델시에 위의 그림처럼 Subtype으로 모델링을 하여도 최종 물리모델단계로 넘어가면서 엔티티를 통합/분리하므로 최종적으로는 하나의 엔티티가 어떤 서브타입으로 구성되어 있는지 모델만 봐서는 파악하기가 어려워진다.(물론 별도의 파일로 작성하면 가능은 하지만 상당히 관리가 불편해진다.) 그런 단점이 있으나 논리모델과 물리모델이 동일한 모습을 가지게 되므로 논리모델에서 물리모델로 전환이 쉬워지는 장점이 있으며 하나의 파일로 관리된다는 점도 장점 중 하나이다.

 

그러나 TDM은 일반적인 하나의 파일로 논리/물리를 관리하지 않으며 별개의 파일로 논리/물리모델을 구성/관리하도록 되어 있다.

 

위의 그림과 같이 간단히 논리모델을 TDM으로 작성하였다. 물리모델을 작성하기 위해서는 TDM에서는 Convertor를 이용하여 물리모델을 생성하여야 한다.

 

다음은 툴의 기능을 이용하여 물리모델을 작성한 화면이다.

두 모델을 비교하면 물리모델에서는 Subtype이 하나의 테이블로 통합되어 구성이 되어있다. TDM에서는 이렇게 비즈니스 로직을 담고 있는 논리모델과 테이블구조를 가지는 물리모델을 분리하여 관리하도록 하여 논리모델에서는 비즈니스 로직만을 충실히 담을 수 있도록 구성하여 기존 툴과의 차별성을 내세우고 있다.

 

그러나 데이터모델은 지속적으로 변경된다. TDM에서는 한번 변환한 모델간의 Alignment가 되지 않는다는 치명적인 단점이 있다.

가령 논리모델에서의 사용자아이디란 속성이 물리모델에서의 “USER_ID”란 컬럼으로 변경되어 있다는 정보를 툴이 인식을 하지 못한다. 그러므로 논리모델의 속성명이 변경되거나 컬럼사이즈가 변경, 컬럼의 추가 등의 변경이 발생하더라도 물리모델에서 인식을 하지 못하므로 개별적으로 두 모델을 따로 관리하여야 한다.

혹시 Convertor를 이용하면 되지 않을까? 열심히 궁리를 해보았지만 Convertor에서는 사용자아이디“USER_ID”가 완전히 서로 틀린 컬럼으로 인식하고 있어서 방법이 없었다.

 

[위의 그림처럼 좌측의 회원이 물리모델에서 존재하지 않는 것으로 나타나며, 우측의 USER 테이블에 해당되는 좌측의 논리모델도 존재하지 않는 것으로 나타난다.]

 

매뉴얼을 찾아보니 모델 변경시에는 물리모델을 먼저 변경하고 변경사항을 역으로 PDM -> LDM으로 병합해야 한다고 나와있었다.

그 말은 비즈니스 모델이 변경되었지만 물리모델에서 먼저 작업하고 비즈니스 로직을 나중에 고치라는 말도 안되는 방식을 툴은 강요하고 있는 것이다.

차기 버전에서 가장 개선되어야 할 부분이 아닌가 싶다.

LDM PDM을 별도의 파일로 관리하는 모델링툴의 대표적인 사례는 DA#이 있다. 이 툴은 논리모델의 변경사항을 한번의 클릭으로 물리모델에서 정확히 인식하며 엔티티 레벨, 속성 레벨의 변경정보를 정확히 모델러에게 알려준다.

 

엔티티 속성 편집창

다음은 LDM  엔티티 속성 편집창의 모습이다.

 

 

일반적인 엔티티의 속성 정보를 저장할 수 있는 UI이다.

Caption 항목은 속성의 설명정보를 담는 항목이다. 대부분의 툴에서는 Description 이름으로 제공하고 있다.

모델링을 하다 보면 Caption Description 기능이 모두 필요하다.

특히 우리나라 같이 비 영문 국가에서는 테이블 생성시에 Comment 객체에 컬럼의 한글명을 기입하고 논리모델에서는 컬럼의 상세한 업무규칙 및 컬럼의 정의를 할 수 있다면 가장 best 하지만 아쉽게도 그렇게 구별하여 지원하는 툴은 아직까지는 보지 못한 것 같다.(나만 필요하다고 느끼는 것인지도 모르겠다)

 

컬럼편집

TDM에서는 컬럼별로 복사를 할 방법이 없다. 엔티티 레벨에서는 복사가 가능하나 LDM에서 특정 속성만을 선택하여 다른 엔티티로 컬럼을 복사할 방법이 없다. 등록일자/수정일자 같은 시스템 공통속성을 전 엔티티에 모두 두기 위해서는 각 엔티티마다 모두 입력하는 방법밖에 없다. 이 부분도 반드시 차기 버전에는 들어가야 될 기능이 아닐까 싶다.

 

데이터 표준화 지원

TDM의 또 다른 단점 중 하나는 데이터 표준화에 대한 지원이다.

TDM에서 도메인을 지원하기는 하나 계층적으로 구성할 수가 없고 별도의 도메인타입을 만들 수 가 없어서 모든 도메인을 1차원적으로 구성해야 한다. 조금은 아쉬운 부분이다.

또한, 물리모델 생성시에 단어 및 용어 표준화를 지원하지 않는다. 툴을 열심히 뒤졌것만 찾을 수가 없었다. 특히 우리나라같이 한글로 논리모델을 작성하고 영문컬럼명으로 물리모델을 변환해서 사용해야 하는 환경에서 영문컬럼명 변환을 매번 모든 컬럼을 클릭하여 입력한다는 것은 엄청난 노가다다.  용어사전을 생성하여 두고 자동으로 변환되지 않는다면 엔티티가 100개만 넘어가더라도..(생각하기도 싫다)

이 부분도 차기 버전에 반드시 들어가야 될 기능이 아닌가 싶다.

 

WorkSpace & UI

TDM에서는 주제영역(Subject Area) Workspace란 명칭으로 사용한다. eclipse의 영향인 것 같기도 하다. 거의 모든 툴에서 subject area란 용어를 사용하는데 말이다.

TDM의 편리한 점 중 하나는 여러 모델을 tab 방식으로 조회를 할 수 있는 점인 것 같다.

그리고 TDM에서는 실행취소 기능을 제공한다. 이게 얼마나 편리한 기능인지는 이 기능이 없는 툴을 사용해 본 사람이면 공감을 할 것이다. Erwin의 경우에도 아직도 많은 사람들이 사용하고 있는 v4.xxx 버전에서는 이 기능이 없다. r7 버전부터 이 기능을 제공하고 있으니 말이다. 엔코아의 모델링 툴인 da# 의 경우도 실행취소 기능이 없어서 어떤 땐 무지 짜증이 날 때도 있다. TDM에서는 이 기능을 제공해 주니 그래도 쓸만은 하다.

 

Reverse Engineering

리버스 엔지니어링은 초기 AS-IS 데이터 모델 분석시에 반드시 필요한 부분이다. 특히 엔티티가 몇 백개씩 되는 대형 사이트에서는 이 기능이 없으면 DB 분석시에 엄청난 시간이 걸릴것이다. 리버스 엔지니어링과 관련하여 또 반드시 필요한 기능은 테이블 정렬 기능이다. 몇 백개 되는 테이블이 아무런 연관없이 이름을 툴위에 쭉 나열한다면 테이블을 거의 분석하기가 힘들것이다. 대부분의 시스템에서 명식적인 FK를 설정하지 않고 데이터베이스를 구성하기 때문에 툴에서 컬럼명을 기준으로 가상의 Relation을 생성해주고, 사용자가 지정하는 Key Entity 혹은 Main Entity를 중심으로 주변에 Action Entity를 배치하게 해준다면 리버스 된 모델이 사용자가 인지하기 쉬운 구조로 재배치되어 많은 도움이 되리라 생각된다.

TDM에서는 리버스 기능은 훌륭하나 테이블 정렬기능은 단순정렬밖에 제공되고 있지 않아 아쉬움이 남는다.

아래 그림은 운영하고 있는 시스템을 리버스로 물리모델을 생성하는 과정을 담고 있는 화면이다.

 

 

설치시에 데이터소스를 오라클과 MS-SQL만으로 한정하였기에 해당되는 항목이 위의 정보만 나타난다. MS-SQL 2008 ORACLE11도 출시되었으니 조만간에 추가되지 않을까 싶다. 또한 QUEST사의 대표적인 제품인 TOAD와 연동할 수 있는 기능이 눈에 띈다.

 

Data Provider 및 접속정보를 입력한 후 Reverse해야 될 대상을 선택하는 화면이다.

 

다음은 리버스에 대한 옵션을 선택하는 화면이다.

 

최종적으로 리버스해야될 테이블은 선택하고 나서 Execute 버튼을 클릭하면 TDM은 리버스를 시작한다.

 

 

위의 그림은 최종적으로 리버스된 물리모델의 모습이다.

 

테이블 속성편집 창

리버스된 테이블의 속성 편집창이다.

상당히 많은 탭이 보인다.

 

SQL Preview 기능은 다른 툴에서는 잘 없는 기능인데 편리한 기능인 것 같다.

 

테이블의 속성정보 (위 그림은 파티션정보이다.)을 콤보박스나 그리드 같은 UI를 사용하지 않고 Text로 입력하도록 구성되어 있는 모습이다.

 

 

리버스한 정보 중 오라클 패키지의 SQL Preview화면이다. 주석의 일부분이 진한갈색으로 보이는건 왜 그런지 모르지만 리버스는 훌륭히 수행한 것 같다.

 

모델 Compare Alter Script Generation

극히 일부의 모델링툴에서만 제공하는(Erwin) 편리한 기능이 TDM에도 탑재되어 있다. 모델간의 비교 및 비교를 통한 Alter Script를 생성해주는 기능이다. 변경되는 양이 적을 경우에는 툴보다는 손으로 스크립트를 작성하는게 편리하다. 그러나 큰 규모의 변경이 일어나는 경우에는 툴의 기능을 이용하면 편리하게 업무를 처리할 수 있다.

 

 

위의 그림은 물리모델에서 하나의 컬럼을 추가한 후 ALTER SCRIPT를 생성하기 위해 Convertor를 실행시킨 모습이다.

 

 

최종적으로 생성된 Alter 스크립트이다. 변경된 부분 중에서 필요한 부분만 선택하여서 Alter 스크립트를 생성할 수 있다.

 

Reporting

프로젝트 개발시에 모델링에 대한 산출물은 필수산출물이다. 나는 대체로 별도로 산출물을 작성하지 않으며 ER모델을 아주 상세하게 작성한 후 고객사의 양식에 맞게끔 툴로 Generation하여 제출하는 편이다. 그러므로 이 기능은 아주 필요한 기능이다.

TDM HTML 방식과 rtf 파일을 제공하고 있다.

 

위의 그림은 Report 생성시에 필요한 사항을 선택하는 화면이다.

최종적으로 Reporting된 화면은 아래와 같다

 

 

내부 프로젝트나 별도의 양식이 없는 프로젝트의 경우에는 사용이 가능하나 고객사 혹은 내부 산출물 양식이 지정되어 있는 경우는 이정도 레포팅 기능으로는 부족하지 않나 싶다.

별도의 양식을 디자인하는 기능이나 혹은 Erwin처럼 별도의 API를 제공은 고사하더라도 최소한 엔티티나 테이블의 정보를 엑셀로 출력하는 기능정도는 있어야 하지 않을까 싶다.

 

총평

Toad Data Modeler(TDM)은 버전 3으로 오면서 많은 기능이 추가되었지만, 아직까지는 부족한 기능이 많은 편이다. 소규모 프로젝트에서는 가능한 수준이 아닌가 싶다. 그러나 데이터베이스 관련한 SW의 노하우가 많은 Quest사의 제품이니만큼 그리 오래지 않아 필요한 기능들이 모두 추가되고 TDM만이 제공하는 특별한 기능까지. 향후에는 Toad와 같은 명성을 TDM도 얻을 수 있으리라 생각한다.


'삽질로그' 카테고리의 다른 글

가격제안에 사용하는 계정과목표준  (0) 2009.05.10
나만의 UCC 사이트 구축하기  (0) 2008.12.26
데이터모델링  (0) 2008.11.28
자바스크립트로 UI 구현하기  (0) 2008.10.11
검색의 혁명 Search 2.0  (0) 2008.09.24
1. 데이터 모델
  1.1 데이터 모델의 정의
데이터의 집합을 기술하는데 사용되는 개념이며, 데이터를 조작할 수 있는 연산들의 모임을 의미한다. 데이터는 키(주 식별자)와 일반 칼럼(속성, Attribute)올 표현이 되며 키와 칼럼들이 모인 로우(레코드), 하나 이상의 로우가 모인 테이블(모델링 단계에서는 엔티티)이 되는데, 모든 용어들이 데이터의 표현에 사용된다.
  1.2 데이터 모델의 종류
가. 개념적 모델(Conceptual Model)
현실 세계의 업무규칙(업무처리흐름상의 규칙, 양식 등의 자료를 구성하는 데이터들의 상관관계 규칙)을 개략적으로 데이터 모델을 사용하여 표현을 하되, 각각의 사업장, 부서 등에 대해서 개별적인 데이터 모델이 작성될 수 있다.
나. 논리적 모델(Logical Model)
개념적 데이터 모델을 통합한 것으로써, 각각의 사업장, 부서 등의 데이터를 구성하는 속성들의
도메인(자릿수, 형태, 초기 값 등)이 통합되어 표현 된다.

논리적 데이터 모델은 특히 다음과 같은 특성을 가지고 있다.
? 데이터베이스 설계 시 사용
? 주어진 현실세계로부터 개념의 집합을 명세
? 높은 수준의 추상화에서 현실세계를 표현하는 도구
? 현실세계를 이해하기 쉽고 해석하기 쉽도록 현실세계를 명세

논리적 데이터 모델의 평가기준은 다음과 같다.
? 표현성(Expressiveness)
? 단순성(Simplicity)
? 최소성(Minimality)
? 정형성((Formality)

다. 물리적 모델(Physical Model)
논리적 데이터 모델과 비교한 물리적 데이터 모델의 특징은 다음과 같다.
? 특정 DBMS에 의해 지원됨
? 컴퓨터에 의해 처리될 수 있는 데이터 명세를 지원
? 종류 : 계층형 모델, CODASYL 모델, 관계형 모델

  1.3 데이터베이스 구축과정으로 본 데이터 모델의 의의
데이터베이스 구축과정은 현실세계의 데이터와 업무를 데이터 모델의 세계로 Mapping시키는 과정이라고 할 수 있다. 데이터베이스는 현실 세계의 데이터와 업무를 그들의 세계로 안내하는데 있어서 그들이 채택한 모델을 통하여 안내한다. 즉, 모델의 표현규칙, 작성규칙을 따라 현실세계의 자료와 업무가 표현된다. 다시 말하면 컴퓨터세계와 현실세계의 연결다리 역할을 하는 것이 바로 이 모델이다. 데이터베이스 관리시스템(DBMS) 또한 이 모델을 근거로 각종 자동화 처리기를 제작했다. 따라서, 데이터베이스 시스템을 구축 시에 필수적으로 그들이 채택한 데이터 모델에 대하여 정통할 필요가 있다.
2. 데이터 모델링
  2.1 데이터 모델링 절차
다음은 일반적인 데이터 모델링 절차이다.
일반론적인 데이터 모델링 절차 그림에서 '데이터 모델 콘테스트' 및 '업종별 표준 데이터 모델'의 제작과 관련하여 엔티티 정의, 관계 정의, 엔티티-관계도 작성, 주/부 식별자 정의, 외부 식별자 정의, 세부속성 정의에 대해서만 설명하기로 한다. 나머지 부분들은 일반 책자들에 잘 설명이 되어 있으므로 참고하기 바란다.
  2.2 엔티티 정의
가. 엔티티의 종류
엔티티의 종류는 독립 엔티티(Kernel Entity, Master Entity), 업무중심 엔티티(Transaction Entity), 종속 엔티티(Dependent Entity), 교차 엔티티(Associative Entity, Relative Entity)의 4종류로 분류된다.
1) 독립 엔티티(Kernel Entity, Master Entity)
    사람, 물건, 장소, 개념처럼 원래부터 현실세계에 존재하는 엔티티.
    예) 사원, 고객, 영업부, 창고, 생산계획, 계정과목 …

2) 업무중심 엔티티(Transaction Entity)
    업무가 실행되면서 발생하는 엔티티
    예) 주문, 납품, 대금청구, 대금지급 …

3) 종속 엔티티(Dependent Entity)
    주로 1차 정규화(1st Normalization)로 인하여 관련 중심엔티티로 부터 분리된 엔티티
    예) 주문품목, 납품품목 …

4) 교차 엔티티(Associative Entity, Relative Entity)
    다:다 관계를 해소하려는 목적으로 인위적으로 만들어진 엔티티

나. 엔티티의 자격조건
엔티티의 종류는 독립 엔티티(Kernel Entity, Master Entity), 업무중심 엔티티(Transaction Entity), 종속 엔티티(Dependent Entity), 교차 엔티티(Associative Entity, Relative Entity)의 4종류로 분류된다.

다. 엔티티의 예
다음 표는 엔티티의 사례를 보여주는 표이다.
① 사람 (사원(직원, 행원, 공원,…), 계약자(가입자, 회원,…), 이용자(학생, 환자,…))
② 물건 (재료(부품, 원자재, 연료, …), 상품(제품,…), 시설(건물, 창고, 운송센터,…), 지점(영업소, 소매점,…))
③ 사건 (계약(수주,발주,…), 작업(공정, 보관, 선전, 광고,…), 사고(재해, 고장,…))
④ 장소 (구획(창고, 선반, 진열케이스, 생산라인, …), 지역(판매구역, 관할구, 선거구,…), 하천, 항만(부두, 선창,…))
⑤ 개념 (목표, 계획(지침, 방침, 지표, 판매목표, 생산계획, 판매계획, 인원계획,…), 시간(월, 일, 년, 시각, 시각분할,…), 평가(기준, 지표))
⑥ 금전 (예입금(구좌,…), 예산(년간예산, 수정예산, 실행예산,…), 차입(단기, 장기,…), 융자(단기, 장기,…))

  2.3 관계(Relationship) 정의
가. 기수성(Cardinality)
기수성은 다음과 같이 정의된다.
? 1:1, 1:M, M:N 관계
? 해당엔티티 1건에 대한 상대엔티티의 기수성을 상대 엔티티쪽에 표기
? 표기 방법(James Martine 표기법)

나. 선택성(Optionality)
선택성은 다음과 같이 정의된다.
? 집합의미 (포함, 불포함)
? 1:0 (Optional), 1:1 (Mandatory)
? 해당엔티티 1건에 대한 상대엔티티의 기수성을 상대엔티티쪽에 표기
? 표기 방법(James Martine 표기법)

다. 관계의 완성 : 기수성과 선택성의 통합 [James Martin]
기수성과 선택성을 통합하면 관계가 완성이 된다.
? 해당 엔티티를 기준으로 기수성의 경우의 수와 선택성의 경우의 수를 합하여 최소값과
  최대값의 경우의 수를 구한 후 해당 엔티티쪽에 최대값을 바깥쪽에 최소값을 표기한다.
? 상대 엔티티도 유사한 방법으로 표기한다.

라. 관계의 완성 사례
다음은 '고객'엔티티와 '주문'엔티티에 대하여 관계를 작성하는 절차를 보여주는 사례이다.
? 기수성 : 각 고객은 하나 이상의 주문을 할 수도 있고 안 할 수도 있다.
? 선택성 : 각 주문은 고객이 하는 것도 있고 그렇지 않을 수도 있다. (사원이 할 수도 있다.)

관계를 완성할 때 흔히 나올 수 있는 경우에 대한 대처 방법을 설명하기로 한다.
첫째, 기수성과 선택성의 통합 시 다:다 관계가 나올 수가 있는데 이는 Table Join이 안되므
        로 (외부 키의 표시가 불능) 교차 엔티티를 이용하여 표기한다.

둘째, 관계는 두 엔티티간의 업무규칙(Business Rule)을 토대로 인위적인 방법으로 기수성
        과 선택성을 구하여 이를 통합하여 완성된다.

셋째, 관계(Relationship) 표기의 의미는 두 엔티티 중에서 외부키(Foreign Key)가 놓이는
        자식 엔티티를 구분하기 위한 것이 첫째 임무이다. 외부키는 부모엔티티의 기본키(Pri
        mary Key)가 되기 때문이다. 둘째 임무는 외부키 무결성(관계무결성)을 구하기 위한
        것이다.

넷째, 기수성 표기, 선택성 표기, 관계통합 표기 방법이 각 교수나 RDBMS 업체에 따라 다를
        수 있는데 큰 문제가 되지 않는다. 왜 관계(Relationship)를 구하는 가의 이유만 알면
        되기 때문이다.

  2.4 엔티티-관계도(Entity Relationship Diagram)의 작성
가. 작도방법
다음은 엔티티-관계도를 효과적으로 작성하는 기법을 설명하기로 한다.
? 사각형의 도형 안에 엔티티명을 기록
? 업무흐름의 진행순서와 관련된 엔티티는 진행순서를 고려하여 좌에서 우 또는 상에서 하로   중심부에 배열 ("주문"→ "출고")
? 중심에 배열된 엔티티와 관계를 가진 연관엔티티(종속엔티티)를 가까운 쪽으로 배열
  ("주문" : "주문품목", "출고" : "출고품목")
? 배열된 엔티티와 관계를 갖는 핵심엔티티(Kernal Entity)를 외곽으로 전개
  ("주문", "고객", "영업담당자", "창고", "품목", "제품")
? 해당엔티티의 한 건에 대한 상대엔티티의 기수성(Cardinality)을 상대 엔티티쪽에 표기함으
  로써 관계의 기수성을 표기 :
? 해당엔티티의 한 건에 대한 상대엔티티의 선택성(Optionality)을 상대 엔티티쪽에 표기함으
  로써 관계의 선택성을 표기 :

나. 주요성공요소
엔티티-관계도를 작성하는데 있어서 주요성공요소는 다음과 같다.
? 엔티티를 식별하고, 관계를 도출한 후 ERD작도법에 맞추어 ERD를 작성
? 업무흐름 및 업무규칙의 ERD작도 시 활용

다. 엔티티-관계도와 관련된 실무적인 의미 및 검증기준
다음은 엔티티-관계도의 실무적인 의미와 작성시 유의사항이다.
첫째, 엔티티-관계도는 데이터베이스의 형상(Schema)을 결정하는 매우 중요한 그림이다.
둘째, 엔티티-관계도는 업무흐름을 나타낼 수 있어야 하며, 중요한 데이터속성들이 모두 표현되어 있어야 한다. 따라서 엔티티-관계도는 표현규칙 및 작성규칙에 충실하게 따라서 작성이 되어야 한다.
셋째, 엔티티-관계도를 그리다 보면 선이 겹치는 경우가 많이 발생하는데, 이는 상기한 작도방법을 따르지 않은 것으로 많은 문제를 야기할 수 있다.

다음은 실무적으로 엔티티-관계도를 효과적으로 작성하는 절차이다.
? 엔티티의 배열
? 관계의 연결
? 기수성 정의 (기수성명 표기)
? 선택성 정의 (선택성명 표기)
? 기수성과 선택성의 통합 : 엔티티-관계도의 완성
? 관계가 다:다일 경우에 교차엔티티를 이용하여 일대다로 분리함

다음은 엔티티-관계도의 검증기준이다.
? 작성규칙 및 데이터모델 표현규칙 적합성, 단순성, 확장성, 비중복성, 공유성
? 모든 속성의 표현
? 관계표기의 적합성
? 사용자의 데이터요구(화면, 보고서 등)에의 성능 우수성

  2.5 주식별자(Primary Identifier, primary Key, 주키) 정의
다음은 주식별자에 대한 정의절차이다. 이해하기 쉬우므로 간략하게 절차만 설명한다.
 
? 각 엔티티별로 하나의 주식별자 선택
? 후보 식별자 중 가장 중요한 하나를 주식별자로, 나머지를 대체키로 지정
? Subtype엔티티의 주식별자는 Supertype엔티티의 주식별자와 동일하게 선택
? 데이터 이름에 대한 표준약어목록의 이용

  2.6 외부식별자(Foreign Identifier, Foreign Key, 외부키) 정의
가. 외부식별자의 특징
외부식별자는 다음과 같은 특징을 가진다.
? 두 엔티티간의 관계를 결정하여 주는 속성으로 관계에 의한 자식엔티티에 위치하며 부모엔
  티티의 주식별자가 같은 값을 갖는다.
? 논리적 데이터 모델내의 모든 관계에 관련된 외부키를 규명한다.

나. 외부식별자의 표기 사례
다음 그림은 외부식별자의 표기 예를 보여준다.

  2.7 속성 정의
가. 속성 정의
속성이란 엔티티를 구성하는 더 이상 분리될 수 없는 정보단위로 식별자 종류(기본, 대체, 외부 키)와 비식별자(non-key)로 구분한다.

나. 효과적인 속성 정의방법
다음과 같은 방법으로 속성을 찾아 정의한다.
? 정보 분석단계에서 수집된 각종자료 참조
? 엔티티, 관계 정의시 파악
? 기존 정보시스템 분석 - 관련 DB나 file의 field
? 속성의 이름을 부여 - 표준화 규칙 사용, 자료사전에 기록

다. 속성 정의 예
다음 표는 제품 엔티티에 대한 속성 정의 예이다.
엔티티 속성 속성유형 식별자구분 비고
제품 제품코드 설계 PK
  제품명 기초  
  기대수요 기초    
  재주문요구 기초    

  2.8 데이터 모델 검증 및 주요성공요소
가. 데이터 모델 검증 방법
데이터 모델 검증은 아래와 같은 범위의 품질기준에 맞추어 검증한다.
? Group Check
Business rule에 의한 완전한 이해와 E-R Modeling에 대한 완전한 이해를 가진 숙련된 분석가가 최선의 답이며, Project 팀 내의 동료끼리 상호 모델을 Check하고 오류를 찾아 본다.
? 사용자(End User) 확인
정기적으로 사용자에게 모델을 제시하면서 확인하거나, 사용자를 참여시켜 Error와 누락된 것을 check한다.
? 업무규칙(Business Rule)
? 엔티티품질 검증
? 속성품질 검증
? 관계품질 검증
? 완전성 검증
사용자 INTERVIEW, 서류양식, 장표, 보고서 등과 비교 점검하여 추가되거나 누락된 것이 없는지를 확인하고, 향후 입력, 출력보고서가 모두 적용될 수 있는지를 점검한다.

나. 주요성공요소
데이터 모델링을 잘하기 위하여 다음과 같은 내용들을 숙지한다.
첫째,
분석단계의 Data Modeling(산출물: Logical ERD)과 설계단계(산출물: Physical ERD)의 구분
? Business Rule이 같기 때문에 분석단계의 ERD(Entity로 표시)와 설계단계의
  ERD(Table로 표시)의 근본구조는 달라지지 않는다.
? 분석단계의 ERD에서 약 20%내외만이 수정이 되어 설계단계의 ERD로 바뀐다.
? 설계단계에서는 성능(Performance)을 고려한 Summary, Duplicate, Processin
  g Table이 만들어진다.
둘째,
엔티티-관계도(ERD) 작성 및 검증요령
? 현재의 장표, 양식, 업무 매뉴얼, 보고서, 사용자인터뷰 내용 등에서 Entity추출
  기준 (정보관리대상, 유일한 키의 존재, 키 이외의 속성 가질 것) 엔티티(Entity)
  를 추출 하여 적어 놓는다.)
? 엔티티 사이의 Business Rule을 분석하여 그들 사이의 관계를 찾는다.
관계유형>
▶ Dynamic flow(업무흐름도에 의존 :주문→생산지시→제품입고 → 출고 →납품)
▶ Static flow(데이터 자체의 관계 : BOM Type, Super-Sub Type)
▶ Transient flow(시간이 가면 변하는 것 : 정산-미정산 분개의 확정 시점)
? 향후 입력화면, 출력보고서가 현재의 ERD에서 추측될 수가 있고 계산하기 편한
  가 등의 기준으로 엔티티-관계도를 검증한다.
세째,
엔티티(Entity, Table)를 분해한 후 합칠 수 있다
? 엔티티-관계도 작성시 핵심엔티티(독립엔티티, 코드엔티티 : kernel Entity)를
  구별함
? Sub-system만 제작한 다음 나중에 통합할 수 있다.
네째,
엔티티-관계도를 제대로 못 그리는 이유 : Business Rule을 제대로 분석하지 못했기 때문
? Business Rule에 숨어있는 Data를 분석해내지 못했고 그들 Data사이의 관계를
  분석하지 못했기 때문
? ER 방법론 미 숙지
? Business Rule해독 90%, ER방법론 숙지 10%
다섯째,
관계형 데이터베이스 모델링은 속성(Attribute)끼리의 Logical Model이다
? 속성(Attribute끼리의 Business Rule → Relationship
? 물리적 의미(Physical meaning) → Relational Key(외부키)의 정의
여섯째,
관계형 데이터베이스는 속성(Attribute)접근 방식이지 Pointer접근방식(COBOL문의 OCCURS, Redefine)이 아님, 즉 같은 TYPE의 속성은 중복되면 안 된다.
일곱째,
엔티티-관계도(ERD)작성시 속성 검출 및 정규화 유의사항
? 속성(Attribute)은 가장 최소로 자른다. (예 : 년월일→년, 월, 일)
? 주키(Primary Key)가 나누어지는 것은 분석이 잘못되었기 때문이다
? 1차, 2차, 3차 정규화를 잘 할 것
여덟째,
다대다(Many to Many)관계가 해소되어야 하는 이유와 해소 방법
? 속성(Attribute)사이에만 관계(Relationship)가 생성하는데, Many to Many는
  관계를 맞출 수가 없다.
? 비교엔티티 (연결엔티티, 교차엔티티)를 집어넣어준다
  : 양쪽의 엔티티(Entity)와 속성(Attribute)이 서로 key나 Data부분의 속성
  (Attribute)으로 들어가기만 하면 된다.
아홉째,
Logical Design(Data중심)과 Physical Design(사용하는 DBMS, System 중심)을 완전히 분리할 것
? Summary Table은 Relationship으로 표시가 불가하다.
(Logical Data Modeling에서는 표시가 안됨)
? Physical개념 : Processing 개념
열째,
엔티티-관계도 (ERD)를 작성시 Top-Down과 Bottom-up을 병행하면서 진행한다. 왜냐하면 Entity의 분할과 Attribute의 상세한 define이 발생하기 때문이다.
열한째,
엔티티-관계도 작성시 선택성(Optionality)을 구분해줄 필요가 있으나 치명적이지 않다.

'삽질로그' 카테고리의 다른 글

나만의 UCC 사이트 구축하기  (0) 2008.12.26
Toad DBA Suite 사용후기 - Toad Data Modeler[TDM] 리뷰  (0) 2008.11.28
자바스크립트로 UI 구현하기  (0) 2008.10.11
검색의 혁명 Search 2.0  (0) 2008.09.24
GDB 사용하기  (0) 2008.04.17
http://www.iabf.or.kr//Lab/share/css/base.css

@charset "euc-kr";
/*
* default definition
*/
body {
margin: 0;
padding: 0;
font-size: 0.75em;
line-height: 1.5em;
/*
font-family: Dotum, "돋움", sans-serif;
*/
font-family: "Malgun Gothic", "Lucida Grande", Tahoma, Verdana, AppleGothic, UnDotum, sans-serif;
}
* html body {
/*
font-size: 12px;
*/
}
form {
margin: 0;
padding: 0;
}
hr {
display: none;
}
p, div, th, td, select, input {
color: #333;
}
a:link, a:visited {
color: #555;
text-decoration: none;
}
a:active, a:hover {
color: #777;
text-decoration: none;
}
img,
input.type-image {
border: 0 none;
}
input.type-text,
textarea {
border: 1px solid #ddd;
background: #fff;
padding: 1px;
}
input.type-text:hover,
input.type-text:focus,
textarea:hover,
textarea:focus,
select:hover,
select:active {
background-color: #ffd;
}
input, select, textarea {
vertical-align: middle;
font-size: 1em;
color: #333;
}
select {
font-size: 11px;
font-family: Dotum, "돋움", sans-serif;
}
span.button,
img.button,
a.button {
cursor: pointer;
vertical-align: middle;
}

간만에 인터넷을 여기저기 들락거리다가
온라인으로 즐기는 무료게임들중에 구미에 맞는걸로 찾았다.
(원래 릴게임,슬롯게임 안가리고 좋아해서 ㅎㅎ)

우선 다양한 정보들을 볼 수 있게
http://cafe.naver.com/3626197 에 가입한다.
(오래전부터 국내 성인게임 유저들의 커뮤니티이다)

요즘 단도용으로 많은 유저분들이 일본한게임을 하고 있다고 한다.

우선 회원등록부터 아래에서 한다.
https://member.hangame.co.jp/registration/index.nhn
(아이디,비밀번호,비밀번호재입력,이메일,이메일확인,가입코드 입력하면 가입된다)

슬롯과 구슬이 자주 이용되니까 한번해보자.

슬롯게임 - http://game.hangame.co.jp/pachislotdx/index.nhn
구슬게임 - http://game.hangame.co.jp/pachinkodx/index.nhn

가입해서 무료머니 받아서 즐기면 된다.

밤새 이것저것 해보면서 그 외의 인기있는 무료 게임사이트들에 가입해서 해봤는데
재미있는곳이 많다.

777타운이라고 아주 인기있는 파친코사이트
http://www.777town.net/
(여기 게임은 실행파일을 다운로드받아서 일본어 환경으로 전환한후에 실행해야 게임이 설치된다.
일본어환경으로 전환은 msapplocale 이라는 프로그램을 다운로드 받아서 설치하면 된다)



무료로즐기는 가멜레온 사이트(예전에 부산에서 해본 해물전 게임이 있다)
http://pachinko.gameleon.jp/index.asp

도저히 모르겟다 하시는 분은 마메게임으로 체리마스터(당구장에 가끔있는 높음낮음 하는게임)를
다운받아서 해보면서 단도하시길...ㅎㅎㅎ
정보시스템 개발 방법론에 따른 산출물 관리 지침

'개발도 하냐?' 카테고리의 다른 글

ERP, ISP, ITA ?  (0) 2008.11.29
iabf 에서 사용하는 기본 css  (0) 2008.11.23
PLT 6 마르미 III 개발 방법론  (0) 2008.10.11
웹표준준수 실무개발 방법론  (0) 2008.10.01
웹표준 준수사항 몇가지  (0) 2008.10.01
PLT 6 마르미 III 개발 방법론
 
개요
최근 인터넷의 폭발적인 성장과 함께 이기종 컴퓨터 사이의 연동 기술의 발전으로 이를 이용한 소프트웨어에 대한 수요가 폭발적으로 증가하고 있다.  이와 같은 변화에 능동적으로 대처하기 위해서는 고품질의 소프트웨어를 적기에 공급할 수 있는 새로운 개발 방법이 필요하다.  컴포넌트 기반 시스템 개발 방법은 위와 같은 품질과 수요에 대한 요구사항을 모두 만족시킬 수 있는 유일한 대안으로 제시되고 있는 새로운 시스템 개발 패러다임이다.
 
한국전자통신연구원은 기존의 정보공학 및 구조적 방법을 기반의 마르미(MaRMI, Magic and Robust Methodology Integrated)와 객체지향 기반의 마르미-II 방법론에 이어, 학계 및 산업계와 협력하여 컴포넌트 기반의 마르미-III 개발 방법론을 개발하였다.  마르미-III는 컴포넌트의 개발 및 컴포넌트 기반의 시스템 개발에 필요한 작업과 작업 수행에 필요한 기법 및 작업별 산출물을 정의하고, 작업에 따른 상세한 개발 절차와 지침을 제공한다.
 
History
 
마르미
마르미-II
마르미-III 버전 1.0
마르미-III 버전 2.0
개발 기간
1994. 10. ~ 1997. 9.
1995. 11. ~ 1998. 10.
1999. 7. ~ 2001. 6.
2001. 7. ~ 2003. 6
지원 방법
구조적 방법, 정보공학
객체지향방법
컴포넌트 기반
컴포넌트 기반
특징
국제표준 수용(ISO12207)
개발공정의 계층화/상세화
산출물의 간소화
UML 기반
반복적/점진적 개발
위험관리
EJB 기반
아키텍처 중심
마르미-II 메타모형 공유
COM+, CORBA 지원
프로젝트/품질관리 지원
사용자 방법론 개발/조정 지원
구성
마르미-D 절차서
마르미-D 기법서
마르미-D 산출물양식집
마르미-D 적용사례집
마르미-P 절차서
마르미-P 기법/산출물
마르미 전자매뉴얼
마르미-II 개요서
마르미-II 절차서
마르미-II 기법서
마르미-II 양식정의서
마르미-II 전자매뉴얼
DEBUT (UML 모형화 도구)
DEBUT 사용자지침서
DEBUT 튜토리얼
마르미-III 개요서
마르미-III 절차서
마르미-III 기법서
마르미-III 양식정의서
마르미-III 적용사례서
마르미-III 개요서
마르미-III 절차서
마르미-III 기법서
마르미-III 양식정의서
마르미-III 적용사례서
 
특징
-         컴포넌트 기반 시스템 개발 지원
-         UML 모형화 표준 사용
-         유스케이스 기반 개발
-         아키텍처 중심
-         반복적, 점진적 개발
-         구체적이고 실용적인 방법론
-         마르미, 마르미-II 와 일관성 유지(방법론 메타모형 공유)
 
구성
마르미-III는 절차서, 기법서, 양식정의서 및 적용사례서로 구성되어 있다.  개발 공정은 컴포넌트 개발 공정과 이미 개발된 컴포넌트를 활용하여 시스템을 개발하는 공정으로 구분할 수 있는데, 마르미-III는 컴포넌트 기반 시스템 개발 공정을 중심으로 컴포넌트 개발 공정을 함께 기술하였다. 개발 절차는 크게 계획단계, 아키텍처단계, 점진적개발단계, 인도단계 4개 단계로 이루어져 있고, 각 단계는 논리적으로 서로 연관된 작업을 하나로 묶은 활동으로 구성되어 있다.  각 작업은 하나 이상의 산출물을 만들어 내며, 이를 위한 상세한 세부 절차가 정의되어 있다.  산출물을 위한 양식은 양식정의서에 정의되어 있다.
 
계획단계
Ø        계획 단계의 작업을 체계적으로 수행하기 위한 구체적인 계획을 수립하여, 이에 대한 의사결정자, 관련자, 사용자에게 추진을 보고한다.
Ø        개발 시스템의 비전, 목표, 범위를 결정한다.
Ø        사용자 요구사항 관련 자료를 수집한다. 경우에 따라서는 시스템의 배경에 대한 명확한 이해를 획득하기 위해 비즈니스 모형을 작성하고 현행시스템을 분석한다.
Ø  유스케이스  개념 모형의 작성을 통해 시스템의 범위를 정의하고 프로토타이핑을 통한 사용자의 검증을 수행한다.작성된 모형을 기반으로 전체 프로젝트의 규모 소요비용 추정하고 타당성 분석을 수행한다.
Ø        시스템을 개발하기 위한 추진 계획 품질보증계획을 수립하여 프로젝트계획서를 작성하고 사용자와 의사결정자에게 승인을 받는다.
 
아키텍처단계
Ø        개발할 시스템에 대한 사용자의 요구사항을 충분히 이해하고 요구사항을 명확히 하기 위해 사용자 요구사항에 대한 분석 작업을 수행한다
Ø        이를 바탕으로 컴포넌트를 식별하여 비즈니스 아키텍처 및 응용 아키텍처를 정의한다.
Ø  아키텍처 프로토타이핑을 통해 실제 구현 가능한지 아키텍처를 검증하고 점진적 개발단계에서 수행을 위한 상세한 개발계획을 수립한다.
 
점진적개발단계
Ø         개발 전체 범위를 미니프로젝트 단위로 분할하고 이를 수행하기 위한  계획을 수립한다.
Ø         해당 미니프로젝트 내에서 구축할 유스케이스를 구현 관점에서 보완한다.
Ø         보완된 유스케이스를 바탕으로 아키텍처를 구현 관점에서 보완한다.
Ø         개발할 컴포넌트의 내부를 구현관점에서 설계한다. 클래스도, 협력도를 중심으로 내부를 설계하며, 필요 시 다른 다이어그램을 활용할 수 있다.
Ø         클래스 및 컴포넌트를 구현하고 데이터베이스, 사용자 인터페이스 등을 설계하고 구축한다.
Ø         아키텍처 단계에서 개발된 사용자지침서 초안을 기반으로 사용자지침서를 개발한다.
Ø         테스트계획서를 바탕으로 통합테스트를 수행하여 각 컴포넌트를 통합할 때와 이전 미니프로젝트에서 개발된 컴포넌트 시스템과 통합할 때 발생할 수 있는 오류를 제거한다.
Ø         각 미니프로젝트에서 유스케이스를 개발하고 나면 사용자의 검토를 받아 요구사항을 만족하는지 확인한다.
Ø         계획된 모든 미니프로젝트를 수행하고 나면 통합된 시스템의 기능성 및 성능이 사용자 요구사항을 만족하는지 확인하기 위한 시스템테스트를  수행하고 본 단계의 수행결과를 평가한다.
 
인도단계
Ø        개발자 환경에서 개발된 결과물을 컴포넌트인 경우에는 컴포넌트 리포지터리에, 컴포넌트 기반 시스템인 경우에는 실제 시스템이 운영될 사용자 환경에 설치한다. 기존에 운영되고 있는 리포지터리나 시스템이 있을 경우 신규 시스템으로 전환하여 원활한 운영이 가능하도록 한다.
Ø        개발된 컴포넌트 또는 시스템에 대하여 최종적으로 사용자 요구사항과의 일치 여부에 대하여 승인을 얻고 프로젝트의 모든 전달물을 사용자에게 전달하고 인계한다.
Ø        단계는 사용자의 업무에 영향을 주게 됨으로 사용자의 적극적인 참여가 필수적이며, 사용자는 인수와 함께 시스템을 운영할 있도록 준비하여야 한다.
 
기대 효과
-         개발조직 내 체계적인 컴포넌트 기반 개발 및 관리 절차 확립
-         사례 예시와 절차 묘사의 단계적 상세화를 통한 이해도 증진에 따라 쉽게 조직에 적용 가능
-         최신 정보기술 동향의 지속적인 반영을 통한 방법론의 유용성 유지
-         지속적인 보급 확산을 통한 국내 소프트웨어 개발업체의 산업 경쟁력 향상

'개발도 하냐?' 카테고리의 다른 글

iabf 에서 사용하는 기본 css  (0) 2008.11.23
산출물관리지침(한국전산원)  (0) 2008.10.11
웹표준준수 실무개발 방법론  (0) 2008.10.01
웹표준 준수사항 몇가지  (0) 2008.10.01
검색결과의 Visualization  (0) 2008.09.24
Jack Slocum란 분이 야후의 yui((Yahoo! UI library)를 확장하여 만든 자바스크립트 라이브러리인데 자주 사용되는 기능들 거의 다 있고 아주 막강합니다. 1.0부터는 이름을 Ext JS로 바꾸고 yui에 의존하지 않고 개발을 진행할 예정인것 같습니다.

단, 아직 개발중이라 변경이 많아서 실무에 적용하기 좀 어려운것 같습니다. 그러나 자바스크립트로 웹UI개발을 하는 개발자분이시면 예제만 보셔도 개발에 많은 도움이 될것 같아서 이렇게 올립니다.

개발자 블로그: http://www.jackslocum.com/

문서와 예제: http://www.yui-ext.com/deploy/yui-ext/docs/

공식 사이트: http://www.extjs.com/ (첫페지만 달랑, 현재 공사중인것 같습니다.^^)

1.0 Alpha 3 - Rev 2 다운로드: http://www.yui-ext.com/deploy/ext-1.0-alpha3.zip

1.0 Alpha 3 - Rev 2 문서: http://www.yui-ext.com/deploy/ext-1.0-alpha3/docs/
 
 

'삽질로그' 카테고리의 다른 글

Toad DBA Suite 사용후기 - Toad Data Modeler[TDM] 리뷰  (0) 2008.11.28
데이터모델링  (0) 2008.11.28
검색의 혁명 Search 2.0  (0) 2008.09.24
GDB 사용하기  (0) 2008.04.17
레베카프로 드라이버-데탑용 웹캠  (0) 2008.01.22

웹표준화와 웹접근성 강화에 대한 이슈가 커지고 있다. 오는 4월 11일(차주 금요일) '장애인 차별금지 및 권리구제를 위한 법률'이 시행되고, MS의 Internet Explorer 8은 그동안 문제가 많았던 CSS 렌더링 엔진을 자사 제품중(IE 5.5, 6, 7) 가장 완성도 있는 표준 지원 엔진으로 바꿔놓았다. 애플은 자사의 'Safari' 웹브라우저를 윈도우용으로 출시하였고, 최근에는 웹표준기술 테스트인 Acid3를 통과했다는 소식을 전했다. 오페라 역시 'Safari'와 같은 날 Acid3를 통과했고, 모바일 시장(휴대폰, PDA 등에 탑재되는 미니 브라우저 시장)에서의 강세를 이어가고 있다.

바야흐로 2008년은 웹표준의 전환점이 될 것으로 보인다. 그동안 은비까비가 들려주는 옛날 옛적 이야기쯤으로 치부하던 웹 실무자들도 조금씩 관심을 보이기 시작했고, 해야겠다는 생각을 하기 시작했다. 며칠전 사내 웹표준 세미나 이후 계획되어 있던 프로젝트가 곧바로 웹표준 개발로 전환되는 쾌거(!)를 이룬 것이다. 적어도 두시간 가까이 목말라가며 떠들었던 작은 수고가 헛되지만은 않았던 것일까.

그런데 바로 고민거리가 생겼다. 해야한다고 이연사 목청 높여~ 외쳤으나 정작 'How?'에 대한 해답을 확실히 주지 못한것이다. 세미나 직후 웹표준 개발로 선회한 프로젝트를 담당하신 기획자분이 내게 왔고, 어떻게 해요... 라고 물으시는데 참 미안해지더라. 지금까지는 웹표준을 위해서 웹퍼블리셔들이나 개발자들이 표준기술을 익혀왔고, 디자이너나 플래셔들에게는 접근성에 대한 이해를 구해왔었다. 하지만 사실 기획자를 통한 개발 프로세스의 적절성 논의에서부터 필요하다면 새로운 개발 프로세스가 필요하지 않을까 하는 생각을 하게 되었다.


한국소프트웨어진흥원에서 발표한  '실전 웹 표준 가이드(2005)'에 보면 마지막 챕터에 표준 개발 프로세스를 자세히 설명하고 있는데 이를 먼저 소개해보고, 김철수님의 웹 표준 개발 후기를 통한 문제점과 개선점 등을 고민해 보겠다.

실전 웹 표준 가이드의 '실전 표준 개발 프로세스'

기존 웹 개발 프로세스는 일반적으로 Waterfall 방식이라고 불리우는 선형적이고 밀어내기식의 프로세르를 따르고 있다.

사용자 삽입 이미지

실전 웹 표준 가이드 p183

쉽게 말해 '기획 → 시안 스토리보드 → 디자인 → 코딩 → 프로그래밍/디버깅'으로 이어지는 방식인데 전문적인 지식이 없더라도, 또는 프로젝트가 진행중인 새로운 인력이 투입이 되더라도 별도의 교육이 필요하지 않는 비교적 쉽고 단순한 방법이다. 때문에 웹개발 초기부터 도입이 쉬웠고 아직까지도 크게 변하지 않고 적용되고 있다.

방법의 문제는 ① 업무의 병목현상 ② 의존적 스토리보드 ③ HTML문서구조화의 어려움 개별 역활 중심의 프로세스를 통한 업무 과중을 들 수 있습니다.

  1. 업무의 병목현상
    Waterfall 방식은 선행 프로세스가 지연될 경우 전체 프로세스의 지연으로 이어진다. 즉, 기획이 늦어지면 디자인과 코딩, 개발이 차례로 늦어지는 문제가 생긴다. 코딩까지 완료된 시점에서 기획이나 디자인이 변경되면 재코딩이 이루어지는 것도 병목현상에 한 몫 하게 된다. 아울러 프로세스상 뒤에 위치한 코딩이나 개발 인력의 프로젝트의 초기 참여율이 낮고, 둘 이상의 프로젝트에 참여하게 되면서 집중도를 낮춰 전체적인 생산성을 떨어뜨리는 경우가 생긴다.
  2. 의존적 스토리보드
    스토리보드는 웹개발의 시작이고, 밑그림입니다. 그만큼 중요하죠. 문제는 디자이너나 개발자들이 지나치게 스토리보드에 의존적이라는 것입니다.
  3. “스토리보드에는 그에 대한 지시사항이 없는 걸요” - 아주 기본적인 에러확인 로직을
    스토리보드에 없다는 이유만으로 개발하지 않은 프로그래머의 반문
    “저는 스토리보드에 그려진 대로 그린 것 뿐인데요...” – 디자인이 참신하지 못하다는
    지적을 받은 디자이너의 변명
    “어째서 스토리보드에 있는 그대로 하지 않았지?” – 발전적 창의성을 적용한
    프로그래머/디자이너를 인정하지 않는 기획자의 질책

    위의 예는 의존적 스토리보드의 문제점을 제대로 보여주고 있죠. 이로 인해서 기획자는 스토리보드를 수백장씩 상세하게 기술해야만 하는 업무적 과중을 느끼게 됩니다. 웹디자이너에게는 스토리보드를 그대로 Photoshop에 그려내는 '오퍼레이터'와 같은 수동적인 자세를 가지는 것도 문제가 됩니다. 또한, 전체 프로세스를 한 눈에 보여주지 못한 수백장의 스토리보드는 개발자에게 별로 도움이 되지 못합니다.

  4. HTML문서 구조화의 어려움
    HTML문서를 코딩하는 일은 관례적으로 웹디자이너의 역활로 지정되어 온 경우가 많습니다. 규모가 커지고, 웹디자이너의 부담을 줄이기 위해서 'HTML코더'라고 불리우는 직군이 생겼지만 상대적으로 낮은 대우와 평가를 받아왔습니다. 때문에 웹디자이너가 코딩을 하든, 웹개발자가 하든, 별도의 코더가 하든 HTML문서가 제대로 '구조화'되지 못하는 문제가 생기게 된 것입니다.

  5. 개별 역활 중심의 프로세스를 통한 업무 과중
    기획자나 디자이너, 개발중 어느 한 직군(역활)을 중심으로 프로세스를 개선하거나 정리할 수 있습니다.
    기획자 중심의 프로세스는
    사용자 삽입 이미지

    실전 웹 표준 가이드 p191

     
    이 될 것이고, 디자이너 중심의 프로세스는
    사용자 삽입 이미지

    실전 웹 표준 가이드 p189


    이 됩니다. 프로그래머 중심의 프로세스 역시
    사용자 삽입 이미지

    실전 웹 표준 가이드 p190


    의 절차를 갖게 됩니다. 어느경우라도 XHTML 구조화(마크업)와 CSS 디자인이라는 표준 기술 영역을 포함해야 하기 때문에 업무 과중이 문제가 됩니다. 특히 과거처럼 웹디자이너에게 마크업과 CSS디자인을 맡기게 되면, 시각적인 디자인과 논리적인 디자인의 차이로 인해 오히려 좋지 않은 영향을 끼칠 수 있을 것입니다.

웹 표준 가이드에서는 위와 같은 기존 프로세스의 문제점을 지적하고 '웹퍼블리셔 중심의 개선된 모델'을 제안하고 있습니다.

사용자 삽입 이미지

실전 웹 표준 가이드 p193


보기엔 상당히 복잡해 보이지만 단순히 HTML 코딩만을 위해서 'HTML 코더'를 두었던 것과 달리 웹 표준 기술에 대한 전문성을 가진 '웹퍼블리셔'라는 직군을 포함시키면서 기획자나 디자이너, 개발자가 가질 업무의 과중을 덜어냄과 동시에 전체 프로세스의 효율성을 높이고 있다고 볼 수 있습니다.

이제 여기서 실제로 위의 프로세스를 실무에 적용했던 김철수님의 후기살펴보겠습니다.

김철수님의 'Storyboard - 표준 스토리보드 구상기'

김철수님은 웹 2.0 에 따른 Ajax 사용등을 고려하면서 새로운 스토리보드의 필요성을 느끼셨다 합니다. 그리고 앞서 소개해 드린 '실천 표준 가이드'의 '웹퍼블리셔 중심의 개발 프로세스'를 받아들여 프로젝트에 적용하는 노력을 주셨습니다. 특히 김철수님은 웹퍼블리셔에게 XHTML, CSS, JS와 같은 웹 표준 기술의 전문성과 더불어 프로젝트의 실무적인 조율 능력이 필요함을 지적하고 있습니다. 그리고 다음은 김철수님께서 실제로 적용한 방법이다.

방법은 이러했다. 우선 전체가 모여 프로세스 플로우를 짜기 시작했다. 이때 사실상 전반적인 기획과 분석과 설계가 같이 진행되어서 대략 2개월 정도가 걸렸다. 다음에는 컨텐츠 명세서를 간단히 작성하고 곧바로 퍼블리셔를 임명하여 HTML 코딩 작업에 들어갔다. 그 산출로 나온 CSS를 디자이너가 실시간으로 확인하면서 디자인 작업을 했고, 개발자는 DB 개발과 서버 프로그램 개발을 진행했다.

그리고 다음과 같은 문제점들을 나열했습니다.

첫째, 전체가 모여 프로세스 플로우를 맞추는 것이 매우 힘든 일이었다.

둘째, 컨텐츠 명세서를 작성하는 것이 쉽지 않았다.

셋째, 퍼블리셔의 작업을 충분히 해낼 사람이 없었다.

넷째, CSS를 잘 다루는 디자이너가 없었다.

아무래도 새로운 프로세스를 직군별로 설득하고 이해시키는 일이 쉽지 않았을 것이며, 새롭게 등장한 컨텐츠 명세서를 어떻게 해야하는지 기준도 없는 상태에서 진행하기란 쉽지 않았을 것이다. 그리고 웹 표준 기술을 제대로 숙지하고 적용할 수 있는 전문적인 웹퍼블리셔의 부재는 어제 오늘의 문제가 아니고, CSS 디자인과 같은 웹 표준 기술이 요구되는 작업을 디자이너가 하기에는 무리가 있었을 것이다. 이러한 문제가 있었지만 김철수님은 나름의 노하우를 익히셨고 다음과 같이 공개해 주셨다.

하나, 사이트맵 대신 모듈맵을 만든다.

둘, 모듈 단위로 HTML을 작성한다.

셋, 최종사용자의 UX를 먼저 확정한 뒤 서버 프로그램을 시작한다.

넷, 텍스트 기반으로 먼저 만들고 나중에 세세한 디자인 요소를 삽입한다.

다섯, 위키 방식으로 모두가 개발 소스에 접근하여 수정할 수 있도록 한다.

자세한 설명은 김철수님 블로그에서 직접 확인해 볼 수 있는데, 간단히 코멘트를 하자면 전체 프로세스를 모듈화 하는 것이 중요해 보인다. 과거처럼 거대한 프로젝트를 수백장의 스토리보드에 다 담아 내는 것이 아니라, 기능별로 모듈화된 페이지를 고려하고, 그에 맞는 명세서나 차트를 만들어 개발자와 디자이너에게 전달한다. 그리고 텍스트 기반(XHTML 마크업)의 프로토탑입 설계를 함께 진행하여 디자인 이후에 있을 오류를 최소회 시켜야 한다. 또한, 개발 팀원간의 소통을 위한 도구로 '위키(wiki, 누구나 접근하여 쓰고, 지우고, 수정할 수 있는 시스템)'를 제안하고 있다. 제 의견으로는 'Trac' 의 사용을 추천해 드립니다.'Trac'는 '위키'시스템과 '포럼' 형태를 모두 가지고 있고, 버전관리와 연동이 되기 때문에 프로젝트 게시판으로 사용하기 좋은것 같습니다.


개량형 '웹퍼블리셔 중심의 웹 표준 개발 프로세스'


위 표는 '실전 웹 표준 가이드'와 김철수님의 후기를 읽은 뒤에 살짝 고민을 덧붙여 변형을 가해 본 것이다. 가이드에서도 밝혔고, 나 역시 미리 밝혀두는 것이지만 이러한 웹 표준 프로세스라는 것이 아직은 정형화 되어 있지 못하고, 객관적인 장단점이 불분명한 상태이다. 따라서 프로젝트의 성공 여부를 보장해주지 못한다. 다만, 웹 표준을 준수하는 웹 개발을 할라치면 이러한 고민과 적용이 필요하지 않을까 해서 시작된 것이고, 이렇게 나의 의견까지 덧붙이게 된 것이다.

'개량형'이라고는 했지만 '실전 웹 표준 가이드'에서 소개하는 내용과 크게 다르지는 않다. 용어가 일부 변경('코딩' 보다는 '마크업'이라는 용어로, 일부는 김철수님의이 제안하신 것)되었고, 프로세스가 약간은 더 복잡해졌다고 볼 수 있다. (없던 화살표가 생겼다!) 풀어서 서술하자면 다음과 같다.

  • 기획자 : 기획자는 '실전 웹 표준 가이드'에서 제안하는 것과 같이 기획문서를 '프로세스 플로우'와 '컨텐츠 상세화'로 구분하여 작성한다. 차이가 있다면 '프로세스 플로우'와 함께 게시판이나 회원가입/로그인과 같이 모듈화가 가능한 것들에 대한 모듈 명세서 또는 모듈 맵이 함께 작성된다. 그리고 이것은 개발자에게 전달되어 프로젝트 전반에 대한 설계와 프레임 개별 모듈에 대한 설계를 할 수 있도록 한다.
  • 디자이너 : 디자이너는 기획/분석 단계에서 만들어진 아이디어를 통해 시안과 스타일 가이드(문서 또는 준하는 이미지 파일)를 만듭니다. 그리고 기획자의 컨텐츠 상세화 문서(기존의 스토리보드로 생각하면 쉬울것 같다)를 받아 화면 디자인을 시작한다. 여기서 완성된 스토리보드를 가지고 시안을 만들지 않는다는 것은 중요합니다. '실전 웹표준 가이드'나 김철수님이 지적했듯이 상세한 스토리보드는 디자이너의 창의력을 둘러싸는 장벽이 될 위험요소가 있습니다. 때문에 기획/분석 단계에서 나온 아이디어나 컨셉 등 필요한 만큼의 적은 정보만으로 시안을 잡아 디자이너로 하여금 충분히 창의력을 발휘할 수 있도록 해야 합니다.
  • 개발자 : 개발자는 기획/분석 단계에서 나온 아이디어와 컨셉을 통해 기술적 이슈(HTML문서의 DTD, 인코딩, 폼 영역의 ID값 등)에 대한 개발 가이드를 작성하여 퍼블리셔에게 전달합니다. 그리고 기획자로부터 '프로세스 플로우'와 '모듈 맵'을 전달받아 시스템 설계와 모듈 단위의 개발 준비를 시작합니다. 이후 퍼블리셔로부터 마크업이 완료된 XHTML문서를 받아 프로그래밍과 디버깅 작업을 진행합니다.
  • 퍼블리셔 : 퍼블리셔는 기획자로부터 '컨텐츠 상세화 문서' 또는 '페이지 명세서'를 받아 XHTML 마크업을 시작합니다. 이때 개발자로부터 받은 '개발 가이드'를 바탕으로 XHTML 문서의 Doctype 설정, 인코딩 설정, 공통  ID값 등을 결정하거나 적절치 않을시 재논의하여 적용하도록 합니다.(한 번 결정된 Doctype이나 인코딩은 개발 과정에 쉽게 바꾸기가 어려우므로 반드시 확실히 결정을 하고 넘어가도록 합니다.) XHTML 마크업이 완료되면 개발자에게 전달하여 프로그래밍이 진행될 수 있도록 합니다. 이후 디자이너로부터 받은 '스타일 가이드'와 '화면 디자인(PSD 파일)'을 통해 XHTML 문서에 CSS 디자인을 시작합니다. 다음으로 개발자와 소통하며 완료된 페이지를 '퍼블리싱'하면서 CSS 오류 등을 잡아내는 '디버깅' 작업을 진행합니다. 마지막으로 기획자와 함께 '표준화 준수 확인'작업을 하게 되는데 '실전 웹 표준 가이드'에서는 이를 퍼블리셔의 역활로 두었으나 제 경험상 '내가 작업한 것을 내가 테스트 하는 것은 실효성이 적다'였습니다. 다시말해 내 실수를 내가 찾아내는게 쉽지 않았다라는 겁니다. 프로세스대로 디자이너와 개발자가 표준에 맞춘 일정을 따라주었다면 최종적으로 퍼블리셔의 웹 표준 기술(XHTML, CSS, DOM, JS 등)에 의한 크로스 브라우징과 접근성 문제 등이 주요 이슈로 나타날 수 있는데 이를 퍼블리셔 스스로 검증하기란 쉽지 않습니다. 따라서 애초에 기획자에게 책임을 지우는 것이 좋다는 생각을 해봤습니다. 그리고 단계적으로는 최종 단계이긴 하나 기획자는 프로젝트가 진행되는 가운데 지속적으로 디자이너와 개발자, 퍼블리셔가 표준을 준수하고 있는지를 검증해야 합니다.

특별히 부연 설명을 드리고 싶은 것은 위 표에서도 나타나 있듯이 양쪽화살표로 되어 있는 굵은 선 프로세스들입니다. 퍼블리셔를 중심으로 기획자와 퍼블리셔, 디자이너와 퍼블리셔, 개발와 퍼블리셔가 지속적으로 커뮤니케이션을 이루도록 되어 있습니다. 또 한가지 기획자와 퍼블리셔가 같은 색 영역으로 묶여 있음을 보실 수 있습니다.

김철수님도 쓰셨듯이 웹 표준 개발 프로세스에서 기획자와 퍼블리셔의 협력은 굉장히 중요해 보입니다. 1차적으로 과거의 스토리보드가 세부화된 개별 문서와 XHTML 문서로 만들어집니다. 이렇게 만들어진 XHTML문서는 디자인이 입혀지기 전에 1차적으로 프로세스 테스팅을 가질 수 있다는 장점이 있습니다. 일종의 프로토타입을 만드는 것입니다. 버튼이 빠져 있거나 페이지가 잘못 연결되어 있거나 추가되는 페이지등을 사전에 고려하여 디자인 이후에 생길 수 있는 추가 작업을 줄일 수 있습니다.

디자이너가 CSS를 다루지 않는 것도 김철수님의 경우와 다릅니다. HTML이나 CSS도 모르면서 웹을 어떻게 하냐는 소리를 하곤 했지만 사실 웹디자이너에게 전문적인 수준의 XHTML과 CSS를 강요할수만은 없다고 생각합니다. (현실적으로 불가능에 가깝습니다.) 때문에 CSS 디자인 역시 퍼블리셔의 영역 안에서 해결해야 한다고 생각합니다. 실제로도 대부분의 퍼블리셔들이 시멘틱한 마크업과 CSS 작성은 자신들의 영역이라고 생각하면서 공부하고 있습니다.

아울러 개발자들이 텍스트로만 이루어진 XHTML 문서를 통한 개발에 적응할 수 있어야 한다고 봅니다. 개발 영역에서는 MVC모델이라는 것이 확실히 자리잡고 있지만 아직도 많은 경우에 XHTML문서 내에 직접 프로그래밍을 입히는 경우가 많습니다. 이 경우 XHTML문서와 서버측 스크립트 언어, CSS 등이 뒤섞여 유지보수가 매우 어려워질 수 있고, 위의 개발 프로세스도 적용하기 힘들 수 있습니다.

저는 가능하면 현재의 프로세스(Waterfall) 에서 크게 변형을 가하고 싶지는 않았습니다. 갑작스러운 변화는 오히려 효율성 측면에서 마이너스 효과를 가져올 수 있기 때문입니다. 따라서 위 표를 보면 초록색 프로세스를 중심으로 기획자는 기획문서를 만들어서 개발자와 디자이너에게 주고, 디자이너는 퍼블리셔에게 PSD를 주고, 퍼블리셔는 마크업이 완료된 XHTML문서를 건네게끔 되어 있습니다. 이는 기존의 프로세스와 크게 다르지 않습니다. 그러면서도 상호간의 커뮤니티를 강조하고 있고, 전문적인 웹퍼블리셔의 인력 확보에 포커스를 두고자 합니다.(이 부분은 구인이든 교육이든 사내에서 해결을 해야할 것으로 보임) 따라서 디자이너가 어렵게 CSS를 다루지 않아도 되고, 개발자 역시 초기 단계에서 문제가 될 만한 것들을 퍼블리셔와 미리 확실하게 집고 넘어가는 과정을 필수적으로 포함시킴으로써 개발 후에 생길 문제를 최소화 하는데 신경을 썼습니다.

지금까지 웹 표준화 프로젝트를 위한 '웹 표준 개발 프로세스'를 고민해 보았습니다. '실전 웹 표준 가이드'의 제안과 김철수님의 '표준 스토리보드 구상기'는 이미 충분히 좋은 자료가 되고 있습니다. 여기에 저의 부족한 경험과 고민을 덧붙여 약간 변형된 모습까지를 보여드렸습니다. 이미 더 좋은 방법으로 프로젝트를 진행하고 계실 분들도 계실 것이고, 더 나은 생각을 가지신 분들도 계실텐데 저에게 지적과 함께 좋은 의견을 주셨으면 감사하겠습니다.

'개발도 하냐?' 카테고리의 다른 글

산출물관리지침(한국전산원)  (0) 2008.10.11
PLT 6 마르미 III 개발 방법론  (0) 2008.10.11
웹표준 준수사항 몇가지  (0) 2008.10.01
검색결과의 Visualization  (0) 2008.09.24
FLEX  (0) 2008.09.22

+ Recent posts