잠시 여기서 연재하고 있는 CMS를 만들어보자의 솔루션인 WCMS에 대한 소개를 하고자 합니다.

현재  (주)워드앤코드를 통하여 다양한 사이트에 적용이 되고 있습니다

 

 

 

 

WCMS 의 특장점 및 효과


1.
관리 사이트와 이용자 사이트의 분리
 -
관리자와 이용자의 독립적 분리를 통한 콘텐츠 및 디자인 템플릿 관리의 효율성 증대

 - XSLT 형태의 출판으로 XML데이터 출력을 통한 이용자 화면 관리 용이

 

2. 시스템 성능 및 안정성, 확장성
 -
웹표준 구축 및 웹접근성 인증마크 획득 가능한 표준 CMS
 - SNS
매핑 기능 강화
 - 게시판 생성 후 통합검색 편입여부 관리자 지정 가능
 -
게시판 기본 XML 데이터 제공 및 로우데이터 출력을 통한 외부 연계 가능

3.
다양한 콘텐츠 관리
 -
이용자 메뉴와 관리자 메뉴의 동일한 형태로 구성 가능

 - 자체 템플릿을 이용한 구성과 이용자의 요구에 의한 템플릿 구성 가능

 - CMS 및 게시판의 설정을 수시로 변경가능하며, 옵션 별 기능 구성 가능
 -
멀티 업로드 및 능동적 필드 구성 가

 

4. 권한 관리

 - 이용자 및 관리자의 등급관리를 통한 효율적 관리

 - 메뉴별, 게시판별, 게시물 별 관리권한을 자유롭게 지정 가능

 

 

WCMS 의 운영환경

1.
서버
 -
운영체제 : Window 2000 svr 이상
 - DBMS : MS-SQL 2005 이상
 - 웹서 : IIS-6.0
 - 웹브라우져 : MSIE 6.0 이상


2. 클라이언트
 -
웹브라우져 : MSIE 6.0 이상/ 그 외 최신 브라우져 지원

3.
지원 API : XSLT, XML

 


top


WCMS는 (주)워드앤코드에서 제공하는 콘텐츠 관리 솔루션이다

================================================================================

 

이제부터 게시판 필드정보 설정에 대한 부분을 살펴보자

먼저 게시판필드는 기본필드가 존재하고 추가할수 있는 구조로 만들어져있다.

기본 필드를 살펴보자

 

[TITLE] [nvarchar](500) NOT NULL     --제목
[LINKURL] [nvarchar](500) NULL     --링크주소
[LINKURL_FL] [nchar](1) NOT NULL DEFAULT (N''N'') --링크주소 사용여부
[CONTENTS] [nvarchar](max) NULL     --내용
[DESCRIPTION] [nvarchar](max) NULL    --소개글
[USER_ID] [nvarchar](200) NULL     --사용자아이디
[USER_PWD] [varbinary](500) NULL     --사용자비밀번호
[USER_NM] [nvarchar](200) NULL     --사용자명
[USER_EMAIL] [nvarchar](400) NULL     --사용자이메일
[HOMEPAGE] [nvarchar](500) NULL     --홈페이지
[MAINIMG] [nvarchar](500) NULL     --메인이미지
[MAINIMG_CAPTION] [nvarchar](500) NULL   --메인이미지캡션
[MAINIMG_SIZE] [float] NULL DEFAULT ((0))   --메인이미지사이즈
[LISTIMG] [nvarchar](500) NULL     --리스트이미지
[LISTIMG_OVER] [nvarchar](500) NULL    --리스트이미지 오버
[LISTIMG_CAPTION] [nvarchar](500) NULL   --리스트이미지 캡션
[LISTIMG_SIZE] [float] NOT NULL DEFAULT ((0))  --리스트이미지 크기
[TARGET_NM] [nvarchar](20) NULL DEFAULT (N''_self'') --창 타켓
[NTC_OPT] [nchar](1) NULL DEFAULT (N''N'')  --공지여부
[SECRET_OPT] [nchar](1) NULL DEFAULT (N''N'')  --비밀글여부
[OPEN_OPT] [nchar](1) NULL DEFAULT (N''Y'')  --오픈글여부
[SDATE] [datetime] NULL       --시작일
[EDATE] [datetime] NULL       --종료일
[READ_CNT] [int] NOT NULL DEFAULT ((1))   --조회수
[IPADDR] [nvarchar](30) NOT NULL     --아이피
[POSTDATE] [nvarchar](20) NULL     --게시일
[REGDATE] [datetime] NOT NULL DEFAULT (getdate()) --등록일
[DEL_FLAG] [nchar](1) NOT NULL DEFAULT (N''N'') --삭제여부
[DEL_DATE] [datetime] NULL      --삭제일자
[ANSWER_FL] [nchar](1) NOT NULL DEFAULT (N''N'') --답변여부
[ANSWER] [nvarchar](max) NULL      --답변내용
[ANS_ID] [nvarchar](50) NULL      --답변자아이디
[ANS_NM] [nvarchar](50) NULL      --답변자이름
[ANS_DATE] [datetime] NULL      --답변일
[ANSIP] [nvarchar](30) NULL      --답변자IP

 

