03 자바스크립트 개발 환경과 실행 방법

연우·2024년 11월 1일
0

3.1 자바스크립트 실행 환경

  • 브라우저와 Node.js는 자바스크립를 해석하고 실행 할 수 있는 자바스크립트 엔진을 내장
  • 브라우저
    - HTML, CSS, 자바스크립트를 실행해 화면에 렌더링 하는 것이 주된 목적
    - 클라이언트 사이드 Web API를 지원
  • Node.js
    - 브라우저 외부에서 자바스크립트 실행 환경 제공이 주된 목적
    - ECMAScript와 Node.js 고유의 API를 지원

3.2 웹 브라우저

3.2.1 개발자 도구

  • 크롬 브라우저가 제공하는 웹 애플리케이션 개발에 필수적인 도구
  • 단축키
    - 윈도우 : F12 또는 Cltl + Shift + I
    - macOS command + option + I
  • 자주 사용하는 기능
    - Elements : 로딩된 웹페이지의 DOM과 CSS를 편집해서 렌더링된 뷰를 확인
    - Console : 로딩된 웹페이지의 에러를 확인하거나 소스코드에 작성한 console.log 메서드의 실행 결과를 확인
    - Sources : 로딩된 웹페이지의 자바스크립트 코드를 디버깅
    - Network : 로딩된 웹페이지에 관련된 네트워크 요청 정보와 성능을 확인
    - Application : 웹 스토리지, 세션, 쿠키를 확인하고 관라

3.2.2 콘솔

  • 자바스크립트 코드에서 에러가 발생했을 때 우선적으로 살펴봐야 할 곳

3.2.3 브라우저에서 자바스크립트 실행

  • 브라우저는 HTML 파일을 로드하면 script 태그에 포함된 자바스크립트 코드 실행
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Counter</title>
</head>
<body>
    <div id="counter">0</div>
    <button id="increase">+</button>
    <button id="decrease">-</button>
    <script>
        // 에러를 발생시키는 코드 : 선택자는 'counter-x'가 아니라 'counter'를 지정해야 한다.
        const $counter = document.getElementById('counter-x');
        const $increase = document.getElementById('increase');
        const $decrease = document.getElementById('decrease');

        let num = 0;
        const render = function (){ $counter.innerHTML = num;};

        $increase.onclick = function(){
            num++;
            console.log('incerease 버튼 클릭', num);
            render()
        };

        $decrease.onclick = function(){
            num--;
            console.log('decrease 버튼 클릭', num);
            render();
        }
    </script>
</body>
</html>
  • 버튼을 클릭하면 에러가 발생
  • 콘솔을 열지 않으면 확인하기 어렵다.

3.2.4 디버깅

  • 에러 정보의 위치를 클릭하면 sources 패널로 이동한다.
  • 에러가 발생한 위치에 밑줄이 표시
  • $counter 변수의 값이 null인지 확인
  • 브레이크 포인트를 걸어 디버깅 모드로 들어가 변수의 값ㅇ르 확인
  • 변수의 값을 counter로 변경하면 에러가 제거 된다.

3.3 Node.js

  • 프로젝트 규모가 커짐에 따라 React, Angular, Lodash 같은 프레임워크 또는 라이브러리를 도입하거나 Babel, Webpack, ESLint 등 여러 가지 도구를 사용하는데 이때 Nodem.js와 npm 필요하다

3.3.1 Node.js와 npm 소개

  • Node.js : V8 자바스크립트 엔지으로 빌드된 자바스크립트 런타임 환경
  • npm : 자바스크립트 패키지 매니저
    - Node.js에서 사용할 수 있는 모듈들을 패키지화 해서 모아둔 저장소 역할 과 패키지 설치 및 관리를 위한 CLI를 제공

0개의 댓글