본문 바로가기

과거/JavaScript

1. 자바스크립트(JavaScript) [정의, 역할, 장단점]

자바스크립트란?

자바스크립트는 '웹페이지에 생동감을 불어넣기 위해' 만들어진 프로그래밍 언어입니다.

우리가 버튼에 마우스를 올려놓았을 때 버튼의 색이 바뀐다던가 버튼의 테두리가 진하게 바뀌는 모션들이 전부 자바스크립트로 작동되고 있습니다.

자바스크립트로 작성한 프로그램을 '스크립트(script)'라고 부르며 이것을 HTML 내부에 작성하거나 파일을 따로 만들어 함께 불러올 수 있습니다. 그리고 웹페이지를 불러올 때 스크립트가 자동으로 실행됩니다.

 

 🤔 자바스크립트와 자바는 무슨 연관이 있나요?

자바스크립트가 처음 만들어졌을 때 Mocha라는 이름으로 불렸습니다. 그리고 LiveScript라고 바뀌었지요. 그런데 당시 자바의 인기가 아주 높았습니다. 개발자들은 LiveScript 대신 자바스크립트(JavaScript)로 이름을 바꾸면 홍보에 도움이 될 거라 생각해 또 한 번 이름을 바꾸었습니다. 

자바의 특징은 컴파일 언어, 타입 검사를 엄격하게 하고 클래스(class)기반의 객체 지향 언어입니다.

자바스크립트는 인터프리언어, 타입을 명시하지 않으며 프로토타입(prototype)기반의 객체 지향
언어입니다.

그래서 사실 이 둘은 직접적인 관련은 없습니다. 비슷한 점보다는 다른 점이 훨씬 많습니다. 굳이 찾자면 두 언어의 문법이 모두 C언어를 기반으로 만들어졌다는 정도겠네요.

⁑ 참고 문헌 및 용어 설명 ⁑

1. TCHSCHOOL.com - 자바스크립트 기초 (자바와 자바스크립트 참고)
http://tcpschool.com/javascript/js_intro_basic

1. 컴파일 언어, 인터프리언어
https://jhkang-tech.tistory.com/136

2. 타입 
https://velog.io/@bch3454/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98-%EA%B8%B0%EB%B3%B8%ED%83%80%EC%9E%85

3. 클래스, 프로토타입
https://webclub.tistory.com/94

 

 

 

 

자바스크립트의 역할

자바스크립트가 무슨 일을 할 수 있는지 좀 더 자세히 알아보겠습니다.

자바스크립트의 기본적인 역할은 웹 페이지를 동적이고 살아있게 만드는 것에 있습니다. 그래서 자바스크립트는 브라우저에서 다음과 같은 일을 할 수 있습니다.

  • 페이지에 새로운 HTML을 추가하거나 기존 HTML 혹은 스타일을 수정
  • 마우스의 클릭, 포인터의 움직임, 키보드 입력 등과 같은 사용자의 행동에 반응
  • 네트워크를 통해 원격 서버에 요청을 보내거나, 파일 다운로드, 업로드 하기(AJAX나 COMET 기술 이용)
  • 쿠키를 가져오거나 설정, 사용자에게 질문하거나 메세지 보여주기
  • 클라이언트 측에 데이터 저장하기(로컬 스토리지)

 

반대로 브라우저에서 할 수 없는 일은 무엇일까요?

브라우저는 '보안'을 위해 자바스크립트의 기능에 제약을 걸어두었습니다. 이런 제약은 악성 웹페이지가 사용자의 개인 정보에 접근하거나 데이터를 손상시키는 것을 막기 위해 만들어졌습니다.

몇 가지 제약 사항을 보죠.

  • 카메라, 마이크 같은 장치를 사용하려면 사용자의 허가가 필요합니다.

  • 브라우저 내 탭과 창은 서로의 정보를 알 수 없습니다. 그러데 한 창에서 다른 창을 열 때는 예외가 적용됩니다. 이때 도메인이나 프로토콜, 포트가 다르다면 페이지에 접근할 수 없습니다.

    이런 제약사항을 '동일 출처 정책(Same Origin Policy)'라고 합니다. 이 정책을 피하려면 두 페이지는 데이터 교환에 동의해야 하고, 동의와 관련도니 특수한 자바스크립트 코드를 포함하고 있어야 합니다. 대표적으로 우리가 본인인증을 할 때 뜨는 작은 창을 예시로 들 수 있다.

  • 자바스크립트를 이용하면 페이지를 생성한 서버와 쉽게 정보를 주고 받을 수 있습니다. 하지만 타 사이트나 도메인에서 데이터를 받아오는 것은 불가능합니다. 가능하다 할지라도 원격서버에서 명확히 승인을 해주어야 합니다.

 

 

 

자바스크립트의 장단점

  • 장점

자바스크립트의 장점은 많습니다. 빠른 개발이 가능하고 배우기 쉽다는 점. 사용 컴퓨터의 OS에 무관하게 프로그램이 수행되는 점. 웹서버에 주는 부담이 적다는 등 정말 많은 장점을 가지고 있습니다. 그 중 개발을 오랜 시간동안 하신 분의 말씀에 따르면 "웹표준"이라는 것이 가장 큰 장점이라고 합니다.

웹표준이라는 것은 HTML, CSS, DOM, 자바스크립트. 이 4개가 있어야 브라우저에서 돌아갑니다. 그래서 자바스크립트를 사용할 수 밖에 없습니다. 즉, 언어가 사라지지 않는다는 의미가 됩니다. 그러면 계속 데이터가 쌓여갈 것이고 기술이 축적되면서 여러 방향으로 뻗어나갈 수 있게 됩니다. 그러면 다양한 환경에서 쓰일 수 있게 되겠죠. 그래서 iot, node.js, SVG 등이 나오게 되는 것입니다.

 

  • 단점

자바스크립트의 단점은 컴파일 되지 않은 언어가 사용자에게 주어지므로, 소스 노출의 위험이 있어 보안적으로 문제가 생길 수 있습니다. 

보안적으로 문제가 되는 부분들을 아래 참고자료를 통해 확인할 수 있으니 궁금하신 분들은 확인해주시길 바랍니다.

* 참고자료 *

 

홈페이지 해킹 대응조치

웹 서비스 취약점별 조치 방안 □ 주요 취약점1) 크로스 사이트 스크립팅 (XSS : Cross Site Scripti...

blog.naver.com

 

 

HTML 코드로 웹사이트 해킹하는 법

기본적인 HTML과 자바스크립트를 배우고 나면, 웹사이트에서 비밀 번호로 보호된 내용에 접근할 수 있는 경우가 있다. 이 글에서는 간단하고 보안이 약한 웹사이트를 HTML 코드로 해킹하는 법을

ko.wikihow.com

728x90