본문 바로가기

TIP

CS랑 WEB의 차이점

반응형

- 네이버 지식인

 

CS랑 WEB의 차이점

sejinc

답변채택률 87.5%

2003.09.28 23:12

C/S Architecture

* 1세대 C/S 디자인
* 구성
- Client: 서버에 SQL이나 인터페이스 호출로 데이터나 서비스 요청하고 결과를 보여주는 프로그램 코드, 프리젠테이션 로직, 비즈니스 로직을 담당
- Data Server:요청된 데이터 및 서비스를 Client 에 제공 하는 데이터베이스 서버
* 일반적으로 Client 에서 UI,프리젠테이션 로직과
비즈니스 로직 기능을 담당하고 데이터 처리는 Client 에서 일어나고 Server는 단지 요청받은 데이터와 서비스를 넘겨주는 데이터 로직을 담당하여 Fat Client 구조

* 장점
설계가 간단하다
적용하기 쉽다
단순구조의 OLTP시스템에 적합
적은 비용으로 고성능의 서버를 대신
상대적으로 짧은 개발 기간을 가진다
이용할수 있는 개발 도구가 풍부하다
추가기능으로 이미 개발된 S/W가 많다
부분적으로 적용해서 점진적으로 확대

* 단점
다수의 대형 시스템에 부적합
업무변화가 급속한 환경에 부적합
대량의 데이터 로직에 대해 Client 성능저하
소프트웨어 관리의 어려움
업무처리나 환경의 변화에 의한 연쇄적 비즈니스 로직이나 프리젠테이션 로직변경
시스템의 확장성과 유연성 부족
일반적으로 사용자 교육 필요

Intranet Architecture
* WWW은 인터넷 HTTP 프로토콜을 바탕으로 수행
* 구성
- Client가 서버에 요청
- 서버가 응답
* HTTP
- 단순히 작성된 HTML문의 Down Load 요구
- 서버측의 프로그램을 동작시켜 그 결과인 동적
- HTML Format Data 요구
* Web 응용프로그램
- Web Server 측 응용 프로그램을 제작하여 홈페이지가 단순한 정보 제공이 아니고 그 프로그램 나름대로의 Business Logic을 수행

* 장점
인터페이스 변경없이 로직변경 수월
강력한 Presentation Service
추가 사용자 수용을 위한 시스템 확장 용이
업그레이드를 짧은 시간에 완료 할 수 있다
클라이언트의 유지보수 불필요.
최고의 개방성을 제공
쉽고 간단한다.
일반적이고 구현이 쉽다

* 단 점
반복적 작업이 많아 개발생산성이 떨어진다
웹 서버를 거치므로 느린편
별도의 보안 기법을 사용해야만 함
Server 에 부담
단순하고 조회 위주의 업무에 적합했으나, 미들웨어 성격의 Web Application Server등장으로 OLTP업무에 적용 가능
Client /Server 간의 Context 유지가 큰 관건
기존의 클라이언트/서버 구조에 비해 통신효율이 떨어짐


웹으로 다 되나?

C/S에서 WEB으로..... - 개발자 고려사항 -

웹은 COMMUNICATION을 위해서는 더할 나위 없이 강력한 TOOL이다. 다른 매체와는 달리 인터넷이라는 공간을 초월한 광역성과 문자뿐만 아니라 화면으로 표현하고자하는 거의 대부분의 동영상까지를 전달하고 또한 공유할 수 있다는 장점을 가지고 있는 것이다. 이러한 외적인 장점때문만으로도 최근 시스템 사용자들은 가급적 웹기반의 인트 라넷을 구축하기를 희망하며, 특별한 경우를 제외하고는 시스템 개선 또는 신규 구축시 이를 우선의 제안조건으로 내세우고 있는 현상이 뚜렷하다. 동영상과 소리는 물론 이제는 냄새까지도 컴퓨터를 이용하여 전달할 수 있게 된 현실에서 그러한 TOOL을 이용하여 정보에 생명을 불어 넣는 역할을 담당하는 SI업체들로서는 순간순간 변화하고 발전해 나아가는 개발환경에 민감하게 대처하 지 않고서는 경쟁력을 상실할 수 밖에 없다. 때로는 Bench Marking할 대상도 없는 상태에서 일을 시작해야 하는 경우까지도 감수하지 않으면 기술적 우위를 점하기 곤란한 지경에 이른 것이다. 그러나, SI(System Integration)가 무엇인가? 각각의 TOOL을 이용하여 하나의 시스템을 만들고 이렇게 만들어진 시스템을 서로 결합하여 다시 하나의 통합된 시스템으로 만드는 것이 아닌가? 결국 특정 부문에 대한 통합시스템을 구축하는 것은 단순히 한가지 정보기술이 개발되었다고 하여 전체 시스템이 그 기술로서만 이루어 질수는 없는 것이다. 하지만 그 기술이 새로운 대안으로 대두되는 것은 다른 기술들과 결합하지 못하는 독립성때문이 아니라 과거의 정보기술을 바탕으로 하여 유연하게 자체의 역할을 담당하기 때문에 인정되는 것이다. 따라서 SI의 생성자인 개발자(업체)들은 종국에는 필연적으로 이에 순응하여 1차 사용자로서 그 기술을 사용할 수 밖에 없다는 부담을 안게 되는 것이다. 그러나 모든 것이 한 방향으로만 갈 수는 없을 것이다. 어떤 분야는 현재의 환경이 옳을 수도 있는 것이고, 때로는 새로운 기술을 도입하 는 것이 옳을 수도 있다. 어떠한 방향이 옳은 것인가 하는 것은 각각의 시스템 특성에 따라 결정하여야 하겠 지만 여기서는 C/S(Client & Server)환경과 WEB환경의 특성을 시스템 개발자의 시각에 맞추어 비교 검토해 보고자 한다.

