본문 바로가기

HTML5_JS_CSS

Javascript(Ajax) 개발자에게 필요한 역량

제목을 UI 개발자로 하려다가, Javascript 개발자로 변경했습니다.
정확히 Javascript만을 주로 다루는 개발자는 굉장히 드믑니다. 하지만 웹개발의 이동이 Ajax나 Javascript으로 이동함으로써 Javascript만을 주로 다루는 개발자가 많아지고 있으며 그만큼의 전문성이 웹에서 요구되고 있습니다.
Front-End가 무거워지고 복잡해 짐으로써 비 전문가들의 개발로 인해 웹페이지는 사용자들에게 더 좋은 경험을 주지 못하고 있습니다. 이것은 웹의 발전과 사용자의 경험이 비대칭으로 이뤄지는 형태라서 이것에 대한 책임을 웹개발자가 어느정도 책임을 지고 있어야 합니다.

이러한 문제를 해결하기 위해 3가지를 중점적으로 Javascript 개발자의 필수 역량이라고 생각됩니다.

첫째. 마크업과 CSS
마크업 다시 말해 정적인페이지를 디자인하고 개발하는 것은 UI개발자가 가지고 있어야할 필수 항목 입니다.
Javascript와 HTML&CSS를 각각 전문화된 영역으로만 생각하고 서로에 대한 이해가 없다면 UI개발진행중에 많은 비효율과 혼란이 발생합니다. 즉 CSS로 처리할 수 있는 것을 모른채 Javascript로 하거나, Javascript의 동작원리를 이해하지 못한채 HTML을 구현함으로해서 DOM을 제어하고 이벤트를 조작하는데 어려움을 겪을 수 있습니다.
특히 UI Component(위젯)의 개발에서는 두개의 적절한 조화로움이 있어야만 재사용이 가능한 코드를 개발 할 수 있습니다.
Javascript개발자는 마크업과 css를 같이 개발하는 편도 좋습니다.
그런 상황이 아니라면 반드시 마크업과 CSS의 이해를 Javascript의 이해에 앞서 익혀야 합니다.
앞으로 CSS3에서는 정말 많은 기능을 구현할 수 있습니다.(이전에 Javascript로 삽질했던 것들이 점차적으로 브라우저에서 NATIVE하게 해결됩니다)  이런 상황에서 html/css를 별개로만 생각하면 곤란하겠죠?

두번째. 최적화
이것은 앞서서 이미 포스팅을 썻는데요.
http://nundefined.tistory.com/3
http://nundefined.tistory.com/6
http://nundefined.tistory.com/7

다시 말씀드리고 싶은 사항은 한가지 입니다.
웹의 구현방식의 변화와 함께 최적화해야 할 중요한 부분도 Server-Side에서 Front-End로 이동하고 있습니다. 최적화를 해야 하는 대상이 이미지(그래픽),물리적인방법,웹서버,웹스크립팅,스크립트난독화 등 이런 부분을 과거의 성능엔지니어라는 사람들이 처리 할 수 없습니다.
다양한 직군의 개발자가 각각해야할 것들이 있으며, 이를 전체적으로 컨트롤하고 컨설팅할 수 있고 해야하는 사람은 JavaScript개발자이며, 반드시 그래야만 합니다.
최적화를 공부하세요 ^^

세번째. JavaScript CORE영역의 이해
JavaScript는 사실 중요하지 않고 심지어 JAVA의 스크립트언어로 이해되는 경우도 있습니다.(전혀 그렇지 않죠)
JavaScript  OOP개발이 가능하기도 합니다.어떻게 보면 진정한 객체지향 언어 입니다.
하지만 유연함과 자유로운 특징으로 인해, 비 JavaScript전문가도 개발이 가능합니다. 무슨말이냐면 정확하고 언어의 이해가 깊지 않아도 소위 돌아가는 코드 구현이 가능합니다.
사실은 OOP중심의 언어적인 특징을 잘 살린 JavaScript구현결과를 보는 것은 매우 어렵습니다.
(이런 것이 어렵다면 프레임워크를 사용하는 것만으로도 많은 JavaScript장점을 살릴 수 있습니다)

그럼 JavaScript에서 core란 무엇일까요? <core api모 그런건 아닙니다>
  • EcmaScript이 의해
  • NodeJS 와 같은 서버사이드에서의 JavaScript의 활용
  • 자바스크립트 렌더링 엔진의 이해(브라우저에서 사용중인)
  • Ojbect,Function의 이해
  • 브라우저 호환성이슈에 대한 이해(이것은 중요한 경쟁력입니다. 이것을 버리지 마세요!!)
  • Pattern의 이해(잘못된 패턴을 고르고, 좋은 패턴의 장점을 활용한 코딩 기법)

이상 3가지를 다시 한번 정리해보겠습니다.
  • 마크업과 CSS를 이해하자
  • 웹최적화에 대한 이해를하자
  • 자바스크립트 CORE영역을 이해하자

이것이 제가 생각하는 JavaScript 엔지니어(Front -End Engineer)의 스킬셋이자 역량입니다.
하지만 개개인 마다 생각하는 가치는 모두 다르겠죠. 제가 생각하는 부분을 참고하여 스스로의 스킬셋과 역량셋을 만들어 나가시면 좋겠습니다.



반응형