다양한 게시판의 요구를 모두 충족할수 있는 구조로 기본 테이블이 구성된다.

 

물론 여기서 추가를 하고 싶은 경우 추가할 수 있도록 구성되어있다

 

그래서 프로시저도

테이블 생성 프로시저, 테이블 필드추가프로시저 이렇게 2개로 구성된다

기본적으로 필드는 한번 생성되면 삭제는 되지 않게 했다.

왜냐하면 필드에 글이 있는 경우 다른 필드에 영향을 미칠수 있기 때문이다

단지 비활성화로 사용하지않게 하는 기능을 추가 하였다

필드 구성에 대한 사이트 이미지를 보자

 

 

 

필드 구성에서는 이전 포스트에서 설명한 기능이나 옵션에 따라 보이는 것을 다르다.

 

초기 필드 구성에 대한 소스를 한번 살펴보자

 

call xmlItemMake(oDom, "idx","40px", "번호", "int", "", "", "자동증가", "input", "", "E", "Y", "Y", "N","Y", "N", "N", "N", "1")
i = 2
if mainimg_opt = "Y" then
 call xmlItemMake(oDom, "mainimg","100px", "매인이미지", "short", "250", "", "", "input", "", "E", "Y", "Y", "N","Y", "N", "Y", "Y", i)
 i = i + 1
end if
call xmlItemMake(oDom, "title","*", "제목", "short", "250", "", "", "input", "", "C", "Y", "Y", "Y","Y", "Y", "Y", "Y", i)

i = i+1
call xmlItemMake(oDom, "linkurl","50px", "관련URL", "short", "350", "", "", "input", "", "C", "Y", "Y", "N","N", "Y", "Y", "Y", i)
 
if write_right > 1 then '회원제일경우
 call xmlItemMake(oDom, "user_id","70px", "아이디", "short", "100", "", "", "input", "", "D", "Y", "Y", "N","N", "N", "N", "N", i+1)
 call xmlItemMake(oDom, "user_nm","70px", "작성자", "short", "20", "", "", "input", "", "A", "Y", "Y", "N","Y", "Y", "Y", "N", i+2)
 call xmlItemMake(oDom, "user_email","50px", "이메일", "short", "200", "", "", "input", "", "E", "N", "N", "N","N", "N", "N", "N", i+3)
 call xmlItemMake(oDom, "homepage","50px", "홈페이지", "short", "250", "", "", "input", "", "C", "N", "N", "N","N", "N", "N", "N", i+4)
 i = i + 5
else
 call xmlItemMake(oDom, "user_nm","70px", "작성자", "short", "20", "", "", "input", "", "A", "Y", "Y", "N","Y", "Y", "Y", "N", i+1)
 call xmlItemMake(oDom, "user_email","50px", "이메일", "short", "200", "", "", "input", "", "E", "Y", "Y", "N","N", "Y", "Y", "Y", i+2)
 call xmlItemMake(oDom, "homepage","50px", "홈페이지", "short", "250", "", "", "input", "", "C", "N", "N", "N","N", "N", "N", "N", i+3)
 i = i + 4
end if
call xmlItemMake(oDom, "postdate","70px", "게시일", "datetime", "", "", "", "input", "", "A", "N", "N", "N","N", "N", "N", "N", i)
call xmlItemMake(oDom, "regdate","70px", "등록일", "datetime", "", "", "", "input", "", "D", "Y", "Y", "N","Y", "N", "N", "N", i+1)
call xmlItemMake(oDom, "read_cnt","50px", "조회수", "int", "", "1", "", "input", "", "D", "Y", "Y", "N","Y", "N", "N", "N", i+2)
call xmlItemMake(oDom, "contents","*", "내용", "long", "", "", "", "input", "", "C", "Y", "Y", "Y","N", "Y", "Y", "Y", i+3)
i = i + 4

if descript_opt = "Y" then
 call xmlItemMake(oDom, "description","*", "소개글", "long", "", "", "", "input", "", "A", "Y", "Y", "N","Y", "Y", "Y", "Y", i)
 i = i + 1
end if

if master_reply = "Y" then
 call xmlItemMake(oDom, "answer_fl","70px", "답변상태", "short", "2", "N", "", "input", "", "E", "Y", "Y", "N","Y", "N", "N", "N", i)
 i = i + 1
end if

if term_opt = "TY" OR term_opt = "TI" then
 call xmlItemMake(oDom, "period","70px", "게시기간", "short", "2", "", "", "input", "", "E", "Y", "Y", "N","N", "Y", "Y", "Y", i)
 i = i + 1
