• 검색 결과가 없습니다.

웹 기반 컨텐츠 관리 시스템의 설계 및 구현에 관한 연구

N/A
N/A
Protected

Academic year: 2021

Share "웹 기반 컨텐츠 관리 시스템의 설계 및 구현에 관한 연구"

Copied!
92
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

碩士學位論文

웹 기반 컨텐츠 관리 시스템의 설계 및 구현에 관한 연구

(A Design and Implementation of Web-based Content Management System)

國民大學校 大學院 情報管理學科 宋 基 興

2 0 0 2

(2)

웹 기반 컨텐츠 관리 시스템의 설계 및 구현에 관한 연구

(A Design and Implementation of Web-based Content Management System)

지도교수 이 춘 열

이 論文을 碩士學位 請求論文으로 提出함

2002 年 12 月 日

國民大學校 大學院

情報管理學科

宋 基 興

2 0 0 2

(3)

宋 基 興의

碩士學位 請求論文을 認准함

2002 年 12 月 日

審査委員長 이 국 철 印 審 査 委 員 이 춘 열 印 審 査 委 員 안 성 만 印

國民大學校 大學院

(4)

<제목 차례>

제 1 장 서론 ··· 1

제 1 절 연구의 배경 및 목적 ··· 1

1. 기업 정보화 변화 ··· 1

2. 비용을 고려한 인터넷 환경 ··· 1

3. 낮은 도입 비용과 운영비용을 위한 시스템 ··· 2

제 2 절 연구의 범위 및 방법 ··· 2

제 2 장 웹 기반 컨텐츠 관리시스템의 모형 ··· 2

제 1 절 웹 기반 컨텐츠 관리 시스템의 정의 ··· 3

1. 웹 컨텐츠의 정의 ··· 3

2. 웹 컨텐츠의 분류 ··· 4

3. 웹 컨텐츠의 생명주기 ··· 7

4. 웹 컨텐츠 관리 시스템의 정의 ··· 8

제 2 절 웹 기반 컨텐츠 관리 시스템의 필요성 ··· 10

제 3 절 웹 기반 컨텐츠 관리 시스템의 평가 기준 ··· 12

1. 평가의 필요성 ··· 12

2. 평가 기준의 선정 ··· 12

3. 평가 기준의 마련 ··· 13

제 4 절 웹 기반 컨텐츠 관리 시스템의 구현을 위한 기술 ··· 17

1. Java ··· 17

2. Java Platform ··· 18

3. Java 2 Enterprise Edition ··· 20

제 3 장 웹 기반 컨텐츠 관리 시스템 설계 및 구현 ··· 28

제 1 절 설계의 기본 방향 ··· 28

1. 웹 기반 컨텐츠 관리 시스템의 대상 컨텐츠 정의 ··· 28

제 2 절 요구 기능 정의 ··· 31

1. 컨텐츠 관리 ··· 31

2. 컨텐츠 표현 모듈 ··· 34

(5)

제 3 절 개발 환경 ··· 36

1 하드웨어 환경 ··· 36

2 소프트웨어 환경 ··· 36

제 4 절 컨텐츠 관리 시스템 설계 ··· 37

1. 전체 구성 ··· 37

2. 컨텐츠 관리 시스템의 프로세스 ··· 40

제 4 장 웹 기반 컨텐츠 관리 시스템 구현 ··· 51

제 1 절 웹 기반 컨텐츠 관리 시스템 구현 ··· 51

1. 텍스트 및 이미지 컨텐츠 입력 구현 ··· 51

2. 텍스트 및 이미지 컨텐츠 출력 구현 ··· 54

3. 데이터베이스형 컨텐츠 입력 구현 ··· 55

4. 데이터베이스형 컨텐츠 출력화면 구현 ··· 56

제 5 장 결론 및 향후 연구 방향 ··· 58

부록 A. 소스 코드 ··· 61

A1 Model 코드 ··· 62

A2. Servlet ··· 63

A3. Controller 코드 ··· 68

A4. JSP 코드 ··· 77

A5. Util Class 코드 ··· 84

(6)

<표 차례>

<표 1> 웹 컨텐츠의 분류 ··· 6

<표 2-1> 웹 컨텐츠의 분류 ··· 30

<표 2-2> 웹 컨텐츠 모듈의 분류 ··· 31

<표 3-1> 하드웨어 사양 ··· 36

<표 3-2> 소프트웨어 환경 ··· 37

<그림 차례> <그림 2-1> 컨텐츠의 발전 형태 ··· 4

<그림 2-2> EIP의 개념적 구성 요소 ··· 5

<그림 2-3> 컨텐츠 생명주기에 따른 CMS 모델 정의 ··· 9

<그림 2-4> 컨텐츠 관리 시스템의 요구 기능 ··· 13

<그림 2-5> Java의 구조 ··· 18

<그림 2-6> Java 2 Platform ··· 19

<그림 2-7> J2EE Standard Enterprise Services ··· 20

<그림 2-8> J2EE Enterprise Application Model ··· 21

<그림 2-9> EJB 호출 메커니즘 ··· 22

<그림 2-10> Servlet 작동 경로 ··· 23

<그림 2-11> Servlet Programming ··· 24

<그림 2-12> JSP Life cycle ··· 25

<그림 2-13> JSP With JavaBeans ··· 26

<그림 3-1> 텍스트 및 이미지 컨텐츠 표현 모듈 ··· 35

<그림 3-2> 데이터베이스 필드 컨텐츠 표현 모듈 ··· 35

<그림 3-3> 웹 기반 컨텐츠 관리 시스템의 전체 구성도 ··· 37

<그림 3-4> 텍스트 및 이미지 컨텐츠 관리 모듈 구성도 ··· 38

<그림 3-5> 데이터베이스형 컨텐츠 관리 모듈 구성도 ··· 39

<그림 3-6> 화면 표현 모듈 구성도 ··· 40

<그림 3-7> 전체 프로세스 구조 ··· 41

<그림 3-8> 텍스트 및 이미지 컨텐츠 추가 프로세스 ··· 42

(7)

<그림 3-9> 데이터 변화 관점의 내부 프로세스 ··· 42

<그림 3-10> 모델화 데이터 클래스 ··· 43

<그림 3-11> 텍스트 및 이미지 컨텐츠 수정 프로세스 ··· 44

<그림 3-12> 텍스트 및 이미지 컨텐츠 삭제 프로세스 ··· 45

<그림 3-13> 이미지 관리 프로세스 ··· 45

<그림 3-14> 테이블 생성 프로세스 ··· 46

<그림 3-15> 테이블 삭제 프로세스 ··· 47

<그림 3-16> 컨텐츠 입력 프로세스 ··· 48

<그림 3-17> 컨텐츠 수정 프로세스 ··· 49

<그림 3-18> 컨텐츠 삭제 프로세스 ··· 49

<그림 4-1> 텍스트 및 이미지 컨텐츠 목록 ··· 51

<그림 4-2> 위지윅(WYSWYG) 기능의 텍스트 컨텐츠 에디터 ··· 52

<그림 4-3> 위지윅(WYSWYG) 방식과 HTML 소스 방식의 편집 화면 ··· 52

<그림 4-4> 본문에 이미지 입력 ··· 53

<그림 4-5> 이미지 신규 등록 ··· 54

<그림 4-6> 텍스트 및 이미지 컨텐츠 출력 화면 ··· 54

<그림 4-7> 데이터베이스형 컨텐츠 제작 폼 ··· 55

<그림 4-8> 테이블에 데이터 입력하는 폼 ··· 56

<그림 4-9> 개별 테이블의 컨텐츠 목록 ··· 57

<그림 4-10> 기본 뷰와 상세 뷰 ··· 57

(8)

제 1 장 서론

제 1 절 연구의 배경 및 목적

1. 기업 정보화 변화

기업에 있어 정보화는 거스를 수 없는 대세로 인식되고 있다. “정보화 없이 조직에 손대는 기업은 살아남을 수 없다”1)는 유명한 명제처럼 기업이 고비용 저 효율 구조를 타파하는 새로운 경영전략 패러다임을 설계하는데 있어 기업 정보화는 필수 불가결한 요소가 되었다.

특히 인터넷 인프라가 발전하면서 기업의 정보화 역시 인터넷 환경으로 급격 히 변화되는 추세이고 인터넷을 통한 다양한 정보가 소통되고 공유되고 있다.

또한 기업의 입장에서는 신속한 정보의 유통이 정보화 경쟁력의 중요한 성공 요인으로 인식되고 있으며 이를 위해 다양한 컨텐츠 관리 솔루션을 도입하고 있다.

2. 비용을 고려한 인터넷 환경

기업에게 있어 정보화는 시장 경쟁을 승리로 이끌기 위한 중요한 경쟁 무기이 다. 따라서 많은 기업에서는 앞 다투어 정보화에 대한 투자를 진행하고 있다.

