javascript
가 어떤 것인지 잘 모르시는 분들을 위해 간단하게 설명부터 먼저 진행하도록 하겠습니다.
자바스크립트(JavaScript)는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다. 자바스크립트는 본래 넷스케이프 커뮤니케이션즈 코퍼레이션의 브렌던 에이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발하였으며, 최종적으로 자바스크립트가 되었다. 자바스크립트가 썬 마이크로시스템즈의 자바와 구문(syntax)이 유사한 점도 있지만, 이는 사실 두 언어 모두 C 언어의 기본 구문을 바탕했기 때문이고, 자바와 자바스크립트는 직접적인 관련성이 없다. 이름과 구문 외에는 자바보다 셀프와 유사성이 많다.
위키백과에서는 위와같이 설명하고 있습니다.
과거 2000년대 초반에 웹이라는 시장이 활성화되는 시기쯤에 javascript는 우리와 함께 있었습니다. 웹페이지에서 눈이 날라다닌다거나, 오른쪽 클릭 금지라던가 등등 (20대 후반이상의 나이를 가지고 계신다면 잘 아실 듯 합니다)
javascript가 웹페이지에서 간단하게 사용될 때에는 그렇게 유명하지 않았습니다. 또한 javascript언어를 사용할 줄 아는 사람들의 평가도 당연히 높지 않았습니다. 그러나 웹, 모바일 시장발전과 함께 보여지는 것이 점점 중요해지면서 javascript의 중요도가 폭발적으로 성장했습니다. javascript로 웹페이지에 화려한 애니메이션의 동작들을 표현할 수 있으며, 보안이 중요한 서버의 역할, 데이터저장의 방식까지 javascript의 영역이 계속 넓어져가고 있습니다.
왜 과거에는 javascript가 지금처럼 대접받지 못했을까요? 지금은 스크립트형식의 언어라고 해서, 뭔가 엄청 유연한 방식의 언어들을 선호하고 있습니다. 하지만 과거에는 javascript같은 자유로운 언어는 전통이 없는 것처럼 분류되었고, C/C++, Java와 같은 언어들이 가지고 있는 딱딱함과 객체단위를 지향하는 언어들이 더 신사적인(?) 느낌이 있었던 것 같습니다.
이렇게 설명드렸듯이, javascript언어는 뭔가 정리되지 않은 느낌과 이렇게 작성해도 되나라고 할 정도로 엄청 유연하게 작성하고 동작합니다. (이로 인해 유지보수가 힘들고, 오류수정하기가 까다로운 단점도 있기는 있습니다.)
모바일이 발전하기 전. 즉, 스마트폰이라는 것이 등장하기 전까지는 사용자의 요구사항들이 어느정도 정리가 가능하고 설계대로 진행할 수 있었습니다. 객체지향으로 설계가 가능하다는 뜻이죠.
그런데 스마트폰등장과 함께 모바일시장이 성장하면서 기술발전과 요구사항을 바로 반영할 수 없는 상황에 다다르면서 객체지향설계의 한계점이 보이기 시작했습니다. 그러면서 python, ruby, javascript, scala, swift 등 이러한 언어들이 많이 등장했습니다. 이러한 언어들의 장점은 사용자, 기획자의 요구사항반영하고, 설계의 구조를 변경하는 것이 어느정도 유연하다는 것입니다. 그리고 javascript로 무언가를 개발함에 있어서 타 언어들의 비해 많이 제약이 없기 때문에 정말 많은 분야에서 사용될 수 있습니다.
이 포스팅을 읽고 계신 분들에게 javascript로 도대체 어떤 것들이 가능하며, 이 언어를 다루게 되면 정말 세상을 지배할 수 있을 것이라는 공감을 나눠보려 합니다.
모든 프로그래밍 공부와 비슷하기 때문에 시작하는 것은 어렵지 않습니다. if
, switch
, for
, while/do~while
, function
들의 대해서 사용방법을 알고, 기본적으로 간단하게 코드를 작성할 수 있으면 어떤것이든지 시작해볼 수 있습니다.
혹시 이 글을 보시면서 javascript라는 언어에 흥미가 생길 것 같으신 분들은 이고잉
님이 운영하고 계신 아래 링크를 통해 기본적인 홈페이지 개발까지 어렵지않게 배우실 수 있습니다.
위에서 잠깐 설명했듯이 생활코딩
에서 학습한 뒤에는 HTML, CSS, JavaScript를 이용하여 간단한 웹페이지를 만드실 수 있습니다.
과거에는 웹개발중 Front-end분야는 단순히 보여주는 페이지, 정적페이지로의 역할만 했다면 지금의 Front-end는 웹페이지에서 게임까지 제작가능할 정도로 현란한 UI도 가능해졌습니다. (그만큼 몸값도 상승중(?))
또한 요즘은 Front-end관련 라이브러리, 프레임워크들이 오픈소스로 많이 공개되어 있어서, 어느정도 지식과 학습만 한다면 Facebook같은 서비스도 만들 수 있을 겁니다! (열심히 한다면요!)
Front-end를 유용하게 개발하기 위해서 좋은 오픈소스 몇개를 추천해드리겠습니다 : )
기존 ASP, PHP, Java등의 언어로 웹개발의 뒷부분을 담당했다면, 이제는 javasciprt로도 저 언어들을 교체할 수 있습니다. node.js라는 플랫폼이 등장하면서 javascript로 모든게 가능해졌습니다. node.js뒤에는 c언어로 작성된 core들이 있기 때문에 처리속도도 어느정도 보장해주고 있습니다. 다만 싱글스레드로 처리되기때문에 자주 문제언급이 되기도 하지만 개발방법에 따라 이를 극복하며 나아가고 있습니다.
node.js위에서 javascript로 서버개발을 하면서, 같이 사용되는 라이브러리도 셀 수 없을 정도로 많이 때문에, 이제는 javascript언어로 서버개발을 안할 이유가 없어졌습니다.
하이브리드라는 단어가 요즘 많이 듣고 계실겁니다. IT쪽 모바일에서 하이브리드앱이라는 말이 있고, 이는 웹과 네이티브앱을 적절하게 섞어서 빠른속도로 비슷하게 모든 모바일플랫폼의 결과물을 말하고 있습니다.
iOS는 Objective-c, swift언어를 이용하여 개발하고, Android는 Java, Scala, Kotlin언어를 이용해서 개발하고 있습니다. 하지만 javascript를 이용하여 iOS, Android, 그 외의 모바일플랫폼개발이 가능하다면?. 네 맞습니다. 안할 이유가 없습니다. core가 따로 있고, 그 위에 javascript로 작성하여 여러가지 모바일플랫폼으로 앱들을 제작할 수 있습니다.
하이브리드앱을 개발할 수 있는 서비스들이 많이 존재하고 있고, 여러가지 중에서 마음에 드는 것을 선택하여 시작하시면 됩니다. 대표적인 서비스들 몇개를 알려드리도록 하겠습니다.
각 PC OS들의 특성이 너무나도 다르기 때문에 이부분은 각각 맞는 언어로 개발할 수 밖에 없었습니다. 그러나 이제는 이 부분도 javascript를 통해 3개의 PC플랫폼을 개발할 수 있습니다. 과거 조용하게 시작했던 node-webkit이 있었는데, 어느순간엔가 electron으로 옮겨갔고, 지금은 많은 PC서비스들이 electron으로 개발되고 있습니다. 국내 스타트업들의 PC서비스도 electron으로 개발되어져서 배포되는 서비스들이 많이 있습니다.
electron의 장점이 PC버전 스타일대로 개발도 가능하며, 이 것도 귀찮다면 기존에 만들었던 웹서비스를 통째로 얹을 수도 있습니다.
IT쪽 개발관련업무를 하고 계신다면 JSON이라는 단어는 많이 들어보셨을 겁니다. JSON
은 Java Script Object Notation
의 약자로 자바스크립의 데이터형태를 그대로 사용하고 있습니다.
바로 이러한 형태로 말이죠.
데이터형식이 단순하면서도 직관적이기 때문에 데이터전달용으로 많이 쓰이는데, 큰데이터를 저장하기위한 DataBase용도로도 사용되고 있습니다.
대표적으로 DocumentDB라고 불리는 MongoDB가 있는데, 정보를 전달받기 위해 질의를 요청하면 응답형태가 JSON형태로 옵니다. 질의 조차도 javascript문법을 이용하고 있습니다. 기존 타 DB를 이용하게 되면 질의를 요청하기 위해 SQL문법을 새로 학습을 해야하는데, 이러한 부분에서 javascript는 장점을 가지고 있습니다.
최근 node.js에서 Realm을 사용하는 방법의 대해서 몇몇 포스팅을 볼 수 있는데요. Realm은 모바일데이터베이스로 각 데이터들을 오브젝트 단위로 관리하는 플랫폼입니다.
node.js에서 Realm을 활용하여 데이터들을 관리할 수 있는데, 다른 언어를 학습할 필요없이 javasciprt를 이용하여 쉽게 사용이 가능합니다. (Realm core에서는 많은 일을 하겠지만요)
SQL을 당장 배우는데 고민하고 계시다면 javascript로 먼저 쉽게 배울 수 있는 DB들을 활용하는 것은 어떨까요?
초소형 컴퓨터라고 불리는 라즈베리파이
라고 뉴스에서 가끔씩 보셨을 것 같습니다. 라즈베리파이
에 리눅스OS, node.js를 설치하고 나면 사물통신이 가능해집니다. 예를 들어 집에 전등을 킨다거나, 보일러를 작동한다거나 등등 라즈베리파이에 각 센서들을 연결하고 동작할 수 있는 javascript코드만 작성한다면 쉽게 재미있는 것들을 만들어볼 수 있습니다.
저 위에 설명했던 수많은 것들을 javascript언어를 통해 다룰 수 있는데, 그 것도 모잘라서 이제는 VR까지 개발할 수 있다고 합니다.
이미 웹페이지를 통해 VR을 개발하는 오픈소스들은 여러 곳에서 활발하게 활동중이며, 각 VR/AR기기들이 활성화된다면 모바일쪽 하이브리드앱개발처럼 core위에 javascript가 동작하는 형식으로 VR/AR도 쉽게 개발할 수 있는 시대가 머지않아 올 것 같습니다.
javascript로 IT관련하여 정말 불가능한 것이 없을 정도로 너무나도 많은 것들을 만들어내고, 수행할 수 있습니다. javascript를 처음에 시작하는 것도 결코 어렵지 않습니다. 아주 작은 흥미만 있으면 됩니다. 꼭 개발자가 아니더라도 취미로 시작해보는건 어떨까요? 내가 무언가를 증명하기 위해, 나의 생각에 있는 것을 눈으로 보기위해서라면 javascript는 꽤나 재미있는 언어인 것 같습니다.
웹으로 PC프로그램 만들 수 있다!!? (Electron + Vuejs) (14) | 2017.05.04 |
---|---|
나를 구원해줄 그 분은 바로 git. 그리고 github (16) | 2017.04.09 |
[npm] npm v2에서 npm v3로 업데이트하기 (0) | 2016.08.24 |
MySQL password 함수 복호화 (0) | 2013.02.24 |
C# ASP.NET에서 QueryString 한글깨질때 (0) | 2012.05.23 |
댓글 영역