C/S 환경

1. Machine 선정시 고려 사항
기계를 선정 할 때 일반적으로 UNIX가 좋다거나 NT가 우수하다거나 하는 결정은 위험하다. 또한 요즈음은 리눅스도 마켓쉐어가 높아지고 있다는 것을 고려해야한다. 그러나 아직은 전사적 시스템에서는 NT나 리눅스로는 한계가 있다.

구분
유닉스
윈도우 NT
H/W 구조
SMP, MPP, NUMA SMP(MAX CPU 4개)
비용
초기 구축 비용은 NT보다 높으나 총구매 유지비용은 비슷하다 초기 구축 비용은 일반적으로 유닉스 보다 낮다
H/W 가용성
밴더별 안정적인 클러스트링 방법제공 97년 이후 서버 클러스트링 방법이 향상되고 있으나 아직은 미흡
안정성
NT환경보다 안정적인 것으로 대부분 인정 받고 있슴 전사적 시스템에서 NT가 더 자주고장나고 있슴
용이성
초기학습이 어렵다 GUI 환경으로 기초 학습은 용이
S/W가용성
거의 모든 어플리케이션은 유닉스를 지원하고 있슴 유닉스 보다는 적으나 급격히증가하고 있슴
관리성
NT 보다 어렵다 기본관리 기능은 용이하나 센타 에서 NT를 관리하기는 어려움
추진력
고성능의 기간업무에서는 주도하고 있으나 업체별로 분산되어 있기 때문에 집중력이 떨어지고 특히 웍그룹 부분에선 NT에 밀림 MS사의 집중적인 추진력과 마켓팅능력이 유닉스를 압도한다.

- 가트너 그룹 -

2. TOOL 선정시 유의사항
1) 특정한 플랫폼에 종속되지 않는가?
2) 개발회사는 안정적이고 제품의 업그레이드는 계속되는가?
3) 지원 라이브러리나 프로토콜은 국제 표준을 준수하는가?
4) 상속성(Inheritance)와 다형성(Polymorphism)을 지원하는가?
5) 분산트랜잭션 처리에 따른 보안 기능은 충분히 안정적인가?
6) 제품에 대한 검증과 성공사례(Reference)는 충분한가?
7) 유사도구들과 이식성 및 통합은 용이한가?
8) 디버깅 도구와 회복기능이 있는가?
9) 초보자의 학습은 용이한가?
10) 공급업체의 기술지원 능력은 충분한가?

3. C/S 구축시 고려 사항
C/S 시스템은 일반적으로 기존의 정보시스템을 개선하거나 재구축하는 형태이기 때문에 구축에 앞서 계획단계에서 개발대상 및 이행계획과 대외망 연계, 위험도 분석 등 충분한 대책을 세워야 한다. 또한 기본 요원의 재교육 및 기존 장비의 재활용 방안, 시스템의 백업과 보안대책등에 대해서도 검토가 이루어져야 한다.

1) 밴더의 광고를 무시하라.
2) C/S의 잇점을 생각하라
3) C/S 구축에 따르는 위험을 이해하라
4) 밴더를 줄임으로서 위험을 감소하라
5) 시스템구축예산을 과소평가하지 마라
6) 하드웨어 및 소프트웨어는 충분히 테스트 후 구입하라
7) 가급적 통합 하드웨어 및 소프트웨어를 구입하라
8) 첫시작은 위험이 적은 업무영역을 선택하라
9) 밴더와 함께 실패위험을 안도록 하라
10) 프로토타이핑을 통하여 의사결정을 검증하라