그러나 중소기업의 입장에서 이러한 정보화 투자는 경영진의 의지가 있음에도 불구하고 정보화를 위한 투자 재원 및 인력의 측면에서 많은 어려움이 존재한 다.

1)Alvin Toffler, [The Third Wave], 1980

(9)

특히 인터넷을 통한 고객 및 협력업체와의 의사소통이 강조되는 현재의 경영 환경에서는 정보화 투자를 미룰 수 없는 상황이다. 이러한 중소기업의 어려움 을 해결하기 위해 국가 차원에서 중소기업 정보화 자금 및 제도를 시행 중이 나 비싼 도입비용과 유지비용은 중소기업에게는 부담으로 작용한다.

3. 낮은 도입 비용과 운영비용을 위한 시스템

본 논문에서는 이러한 문제를 해결하기 위해 인터넷 컨텐츠를 관리하는데 있 어 비전문 관리자의 운영이 가능하고 낮은 도입비용을 갖는 컨텐츠 관리시스 템으로 웹기반 컨텐츠 관리 시스템을 제시하고 구현하는 것을 목표로 한다.

제 2 절 연구의 범위 및 방법

본 연구에서는 웹상에서 자동화 방법으로 관리 가능한 컨텐츠를 분류 하고, 컨텐츠를 효과적으로 관리할 수 있는 기술로 Java/Servlet/JavaBeans를 이용 한 컨텐츠 관리 시스템을 설계하고 구현하고자 한다. 이를 위해 컨텐츠 관리 시스템의 정의를 살펴보고 웹상에서 관리 가능한 컨텐츠를 분류하고 정의한 다. 분류하고 정의한 컨텐츠를 효과적으로 관리 할 수 있는 기술 기반에 대해 검토한다. 검토된 기술 기반을 통해 웹기반 컨텐츠 관리 시스템을 설계하고 구현한다.

본 논문의 구성은 2장에서 컨텐츠 관리 시스템을 고찰하여 컨텐츠 관리 시스 템의 정의를 세우고 필요 기반 기술에 대해 고찰하며, 3장에서는 웹 기반 컨 텐츠 관리 시스템을 연구 목적에 부합하게 설계 한다. 4장에서는 설계된 컨텐 츠 관리 시스템을 구현 하며 5장에서는 구현된 컨텐츠 관리 시스템을 바탕으 로 결론 및 향후 연구 과제에 대해 설명한다.

(10)

제 2 장 웹 기반 컨텐츠 관리시스템의 모형

제 1 절 웹 기반 컨텐츠 관리 시스템의 정의

1. 웹 컨텐츠의 정의

컨텐츠(content)의 사전적 의미는 사물(事物)의 요지(要旨), 혹은 만족시키다, 즐겁게 하다를 뜻한다. 즉 컨텐츠는 사물의 본질적 형상을 표현하며 수요자를 만족시키는 것이라고 할 수 있다. 이런 의미에서 전통적인 컨텐츠는 출판, 음 악, 영화, 방송 등의 미디어를 칭할 수 있다.

반면 인터넷 시대에서는 전통적인 컨텐츠의 개념과 다른 ‘디지털’ 개념을 접 목시킨 ‘디지털컨텐츠’로 새롭게 정의하고 있다.

디지털컨텐츠란 0과 1이라는 숫자를 이용해서 처리한 정보의 내용으로서 그 유형은 문자, 소리, 화상, 영상 등 컴퓨터에서 자유롭게 통합되는 멀티미디어 데이터를 의미한다.(이성식, 2001)

즉, 컴퓨터를 통해 편집, 저장, 유통이 가능한 데이터의 총칭으로서 기존의 컨 텐츠에서 정의된 유형 이외에 게임, 정보서비스, 데이터베이스 등까지 포괄하 는 광범위한 개념이 되었다.

네트워크 인프라가 발달함에 따라 이러한 디지털컨텐츠의 유통이 손쉽게 이루 어지고 있으며 많은 웹 사이트에서 인터넷 초기의 텍스트 위주의 구성에서 비 교적 대용량인 이미지 및 동영상 서비스를 실시하고 있다.

(11)

<그림 2-1> 컨텐츠의 발전 형태

Paper

Analog Audio Analog Video

Digital Paper

Fax

Electronic Document

Digital Audio

Digital Video Brilliant

출처 : 주현택(2001), “컨텐츠 관리를 위한 그 시각과 방법,” 삼성 SDS IT Review, 삼성 SDS

웹 컨텐츠는 이러한 디지털컨텐츠 중 인터넷 웹 사이트를 통해 접근이 가능한 컨텐츠로 정의할 수 있다.

본 연구에서는 웹상에서 제작 및 배포되는 정보의 총칭으로 웹 컨텐츠를 정의 한다.

2. 웹 컨텐츠의 분류

멀티미디어 데이터는 존재 방식에 따라 구조적 데이터(Structured Data) 와 비구조적 데이터(Unstructured Data)로 나눌 수 있다..(Shailakes & Tylman, 1998)

구조적 데이터는 ERP등의 어플리케이션을 통해 생성되며 데이터베이스 형태 로 저장되는 정보를 의미하며 비구조적 데이터는 웹 문서, 도큐먼트, 뉴스 게 시판, 레포트 등 미리 정의된 절차나 프로세스 어플리케이션에 의해 생성된 것이 아닌 데이터들을 의미한다.

(12)

<그림 2-2> EIP의 개념적 구성 요소

TS UR CT UR DE

DA TA

UN TS UR CT UR DE

DA TA

E T L

ME TA DA TA TS

UR CT UR DE

DA TA TS UR CT UR DE

DA TA

NE TE RP RI SE NI OF MR AT OI N OP RT AL Web

pages

World processing documents

Manuals, contracts

Multimedia files

Data Information Knowledgement

News bulletins Groupware

files E-mail Graphic

design News

bulletins Reports Brochures

Competitive Information

On-the-job experience

ME TA DA TA Applications Database WarehouseData

Extraction, transformation and load

출처 : Shailakes, C. C and Tylman, J.,(1998) "Enterprise Information Portals", New York : Merril Lynchm

위와 같은 데이터 분류를 확장해 웹 컨텐츠에 적용하면 구조적 형태의 컨텐츠 는 ERP나 주문처리 시스템과 같은 사내 백엔드(back-end) 어플리케이션에서 생성된 컨텐츠를 의미하며 비구조적 컨텐츠는 웹페이지, 이미지, 동영상, 문 서, 웹게시판 등의 컨텐츠로 나눌 수 있다.

그러나 이러한 컨텐츠 분류는 각각의 형태의 컨텐츠를 제작하는데 있어 각각

(13)

에 맞는 어플리케이션을 필요로 하며 결국 시스템 개발 및 도입에 있어 많은 비용을 발생시킨다. 또한, 도입하는 입장에서 이러한 비용의 증가는 시스템 도입의 부정으로 나타날 수 있다.

따라서 본 연구에서는 위와 같은 분류를 참고하여 새로운 웹 컨텐츠 분류 기 준을 마련하였다. 새로운 분류 기준은 웹 컨텐츠를 표현형태 및 저장형태로 분류하는 것이다.

표현형태별 분류는 정적 및 동적 컨텐츠로 나뉜다. 정적 컨텐츠는 단순 텍스 트 혹은 단순 이미지가 독립 혹은 결합되어 있는 형태이며 동적 컨텐츠는 자 체에 하이퍼 링크(Hyper Link)를 갖고 다른 문서 및 웹 사이트와 연결되어 있는 형태의 컨텐츠를 말한다.

저장형태별 분류는 파일 시스템 저장과 데이터베이스 저장형태로 나눌 수 있 다. 파일 시스템으로 저장되어 있는 컨텐츠는 웹 문서, 도큐먼트, 리포트, 동 영상등 컴퓨터 및 URL 상에 절대 경로를 가지고 있는 형태의 컨텐츠를 말하 며 데이터베이스 저장 형태는 어플리케이션을 통해 생성되거나 저장 형태 자 체가 데이터베이스로 관리되는 컨텐츠를 뜻한다.

<표 1> 웹 컨텐츠의 분류 표현형태별 분류

정적 컨텐츠 동적 컨텐츠

저장 형태별

분류

텍스트 이미지

회사소개 메모 대표자 인사말 배경 및 아이콘

베너 광고 링크 텍스트

메뉴 URL

데이터 베이스

필드

뉴스 연혁 상품 리스트 직원 리스트 대리점 위치

견적 작성 상품 주문 배송 추적 회원 가입 및 정보

수정

(14)

3. 웹 컨텐츠의 생명주기

일반적으로 컨텐츠의 생명주기는 생산, 검토, 수집/관리, 배포, 축적, 폐기 등 의 6개 단계를 말한다. (주현택, 2001)

