프로그래밍 웹과 c/s의 장단점은?
프로그래밍 웹의 장단점과 c/s의 장단점을 비교해서 알려주세요.
예를들어 설계부터 백엔드 ,프론트엔드,Db,서버사이드,속도, 개발환경, 프로그래밍 언어 등등 관련해서 디테일하게
안녕하세요 현업 6년차 개발자입니다. 현재 현업에서 C/S와 웹 개발을 둘 다 하고 있습니다. 개발자입장에서의 장단점일지, 사용자 입장에서 장단점일지 정확하게 알려주시지 않았는데요. 주력 언어를 선택하시기 위한 질문일까요? 질문을 더 디테일하게 주셨으면 좋았을터지만, 그렇지 못하니 개략적으로 알려드리겠습니다.
웹과 c/s의 사용자 입장에서 장단점은 명확합니다. 웹은 브라우저만 있으면 어디서든지 접근가능하다는 장점이 있구요. C/S는 프로그램 설치를 해야 하니 불편한 점이 있죠. 다만 회사와 같이 사용 환경이 고정되어 있는 경우엔 C/S가 좋은 점이 명확하게 있습니다. 일단 O/S의 성능에 크게 좌지우지 되어 높은 성능을 낼 수 있습니다. 반면 웹은 조금만 부하가 걸려도 버벅거리죠. 개인적으로 UI 자체는 디자인 적으로 웹이 오픈소스도 많고 발달되어 있다고 봅니다만, 사용자 입장에서는 기능적 차이가 없다면 속도 빠른 C/S 더 좋다고 생각합니다.
프로그래머 입장에서는 웹이 편합니다. 개발하고 배포하는 데 큰 어려움이 없죠. 클라이언트가 서버에 접속해서 쓰는 거니, C/S처럼 일일이 각 사용자의 컴퓨터에 배포하지 않아도 괜찮죠. 다만 웹서버 관리가 부수적으로 들어가니 인력이 더 필요한 편입니다. DB만 성능이 좋다면, 굳이 웹서버를 여러대 둔다거나, L4를 쓴다거나.. 뭐 그런 걸 고려안해도 되니 편합니다. 다만 프로그램 자체를 사람들에게 모두 배포하기 때문에 프로그램의 강건성이라던지 보안 쪽에서 우려가되는 부분은 분명히 있어보입니다. 즉 사내에서 쓰기엔 C/S가 더 적절한 거 같더라구요.
안녕하세요 ..
답변을 적을까 말까 하다.. 적어봅니다.
우선 적으신 내용이 너무 광범위 합니다.
광범위하다는 이유는.. 특히 c/s... 프로그램.. 이건 종류가 끝도없지요... 언어도 거의 모든 언어이고
그래서 대충 설명드려보겠습니다.
- Web
Web 은 당연히 아실거라 생각됩니다. 우리가 쓰는 지금 이 아하사이트 역시 Web이니깐요
장점이라 고한다면 인터넷이 되는 어느곳에서나 사용할수있고 어떤기계드지 사용할수있다는 게 가장 큰장점이겠지요
컴퓨터 핸드폰 pda,TV 등 인터넷 브라우저를 사용할수있는 모든 기계에서 사용할수있으니깐요
단점이라면 보안에 취약할수있다는 점 이겠네요 어디서나 접근이 가능하기때문에 거기에 따른 보안도 신경써야겠지요
언어는 : java,php,닷넷,파이썬... 등등
- CS
Cs는 흔히 쓰고 있는 윈도우 프로그램 .쉽게 이야기해서 한글,윈도우에서 쓰는 계산기?? 등등이런 프로그램들을 말하지요..
우선 단점이라면.. 해당 프로그램은 해당 운영체제에 맞아야만쓸수있지요. 윈도우용으로 만들었으면 윈도우
리눅스용으로 만들었으면 리눅스
그리고 설치가 필요하지요. 어떠한 프로그램을 사용하기위해서는 해당 프로그램 설치가 되어야 하지요.
장점 : 컴퓨터 프로그램이기때문에 Web에 비해 무거운 작업처리에 용이., 인터넷 안되는 환경에서 사용가능. 등이있겠네요.. 생각해보니.. 요즘은 Web이 너무 잘나와서 장점이 많이 없어졌네요....
언어는 : 너무많아요.. ^^; 거의 모든 언어가 cs는 제작가능하다고 보시면될듯합니다. 대표적으로 C++ 등등
설계부터 백엔드 ,프론트엔드,Db,서버사이드,속도, 개발환경, 프로그래밍 언어
를 질문하셨는데요.
설계.? 웹도 CS 도 같다고 보셔도됩니다. 사용목적부터 개발 까지 웹으로 보여지냐 프로그램으로 보여지나 차이아닐까요?
백엔드,프론트앤드,db등등 도 다 같습니다.... 사용하는언어만 다르겠지요...
속도? 개발속도를 말씀하시는건가요? 이건 딱히 말씀드리기가 예매하겠네요... 어느목적으로 어떻게 만드는지에 따라 차이가 많이 나니깐요...
언어는... 너무 많아요 ^^
디테일하게 적어드리지못해 죄송합니다.여기에 질문하시는거보다 검색해보시는게 더욱더 많은 정보를 얻을수잇을거에요.
누군가가 정말 자세하게 적어주신다면 다행이지만.. 그냥 적기에는 너무 광범위해서 .. 원하시는 대답을 들으실수있을지모르겠네요.
다른 분이 자세하게 쓰겠지만 제가 생각한 핵심만 말씀드리면, 웹은 XR(AR, VR, MR), AI, IoT를 제외한 분야에서 개발 속도 향상과 호환성, 비용 절감에 큰 도움을 줍니다. 서버 사이드에서 바로 웹서버를 구동할 수 있으니 따로 client를 만들지 않아도 되며, 백엔드에 위치해 있으니 DB 서버와 가까이 둘 수 있고 연결이 쉽습니다. 국내 웹 개발은 스프링 프레임워크가 80%, 엔진X가 나머지 입니다. AI가 급 부상하면서 Django 가 신흥 세력이라고 보면 되겠죠. 웹 서버쪽은 Node.js 가 다 통일해 나가고 있지만 각 프레임웍 마다 장/단점이 있고 변화가 심해서 말씀드리기 뭣하지만 IBM 센차 같이 ExtJS로 바뀌는 프레임웍은 한 번 더 생각하고 기술 스택을 쌓으시길 바랍니다.
모든 어플리케이션은 사용/구축환경/도메인 모델에 따라서 설계/구축/사용언어 등등 모든 것들이 달라지기 때문에 특정 상황이나 목적이 안정해지면 디테일하게 얘기할 수가 없어요.
또한 물어보시는 내용이 워낙 광범위하고 c/s 와 web은 장/단점으로 비교할 수 있는 대상이 아니라서 일반적인 개념들을 정리드릴께요.
c/s : 보통 Client - Server 구조/모델의 약어로 컴퓨팅 자원을 Client와 Server 역할로 나눠서 사용하는 구조를 얘기해요. 여기서 Client는 어떤 요청을 하는 주체이고 Server는 Client가 요청한 걸 처리하는 주체에요. 따라서 c/s 프로그래밍이라 하면 Client - Server 구조를 가지는 어플리케이션에 대한 프로그래밍을 얘기해요.
c/s의 장점은 어플리케이션의 역할을 요청부분과 처리부분을 나누고 네트워크를 통해 정보를 제공할 수 있다는데 있어요. 물리적으로 떨어져 있는 사용자가 클라이언트에 접속을 하면 서비스 제공자(어플리케이션 개발 회사)가 서버를 통해 채팅/게임/검색 등등의 서비스를 제공할 수 있는거죠.
따라서 Web Browser Client - Web Front/Back End Server, Chat Client - Chat Server, Mobile Client - API Server, Window Client - API Server 등등 많은 어플리케이션이 Client - Server 구조를 차용하고 있어요.
Web Browser Client - Web Front/Back End Server 어플리케이션에서는 Web 기술들이 많이 사용될꺼고
Chat Client - Chat Server 어플리케이션에서는 메시징 기술들이 많이 사용될꺼고
Mobile Client - API Server 어플리케이션에서는 Push/메시징/Web 기술이 복합적으로 사용될 꺼에요.
Web : World Wide Web의 약어로 보통 전세계적으로 정보를 주고 받을 수 있는 네트워크 망 혹은 망에서 사용하는 프로토콜을 얘기해요. 인터넷이 활성화되고 응용프로그램에서 네트워크 통신을 하는 경우가 많아지면서 네트워크 망에서 정보를 주고 받을 때의 프로토콜(표준 규약)이 많아졌는데 Web 프로그래밍은 그중 보통 http/https 프로토콜과 관련된 기술이 적용된 어플리케이션에 대한 프로그래밍을 얘기해요.
따라서 Web Browser/Mobile App/Window Application 에 접속하여 http/https 프로토콜을 통해 서비스를 제공 받는 많은 어플리케이션에서 Web 기술을 사용하고 있어요.
Front End 의 경우 주로 HTML 랜더링 기술(JSP, php, ReactJS, VueJS 등) 등등이 사용될꺼고
Back End 의 경우 주로 데이터 요청/응답/처리 기술(Servlet, Spring, NodeJS, Django 등), 메시징 기술(Web Socket 등), API 기술(Restful, SOAP 등) 등등이 사용될꺼에요.