STUDY

[용어] 웹서비스 관련 정리

sorrow16 2019. 12. 10. 12:01
728x90

1.서버 컴퓨터

기본적으로 웹서비스란 서버 컴퓨터에 있는 컨텐츠를 사용자가 클라이언트 컴퓨터로 접속하게 됩니다. 클라이언트는 사용자들의 PC나 휴대폰, 태블릿등이 되고 사용자가 준비하게 되죠. 그럼 서버컴퓨터는 서비스를 하는측에서 준비하게 됩니다.

​ 서버가 서버로 동작하기 위해서는 컴퓨터가 항상 외부에서 접속이 가능한 상태여야 합니다. 때문에 전원관리가 필요하고 고정IP가 확보되야 하고, 네트워크 트래픽이 확보되야 합니다. 그래서 개인 PC의 사양으로도 서버를 돌리기가 불가능한것은 아니지만, 보통은 더 안정성에 치중한 서버용 컴퓨터를 전원과 네트워크가 제공되는 IDC에 두고 쓰게 됩니다.

​ 그런데 규모가 작은 서비스를 준비하거나, 개인용 프로젝트를 할때는 컴퓨터 한대가 다 필요하진 않죠. 그래서 이 경우에 호스팅 서비스를 이용하게 됩니다. 서버를 대량으로 보유하고 있는 업체에서 이용료를 내고 일정기간 사용하는 방식입니다. 보통은 일반 호스팅 서비스를 받다가, 서버 한대를 통채로 임대하는 서비스를 쓰게되고 서버를 여러대를 쓰게되면 직접 서버를 구매해서 IDC에 세팅하는 형태로 흘러가게 됩니다.

​ 2. 서버 OS

서버도 컴퓨터이다보니 OS가 필요합니다. 데스크탑 OS는 윈도우가 대부분을 차지하고 있지만, 서버용 OS는 크게 세가지로 나뉩니다. 윈도우, 유닉스, 리눅스. 윈도우는 마소에서 만든 그 윈도우 맞구요. 리눅스는 유닉스를 기반으로 만든 무료 서버 OS입니다. 무료에 확장성이 좋다보니 사용처가 꽤 많은편입니다. 


3. Web 서버

클라이언트 PC에 이미지를 보여주기 위해서는 서버에 해당 이미지 파일이 올라가 있어야 합니다. 그 이미지 파일이 위치하는곳이 웹서버이고 보통 http 프로토콜을 통해 전송하게 됩니다. IIS, Apach 등이 웹서버의 주요 제품명입니다. IIS의 경우 윈도우에, 아파치의 경우 리눅스에 최적화되어 있다고 보시면 됩니다.


4. Was 서버

웹서버가 정적인 컨텐츠의 처리을 담당한다면, Was 서버는 동적인 컨텐츠의 처리를 담당합니다.주로 PHP, JSP등의 개발언어로 작성된 웹 응용프로그램을 처리하게 되죠. 주요 제품으로는, 톰캣, 웹로직, 제우스 등이 있습니다. 보통은 리눅스-아파치-톰캣-자바의 형태로 함께 사용합니다. 그리고 윈도우-IIS-ASP 의 형태로 묶이게 되죠. (IIS의 경우에는 웹서버가 와스서버의 기능을 포함하고 있습니다)


5. 데이터베이스​

웹서비스는 결국 데이터가 쌓이게되고 이 데이터를 관리하기위한 프로그램이 필요합니다. DB부터는 시스템 사이드지만 기획쪽도 많이 듣고 생각해야 하는 범위겠네요. 주요 제품으로는 오라클, Mysql, Mssql 등이 있습니다. Mysql이 무료라 가장 인기가 좋고, 보통 규모가 있는 프로젝트에서는 오라클을 많이 씁니다. 몇년전까지만 해도 '웹서비스=APM' 이라는 등식이 성립할 정도였습니다. APM이란 Apache, PHP, Mysql의 앞글자를 딴 약어로 그만큼 사용자가 많았었는데 개발언어 트렌드가 자바로 넘어온 이후엔 듣기 힘들어졌네요.


6. 기획

클라이언트의 요구사항이건, 대표님의 지시건, 본인의 아이디어건 웹서비스의 내용을 구상합니다. 시장상황에 대한 분석이나 경쟁사에 대한 벤치마킹에서부터, 서비스를 이용할 사용자의 사용성적인 측면, 그리고 최종적으로 브라우저 화면에서 보여줄 화면의 구성까지 이 단계에서 진행합니다. 쉽게 웹기획자 라는 직군으로 정의하지만, 기획에서 담당하는 업무에 따라 세부적으로 나뉘게 됩니다. 이를테면, 전략기획이나 사업기획, 서비스기획 또는 제안기획, 화면기획 등등으로 나뉘어 집니다.

​전략이나 사업에 대한 부분을 배제하고 웹서비스의 구현에 대해서만 생각하면 웹기획자의 역할은 결국 구체화고 그 구체화하기 위한 작업지시서를 실 작업자들에게 전달하고 커뮤니케이션하는 것이라고 정의할 수 있겠습니다. 소통하기 위한 도구요? 책상에 앉아서 죽어라 쓰시는 SB, WireFrame이 바로 커뮤니케이션팩 입니다.


