최근 우리나라도 아직은 아주 활발하지는 않지만 html5 라는 기술이 주목을 받으면서 개발자들이 점차 너도 나도 하는 "앱" 에서 조금씩 웹을 바라보는 것 같다. html5라 하면 웹도 그냥 웹이 아니다. "웹앱" 이지.


웹앱이라는 것은 아직은 생소하지만 앱은 앱이다. 아이폰, 안드로이드 앱처럼 이제 웹 기술도 서서히 발전하면서 네이티브 앱(안드로이드, 아이폰 등 특정 플랫폼에서 동작하는 어플리케이션)의 기능들을 따라잡으려고 하고 있다. 이중 가장 활발한 것은 Sencha Touch 나 jQuery Mobile 같은 모바일 UI 부분이다.

그럼 과연 우리가 네이티브 앱을 대처해서 html5로 완전히 방향을 돌리기에는 적합하는가?

글쎄, 내 개인적인 생각이지만 답은 "현재는 아니다." 이다. 왜 센차 터치나 제이쿼리 모바일 등 웹앱의 세계에서 아직까지 UI , UX적인 부분만 발전을 하는지, 그것을 잘 생각해 보면 사실상 웹앱이라 해도 기능적인 부분은 기존의 웹 서비스를 개발하던 것과 별반 다를게 없기 때문이다. 오히려 기존의 네이티브 앱들 보다 서버측과 데이터 베이스 개발에 신경을 더 써야 할 것이다. 결국 일반적인 웹 개발밖에 더 되지 않는다. 앱 개발자들이 웹앱 개발로 돌아선다? 그러면 서버단 개발을 하지 않는 한 그건 단순 퍼블리셔 정도의 의미밖에 되지 않는다.

앱은 앱 자체가 동작하는 기능이 있다. 네이티브 앱의 기능적인 부분을 웹에서 구현하려면, 자바스크립트 기술을 써야 하겠지만 솔직히 말해 자바스크립트는 오픈되어 있기 때문에 보안적인 것을 고려하면 그닥 구미가 땡기지 않는다. 스크립트, 웹 스토리지 정도의 기능을 쓰면 될까? 웹캐시? 그런것들은 단지 앱이 쓸 수 있는 기본적인 데이터를 가지고 있을 수 있는 수단밖에 되지 않는다.

웹이 앱을 지향한다면, 가장 크게 고려해야 할 것이 "오프라인" 일 것이다. 사람들이 왜 웹앱에 크게 관심이 없는가, 그것을 잘 생각해 본다면 개인적인 생각으론 첫째는 느려서(아마도 3G를 통해 서비스 받을 터이니) 둘째는 인터넷이 안되면 안되니깐. 아마 이 두가지가 가장 클 것이다.

그럼 이 한계를 극복하려면 어떻게 해야 하는가? 결국 오프라인인데, 아직 html5는 데이터적인 측면을 제외하고는 뭐 자바스크립트 함수가 확장되었다고 치지만 결국 오픈이다. 아무리 자바스크립트를 인라인으로 짠다고 해도 그것도 당연 소스를 볼 수 있다. Ajax를 통해 서버사이드 통신을 한다고? 그럼 인터넷이 들어가는데, 그럼 오프라인이 아니다. 그런다고 모바일 웹에서 XecureWeb이 돌아갈리도 없고..

결국, 아무리 개발을 열심히 스크립트로 캔버스 써다가 아주 훌륭한 2D든 3D든 뭔가 앱을 만들었다 쳐도 데이터는 다 빼올 수 있다. 웹앱의 해킹 가능성이 가장 높고, 그럼 너도 나도 똑같은 앱을 만들 수 있다.아이폰의 앱이 그렇게 많은 이유가 무엇인가? 제조사의 철저한 소스코드 보안과(물론 탈옥하면 뚫리긴 하지만) 안정적인 앱스토어? 예를들어 아이폰으로는 패킷 스니핑을 할 수 없으니 서버와 통신하는 URL은 알아내기 힘들것이다. 부가적으로 앱스토어 수익과iOS플랫폼의 수요 등등이 있겠지만 개발적인 입장에서는 내가 만든 저작물을 지키는게 가장 우선이다.

