(Javascript) 0. 서론

김동우·2021년 6월 8일
1

wecode

목록 보기
2/32

잠깐! 시작하기 전에

이 글은 wecode 사전 스터디에서 실제 공부하고, 이해한 내용들을 적는 글입니다. 글의 표현과는 달리 어쩌면 실무와는 전혀 상관이 없는 글일 수 있습니다.

또한 해당 글은 다양한 자료들과 작성자 지식이 합성된 글입니다. 따라서 원문의 포스팅들이 틀린 정보이거나, 해당 개념에 대한 작성자의 이해가 부족할 수 있습니다.

설명하듯 적는게 습관이라 권위자 발톱만큼의 향기가 조금은 날 수 있으나, 엄연히 학생입니다. 따라서 하나의 참고자료로 활용하시길 바랍니다.

글의 내용과 다른 정보나 견해의 차이가 있을 수 있습니다.
이럴 때, 해당 부분을 언급하셔서 제가 더 공부할 수 있는 기회를 제공해주시면 감사할 것 같습니다.

서론

Js는 많은 사람들이 말하듯, 끔찍한 혼종에 가까운 언어입니다. 심지어 해외에서는 언어가 아닌 장난감이라는 말 또한 듣고는 하죠.

그럼에도 우린 이 오래된 언어를 '구식'이라 표현하거나 멀리하지 않습니다. 그러한 언어가 몇이나 될까요?

현대에 이르러 Js는 강력한 영향력을 행사하는 언어로 자리매김했습니다. 그렇기에 우린 늦게라도 Js를 다시 배워야만 하는 상황이 되었습니다.

그러니 지금부터 한 번 배워보자는 마음으로 천천히 알아봅시다. 😭


Hello, Js!

Js의 대표적 특징

(1). 스크립트 언어

Js의 특징은 여러가지가 있겠습니다. 그보다 먼저 중요한 것은, Input, Output이 없는 스크립트 언어라는 사실을 알고 나아가야 합니다. 스크립트 언어의 특징이 뭘까요?

네, 맞아요. Js는 코드를 빌드하지 않고 한 줄, 한 줄 세심하게 읽은 다음 우리가 원하는 결과를 출력하죠.

이러한 언어들의 특징은 유연하고, 어느 곳에서든 소스를 활용한 프로그램의 분석이 가능하다는 점입니다.

분석이 쉽고, 가능하다면, 보안에 있어 취약할까요? 그런 것들은 당장 고려할 사항이 아니지만, 당연히 기계어로 배포하는 컴파일러 언어에 비해 보안에 취약할 수 밖에 없다는 점은 사실입니다.

그럼 왜 우린 컴파일러 언어가 아닌 스크립트 언어로 많은 작업을 하게 될까요?


(2). 사용하는 이유

답은 간단합니다. 간단하고, 쉬운데다, 명료하니까.

즉, 대량의 데이터 작업을 처리하는 데 있어 헷갈리지 않으니까.

과정이 비교적 단순하고, 데이터의 수정도 실시간으로 간단히 이루어지니까.

코더가 까먹고 넣지 못한 것들도 지능적으로 처리해주니까.

"알아서 잘 딱 깔끔하고 센스있게!" 해주니까.


(3). 속도가 느리다.

이렇게 인간친화적인 언어인데, 단점이 존재하지 않는다면 다 이것만 사용했겠죠? 무엇이든 일장일단이니, 우린 단점도 잘 이해하고 있어야 합니다.

보안은 이미 말했으니 잠시 미뤄두고, 속도가 컴파일러 언어에 비해 상당히 떨어집니다. 이미 다 빌드된 다음 파일로만 실행하는 원리가 아니라서 그래요.

스크립트 언어는 통역의 과정이 존재하는 상태로 동작하는 언어기 때문에 완전한 번역본을 읽는 행위에 비해 속도가 떨어질 수 밖에 없습니다.

(4). 관용적인 언어다.

그 다음은 가장 많이들 얘기하는 단점이죠. 너무 관용적이라는 것.

스크립트 언어들의 특징은 지나치게 알아서 한다는 점이 있어요. 물론 그렇지 않고, 엄격한 언어도 존재하지만, 우리가 주로 사용하는 스크립트 언어인 'python'만 봐도 얼마나 관용적인지 알 수 있죠?

C와 C++의 입장에서 바라보는 스크립트 언어들은 일 잘하는 상병의 느낌일거에요. 말년병장인 우리가 너무 풀어져서 대충~ 넘겨도 다 처리해주니까요. 하지만 우리의 컴파일러 언어들은 빌드의 과정을 겪어야 하기 때문에 항상 FM을 요구하죠.

그렇다면 컴파일러 언어는 초임장교라고 볼 수 있겠네요.

그런데, 이러한 엄격함이 때로는 필요한 상황이 있잖아요. 전투준비태세를 쉴 새 없이 하고, 모든 물자의 위치를 파악한다면 실상황에서 누구보다 정확하고 빠른 움직임을 낼 수 있듯 말이에요.

코더의 오류를 사전에 파악하고, 무결점에 가까운 워크플로우를 작업할 수 있게 해주는 것은 사실 이러한 엄격함에서 온답니다.

스크립트 언어는 일단 동작은 시켜놓고, 배포를 하는 과정에서 뒤통수를 치는 경우도 꽤 잦아요.

마치 선심쓴다는 듯 조롱하는게 아닐까 하는 생각이 들 때도 있다는 말이에요

"사실 안되는건데 내가 그 때 한 번만 해준거야~ 넌 특별하니까~" 이렇게 말이죠

그럼 우린 무엇이 문제인지 짚기 어려운 상황에 놓인 다음, 전부 다시 훑어보고, 찾아야만 하죠. 그런 비효율적인 작업을 방지할 수 있도록 컴파일러 언어는 사전에 경고를 해준답니다.

"나 이대로는 도저히 못해. 문제가 뭔지 저기쯤에서 찾아봐." 이런 느낌이죠.

자, 그렇다면 이번 글에서는 이 정도만 알아두고, 다음글부터 본격적으로 Js에 대해 공부해봅시다.

0개의 댓글