soma0sd

코딩 & 과학 & 교육

프로그래밍 언어 리뷰 (2): javascript

2019.05.14.프로그래밍
반응형

사용해 본 언어를 중심으로 다루는 주관적인 리뷰입니다. 프로그래밍 언어는 각기 스타일과 철학이 다르기 때문에 점수를 준다거나 하기는 곤란합니다. 언어 자체에 대한 리뷰가 아니라 언어를 사용해본 경험을 리뷰한 것에 가깝습니다

자바스크립트

이름과는 달리 자바(JAVA)와는 큰 관련이 없는 언어입니다. 실행을 위해 별도의 특별한 응용프로그램이나 개발 환경을 구성할 필요가 없다는 것이 큰 장점으로 꼽힙니다. 웹에서 작동하는 스크립트 언어이며, 태그나 소스코드에 별도의 지시가 없으면 소스코르들 다운로드하는 즉시 해석기가 동작해서 필요한 기능을 수행합니다.

C나 파이썬, R등 주로 접하는 프로그래밍 언어들과는 다르게 별도의 지시가 없으면 명령 블록들의 순서가 실행 우선권을 나타내지 않습니다. 이때문에 예상과는 다른 동작을 하는 경우가 적지 않은데요. 동기/비동기 개념을 익히고 콜백(callback), 프로미스(Promise)등을 익혀야 원하는 순서대로 작동합니다.

또한, varlet등으로 변수를 선언하면서 타입을 지정하지 않는 점과 참조할 라이브러리를 추적하기 어렵다는 점 때문에 자동완성 등 현대적인 개발환경에서 사용하는 기능들을 사용할 수 없습니다. 이를 해결하기 위해 다양한 자바스크립트 서브셋 언어가 등장하였으며 제가 추천하는 것은 TypeScript입니다.

웹페이지를 위한 언어

자바스크립트는 실행과 배포에 있어서 엄청나게 우월한 위치에 있는 프로그래밍 언어입니다. 우리가 인터넷을 이용할 때 사용하는 엣지, 크롬, 파이어폭스, 삼성인터넷(앱) 등은 모두 자바스크립트를 읽어들이고 실행하는 기능을 기본적으로 탑재하고 있기 때문입니다.

그러나 웹페이지를 위한 언어이기 때문에 자바스크립트만 알아서는 금방 곤란한 지경에 빠집니다. HTML에 대한 지식과 스타일시트에 대한 지식이 함께 필요한 경우가 많습니다.

그러나 이런 특징은 복잡하고 많은 계산이 필요한 프로그램, 많은 리소스(그래픽, 텍스트, 사운드 등)이 필요한 프로그램은 그많큼 오랜 시간과 많은 트래픽, 많은 데이터 다운로드가 필요하게 됩니다. 이런 경우 이용할 수 있는 방법이 다음 단락에 소개되어 있습니다.

애플리케이션 개발

노드JS(Node.js), 리액트(React)등이 등장하면서 자바스크립트로 백엔드라고 불리는 서버 프로그램 개발이 가능해졌습니다. 일렉트론(Electron)등이 등장하여 데스크톱이나 모바일을 위한, 혹은 둘을 아우르는 크로스 플랫폼 애플리케이션 개발이 가능해졌습니다.

시작하는 언어로는 어때?

추천할만 합니다. 개발환경 구성도 어렵지 않고, 결과를 확인하는 과정이 어렵지 않습니다. 여타 언어들이라면 너무 복잡해서 뒤로 미뤄지는 그래픽 인터페이스(GUI)를 자바스크립트는 시작부터 다룰 수 있게 됩니다. 결과물을 공유하기도 간편하고, 원하는 기능이 있을 때 소스코드를 참고하기도 편합니다. 다만, 위에서 언급한 단점들을 감안해야겠습니다.

여담으로, 학교나 직장에서 이수하도록 하는 온라인 교육(안전교육 등)은 자바스크립트를 통해 손쉽게 넘어가는 방법이 있는 경우가 존재합니다.

취미로는 어때?

취미로 여러 언어를 배워서 코딩을 한다면 자바스크립트는 필수라고 생각합니다. 굳이 개인 홈페이지나 블로그가 목적이 아니더라도 손쉽게 공유가능한 결과물들은 취미를 더욱 풍족하게 만들 수 있습니다.

반응형
태그:

댓글

End of content

No more pages to load