즉, 보안, 최소한의 자바스크립트 보안책에 대해서 html5에서 나오지 않는다면 단일 오프라인 앱으로는 사실 서비스하기 힘들다는 것이다. 이 얘기는 즉 아직 "웹앱" 을 만들 시기는 아니라는 것이다. 현재까지는 HTML5로 우리가 바랄 수 있는 것은 "모바일 웹" 혹은 "크로스 웹" 일 것이다. 결국 서버사이드를 껴야 한다. 거기에 사용자를 배려한 UI/UX(예를 들어 finger touch나 애니메이션 기능)를 통해 "컨텐츠" 로 승부를 걸어야 한다.


기존에 웹도 마찬가지이다. 비록 쓸때없이 Active X나 플래시 등 비표준 플러그인이 좀 껴서 지저분해지긴 했어도 HTML5가 이제 이 비표준 플러그인을 꼭 써야하는 부분, 기존까지 RIA(Rich Internet Application)이라 불려온 리치한 부분들을 커버해 줄 것이다.

그래서 생각건데 아직까지는 웹앱으로 가려는 사람들은 웹앱(클라이언트) 측면에서는 서버사이드와의 안정적인 TR송수신, 데이터 싱크 등 그런 부분에 집중하고 그 전에 아주 안정적인 서버를 구축하려는 노력을 먼저 하는 것이 더 낫다고 생각한다. 왜냐면 우선 "웹앱" 으로 간다고 생각하는 사람들은 자신이 가지고 있는 기술은 웹 관련 기술인데 "앱"을 생각하면 아이폰 앱처럼 뭔가 개인 혹은 소규모에서 만든 앱의 성공적인 모습을 떠올릴 것이다. (필자 또한 그렇다.) 그런데 아직 스크립트 보안이 강화가 되지 않았으니 html5는 웹의 크로스 뷰어로써 역할밖에 되지 않는다. 모든 화면에서 최적화되게 보이는 웹이 가장 중요시 되는 것이다.

그런데 서버단까지 해야 하냐? 웹앱은 일반 웹처럼 큰 규모로 만들어야 하는 것도 아니고, 통일된 템플릿 내에서의 정보 제공이 가장 중요하다. 클라이언트로 정보를 전달해 주는 "표준" 만 잘 설계한다면 아주 빠른 개발이 가능하다. 그래서 서버단을 알고 C/S를 빠르게 개발할 수 있는 능력이 필요하다는 것이다.

그리고 좀 더 여건이 된다면 최근 나오는 모바일 UI프레임워크를 접하여 최소한의 UI정도는 만들 수 있도록 하고 modernizr나 미디어 쿼리 등을 배워서 어떤 화면 규격에도 컨텐츠를 보여줄 수 있도록 하는 능력이 필요하다. 뭐 물론 요즘 드림위버 CS 5.5에서는 jQuery Mobile 통합과 미디어 쿼리 제공으로 보다 쉽게 만들 수 있지만, 이런 툴은 지속적으로 나오겠지만 정작 이런 기능들은 생각보다 이해하기 쉽다.


정리해보면 이렇다. 우선 안정적으로 스크립트 보안 혹은 대처 수단이 나오기 전까지 오프라인 저장소 등에 의존하지 않고 당장은 나올 웹앱들은 다 Ajax와 URL을 기반으로 하는 서버와의 통신, 즉 html5가 크로스 브라우저/디바이스 가 가능한 뷰어의 역할을 할 테이니 " 빠른 개발과 안정적인 C/S통신을 위해 서버군과 모바일 UI프레임워크, 크로스 브라우징에 대하여 공부한다. 그리고 향후 스크립트 보안 등이 강구가 되었을때를 대비하여 jquery, prototype등 자바스크립트 라이브러리를 공부한다. "

이렇게 적어놓고 보니 사실 모바일 UI나 크로스 브라우징/디바이스 를 제외하고는 웹 개발을 위한 공부밖에 더는 없다. 결국 html5, 웹앱도 "웹" 아니겠는가. 앞으로 우리의 디바이스는 갈수록 빨라지고 계속적으로 온라인 상태를 유지하게 될 것이다. 보이는 곳이 어떻게 됬던 간에 웹에서 변하지 않는 부분은 컨텐츠를 저장하거나 제공하는 서버군과 데이터 베이스군은 분명 존재한다는 것이다. 

결론은, 아직은 HTML5가 네이티브 앱을 따라가려고 열심히 노력중이니 그 전에 웹의 기본에 충실하자. 그리고 슈퍼 웹 개발자가 되자.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 메튜장

트랙백 주소 http://izect.kr/trackback/675 관련글 쓰기

