[js info] 자바스크립트란?

Lee Tae-Sung·2022년 7월 13일
0

JS

목록 보기
49/56

팀장님의 추천(?)으로 우리 팀 서비스의 가장 기반이 되는 언어인 js의 부족을 채우기 위해.

팀원분과 1일 1js info 스터디를 진행하기로 했다.

오늘은 1일차로 자바스크립트란? 이란 제목을 가진 챕터를 시작.

https://javascript.info/intro

내게 자바스크립트란 무엇이냐? 라고 묻는다면.

페이지에 동적인 혹은 유저와 상호적인 이벤트를 효과적으로 사용하기 위해 탄생한 스크립트 언어로 지금은 웹 개발 전반에 활용되고 있는 언어.

원문에선 서술문으로 자바스크립트의 특징들을 설명했다.
(자바 얘기까지 ;)

마지막에 제시된 한줄 설명
JavaScript was initially created as a browser-only language, but it is now used in many other environments as well.

그래도 나름 js에 내가 짬밥이 생겼다 싶은게 내가 위에 글을 읽지 않고 설명한 부분과 굉장히 유사했다.

아무튼 이 설명들 중에 인상깊었던 것은 javascript engine에 대한 이야기.

물론, 깊은 이야기까지는 없었지만 V8이 javascript를 해석하는 것을 알고는 있었는데 한번 정확히 훑어볼 수 있었음.
(firefox는 엔진이 다름 이름도 SpiderMonkey ㅋ)

기본적으로 브라우저에서 돌아가는 javascript engine

js 언어를 parse하고 machine language로 compile해주는 작업을 해준다.

What can in-browser JavaScript do?

여러 이야기들 중에

Remember the data on the client-side (“local storage”).

js가 할 수 있는 예시들을 들면서 해당 문장이 인상 깊었다.

실무로 개발을 하면서 팀장님께 local storage 활용에 대해 요구를 받은 적이 있다.

실제로 지금도 local storage를 이용한 유저의 이전 state save 기능 개발을 고민 중이다.

사실 local storage에 대한 내 첫인상은 좋지 못하다.

예전에 local storage에 유저의 로그인 토큰을 넣는데 활용했다가 큰 비난을 받았기 때문이다..(보안상 등 ...)

돌아보니 그래서 local storage에 대한 안좋은 인상을 갖게 되었나 싶다.

그러나 클라이언트 입장에서 보안이 문제되지 않는 정보를 global하게 그리고 web browser상에 자유자재로 활용할 수 있는 역할은 굉장히 파괴적이다.

특히 js info에서도 직접적으로 언급하고 있는 것을 보니 활용하는데 더 자신감을 가져도 될 것 같다!

What CAN’T in-browser JavaScript do?

=> 굉장히 흥미로운 주제였다.
=> js가 browser에서 못하는 것도 있나 ....?

  • JavaScript-enabled page may not sneakily enable a web-camera, observe the surroundings and send the information to the NSA.

  • Different tabs/windows generally do not know about each other.

  • JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is crippled. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that’s a safety limitation.

Such limits do not exist if JavaScript is used outside of the browser,

js는 기본적으로 이용자의 브라우저를 활용하는 언어다보니 이용자를 보호하기 위한 보안의 이유로 제한 사항들을 만들었다.

  • 명시적인 허가를 받지 않는한 로컬 환경에 접근을 막았음

  • os 환경에서 다른 창의 브라우저, 다른 탭 등에 서로가 관여할 수 없음.

Cross Origin .... CORS는 개발하며 많이 봤는데 “Same Origin Policy”이라는 거의 보지 못했다. 그런데 설명을 이해하니 확실히 해당 기능을 활성화되면 서비스들의 정보들을 탈취하는 좋은 방법이 될 것 같다.

세번째는 무슨 뜻인지 이해 불가.
팀원과 팀장님께 도움을 받아 이해해야겠음 ...

What makes JavaScript unique?

  • Full integration with HTML/CSS.
  • Simple things are done simply.
  • Supported by all major browsers and enabled by default.

Simple things are done simply.
다른 언어로 동적인 효과들을 만들어 내라고 하면 아주 아찔하다.
css 를 일일히...

profile
긍정적인 에너지를 가진 개발자, 이태성입니다.

0개의 댓글