생산단계는 컨텐츠가 새롭게 만들어지는 단계로 새로운 버전으로 표기되어 저 장소(Repository)에 보관되어 관리된다.

검토단계는 컨텐츠에 대하여 승인이 이루어지는 단계로 주석 및 설명을 첨부 한다. 수집 및 관리 단계는 승인된 컨텐츠가 저장되어 관리되는 단계로서 다 른 컨텐츠와 통합 및 다른 컨텐츠 내에서의 재사용 등을 위해 관리되는 상태 를 말한다.

배포단계는 적절한 수단에 의하여 접근이 허락되어 사용자에게 이용되거나 특 별한 목적으로 가공되어 전달되는 단계이다.

축적 단계는 컨텐츠에 대하여 설정된 유효기간이나 내용의 정확성 등에 대한 규칙(Rule)으로부터 정보를 수집하는 단계이다. 활동성이 큰 저장소와 같은 경우 자동화된 방법을 사용하여 유효기간이 지난 컨텐츠의 경우 자동폐기 하 도록 하거나 관리자에게 검토하도록 지시한다.

폐기 단계는 더 이상 사용되지 않는 컨텐츠를 폐기하는 단계이다.

가트너(2001)는 컨텐츠 생명주기를 다음과 같이 정의한다.

① create / revise : 컨텐츠의 생성 또는 기존 컨텐츠의 수정

② review /approval : 정식 컨텐츠로 인정받기 위해 조직 내에서 검토하는 단계이다. 이 과정에서 워크플로우를 사용 하거나 컨텐츠에 주석을 달기도 한 다.

③ aggregate and manage : 컨텐츠는 저장소에 보관되어 관리되어 지며 이 단계의 컨텐츠들은 서로간의 통합을 통해 보다 풍성한 내용을 포괄하는 새로 운 컨텐츠를 구성 할 수 있다.

④ access and distribute : 저장된 컨텐츠를 접근하거나 배포할 수 있다. 저 장소에서 직접 접근하거나 보조 어플리케이션을 통해 간접 접근할 수 있다.

컨텐츠 배포는 특정한 산출물이나 배포하고자 하는 도메인에 알맞은 형식으로 이루어진다.

(15)

⑤ archive : 컨텐츠들은 각각의 유효기간 등에 대한 정보와 함께 archiving 된다.

⑥ destroy : 어떤 컨텐츠는 이 과정을 통해 약간의 수정을 거쳐 재사용되거 나 보다 포괄적인 새로운 컨텐츠에 대한 구성요소로서 다시 create / revise 단계를 거치기도 한다.

위와 같이 컨텐츠는 일련의 프로세스를 통해 그 생명주기를 관리하게 되며 컨 텐츠 관리 시스템의 기능 요소로서 자리 잡을 수 있다.

4. 웹 컨텐츠 관리 시스템의 정의

시장조사 기관인 오범(OVUM)은 CMS의 정의를 “생성에서 최종보관까지의 컨텐츠 라이프를 통합적으로 관리하는 작업과 프로세스의 총체”라고 제시한 다.

일반적으로 컨텐츠 관리 시스템(Content Management System: CMS)이란 기입 내·외부에 존재하는 다양한 컨텐츠를 생성, 출판, 배포, 보관 등의 컨텐 츠 라이프사이클에 기반을 두어 총괄적인 관리를 하는 시스템을 말한다.(이승 철, 2001) 즉 웹 사이트를 구성하는 컨텐츠의 관리 과정을 자동화하여 효율 성과 체계성을 제고하며 안정된 운용의 바탕을 갖추는 것을 의미한다.

홍은주(2001)는 컨텐츠를 웹 서비스용 컨텐츠와 일반 기업 내 컨텐츠로 구분 하고 웹 서비스용 컨텐츠를 관리하는 것을 웹 컨텐츠 관리 시스템(Web Contents Management System : WCMS)으로 부르며 CMS를 WCMS를 포 함하는 일반 컨텐츠 관리로 정의한다.

그러나 웹 컨텐츠의 범위를 단순히 웹 페이지나 그래픽 이상으로 기업 내 문 서 및 정보로 확대 할 경우 CMS는 단순한 HTML 페이지의 관리를 넘어 기 업 내 정보 관리 기능을 수행하게 된다. 나아가 어플리케이션이나 기타 컴포 넌트 및 전자상거래와 관련한 트랜잭션 정보들까지도 포함시키는 견해도 있기 때문에 CMS를 기업 정보 포탈로 보는 시각도 존재 한다.

한민옥(2002)은 CMS 솔루션을 관리하고자 하는 콘텐츠가 기업내부에 존재하

(16)

느냐, 외부에 존재하느냐에 따라 구분되며, 일반적으로 웹컨텐츠 관리를 위한 WCM과 기업간(B2B) 전자상거래에 필요한 상품카탈로그 관리를 위한 CMS(Catalog-Commerce), 기업내부의 문서관리를 위한 DMS(Document Management System), 비디오 및 오디와 같은 디지털 자산을 관리하는 DAM(Digital Asset Management), 그리고 DMS와 DAM을 통합한 ECM(Enterprise Content Management) 등으로 구분한다.

또한 컨텐츠 생명주기의 각각에 해당하는 CMS 모델을 통해 CMS를 분류하기 도 한다.

서혜연(2001)에 따르면 CMS를 세부적으로 들어가면 다양한 관점에서 많은 형태의 모델이 존재하며 대부분의 벤더들도 그러한 관점에서 출발하였다고 한 다.

그 모델들을 분류해 보면 크게 “create/collect content", "reposit/manage content", "publish/deliver content", ”workflow"의 네 가지로 분류된다. 이 와 같은 기준에 따른 분류는 <그림 2-3>과 같다.

<그림 2-3> 컨텐츠 생명주기에 따른 CMS 모델 정의 Create/Collect

Content

Reposit/Manage Content

Publish/Deliver Content

· Content Import

· Template Entry

· Integrate with other Authoring tool

· Automatic Categorizatio

· Content Repository

· Change Manage

· Link Manage

· Role-Based

· Security

· Web Publication

· Multi-Channel Delivery

· Personalization

· Syndication

WorkFlow

Content analysis / Integration with other Application

출처 : 서혜현(2001)

한편 김상겸(2002)은 CMS를 카탈로그 관리 시스템(Catalog Management

(17)

System)으로 분류하는데 카탈로그 관리 시스템은 전자상거래의 상품관리 관 점에 더 가까우며 결국 B2B 혹은 B2C로의 상거래를 위한 SCM의 일부분, 즉 통합된 상품데이터 관리 시스템으로 구분 짓는 것이다.

제 2 절 웹 기반 컨텐츠 관리 시스템의 필요성

서혜현(2001)에 따르면 CMS의 도입 필요성에 대해 5가지 이유를 제시하고 있다.

첫째, 컨텐츠량 증가 및 유료화 추세

컨텐츠 시장의 확대와 함께 컨텐츠량과 이용량의 증가, 포맷의 다양화, 컨텐 츠간 관계 복잡화, 조직 내 콘텐츠 분산 등의 문제가 생겨났다. 또한 콘텐츠 유료화로 인해 다양한 콘텐츠 상품관리의 요구가 생겨났으며, CMS의 자동화 및 모듈화의 체계적 관리가 필요하게 됐다. 아울러 디지털 콘텐츠 저작권 인 식이 확산된 것도 CMS 수요확대에 한몫을 하고 있다.

둘째, 웹 사이트 재구축 시기 도래

웹 사이트 또한 PC 구매 라이프사이클과 마찬가지로 기업의 사업모델 및 조 직변화에 따라 ‘구축-변경-재구축’등의 순환을 거친다. 99년 이후 폭발적으로 늘어난 기업의 웹 사이트 구축은 현재시점에서 변경 또는 재구축의 시기를 맞 이하고 있다. 이에 따라 기존 주먹구구식으로 운영되던 사이트의 체계적 관리 의 필요성과 함께 CMS 기반으로 마이그레이션(migration) 하려는 움직임이 발생하고 있다.

셋째, 기업 내부 시스템의 웹 전환

기업의 사업 가치사슬이 전자상거래로 촉발된 신규 시장진입자의 참여로 인해 재구축되고 있거나 해체 및 통합되고 있다. 이중 오프라인 기업의 온라인 진 출 요구 증가에 따라 기업 가치사슬의 전반적 재조정은 불가피한 실정이다.

이에 따라 기존 기업의 내부 정보시스템과 리소스가 웹 기반으로 전이되고 있 으며 최근 1~2년 사이에 e비즈니스 시스템 도입 및 구축을 위한 각종 솔루

(18)

션 출시가 봇물을 이루고 있다. 이에 기업 데이터의 통합 관리와 조직 내 콘 텐츠 통합의 필요성이 대두되면서 CMS가 e비즈니스 플랫폼 구축을 위한 필 요 솔루션으로 자리매김하고 있는 것이다.