댓글을 달아 주세요

  1. 나의별 2011/12/02 09:22  댓글주소  수정/삭제  댓글쓰기

    좋은글 감사합니다. Web gl에 관심히 있어서 html5를 고민했었는데 선수과목이 잘정리되어 있네요^^


올해로 24살. 항상 나이를 강조하는 나는 아무래도 나이에 따라 이 사회에서 느낀 바가 많은가 보다. 이 사회란 앞으로 설명할 기반이 되는 바로 IT(웹쪽) 사회.
지금은 회사에서 이직이 처리중인지라 조금 조심히 이야기 하고 싶다. 허나 내가 느낀 바를 솔직히 적겠다.


프로그래밍을 배우며, 지금 사회에서 가장 쉽게 전향할 수 있는 길이 웹 프로그래밍이라고 생각하는 사람이 적지 않다고 본다. 실제로 지금 내가 일하는 이 웹 바닥에는 아주 얕은 지식만으로 웹 프로그래밍을 한답시고 온 사람들이 적지 않으니깐. 웹 프로그래밍은 딱히 전공이 정해진 것도 아니다. 70년생들의 경우는 닷컴 시대를 거쳐온 사람들이면 되고, 80년생들은 전문 기관에서 돈좀 주고 수료하면 나름대로 자격이 주어진다. 거기다 자격증도 나름 우대해 준다. SCJP나 OCP같은 자격증들. 열심히 준비해서 xx학원 수료에 SCJP나 정보처리기사 등을 따 둔다.


그리고 사회에 나간다. 이들을 반겨줄 사회는 얼마든지 있다. 물론 "계약직"으로 말이지. 실제로 이들은 SM(유지보수)업무를 한 두번 하다가 실증나서 무조건 SI업무를 하려는 경향이 있다. 아, 70년 세대들 중 아직도 개발을 하는 이들은 편하게 살기 위해 SM업무를 선택하는 경우도 있지만 말이다.



내가 자만하고 싶지는 않다만, 정말 이들 중 프로그래밍이 재밌어서 하는 경우가 얼마나 될지 의심스럽다. 물론 내가 정말 제대로 SI쪽에 파뭍혀 본 것은 아니지만, 나름대로 1년 넘게 SM업무를 하면서 느낀건데, 이들은 단지 빡빡한 스케줄에 쫓기며 로직에 욕심은 있지만 스케줄 때문에 그들은 엉뚱한 코드와 메모리를 낭비해 가며 코드를 짜낸다. 그리고 나중에 SM을 하는 사람이 보면 정말 뜯어 고치고 싶어 미칠 지경이 될 정도니깐 말이다.


그들은 어떤 목적으로 살까? 아니면 내가 배부른 생각을 하는 것일까. 사실 나 조차도 프로그래밍을 할 떄에 그 로직을 짜는 일은 너무나도 재밌는데, 단순 노가다나 단지 스케줄을 맞추기 위한 프로그래밍은 줘도 하기 싫을 때가 많다. 그런데 그들이 항상 하는 일은 그렇다. 나는 도무지 이해가 가지 않는다. 아무리 프로그래밍이 나름대로 블루 오션이라고(지금은 아니겠지만.) 하지만, 그렇게 재미없이 할 바엔 안하는게 낫지 않을까? 굳이 돈만 바라고(그렇다고 돈도 많이 주는 것도 아냐. 이 바닥이 얼마나 박봉인데.) 그렇게 힘들게 살아갈까.


항상 프로그래밍을 하면서 느낀 것인데, 즐겁게 해야 한다는 것을 깊게 느낀다. 웹이든 뭐든 간에 많은 것을 고려하고 짠 프로그램 치고 못난 것이 없다고, 그렇게 만드려면 내 프로그램에 대한 애정이 있어야 한다. 그런데 단순히 결과물만 내뱉고 싶어서 제작한 프로그래밍이 어찌 좋은 프로그램이 될 수 있겠는가?


10여년을 프로그래밍을 하고 살아왔다만, "실무"에 있어서 느끼는 개발자에 대한 마인드는 위와 같고 이제 업계에 관해 한마디 하고 싶다. 왜 이리 쉬운것도 그렇게 복잡한 절차가 수반되는 것인가?