- Richard Finkelstein, C/S 구축 10 계명 -

WEB 환경 WEB 환경을 통한 인트라넷의 구현은 몇가지 제약사항과 문제점을 지니고는 있지만 그런 문제들을 해결하기 위한 다양한 방법이 지속적으로 제공되고 있다.

1. WEB 환경의 소프트웨어 클라이언트에는 기존의 클라이언트 응용프로그램 대신 웹브라우저가 설치되어야하고 서버시스템에는 웹서버를 필요로 한다. 간단한 인트라넷은 웹서버와 브라우저간의 HTTP 통신과 HTML, CGI에 의한 프로그램만 으로도 구성할 수 있으나 요즘의 인트라넷환경은 사용자 인터페이스와 업무처리 과정 이 복잡하여 HTML 이나 CGI 와 같은 단순한 언어로는 구현 되기가 어렵기 때문에 ActiveX나 JAVA와 같은 기술이 대두되고 있다. 클라이언트의 동작은 CGI 프로그램은 서버에서 바로 클라이언트 웹브라우저내에 직접 디스플레이 하는 반면 ActiveX 는 소켓통신과 OLE 기능에 의해 제공되고, 자바는 애플릿에 의해 기동하게 된다. 이러한 동작의 차이에도 불구하고 웹브라우저에 의해 통일된 인터페이스를 제공한다는 것이 웹의 장점이다. 서버쪽은 크게 보면 모든 기능을 하나의 모듈에서 통합처리 하는 방식과 서버 모듈의 기능을 데이터베이스 연동만을 담당하는 DB서버 모듈과 업무처리 로직을 담당하는 응용프로그램서버 모듈로 나누어 처리하는 방식으로 구분된다. 전자는 유지보수가 필요없는 간단한 시스템일 경우 적당한 반면, 후자의 경우는 시스템의 변경이나 수시로 기능 추가가 발생하는 대규모의 시스템에 적합하다. 이러한 서버 모듈은 웹서버에 의해 구동되는 데, 웹서버는 웹브라우저로부터 TCP/IP 요구에 반응하는 일종의 트랜잭션 처리 소프트웨어라고 할 수 있다. 웹서버는 크게 APACHE로 대표되는 포크에 의한 처리 방식과, IIS로 대표되는 멀티쓰레드에 의한 처리 방식이 있다.
2. JAVA vs ActiveX 개발자 입장에서 보면 자바는 크로스 플랫폼을 지원하고 네크워크 환경의 보안에 강점이 있는 반면 로컬자원의 활용과 데이터베이스 지원, 사용자 인터페이스 등이 상대적으로 취약하고, ActiveX 기술은 빠른 수행속도와 편리한 사용자 인터페이스, 로컬 자원의 활용 측면에 강점이 있으나 제한된 플랫폼 지원과 보안에 상대적인 약점을 지니고 있다.
1) 자바 자바 언어는 주로 기존의 웹브라우저에 동적인 내용을 첨가하기위해 사용되고 있다. 자바를 이용한 여러 분야중 기존의 응용기술과의 연결이 두드러지는데, CORBA와의 연결이나 JDBC를 이용한 DB와의 연결이 그 대표적인 것이다. DB와의 연결은 기존 CGI 형태의 경우 웹서버에 부하를 증가시킬수 있고, 데이터베이스 분산성을 전혀 이용하지 못한다는 점에서 자바를 이용할 경우 많은 성능 향샹을 가져 올 수 있다.
2) ActiveX MS사의 인트라넷 기술 표준인 ActiveX는 MS사의 핵심기술인 OLE를 더욱 발전시켜 인터넷상에서도 활용할 수 있는 기술이다. ActiveX는 기존의 COM, DCOM을 포함하고 있으며 웹상에서 상호운용할 수 있는 기술을 제공한다. ActiveX는 C/S에서 가능 했던 편리한 사용자 인터페이스와 빠른 수행 속도 등의 장점에도 불구하고 윈도우 플랫폼에 종속된다는 단점을 가지고 있다.
3. WEB 과 C/S 프로그램의 차이 인트라넷을 기반으로 한 응용프로그램도 서버에서 자료를 받아 클라이언트에서 보여진다는 것은 기존의 C/S 환경의 응용프로그램과 크게 다를 바 없다. 그러나 웹이라는 제한된 환경 때문에 다음과 같은 몇가지 차이점을 가지고 있다.