넷째, 구축에서 관리로 관점 이동

시장선점 논리에 따라 그동안 경쟁자보다 더 빠르고 신속히 구축하는데 초점 이 맞춰졌다면, 이제는 기 구축된 것을 얼마나 효율적으로 관리하느냐가 중요 한 이슈로 부상하고 있다. 통상 관리에 따른 변동비 지출이 초기 구축시 투입 비용보다 적게는 50%, 많게는 100% 이상 소요되고 있다. 조직 내 디지털 자 산의 효율적 관리이슈와 함께 기업의 IT부문 아웃소싱 활성화, 그리고 비기술 인력의 콘텐츠 생산증가가 CMS의 가치와 효용성을 증대시켜 줄 것으로 기대 된다.

다섯째, 전자 카탈로그의 체계적 관리 필요성 대두

B2C, B2B, B2G 등 점차 전자상거래 시장의 규모가 확산되면서 상품정보 관 리, 잦은 트랜잭션 처리, 고객 성향분석을 통한 타깃 마케팅 등 제반활동을 위한 콘텐츠 관리의 중요성에 무게가 실리고 있다. 특히 B2B 전자 카탈로그 (catalog) 시장의 경우, 공개형 e마켓플레이스(e-marketplace)가 수익성 악화 로 부진을 면치 못하는 반면, 반대급부로 성장세를 타고 있는 전자 구매 (e-procurement)시장에서 그 중요성이 부각되고 있다.

조선주(2002)는 CMS의 등장 요인을 7가지로 나누어 설명하고 있다.

첫째, 웹 사이트와 관리시스템 사이의 컨텐츠 불일치 둘째, 부서별 콘텐츠 중복 생산 및 충돌

셋째, 방대한 콘텐츠 통제 불가로 생산성 및 효율성 저하 넷째, 콘텐츠 재활용 및 멀티 서버로의 자동화된 배포 불가 다섯째, 멀티 사이트 및 글로벌 사이트 운영의 어려움 여섯째, 구축시대에서 효율적인 관리로 관점 이동

일곱째, 포털, e-CRM 등의 비즈니스에서 콘텐츠의 활용이 적극적이지 못함 따라서 CMS는 현재 및 미래의 기업의 웹 기반 정보시스템의 중요한 일부분 을 차지할 것이다. 이와 같이 컨텐츠 관리 시스템은 기업의 컨텐츠 관리에 효 과적인 영향을 미칠 수 있기에 많은 관심을 얻고 있다.

(19)

제 3 절 웹 기반 컨텐츠 관리 시스템의 평가 기준

1. 평가의 필요성

컨텐츠 관리 시스템이 조직의 다양하고 방대한 컨텐츠 관리에 있어 효과적인 것 으로 인식되고 있다. 또한 그 효과성에 비하여 많은 비용이 투입 되어야 함으로 컨텐츠 관리 시스템의 도입에 있어 적절한 평가 기준의 마련은 중요하다. 또한 컨텐츠 관리 시스템의 구현이 그 적용의 관점과 기술적 관점에 따라 상이한 형 태로 나타나고 있으며 비교적 공통된 기능으로 묶기 힘들기 때문에 시스템의 선 택에 있어 어려움이 존재 한다.

이에 본 절에서는 컨텐츠 관리 시스템의 선택에 있어 조직의 전략적 목표와 연 동되는 선정 기준을 마련하고자 한다.

2. 평가 기준의 선정

비교에 앞서 대상 컨텐츠 관리 시스템의 선정 기준을 설정하기 위해 본 논문에 서는 컨텐츠 관리 시스템을 적용하는 영역에 대한 몇 가지 가정으로 출발 하였 다.

가정들은 다음과 같다.

(1) 중규모 이상의 조직에 적용 (2) 현재 시스템을 대체하는 시스템

(3) 단순한 페이지 및 복잡한 구성이나 레이아웃이 첨부된 페이지 (4) 데이터베이스로부터 동적인 자료의 생성 필요

(5) 페이지간 동적 링크 존재

첫째, 컨텐츠 관리가 가장 필요한 조직의 규모는 중규모 이상으로 많은 내 외

(20)

부 사용자가 컨텐츠를 대량으로 생성하는 환경이다. 이러한 환경에 적합한 요 구사항을 갖는 시스템을 고려한다.

둘째, 컨텐츠 관리 시스템의 기본적인 기능 속성, 즉 컨텐츠 생성과 배포의 측면에서 본다면 조직이 현재 운영중인 웹 시스템은 컨텐츠 관리 시스템으로 교체되어야 한다.

셋째, 컨텐츠의 형태는 비교적 단순한 텍스트 컨텐츠부터 레이어 및 특수 표 현요소 등이 포함된 복잡한 컨텐츠까지 다양하게 존재 하며 이러한 컨텐츠를 효과적으로 관리 할 수 있어야 한다.

넷째, 현재의 컨텐츠 추세를 볼 때 많은 형태의 컨텐츠들이 데이터베이스에서 동적으로 컨텐츠 내용을 생성하여 실시간으로 배포되고 있다. 이러한 데이터 베이스 기반 형태의 컨텐츠 관리는 반드시 필요한 기능이다.

다섯째, 사용자들이 컨텐츠의 탐색과 이동을 위해 컨텐츠 간에 링크 기능을 넣을 수 있는 필요가 있다.

3. 평가 기준의 마련

도입 시스템을 평가하기 위해서는 조직의 요구사항을 어느정도 까지 충족 시 킬 수 있는가에 대한 기준을 제시 하여야 한다. 이러한 기준은 컨텐츠 관리 시스템의 구조적 속성을 바탕으로 마련 할 수 있다. 즉, 컨텐츠 생성 - 관리 - 배포 의 핵심 단계별로 기준을 마련 할 수 있다.(James Robertson)

<그림 2-4> 컨텐츠 관리 시스템의 요구 기능

컨텐츠 생성

컨텐츠 컨텐츠 배포

관리

(21)

1) 컨텐츠 생성

효과적인 컨텐츠 생성 기능을 가지지 않는다면 컨텐츠 관리 시스템을 이용하 는데 어려움을 겪을 것이며 시스템 도입의 실패로 귀결 될 수 있다. 따라서 컨텐츠 생성 기능을 얼마만큼 지원 하는지가 핵심 평가 기준이 된다.

컨텐츠 생성 기능에 있어 필요한 기준은 다음과 같다.

(1) 생성 기능의 통합적 환경

컨텐츠 관리 시스템의 생성 기능은 컨텐츠 생성자에게 일관적인 기능과 동일 한 기능을 제공해야 한다.

(2) 컨텐츠와 표현기능의 분리

하나의 컨텐츠를 다양한 형태로 표현 가능해야 한다. 즉 컨텐츠에 포함된 글 자 및 배경의 변경, 표현 위치의 변경 등이 지원되면 사용자의 취향에 맞게 개인화가 가능하며 컨텐츠의 특징을 보다 잘 표현 할 수 있게 된다.

(3) 다중 사용자 지원

동시에 많은 사용자가 시스템을 이용해도 무리 없이 기능을 지원 할 수 있도 록 설계 및 구현이 잘 되어 있어야 하며 충분한 하드웨어를 지원해야 한다.

(4) 메타데이터를 통한 컨텐츠 관리

생성되는 컨텐츠는 메타데이터를 통해 관리 되어야 한다. 컨텐츠 생성자, 생 성일, 버전, 기워드 등 관리 및 검색에 있어 효과적인 요소를 제공 해야 한다.

(5) 쉬운 컨텐츠 생성 지원

많은 사용자들이 HTML 등의 컴퓨터상에서 사용되는 전문 언어에 능숙하지 않 다. 따라서 시스템 사용을 늘리고 많은 사용자가 사용 할 수 있기 위해서는 유 저그래픽인터페이스(GUI :User Graphic Interface)등의 기능을 통해 사용자가 쉽게 컨텐츠를 생성 할 수 있도록 지원해야 한다.

2) 컨텐츠 관리

많은 컨텐츠 관리 시스템은 충분한 저장소와 관리 기능을 제공 한다.

(1) 버전 관리 기능

생성되는 컨텐츠는 버전을 통해 관리 되도록 지원 되어야 한다. 또한 재해 및

(22)

시스템 장애로부터 컨텐츠를 보호하기 위해 백업 및 복구 기능을 지원해야 한 다.

(2) 워크플로우의 지원

컨텐츠를 분산적으로 생성하는 것은 워크플로우의 지원에 있다. 워크플로우를 통해 생성 및 관리 기능을 커스터마이즈 할 수 있으며 조직의 변화에 시스템이 유연하게 대처할 수 있다.

(3) 보안 지원