end if

if file_use = "FY" OR file_use = "FM" then
 call xmlItemMake(oDom, "filename","60px", "첨부파일", "short", "250", "", "", "input", "", "E", "Y", "N", "N","N", "N", "Y", "Y", i)
 i = i + 1
end if

if board_style <> 2 then
 if write_right = 1 then '비회원제일경우
  call xmlItemMake(oDom, "user_pwd","70px", "비밀번호", "short", "15", "", "", "input", "", "E", "Y", "Y", "N","N", "N", "Y", "Y", i)
  i = i + 1
 end if
end if
if listimg_opt = "Y" then
 call xmlItemMake(oDom, "listimg","100px", "목록이미지", "short", "250", "", "", "input", "", "E", "Y", "Y", "N","Y", "N", "Y", "Y", i)
 i = i + 1
end if

if topimg_opt = "Y" then
 call xmlItemMake(oDom, "topimg","100px", "대표이미지", "short", "250", "", "", "input", "", "E", "Y", "Y", "N","N", "N", "Y", "Y", i)
 i = i + 1
end if

 

소스에 보듯이 기능에 따른 필드 구성이 조금 달라진다.

추후 소스에 대한 분석 설명때 다시 다루기로 하자

 

오늘은 필드정보 구성화면을 살펴봤다.

다음에는 필드 구성 후 옵션에 대한 기본 생성된 XSL파일에 대해서 살펴보기로 하자

top


WCMS는 (주)워드앤코드에서 제공하는 콘텐츠 관리 솔루션이다

================================================================================

 

게시판 설정은 일반형에서 조금씩 변형되는 것이기 때문에 특이한 것은 없다...

그래서 간략하게 설명하고자 한다.

 

먼저 옵션설정부터 보자

 

- 컨텐츠형 게시판

 

컨텐츠형은 파일 첨부 이외의 기능은 특별히 요구되지 않기 때문에 간략하다.

컨텐츠형은 목록화면이 사용자에서는 필요하지 않기 때문에 읽기 화면에 대한 부분만 정의를 하면 된다.

 

- 문의형 게시판

 

문의형에서는 관리자 답변기능이 있는 것과 목록 화면에 대한 내용이 존재한다

 

- 링크형 게시판

 

링크형 게시판은 제목과 URL만 필요로 하기 때문에 글목록,쓰기  화면만 존재한다.

글읽기 화면은 존재할 이유가 없기 때문에 옵션은 굉장히 간단하다

 

- 웹진형, 갤러리형 게시판

 

웹진형과 갤러리형게시판은 메인 이미지노출부분이 추가 된다.

또한 목록에 이미지 사용여부가 추가된다.

그리고 웹진형과 갤러리형게시판은 내용 상단에 이미지가 노출되는 경우가 발생할때가 있다.

이럴경우를 대비해서 본문 상단 이미지를 최대 5개까지 입력이 가능하도록하였다.

그외는 일반형게시판과 대동소이하다.

 

 

그럼 기능옵션에 대한 부분도 살펴보자

 

- 컨텐츠형 게시판

 

컨텐츠형 게시판의 기능은 본문에 대한 기능만 정의하면 되기 때문에 에디터 사용여부와 SNS, 복사, 프린터 등에 대한 기능만 존재한다.

 

- 문의형 게시판

 

문의형은 목록에 대한 기능과 관리자의 답변이 있을 경우 사용자에게 메일을 발송하는 부분과 문의가 발생했을때 관리자에게 메일을 발송하는 부분이 추가 되어 있다.

SMS기능을 추가하고자 한다면 별도의 기능으로 첨가하면 좋을 듯하다.

 

- 링크형 게시판

 

링크형은 게시물 목록에 대한 기능 옵션이 전부다.

특이할 점은 링크 주소만 보여주고 연결을 막는 경우가 있어 링크주소 바로가기가 추가 되어 새창으로 연결되는 옵션을 추가하였다

 

- 웹진형 게시판

 

웹진형 게시판은 리스트에 어떤 모양으로 보여줄것인가를 결정하는 부분이 추가 되어 있다.

게시물 표시갯수가 5개, 10개, 20개가 일단형인지 2단형인지 선택하도록 옵션이 주어진다.

도한 목록에 요약글이 나올수 있도록 요약글에 대한 옵션을 추가해줬다..

 

- 갤러리형 게시판

 

갤러리형은 웹진형과 유사하지만 하가지 차이점은 갤러리형은 사진만 나오기 때문에 2단구성, 3단 구성, 4단구성, 5단 구성으로 나누어지는 부분을 제외하고는 웹진형과 대동소이하다.

 

이상으로 게시판에 대한 설정부분은 마치고자 한다.

게시판의 설정부분에 대한 XML포맷에 대한 것은 다음 포스트에서 다루고자 한다...

 

 

 

top