회사를 다니면서 사실 프로그래밍보다 많이 한 작업이 바로 문서화 작업 같다. xx계획서, 설계서 등등.. 물론 프로그래밍 역시 설계를 하고 들어가야 하는 것이 맞긴 하다. 수 많은 소프트웨어 방법론에서도 많이 나와있지만 말이다. 하지만! 이런 것들이 결론적으로는 개발 시간을 너무나도 쪼아먹는다는 말이다. 문서화 작업만 한 50%는 넘게 들 것 같다. 꼭 이렇게까지 문서화를 해서 그 수 많은 결제 라인과 보고 라인을 타고 들어가야 하나?


물론 내 기준은 대기업 기준이긴 하다만.. 결국 개발자들은 저런 문서 쓰다가 지쳐서 전문용어를 남발하고, 결국 고객사나 개발사나 결론적으론 눈에 보이는 디자인 같은 부분만 신경쓰다가 끝나버린다. 그런데 왜 꼭 개발자가 끼어야 하냐는 것이다. 개발 환경까지는 몰라도 설계 부분을 신경써줄 것이 아닌데 구태어 껴들 이유는 뭔데.


아주아주 솔직히 말하면 이 개발 바닥에 너무 열정이 없는 개발자들이 투성이라는 것이다. 편한 것만 찾고, 뭐 툭하면 NONO만 연발하고, 뭐 짜증나면 개발자 커뮤니티에나 가서 하소연이나 하고. 자신의 현재 위치를 찾기 보다는 상황을 어떻게 해결할 것인가에 대해 고민했으면 좋겠다. 그리고 제발 열정!! 개발자에게 정말 필요한 것이 열정인데, 왜 이바닥엔 그리 열정 있는 사람 찾기가 어려울까..? 솔직히 대기업 계열사는 아예 GG쳤다. 그들은 PM을 위해 키워지고 개발에 대해서는 거의 배우지 못한다. 중견이나 중소기업에서 말이다. 대체 이 바닥에 열정있는 사람은 다들 어디로 간 것입니까.


그렇다고 내가 열정이 그리 깊다고 말할 수도 없다. 하지만.. 정말 내가 속해 있는 이 업계를 보며 정말 깊은 한숨만 몰아친다. 뭐 하긴 나 조차도 1년이 지나서야 방향성을 찾고 좀 나아가려고 하는 판국인데.


웹의 문제는 아무래도 웹이 빠르다 보니깐 그 수 많은 기술들이 정말 엄청나게 빠르게 나온다는 사실이 아닐까? 그러다 보니 아무리 최신 개발자라도 금방 구닥다리 개발자가 되어 버리고 말이다.


그럼 우리 웹 개발자들은 어떻게 대처해야 할까? 일단 아무래도 자신의 방향성을 빨리 잡아야 하지 않을까. 그리고 그 기반에 있어서 수 많은 기술들을 판가름 할 줄 알아야 하고, 기술 동향 전문 블로그미디어 등에 대해서 수 없이 정보를 캐치해야 하고. 그리고 자꾸 써먹어 버릇 해야 한다. 익숙하다고 해서 그것만을 고집하면 발전이 없다. 최근 내가 작년부터 배워온 jQuery를 어느 자바스크립트에서나 써먹으려고 얼마나 노력한지 모른다. 결과는 좋았지만. :)


여튼 이 웹 개발사회.. 아직은 답이 뭔지 모르겠지만 한가지는 확실하다. 프로그래밍 세상에서 가장 기술이 빨리 발전하는 곳. 그리고 가장 사람들의 이목이 집중되는 곳이 바로 이 웹 세상이다.


그런 의미에서 우리 웹 개발자들이 자신들의 로드맵만 충분히 잘 설계한다면?
그건 바로 IT의 혁신 기술을 이끌 수 있는 개발자로 나아간다는 의미가 아닐까?


그래서 오늘도 난 웹 개발을 한다 ^^
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 메튜장
 TAG jQuery, , 웹개발

트랙백 주소 http://izect.kr/trackback/571 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://hooeni.tistory.com BlogIcon 예감좋은 2011/02/28 02:23  댓글주소  수정/삭제  댓글쓰기

    글 잘 읽었습니다. 저도 웹 개발자가 되어 보려고 노력하고 있는 1년차 웹 프로그래머 입니다. 프로그램 하면서 이런저런 생각들 많이 들었었는데 글 읽고 나니 왠지 많이 도움이 되는것 같네요..^^

이전버튼 1 이전버튼



블로그 이미지
html5,모바일웹,웹앱,자기브랜드,시간관리 등을 다룹니다.
메튜장

Yesterday198
Today90
Total478,685

달력

 « |  » 2012.02
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29