보안 및 감사 기능을 통해 공개 불가 컨텐츠를 통제 할 수 있으며 사용자 및 그 룹별 접근 권한 등을 통해 보안을 유지 할 수 있다.

(4) 외부 시스템과의 연동

컨텐츠 관리 시스템은 기업에 있어 여러 정보 시스템 중 하나이다. 따라서 다양 한 외부 시스템과의 정보 교환 기능을 통해 컨텐츠 관리를 확장 할 수 있으며 시스템의 효율성도 높아지게 된다. 이러한 기능은 표준 기술이나 산업별 표준 프로세스를 통해 지원 될 수 있다.

(5) 보고서 생성

컨텐츠 관리 시스템은 사용자 및 관리자에게 유용한 폭넓은 보고서 기능을 지원 해야 한다. 시스템 상에서 일어나는 모든 이벤트에 대해 기록하고 통보하는 기 능을 통해 컨텐츠 변경 및 사용자 접속 등을 추적 할 수 있다.

3) 배포

배포 기능은 시스템의 저장소에 있는 컨텐츠를 최종 사용자 화면으로 출력 하는 기능으로서 실시간(real-time) 혹은 배치 프로세스(batch-process)를 통해 지 원 된다. 배포 측면에서의 평가 요소는 다음과 같다.

(1) 스타일쉬트(stylesheets)

스타일쉬트를 통한 최종사용자 화면의 생성은 확장성 및 유연성을 보장해 준다.

(2) 페이지 템플리트(page template)

사용자가 기술적인 노력을 들이지 않아도 최종사용자 화면의 컨텐츠 배치를 유 연하게 지원할 수 있는 기능이 필요 하다.

(3) 확장성

시스템이 다양한 스타일쉬트와 페이지 템플리트를 가질 수 있도록 확장 기능을

(23)

제공 해야 한다.

(4) 다양한 컨텐츠 포맷의 지원

컨텐츠 관리 시스템은 HTML, PDF, WAP 등과 같은 사용자 단말기에 따른 다 양한 컨텐츠 포맷을 지원해야 한다. 또한 지원 가능한 포맷을 확장 할 수 있도 록 기능을 지원해야 한다.

(5) 개인화(Personalization)

사용자에 따라 다양한 형태의 컨텐츠 화면을 제공 해야 한다. 이러한 기능은 특 히 많은 사용자가 이용할 경우 유용한 기능이다.

(6) 다양한 브라우저 지원

사용자 및 관리자의 위치에 구애받지 않고 시스템을 이용하기 위해서는 전용 브 라우저의 사용을 지양해야 한다. 표준 브라우저를 통해 인터넷이 연결된 어디서 나 접근 및 사용이 가능해야 한다.

4) 비즈니스 측면의 평가 요소 (1) 시스템 속도

출력되는 페이지 사이즈가 너무 커서 사용에 지장을 받지 않아야 한다. 또한 시 스템 성능이 낮아 출력이 느려서는 안 된다.

(2) 표준의 지원

시스템은 HTML, WAP 등의 표준을 최대한 준수하여야 한다. 이러한 표준이 준 수되지 않으면 사용 및 관리에 있어 어려움을 겪게 된다.

(3) 효과적인 탐색 기능의 제공

컨텐츠의 위치에 대한 탐색을 쉽게 할 수 있는 기능을 제공해야 한다.

(4) 적절한 비용

시스템이 아무리 좋아도 기업이 지출 할 수 있는 비용 이상의 가격이라면 시스 템 도입에 문제가 발생 한다. 주어진 비용에서 최적의 시스템을 도입 하는 것이 중요 하다.

(5) 시스템 제약성

시스템이 다양한 플랫폼 및 데이터베이스 에서 실행 될 수 있다면 비용 및 성능 측면에서 유연한 운영 계획을 수립 할 수 있으며 기업이 보유하고 있는 정보 기 술을 최대한 활용 할 수 있다.

(24)

컨텐츠 관리 시스템의 도입은 기업에 있어 많은 비용이 소모되곤 한다. 따라서 시스템 도입에 있어 무엇보다도 중요한 것은 기업의 전략과 목표에 합치되는 시 스템을 도입해야 한다는 것이다. 전략과 목표를 중심에 두고 도입 시스템의 요 구 사항을 평가 한다면 효율적인 도입이 될 것이다.

제 4 절 웹 기반 컨텐츠 관리 시스템의 구현을 위한 기술

1. Java

Java는 초기에 임베디드(Embedded) 시스템을 위해 개발된 언어이다. 임베디 드 시스템은 생산기계, 자동판매기, 기전기기 등과 같이 다양한 마이크로프로 세서와 다양한 주변기기를 사용하는 시스템이기 때문에 값싸게 구축할 수 있 는 반면 시스템마다 구성이 판이하게 달라서 유지 보수가 힘든 단점을 갖는 다. 이러한 시스템에 공통적으로 적용할 수 있는 작고 효율적인 어플리케이션 개발을 위해 설계된 것이 Java 시스템이다. 따라서 Java는 플랫폼 독립적이며 비교적 작은 코드를 가질 수 있다.

Java는 인터넷의 발전으로 대중화되기 시작했다. 초기 인터넷에서 컨텐츠를 전달하기 위한 언어인 HTML은 정적인 문서만 제작이 가능했기 때문에 동적 인 인터렉티브 컨텐츠의 제공에 어려움이 있었다. 또한 인터넷 속도의 증가와 사용자의 폭발적인 증가로 인터넷이 일반인에게 까지 대중화 되면서 인터넷상 에서 제공하는 컨텐츠가 양적 및 질적으로 확장의 요구를 받게 되었다. 이에 넷스케이프사는 SUN의 Java 시스템을 네트워크용으로 변환시켜 애플릿의 형 태로 HTML에 포함시킬 수 있도록 하였는데 이것이 자바가 널리 알려진 계 기가 되었다. Java 애플릿은 작고 빠르면서도 다양한 플랫폼에서 사용할 수 있었기 때문에 다양한 시스템을 사용하는 인터넷 환경에 적합하다. 또한 Java

(25)

는 네트워크에서 중요한 보안문제에서도 안전성을 제공하였기 때문에 사용자 들의 지지를 받고 있다.

2. Java Platform

Java는 프로그래밍을 위한 언어와 프로그래밍 된 자바를 이기종 플랫폼 환경 에서 실행시키기 위한 Java 플랫폼으로 구성되어 있다.

<그림 2-5> Java의 구조

Java 플랫폼은 Java 가상 기계(Java Virtual Machine : JVM)와 Java API(Application Programming Interface)로 이루어져 있다. JVM은 Java의 바이트코드(bytecode)를 실행시킬 수 있는 것으로 브라우저나 각 플랫폼의 JDK(Java Development Kit)을 통해서 제공이 된다. Java는 JVM에 의해 플 랫폼 독립성을 보장받는 것이다.

Java API는 핵심 API(Core API)와 표준 확장 API(Standard Extension API) 로 나뉘는데 프로그램이 공통으로 사용할 수 있는 라이브러리를 제공한다. 대 부분의 중요한 API는 핵심 API에 포함되어 있으며 거의 변화하지 않기 때문 에 핵심 API만 사용하는 경우는 자바의 버전이나 플랫폼 사이에서 JVM의 차 이에 거의 영향을 받지 않는다. 반대로 표준 확장 API의 경우는 플랫폼마다 약간 다르거나 아예 구현되지 않는 경우도 생기고 자바 버전마다 호환되지 않 을 수 있다.

JDK2.0에 들어서면서 이전에 개발되었던 라이브러리와 툴을 통합하여 가정용 부터 기업 환경에 걸쳐 다양하게 사용할 수 있게 되었다. 이 시기부터 Java2

(26)

환경이라고 이야기 하는데 특징은 다음과 같다.

첫째, 서드 파티(third party)에 의존했던 라이브러리를 표준 API에서 제공하 게 되었다.

둘째, 이전 환경에서 보다 안정성과 속도의 향상이 있었다. 즉 자바의 핵심 라이브러리와 표준 확장 라이브러리로 API를 분리시켜 안정성과 빠른 업그레 이드가 필요한 분야를 동시에 만족시킬 수 있게 되었다.

셋째, 기업용 API(Enterprise API)를 풍부하게 제공하여 실제 업무에 사용할 수 있는 Java 어플리케이션의 제작 기반을 제공한다.

특히 기업용 API에서는 분산 환경의 표준으로 인정받는 CORBA, DB 표준 SQL 질의를 가능하게 하는 JDBC, 원격 함수 호출을 가능하게 한 RMI 등을 지원 하는데 이를 통해 복잡한 기업용 어플리케이션의 개발 지원이 원활 해 진다.

Java 2 플랫폼이 전체적인 구성은 <그림 2-6> 과 같다.

<그림 2-6> Java 2 Platform 자바 프로그램, 애플릿 등

