웹서비스와 직군에 대해 정리 [출처] 웹서비스와 직군에 대해 정리. (WWW를 만드는 사람들) |작성자 Loo

자주 올라오는 떡밥으로 기획자는 개발을 알아야 하나요? 라는 질문이 있습니다.
대부분의 경우 본인의 경험에 비추어 맞다 아니다 갑론을박 하게 되는데요, 

전 당연히 알아야 한다고 답변합니다. 단순한 비교의 문제를 선택이나 우선순위로 치환하니까 이견이 나오는거죠.기획자가 만들어내는 대부분의 것 들은 최종적으로 개발자가 구현하게 됩니다. 알고있는게 모르는것 보단 유리합니다.

기획자가 디자인을 알아야 하나요, 마케팅을 알아야 하나요 하는 질문은 나오지 않습니다. 쉬워보이고 별도의 기술이 필요하지 않기 때문이죠. 하지만 개발을 알아야 하나요, 퍼블리싱을 알아야 하나요 라는 질문은 심심찮게 보입니다. 이건 체득하기 위해 공부와 실습이 필요하기때문에 하지 않아도 될 이유를 찾고 근거를 얻기위해 비슷한 환경에 다른 사람에게 질문하는 것 뿐입니다. 

좀 더 자세하게는 디자이너에게 작업요청을 할때는 단순히 웹서핑을 통해 얻은 디자인트렌드에 대한 지식이나 본인의 느낌으로 커뮤니케이션 하면 됩니다. 깔끔한 플랫디자인으로 해주세요. GNB는 조금 씬하게 하고 메인컨텐츠 영역에 포인트를 잡아줴요. 조금 더 가벼운 색상을 사용해 주세요 등등. 마케팅적인 이야기요? 4P 니 SWOT이니 하는 용어에 대한 이해와 경제연구소에서 나오는 보고서들만 읽고 이해해도 커뮤니케이션하는데는 무리가 없습니다. 대부분은 저만큼도 안알아보니까요. 

그런데 퍼블리셔와 개발쪽에 가면 이야기가 달라집니다. 두 직군은 Frontend 개발자와 Backend 개발자라는 코딩이라는 언어를 사용하는 인종이기 때문에, 쉽게 하던대로 이야기하면 의사소통이 어려워집니다. 또 개발자가 말하는 내용이 알아보기 힘들어지고, 짜증을 내고 하면 그때 이 질문이 뇌리를 스치죠. 아, 개발을 알아야 하나?

기획자가 직접 코딩을 해서 헬로월드를 찍고, 구구단을 출력하고 하라는게 아니고, 개발의 경우 웹서비스의 구조나 프로세스 논리, 퍼블리싱의 경우 각 컴포넌트들의 용도와 활용처, 적용 트렌드, 브라우저별 렌더링 방식의 차이, 정형화된 패턴 UI의 명칭 등등을 알아두면 미스커뮤니케이션이 대폭 줄어듭니다. 그럼 당연히 업무효율이 늘어나고, 야근이 줄어드는거죠. 

다만, 년차가 좀 있으신 분들의 경우에 개발에 대해 아는것보다 더 중요한것이 있다 라는 우선순위에 대한 내용으로 답변을 하는 경우가 있는데 이는 바라보는 시점에 따라 다른것이니 길게 설명하진 않겠습니다.

----

웹서비스와 관련된 직군에 대해 쓰려다가 서두가 너무 길어졌네요.단순하게 개발이다 디자인이다 기획이다 이런게 아니라 웹에 페이지를 띄우는 일련의 행동에 어떤 직군의 사람들이 관여하는지 정도로 넓게 이해하시는데 도움이 되려는 의미로 간략하게 정리해봅니다.

시간이 되실때 항목별로 검색하시면 제가 쓴 글 보다 훨씬 자세하게들 설명된 글들이 많으니 알아두시면 도움이 될듯 하네요.


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

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

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


* 이거 쓰다보니까 진짜 양이 너무길어지네요. 10분만 쓰려고 했는디... 그래서 뒤는 간략하게


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의 앞글자를 딴 약어로 그만큼 사용자가 많았었는데 개발언어 트렌드가 자바로 넘어온 이후엔 듣기 힘들어졌네요.



1-5 까지는 웹서비스를 하기 위한 기반작업입니다. 규모가 조금 큰 프로젝트의 경우에는 서버 구축부터 하기때문에 1-5가 모두 포함되고, 규모가 작은 경우에는 호스팅을 사용하는데 이 경우에는 이런 기반작업들이 모두 세팅되어 있어 바로 서비스 개발을 진행할 수 있죠. 또 최근에는 클라우드 서비스와 맞물려서 아마존의 'AWS'나 구글의 'GAE'도 웹서비스를 위한 서버구축 및 서버프로그램 설치를 대체하기도 합니다.



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의 역할까지 담당하는 경우도 있습니다. 사실 근본적인 의미의 웹서비스의 정의를 서버에 있는 컨텐츠를 클라이언트에게 보여주는것이라고 할 때 가장 중요한 역할이라 해도 과언이 아니겠지요.

===========================
 
본인이 속해있는 회사의 종류나 유형에 따라 단계가 축약되거나 생략될수는 있지만 보통은 저런 흐름으로 흘러갑니다. 많은 분들이 6번 이후부터만 생각하실텐데 프로젝트에 따라 조금 더 넓은 범위를 알아야 하는 경우도 있으니 알아두시면, PM이 포함된 전체 회의나 개발회의에서 쟤네들이 뭔얘길 하나 멍하니 있는 경우는 줄어드실겁니다.



덧 1. ERP니 SAP이니 Legacy니 인터페이스니 배치니 하는 용어들에 대해서도 설명하려 했지만 그건 걍 스킵...
덧 2. SM 기획/운영인 경우에는 기 구축된 시스템을 유지보수 하는 것이 주 업무이기 때문에 위의 항목 중, 6,7,8,10만 주로 수행하게 됩니다. 
덧 3. 브라우저 열어넣고 하염없이 쓴글이나, 오타나 틀린부분이 있을수도 있겠습니다. 이몸이 늙고 쇠하여 퇴고할 기력이 없습니다. 틀린부분은 정정들 해주셔요ㅠ
덧 4. 카테고리를 못정하겠어서 걍 자유롭게 톡해요에 올렸슴다. 옮겨야되면 다른데로 보내셔도 됨미다ㅠ

댓글

이 블로그의 인기 게시물

iOS 아이폰용 앱 개발을 위한 디자인시, 디자이너가 참고 해볼만한 사항들

스냅드래곤 기반 크롬북, ‘트로그도어’ 개발 중

[펌] '악마는 프라다를 입는다'의 진짜 명대사