7. 디자인

길게 설명할건 없겠죠. 웹서비스의 화면을 디자인합니다. 포토샵이나 일러스트레이터 등으로 목적에 맞게 화면을 그려내고, 이후 작업자들이 그려낸 화면을 웹브라우저에 옮겨서 구현하게 됩니다. 예전에는, 좀 더 정확하게는 현재의 CSS 코딩이 아닌 Table 코딩을 주로 사용하던 시절에는 웹디자이너가 8번의 퍼블리싱을 함께 수행하곤 했습니다. 당시에는 웹표준도 그리 큰 이슈가 아니었고 크로스브라우징 같은건 아무도 신경쓰지 않았죠. 그래서 퍼블리싱(=코딩)의 전문성이 낮았고, 별도의 직군으로 성립되지 않고 디자이너가 겸업을 했었죠. 또한 플래시가 한참 쓰이던 시절에는 디자이너의 모집요강에는 플래시 가능자 라는게 자주 들어가 있기도 했습니다. 그런데 플래시에 액션스크립트가 자주 사용되면서 별도의 플래셔라는 직종이 생겨나고, 이후 스마트폰 시대로 넘어와서 플래시가 사양길에 접어들게 됐죠.


8. 퍼블리셔

퍼블리셔라고도 Front-end 개발자 라고도 합니다.디자이너가 만들어낸 이미지 파일들을 웹브라우져에서 '잘' 보이도록 하는 사람들입니다. 예전 테이블 코딩 시절에는 기본적인 HTML 문법만 알아도 어렵지 않게 표현할 수 있었기 때문에 전문성이 없었지만, IE와 파폭만 존재하던 브라우저 시장에서 크롬이 시장을 갈라먹기 시작하고, 모바일 플랫폼이 등장하면서 오페라 사파리등의 브라우저도 대두되면서 동일한 HTML 마크업을 브라우저에서 렌더링하는 방식이 모두 조금씩 상이했기 때문에 표준코딩의 중요성이 대두됐습니다. 또 국내 기준으로는 장애인차별금지법과 관련해서 웹접근성 이슈도 있었기 때문에 최근 몇 년은 퍼블리셔들의 위상이 한껏 높아졌습니다.

​ 웹브라우져에 이미지와 텍스트 컴포넌트등을 배치하고 동작하게 하기 위해 HTML, CSS, Javascript 등의 언어를 사용합니다. 사실 초반에만 해도 퍼블리셔와 개발자가 Javascript가 어느쪽의 롤이냐고 하면서 많이들 싸웠는데 요즘은 잘 못본것 같네요. 클라이언트 PC에서 동작하는 프로그램이니 퍼블리셔가 담당하는 쪽으로 대세가 기운듯 하네요. (그런데 또 재미있는건 요즘은 Node.js 때문에 저런 형태의 개발이 의미없어지긴 했네요)



9. 분석/설계

조금 의아하게 생각하실수도 있겠지만, 9는 기획쪽에서 생각하는 분석과 설계가 아닌 시스템 분석, 시스템 설계, DB설계 라고 생각하시면 됩니다. 웹서비스에서 필요한 목적이나 기능등을 분석하고 어떤 기술로 구현할것인지 정의하고, 데이터는 어떤 형태로 쌓을것인지 등등을 개발하기 전 정의합니다. 이 단계의 담당자는 프로젝트의 규모에 따라 달라지게 됩니다. 일반적으로 큰 규모의 대기업 프로젝트를 진행하는 경우에 '아키텍트' 라는 직군의 사람들이 담당합니다. 



기획자의 분류만큼이나 설계자 아키텍트의 분류도 많습니다. IA, DA, TA, SA, AA 등등. 사실 각각 개별적으로 무슨일을 하는지는 모르겠지만, 보통은 주로 개발팀과 컨택해서 어떤방식으로 개발할것인지에 대한 지침을 내리곤 합니다. 규모가 조금 작은 프로젝트라면, PM이나 개발 PL 등이 이 역할을 담당합니다.

10. 개발

퍼블리셔가 브라우저상의 버튼을 누를 수 있는 화면을 만들어낸다면, 개발자는 그 버튼을 눌렀을때 어떤 액션을 실행하느냐를 구현합니다. 웹서비스를 진행하는데 있어서 가장 마지막을 담당하게 됩니다. Front-end 개발자와 상반되는 의미로 Back-end 개발자라고도 부르기도 합니다. asp, php, jsp 등의 개발언어를 주로 사용해서 코딩작업을 하며, 프로젝트나 서비스의 규모에 따라 1~5, 9, 10의 역할까지 담당하는 경우도 있습니다. 사실 근본적인 의미의 웹서비스의 정의를 서버에 있는 컨텐츠를 클라이언트에게 보여주는것이라고 할 때 가장 중요한 역할이라 해도 과언이 아니겠지요.

728x90