Java Foundation Class(JFC) AWT, Swing, Accessbility, 2D

Graphic etc

OS, Java Terminal etc 자바 가상 기계(Hotspot Java VM)

기업용 라이브러리 IDL, RmI, JDBC etc

핵심 클래스

Language, Network, Security etc

확장 라이브러리 JMF Java HELP

Java Mail Servlet

etc

(27)

3. Java 2 Enterprise Edition

Java 2 Enterprise Edition(J2EE)는 기업 어플리케이션 환경이 복잡해지면서 트랜잭션이 폭발적으로 증가하고 대용량의 데이터를 다루어야 하는 현실에서 그 해결책으로 제시된 Java 기반의 엔터프라이즈 어플리케이션(Enterprise Application)개발 환경이다.

J2EE는 멀티 티어 상에 위치 가능한 엔터프라이즈 어플리케이션을 개발하기 위한 표준을 일컫는다. 엔터프라이즈 어플리케이션은 표준화되고 모듈화된 컴 포넌트로 구성된다. J2EE는 이러한 컴포넌트에 완벽한 서비스 군을 제공함으 로서, 개발자에게 복잡한 개발 과정 없이 해당 컴포넌트를 자동적으로 처리해 주는 환경을 제공한다. J2EE는 코드의 이동성, 데이터베이스 연동을 위한 JDBC API, 현존하는 엔터프라이즈 자원과의 연동을 위한 CORBA 기술, 인터 넷상의 데이터조차도 보호할 수 있는 보안 모델 등 Java의 장점을 엔터프라 이즈 환경으로 극대화 하였다. 또한, 이를 기반으로 EJB 컴포넌트, Servlet API, JSP와 XML 기술을 지원한다. J2EE은 현재 J2EE 표준을 준수하는 시스 템에 위치한 어플리케이션의 이동성을 보장하기 위하여 표준 규약과 호환성 테스트를 내재하고 있다.(SUN, 2002)

<그림 2-7> J2EE Standard Enterprise Services

(28)

J2EE의 엔터프라이즈 어플리케이션 모델은 그림 2-7과 같이 Client-Side Presentaton, Server-Side Presentation, Server-Side Business Logic, Enterprise Information System으로 구성되어 있다.

<그림 2-8> J2EE Enterprise Application Model

Client-Side Presentation 계층은 client단에서 표현되는 컨텐츠를 의미하며 정적 HTML이나 Java 애플릿 등이 이에 해당한다.

Server-Side Presentation 계층은 비즈니스 로직 계층을 통해 처리된 데이터 를 JSP 및 Servlet으로 처리하여 client에 넘겨주는 역할을 한다.

Server-Side Business Logic 계층은 어플리케이션의 핵심인 로직을 담고 있 으며 다른 어플리케이션이나 데이터베이스와 연동해 요청된 비즈니스 로직을 처리하는 부분이다.

Enterprise Information System은 ERP나 사내 정보시스템 같은 개별 어플리 케이션 혹은 데이터베이스를 나타낸다.

(1) Enterprise Java Beans(EJB)

SUN(2002)에 따르면 EJB는 컴퍼넌트 기반의 분산 객체 컴퓨팅의 아키텍춰

(29)

이며 분산 처리 지향(distributed transaction-oriented)엔터프라이즈 어플리 케이션의 컴퍼넌트로 정의한다.

즉, 분산 객체 컴퓨팅 환경에서 트랜잭션의 처리를 위한 Java Bean 컴퍼넌트 를 EJB라고 부르는 것이다.

EJB의 특징은 기존의 Transaction Processing Monitor의 역할인 트랜잭션 컨트롤뿐만 아니라 보안, 지속성, 자원관리를 자동으로 해주는 컴포넌트 트랜 잭션 모니터(Component Transaction Monitor : CTM)역할을 한다.

또 한 가지의 특징은 RMI(Remote Methode Invocation) 프로토콜을 이용한 분산 객체 아키텍처라는 것이다. EJB는 RMI 프로토콜을 기반으로 STUB - SKELETON - Server Object로 구성되어 있다.

<그림 2-9> EJB 호출 메커니즘

Stub은 클라이언트 단에서 RMI 프로토콜을 이용해 클라이언트를 호출하는 역할을 하며 Skeleton은 서버 단에서 특정 IP 주소 및 포트에 대기하고 있으 며 클라이언트의 호출을 받아 Server Object에 연결시키는 역할을 한다.

EJB는 역할과 형태에 따라 엔터티 빈(Entity Bean)과 세션 빈(Session Bean)으로 나눌 수 있다.

엔터티 빈은 일관적인 데이터(Persistent Data)를 표현한다. 대부분의 경우에 서 엔터티 빈의 필드는 관계형 데이터베이스의 필드와 매핑(mapping)되며 어 플리케이션의 처리 결과로 인한 필드 생성이 발생하기도 한다. 엔터티 빈은 형태에 따라 BMP(Bean-Managed Persistence)와 CMP (Container-Managed Persistence)로 나눠진다. BMP는 데이터 유지 기능을

(30)

개발자가 직접 EJB 내부에 구현해야 하는 형식이며 CMP는 데이터 유지 기 능을 컨테이너(Container)가 대신 해 주는 형태이다. CMP의 경우는 데이터 유지에 관련된 기능을 컨테이너가 해 주기 때문에 개발자는 비즈니스 로직만 구현하면 되는 편리한 점을 가지고 있다.

세션 빈은 특정 클라이언트의 요청시 생성되며 클라이언트에 의해 소멸하는 특징을 갖는다. 엔터티 빈이 데이터 저장 공간상의 데이터를 대표하는 개념인 데 반해 세션 빈은 데이터를 저장 하거나 로드하지 않으며 단순한 클라이언트 의 확장이라는 개념이다.

(2) Servlet

Servlet은 Java를 이용해 동적인 웹 컨텐츠를 작성하기 위해 개발된 서버측 언어(Server-Side Language)이다. Servlet은 Servlet Container를 통해 작 동되며 웹 클라이언트의 요청을 Servlet Container가 받아서 Servlet을 가동 시키는 형태로 동작된다.

<그림 2-10> Servlet 작동 경로

Servlet은 다음과 같은 절차로 수행 된다.

① 클라이언트 브라우저는 서버에게 서비스 요청을 보낸다.

② 서버는 Servlet에게 클라이언트로부터 전달된 서비스 수행 요청에 대한 정 보를 전달한다.

③ Servlet은 전달된 수행 요청 내용에 따라 동적으로 응답 내용을 작성하여 서버에게 전달하게 되는데, 이 때 필요에 따라 데이터베이스와 액세스가 이루어지기도 한다.

④ 서버는 Servlet이 처리한 메시지를 클라이언트에게 전송한다.

Servlet은 기능적으로 CGI(Common Gateway Interface) 스크립트와 비슷 한 구조를 가지지만 CGI 스크립트와 다른 점은 첫째, Java 기반이기 때문에

(31)

Java의 가장 큰 특징인 플랫폼 독립적이라는 특징이다. Servlet은 웹 서버 컨 테이너와 표준 인터페이스를 지원하기 때문에 JVM을 지원하는 어떠한 Container에서도 사용이 가능하다.

들째, 서블릿은 풀링(pooling)개념에서 출발하기 때문에 자원 효율적이며 속 도가 빠른 장점을 갖는다. Servlet은 일단 로드 되면 재 로드를 거치지 않고 서버에 풀(pool) 형태로 상주하여 클라이언트의 요청을 처리하는 쓰레드 (thread) 기술을 사용하는데 반해 CGI 기술은 클라이언트 각각의 요청에 새 로운 프로세스를 생성하게 됨으로 웹 서버에 오버헤드(Overhead)가 발생하게 된다.

마지막으로 Servlet은 Java의 특징을 거의 수용하기 때문에 비교적 적은 용 량과 보안에 강한 면을 가지고 있다.

<그림 2-11> Servlet Programming

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class CMemberTest extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=EUC_KR");

PrintWriter out = response.getWriter();

out.println("<HTML><HEAD><TITLE>세션 테스트</TITLE></HEAD></HTML>");

out.println("<BODY>");

Cookie[] cookies = request.getCookies();

boolean pass = false;

String email = "";

for (int i = 0; i < cookies.length; i++) { Cookie thisCookie = cookies[i];

out.println(thisCookie.getName() + ":" + thisCookie.getValue());

if (thisCookie.getName().equals("pass") &&

thisCookie.getValue().equals("yes")) pass = true;

if (thisCookie.getName().equals("email"))

email = new String(thisCookie.getValue().getBytes(), "EUC_KR"); } try {

if (pass) { out.println("인증 통과된 아이디임" + " : " + email);

} else { out.println("인증 통과되지 않았음"); }

}catch (NullPointerException e) { out.println("인증 과정을 거치지 않았음"); } out.println("</BODY></HTML>"); }

}