구 분
C/S
WEB
GUI
문자,숫자 자료에 제한적
단순한 화면 구성
사용 툴별로 상이함
HTML 기반의 문자.이미지/영상등 다양
멀티미디어 자료에 의한 수려한 구성
브라우저에 의한 통일된 UI 처리
개발도구
다양한 개발 도구 지원
표준화 되지 않은 툴
다양성 부족
ActiveX, Java, 기타
사용자 대상
LAN을 기반으로 한 조직
내부의 사용자에 제한적
전세계 인터넷 사용자에게 개방 가능
유지보수
클라이언트 모듈 별도
관리 필요
별도 관리 불필요
이식성
이식성 약함 (환경과 개발툴에 종속적) 이식성 강함(환경과 개발툴에 독립적)
사용자 교육
사용툴 마다 별도 교육 웹교육만으로 만족

위와 같은 차이로 많은 기업들이 기존의 C/S환경에서 웹환경으로 시스템을 통합하거나 재구축을 서두르고 있다. 그러나 웹환경의 프로그램이 완벽한 것은 아니다. OLTP성 업무나 엔터프라이징 환경의 시스템 구성시 시스템의 커넥션 유지와 수행속도를 보장할 수 없으며, 대량의 정보에 대한 처리의 제약 등은 아직 웹이 가지고 있는 한계임은 분명하다. 4. WEB 구축시 고려 사항 인트라넷 구축은 단순한 응용프로그램의 개발이라기 보다는 웹이라는 극히 제한된 환경에서의 시스템 통합이기 때문에 보다 복잡하고 정교한 기술과 많은 고려 사항을 필요로 한다. 또한 각 조직은 나름대로의 특정한 업무흐름, 시스템 요구 사항, 네트워크 구조 및 기본 IT 인프라의 차이를 가지고 있기 때문에 모든 조직을 만족 시키는 구축방법론을 제기하기는 거의 불가능하다. 다만 각 단계에 따른 일반적인 고려 사항은 다음과 같다
1) 계획수립 단계 웹도입을 계획할 때 우선 고려해야 할 사항은 해당 조직의 업무적, 물리적, 인적인 특성 분석과 함께 웹 솔루션의 기술표준현황, 시장동향분석 및 기존 시스템 환경과 보안대책등 웹시스템 구축 이후 나타날 수 있는 영향에 대해서 예측해보는 것이 필요하다. 웹구축 유형에 따라 기존에 사용중인 정보시스템과는 무관하게 인트라넷을 새로이 도입하는 경우, 기존에 사용중인 시스템과 연동하는 경우, 또한 기존 시스템 환경을 완전히 웹환경으로 변환하는 경우 등 구축하고자 하는 유형에 맞는 기능과 범위를 선정해야 한다.
2) 구현단계 구현단계는 실제로 인트라넷을 구현하는 과정으로서 기반환경의 구축, 응용서비스 및 컴포넌트 설계, 구축 및 통합테스트, 평가 및 교육 등으로 이루어진다. 시스템 설계는 계획수립단계에서 파악한 시스템 환경과 적용업무 범위, 구축유형에 맞는 시스템 구조, 데이타베이스, 기존 시스템과의 인터페이스, 사용자 인터페이스, 응용프로그램 등에 대한 원할한 기능 수행과 확장성 등을 고려하여 설계하고 적절한 솔루션을 선정하고 CUSTOMIZING으로 통일된 시스템이 구축되도록 하여야 한다.
3) 운영단계 인트라넷 운영에 있어 가장 중요한 것은 역시 서버의 콘텐츠가 항상 최신의 정보로 제공되어야 한다는 것이다. 따라서 서버는 구축계획단계에서부터 이를 고려하여 설계해야 하고, 경우에 따라서는 부문별로 콘텐츠를 분리하여 운영할 필요가 있다. 또한 서버는 원격지에서도 관리가 용이하도록 구성되어야 하는데 이를 위해서는 적절한 보안 대책은 필수적이다.