(32)

(3)JSP(Java Server Page)

JSP는 마크업(HTML 또는 XML)같은 웹 문서를 동적으로 생성할 수 있는 쉽 고 강력한 방법을 제공한다. Java 2 Enterprise Edition(J2EE) API의 한 부 분으로서, JSP 기술은 웹 기반의 어플리케이션을 빨리 개발할 수 있게 해주 며, 특정 웹 서버나 플랫폼에 독립적인 서비스를 제공한다.

JSP 기술을 사용하는 웹 개발자는 기존에 사용하던 동적 웹 페이지 개발 툴 이나 인터페이스를 그대로 사용할 수 있다. 또한 어플리케이션 로직(비즈니스 로직)은 서버 상의 자원( JavaBeans 컴포넌트 또는 EJB 컴포넌트 등 )으로 제공하고, 웹 문서에서는 JSP 태그를 사용하여 해당 어플리케이션 컴포넌트 를 접근할 수 있다. 이렇게 웹 페이지 설계와 어플리케이션 로직을 분리함으 로써 재사용 가능한 컴포넌트 기반의 설계를 할 수 있으며, JSP 기술은 그것 을 기존의 웹 어플리케이션 개발방식에 비해 훨씬 쉽고 빠르게 개발할 수 있 는 환경을 제공한다.

JSP 명세서는 Sun Microsystems이 주도하는 Web산업 전반의 주도적인 제 품이 될 것이다. Sun은 모든 웹서버와 어플리케이션 서버가 JSP 인터페이스 를 지원하게 하는 목표를 가지고, JSP 명세서를 개발자들이 무료로 사용할 수 있게 했다. 보다 많은 산업계의 벤더들이 JSP 기술을 자신들의 제품에서 지원 함으로서, 웹을 도입하는 조직들은 개발 툴과 플랫폼 선정에서 자유롭고, 웹 기반의 사용자 인터페이스 설계 시 산업표준(HTML, XML)을 사용할 수 있 다.

<그림 2-12> JSP Life cycle

(33)

JSP 페이지는 Java 기술의 "Write Once, Run Anywhere" 특징을 갖으며, JSP 기술은 Java 2 Platform, Enterprise Edition 기술들의 웹 확장성을 지 원하는 핵심 기술이다.

JSP의 작동 순서는 클라이언트에서 요청하는 웹 리소스를 서버에서 파싱 - 컴파일 과정을 통해 서블릿 형태의 클래스로 변환한 후 클라이언트 측에 보내 게 된다.

JSP 사용시의 장점은 첫째, 웹 페이지 생성이 간단하다는 점이다.

HTML관련 태그와 Java 언어로 작성한 스크립렛(Scriptlet)은 웹 페이지의 컨 텐츠 생성 로직을 인캡슐레이션(Encapsulation) 했다. 표준 HTML 또는 XML 태그 포맷과 설계를 처리한다. 웹 페이지 디자인을 데이터를 생성하는 어플리 케이션 로직과 분리시켜, JSP는 기업들이 어플리케이션 기능들을 Java 컴포 넌트들로 잘 나누고, JSP 명세에서 지원하는 태그를 통해 재사용 하거나 공유 하기 쉽다.

둘째, 재사용 가능한 S/W 컴포넌트와 Tag 라이브러리 지원이다.

JSP는 JavaBeans 컴포넌트, EJB 컴포넌트, Tag 라이브러리 등 재사용 가능 한 S/W컴포넌트를 사용할 수 있어서 개발시간을 단축시킬 수 있고 잘 설계된 컴포넌트들을 웹 어플리케이션 개발에 활용할 수 있다.

<그림 2-13> JSP With JavaBeans

셋째, 멀티 티어(Multi-tier) 기업형 어플리케이션 아키텍처를 지원한다.

JSP 기술은 Java 2 Platform Enterprise Edition(J2EE)의 웹 관련 핵심 컴포

(34)

넌트 기술로서 엔터프라이즈 컴퓨팅 환경의 자바 기술을 웹으로 확장한다.

JSP 기술을 사용하여, 웹 사이트를 개발하는 조직들은 현재의 자바 플랫폼 전 문 기술들은 레벨화 하고, 엔터프라이즈 어플리케이션들을 고도로 확장하여 웹으로 서비스 할 수 있다.

넷째, 플랫폼과 서버에 독립적이다.

JSP 명세는 산업계의 다양한 요구를 흡수하고, 다양한 웹서버와 어플리케이션 서버를 지원한다. Sun Microsystems은 JSP 명세서의 개방성과 이식성의 지 원 의지를 보이고 있다.

(35)

제 3 장 웹 기반 컨텐츠 관리 시스템 설계 및 구현

제 1 절 설계의 기본 방향

본 연구는 웹 컨텐츠의 효과적인 관리를 위한 웹 기반의 컨텐츠 관리 시스템 을 구현하는데 있어 다음과 같은 요소를 고려한다.

첫째, JSP 및 Servlet 기술로 제작하여 어떠한 플랫폼에서도 작동 가능하도 록 개발한다.

둘째, JDBC 표준을 지원하는 데이터베이스 및 ODBC 데이터베이스에서도 연동이 가능하도록 표준을 준수한다.

셋째, 시스템 대상 기업인 중소기업 및 일반 제조기업의 웹 사이트의 개발 및 관리에 있어 포함되는 컨텐츠를 손쉽게 생성 및 관리할 수 있는 기능을 구 현 한다.

1. 웹 기반 컨텐츠 관리 시스템의 대상 컨텐츠 정의

웹 기반 컨텐츠 관리 시스템이 대상으로 하는 컨텐츠를 정의하고 구체화하기 위해 여러 가지 컨텐츠를 제공하고 있는 웹 사이트를 무작위로 50여개 선정 하여 분석하였으며 컨텐츠 관리 시스템을 제공하는 업체들을 대상으로 제품을 분석하여 컨텐츠 관리 시스템의 구현 방법들을 조사 하였다.

조사의 초점은 컨텐츠 분류를 위한 컨텐츠의 속성 및 범위였으며 다음과 같은 조사 결과가 나왔다.

첫째, 컨텐츠의 일반적인 형태로 분류한 결과 텍스트, 이미지 및 그래픽, 리스

(36)

트, 테이블, 미디어(media) 파일, 문서파일(document file) 및 일반파일 (application file)등으로 구분 된다.

둘째, 컨텐츠의 저장 형태로서 기간 시스템 등 이미 DB에 저장되어 있거나, DB에 저장 될 수 있는 형태와 파일 시스템 등 위치정보 만이 DB저장되어 사 용되는 형태로 구분 된다.

셋째 ,컨텐츠 접근권한에 따른 형태로서 직책별(개인별)접근 권한과 그룹별 접근 권한으로 각 접근 권한이 구분된다.

넷째, 컨텐츠 가치에 따라 유료 컨텐츠와 무료 컨텐츠로 구분 할 수 있다. 유 료 컨텐츠의 경우 접근 권한과 과금 시스템의 연동이 필요하다.

다섯째, 컨텐츠의 표현 형태로 텍스트, 텍스트와 이미지, 리스트, 이미지와 리 스트 등의 조합된 컨텐츠로 구분할 수 있다.

여섯째, 컨텐츠의 구현 방법에 따른 분류로 수작업 구현 형태와 자동화 구현 형태의 컨텐츠로 나눌 수 있다. 수작업 구현형태는 디자인 측면이 중요한 요 인이며 지속적인 업데이트가 특별하게 필요하지 않는 컨텐츠로 보통 전문 웹 디자이너 등에 의해 개별적으로 구현되는 형태이다. 반면 자동화된 구현 형태 는 상품소개, 뉴스, 게시판 등 일상적인 업데이트가 필요한 컨텐츠들로 이러 한 컨텐츠는 보통 수작업으로 수행 할 경우 많은 노력과 비용이 필요해 데이 터베이스의 저장 및 웹 페이지에 데이터베이스의 내용을 자동으로 출력하는 형태로 구현되어 있다.

조사 결과 인터넷 웹 사이트상의 컨텐츠는 컴퓨터를 이용해 관리 할 수 있는 매우 다양한 형태로 나타나고 있다. 그러나 본 연구의 목적을 웹 컨텐츠의 생 성과 관리를 쉽게 할 수 있는 컨텐츠 관리 시스템의 설계 및 구현이라고 할 때 이러한 다양한 컨텐츠를 포괄하는 데에는 다음과 같은 문제가 존재 한다.

첫째, 미디어 및 어플리케이션 파일의 웹상에서의 생성 제약이 존재

음악이나 동영상 파일이나 액셀(excel) 파일등은 해당 어플리케이션을 통해 오프라인으로 생성 할 수밖에 없으며 이러한 파일에 대한 생성 기능을 웹상의 온라인 관리 시스템에 포함하기에는 기술적 구현의 한계를 갖으며 개발비용의 증가 및 구현 시스템의 규모가 커진다.

둘째, 유료 및 무료 컨텐츠의 구분은 과금 시스템과 보안 통제 시스템을 연동 해야 하기 때문에 추가 개발이 필요하며 시스템의 도입 대상인 제조 및 비 디

(37)

지털 상품을 다루는 기업에게는 불필요한 기능이 된다.

이러한 문제들을 고려해 웹 컨텐츠의 분류를 저장 형태별 및 표현 형태별의 네 가지로 구분하여 웹 컨텐츠 관리 시스템에서 적용한다.

<표 2-1> 웹 컨텐츠의 분류 표현형태별 분류

정적 컨텐츠 동적 컨텐츠

저장 형태별

분류

텍스트 이미지

단순 텍스트 및 이미지 위주의

컨텐츠

링크를 갖는 텍스트 및 이미지 컨텐츠

데이터 베이스

필드

링크를 갖지 않는 정형화된 형태의 리스트형 컨텐츠

링크를 가지며 정형화된 형태의 리스트형 컨텐츠

텍스트 및 이미지 컨텐츠의 제작은 그 표현 형태가 동일하기 때문에 단일한 모듈로 제작 및 관리가 가능하다. 반면에 데이터베이스 필드를 나타내는 컨텐 츠는 데이터베이스의 테이블과 매핑을 시키거나 데이터베이스 테이블을 생성 하고 매핑 및 하이퍼링크를 삽입해야 하는 다른 프로세스를 가지기 때문에 텍 스트 및 이미지 관리 모듈과 별도로 구현해야 한다.

(38)

<표 2-2> 웹 컨텐츠 모듈의 분류 표현형태별 분류

정적 컨텐츠 동적 컨텐츠

저장 형태별

분류

텍스트 이미지

텍스트 및 이미지 관리 모듈

데이터 베이스

필드

데이터베이스형 컨텐츠 관리 모듈

제 2 절 요구 기능 정의

개발 시스템의 대상 컨텐츠를 위와 같이 정의 할 때 다음과 같이 시스템 요구 기능을 정의 할 수 있다.

1. 컨텐츠 관리

대상 컨텐츠의 구분에 따라 텍스트 및 이미지 관리 모듈과 데이터베이스형 컨 텐츠 관리 모듈로 나누어 개발 한다.

1) 텍스트 및 이미지 관리 모듈

웹 사이트를 구성하는 텍스트 및 이미지를 쉽게 배치할 수 있으며 수정 및 관 리의 용이함을 제공한다. 텍스트 및 이미지 관리 모듈은 다음과 같은 기능으 로 정의한다.

(39)

① 텍스트를 입력할 수 있는 편집기의 지원

편집기를 통해 텍스트의 크기 및 색상 등을 지정할 수 있다. 편집기는 HTML 편집기와 유사한 기능을 수행한다. 편집기는 문서를 소스 형태로 작성 및 수 정이 가능하다. 관리자가 HTML에 익숙하다면 소스모드에서 컨텐츠를 편집할 수 있다.

지원되는 기능은 a) 글자 종류 선택 b) 글자 크기 선택 c) 글자 색상 선택 d) 문서 색상 선택 e) 문단 정렬 f) 그림 삽입 g) 표 삽입

h) 소스 모드 편집 등이다.

② 이미지 관리 기능 지원

컨텐츠에 사용하기 위한 이미지를 업로드 할 수 있는 기능을 지원한다. 이미 지를 업로드 한 후 편집기에서이미지 삽입 기능을 선택하면 기존에 업로드 된 이미지 리스트가 나타나고 리스트 중에서 사용하고자 하는 이미지를 드래그앤 드롭(drag-and-drop)으로 편집기에 가져다 쓸 수 있다.

지원되는 기능은 a) 이미지 업로드 b) 이미지 삭제 등이다.

③ 데이터베이스에 컨텐츠 저장

편집기를 이용해 완성된 컨텐츠는 파일 형태가 아닌 데이터베이스에 필드 형 태로 저장이 되므로 수정 및 백업이 용이하다.

지원되는 기능은

(40)

a) 컨텐츠 저장 b) 컨텐츠 수정 c) 컨텐츠 미리보기 등이다.

2) 데이터베이스형 컨텐츠 관리 모듈

웹 사이트에 추가되는 게시판, 상품 목록 등 필드 형태로 표현되는 데이터의 관리를 지원한다.

데이터베이스형 컨텐츠 관리 모듈의 요구 기능은 다음과 같다.

① 데이터베이스 테이블 생성 관리

저장할 자료 형태에 맞는 테이블을 생성하기 위해 직접 필드 이름, 형태 및 길이 등을 지정할 수 있는 관리 툴을 제공한다.

지원되는 기능은 a) 필드명 정의 b) 필드 형태 정의 c) 필드 길이 정의 d) 필드 생성 e) 테이블 삭제 등이 있다.

② 테이블 컨텐츠 디스플레이

웹상에서 정의된 데이터베이스 테이블의 레코드를 출력한다. 게시판과 같이 전체 리스트를 출력 하며 만약 필드 중 다량의 데이터를 포함하는 테이블은 전체 리스트에는 큰 필드가 출력되지 않으며 해당 레코드를 클릭하면 해당 레 코드의 모든 데이터를 출력하게 된다.

지원되는 기능은 a) 전체 목록 출력 b) 상세 데이터 출력 등이 있다.

(41)

③ 테이블 컨텐츠 관리

관리자에 의해 정의된 테이블에 데이터를 입력하고 수정 및 삭제하는 기능이 다. 데이터 입력 기능은 기 정의된 테이블의 필드 정보를 가지고 입력 가능한 형태의 폼을 자동으로 생성하여 어떠한 형태의 테이블도 데이터의 입력이 가 능하다. 또한, 데이터의 수정과 삭제 역시 가능하다.

지원되는 기능은 a) 입력 폼 생성 b) 수정 폼 생성 c) 데이터 삭제 등이다.

2. 컨텐츠 표현 모듈

웹 기반 컨텐츠 관리 시스템에 의해 생성된 컨텐츠를 웹상에 표현하기 위해서 는 컨텐츠 표현 모듈이 필요하다. 이러한 컨텐츠 표현 모듈은 보통 포틀릿 (portlet)이라고도 하며 인터넷 브라우저 상에서 동적 및 정적 정보를 표현하 는 컴퍼넌트로 정의한다.(BEA, 2001)

본 연구에서는 컨텐츠 표현 모듈을 표현하고자 하는 정보의 유형에 따라 두 가지로 구분하여 각각의 기능을 정의한다.

1) 텍스트 및 이미지 컨텐츠 포틀릿

텍스트 및 이미지 컨텐츠를 표현하는 모듈은 시스템의 기본적인 표현 모듈로 단순 표현 기능을 갖는다.

(42)

<그림 3-1> 텍스트 및 이미지 컨텐츠 표현 모듈

2) 데이터베이스 필드 컨텐츠 표현 모듈

데이터베이스 필드 컨텐츠 표현 모듈은 아래 <그림 3-4>와 같다.

<그림 3-2> 데이터베이스 필드 컨텐츠 표현 모듈 데이터베이스 필드 컨텐츠 표현 모듈은 세 부분으로 나누어진다.

첫째, 타이틀 영역

데이터베이스 테이블 필드의 이름 혹은 별칭을 나타내는 영역이다.

둘째, 컨텐츠 표현 영역

수치

Graphic  etc
그림  3-9에  나타난  것처럼  사용자가  에디팅  폼에  작성된  내용은  서버측의  컨 트롤  클래스에  전달되며  컨트롤  클래스는  이  데이터를  이미  만들어져  있는  모 델  형태의  데이터로  변환한다

참조

관련 문서

File[] listFiles() : 해당 경로에 있는 파일의 목록을 File 배열로 리턴합니다.. String getName() : 해당 경로에 있는 파일이나

The builtin package defines error as an interface with a single Error() method that returns an error message as a string.. We’ll see

생각열기 신기한 과학 마술 알아보기 생각펼치기 오목렌즈와 볼록렌즈의 비밀.. 생각다지기 찰칵

생각열기 신기한 과학 마술 알아보기 생각펼치기 오목렌즈와 볼록렌즈의 비밀.. 생각다지기 찰칵

hasSensorType String 차량 센서 Type을 표현. hasState String 클래스

indicated input stream fgets( char *s, int n, FILE *) Address of the string/NULL pointer. fputs() Writes the character string pointed to

The prolonged period of COVID-19 has provided a non-face-to-face teaching situation for private education beyond public education, and private education

indicated input stream fgets( char *s, int n, FILE *) Address of the string/NULL pointer. fputs() Writes the character string pointed to