우리는 위에서 C/S와 WEB환경 구축을 위한 기본사항과 고려사항을 조명해 보았다. 이들이 상대적인 장단점을 가지는 경우를 보이는 것과 같이 하나의 통합정보시스템 을 구축하고자 할 때 각각의 요건과 환경에 맞는 적절한 TOOL을 한가지만으로 국한 하여 선정하기란 쉽지가 않다. 예를 들어 DW정보를 이용한 즉시성있고 다양한 형태의 재무분석정보를 확인하고자 할 때 WEB환경을 통해서 시스템을 구현한 경우는 그 처리시간과 출력형태의 한계때 문에 오히려 C/S환경에서 보았던 기존의 출력형태만도 못하거나 불편한 경우를 느낄 수도 있는 반면 C/S환경에서는 곤란한 인터넷을 활용한 정보의 공유라는 장점을 동시에 발견할 수도 있다. IT담당자는 추후 확장성과 범용성을 고려하겠지만, 정보의 최종사용자는 시스템 환경을 주시하지 않는다. 다만 어떤 형태의 업무시스템을 사용할 경우 신속하고 편리한가를 우선시한다. 그것이 C/S이거나 WEB 또는 두가지를 혼용한 것이든 상관할 바는 못되는 것이다. 사용자가 의식하지 않고 입맛에 맞는 시스템을 사용할 수 있게 하는 기술적인 책임은 SI 설계자와 개발자에 달려 있다. 물론 확장성과 범용성,안정성 등이 고려된 것이어야 할 것이다. 사용자의 요구는 가급적 받아들여져야 하겠지만 무조건적으로 수용하는 것은 상당히 위험천만한 것이다. 각각의 시스템환경의 제약사항을 사용자에게 알려줌으로써 완성된 시스템에서 파생 되는 문제점을 깨우쳐 주고 그에 대한 대안이 설사 획일적인 시스템환경은 아닐지 라도 설득해 나아감으로써 시행착오에 따른 손해를 서로가 줄일 수 있는 것이다.

요약컨대, 최근의 시스템통합 업무요건은 WEB을 지향하는 경향이 뚜렷하다. 그러나 그러한 요구는 기술적인 검증이 이루어진 WEB 전문가의 요구에 의하여 나왔 다기보다는 일반사용자의 요구에 의한 것이 많다. C/S환경에서 어렵지 않게 구현되었던 업무라하여 쉽게 대들었다가는 낭패를 보기 십상임을 주위에서 쉽게 발견할 수 있을 것이다. 결국 시스템 개발자(업체)는 구현하고자 하는 업무의 내용과 특성을 완벽하게 이해하고 그에 따른 적절한 구축방안을 제시할 수 있는 경험과 기술력을 배양하는 것이 필수적인 성공요소라 할 것이다.

- 박용백,왕석균 -

의견 쓰기

그 외 답변들 1

받은 추천순 | 최신순

어렵군요.

kissdino

답변채택률 93.0%

2003.09.17 11:41
사실은......



CS와 WEB은 매우 많은 유사점을 지니고 있습니다.
일단 둘다 서버와 클라이언트가 존재한다는 것이죠.
그런데 이 두가지 사이에 개발 방법론은 매우 큰 차이를 보입니다.

일단 CS의 방법론을 보도록 하겠습니다.

CS는 모든 Client의 요청을 처리할 수 있어야 합니다.(당연한 거지만) 즉 Application의 연산이든 보안/인증이든 혹은 Database든...이렇게 하기 위해서는 Network의 인프라가 매우 필수적입니다.

특히 방화벽 같은 문제에 많은 어려움이 있습니다. 예를 들면 특정기관의 외부 클라이언트가 1만명인데 기관에서는 이 용도로 특정IP와 특정 Port만을 오픈해놓은 상태이면 문제가 생기겠죠.

다양한 OS 역시 개발에 어려움을 느끼게 합니다. 다양한 windows만큼 수많은 테스트와 해당 OS의 컴포넌트들을 보유하고 있어야 하는것이죠. 예를들어 배포할 클라이언트는 Windows 95,98,Me용 XP용 2000용 이렇게 버전이 분류되어 버리고 이를 관리/유지하는 것도 큰 부담입니다. 또한 새로운 OS의 등장에 긴장하게 되죠.

따라서 이런 것들이 고려되어 개발에 대한 디자인(설계)을 시작합니다.

좀더 구체적으로 철도청에서 기차표를 발매하는 시스템이라고 가정합니다.
메인 서버는 서울에 두고 (어플리케이션과 DB) 각각의 클라이언트들은 모두 지방에 분산되어 있습니다. 우선 각 역마다 Network 구성이 어떻게 되어 있는지 체크해야 합니다. 모든 역마다 초고속 인터넷이 들어와있으면 좋겠는데 모뎀으로 통신하는 간이역 등도 있을테니 이에대한 부분도 고려하여야 하겠습니다. 다만 조금 편리한 부분은 모든 역에 배포되어 있는 단말기는 터미널 형태이므로 기종과 OS등이 동일다는 장점이 존재합니다.



이렇게 적어 나가다가 왠지 질문과 멀어지는게 아닌가 하는 의구심이 들어서 중간에 포기합니다.


이런걸 원하시는게 맞는다면 밑에 글하나 써주세요. 이어서 적어나가죠. ^^;