자바스크립트를 이용한 웹 제어 — 『Do it 자바스크립트 입문』

2025. 8. 15. 23:38·도서리뷰/전공

책 한눈에 보기

항목 내용
도서명 Do it 자바스크립트 입문
저자 고경희
키워드 JavaScript, DOM, 이벤트, 객체, 프로젝트, 로컬 스토리지

“JavaScript는 웹 페이지를 ‘살아있는’ 공간으로 바꾸는 핵심 언어다.”


1. 자료형과 연산자

핵심 포인트
느슨한 자료형 체크와 비교 연산자의 차이를 이해해야 한다.

  • typeof 연산자를 사용하면 변수의 자료형을 확인할 수 있음.
  • 자바스크립트는 정수, 문자열, 불린 등 자료형 구분이 엄격하지 않은 느슨한 자료형 체크 방식을 사용함.
  • == 은 자동으로 자료형을 변환하여 비교하지만, === 은 자료형 변환을 허용하지 않고 값과 자료형이 모두 같은지 비교함.
  • 예: "10" == 10 은 true, "10" === 10 은 false.

2. 함수와 이벤트

핵심 포인트
함수와 이벤트를 적절히 활용하면 동적인 페이지 제어가 가능하다.

  • let 예약어로 선언한 변수는 블록 범위(scope) 내에서만 유효함.
  • const 로 선언한 변수는 상수이며 재할당이 불가능함.
  • 매개변수(parameter): 함수를 실행할 때 필요한 값을 받는 변수.
  • 인수(argument): 함수를 호출할 때 매개변수로 전달하는 값.
  • 즉시 실행 함수(IIFE): 함수를 정의함과 동시에 실행하는 형태.
    예: (function(){ console.log("즉시 실행"); })();
  • 이벤트 종류: 마우스, 키보드, 문서 로딩, 폼 이벤트 등.
  • 이벤트 처리기(event handler): 이벤트와 함수를 연결해 동작을 지정하는 코드.
  • 하나의 함수 안에 여러 동작을 묶어 재사용할 수 있음.

3. 객체

핵심 포인트
객체는 데이터와 동작을 하나로 묶어 관리한다.

  • 내장 객체: 브라우저에서 기본 제공하는 객체 (예: Date, Math).
  • 문서 객체 모델(DOM): HTML 요소를 객체로 다뤄 문서를 제어하는 구조.
  • 브라우저 객체 모델(BOM): 브라우저 창, 주소창, 히스토리 등의 정보를 다루는 객체.
  • 사용자 정의 객체: 개발자가 직접 정의한 객체.
  • 객체의 속성 접근: 객체명.속성명
  • 메서드: 객체에 속한 함수로, 객체의 동작을 정의함.

4. 문서 객체 모델, 브라우저 객체 모델

핵심 포인트
DOM과 BOM을 이해하면 화면 요소와 브라우저 자체를 모두 제어할 수 있다.

  • DOM 구조는 부모-자식 관계로 구성됨.
  • 주요 DOM 접근 메서드:
    • getElementById()
    • getElementsByClassName()
    • getElementsByTagName()
    • querySelector() / querySelectorAll()
  • 속성 접근 및 변경: getAttribute(), setAttribute()
  • BOM 대표 객체:
    • window (최상위 객체)
    • document (문서)
    • navigator (브라우저 정보)
    • history, location, screen
  • CSS 선택자:
    • # : id 선택
    • . : class 선택
    • > : 자식 요소 선택

5. 폼과 자바스크립트

핵심 포인트
폼 요소 제어는 사용자 입력 검증의 핵심이다.

  • 폼(form): 사용자 입력을 받는 HTML 요소 집합.
  • 입력값 검증: 값의 유효성을 검사해 잘못된 입력을 방지.
  • 접근 방법:
    • id/class 선택자
    • name 속성
    • form 배열
  • 예: 드롭다운 선택 값 가져오기
  • document.querySelector("#dropdown").value;

6. 실전 프로젝트

핵심 포인트
프로젝트를 통해 DOM, 이벤트, 로직을 통합적으로 이해할 수 있다.

  • Ⅰ. 숫자 맞히기 게임
    • Math.floor(Math.random() * 100) + 1 로 난수 생성.
    • 사용자 입력값 가져오기:
    • document.getElementById("try").value;
    • if문으로 비교 후 결과를 화면에 표시.
  • Ⅱ. 이미지 슬라이드쇼
    • 이미지 목록:
    • const slides = document.querySelectorAll("#container > img");
    • prev/next 버튼 이벤트로 이미지 전환.
  • Ⅲ. 온도 변환기
    • 섭씨 → 화씨: (c * 1.8 + 32).toFixed(2)
    • 화씨 → 섭씨: ((f - 32) / 1.8).toFixed(2)
    • onkeyup 이벤트로 실시간 변환.
  • Ⅳ. 라이트 박스
    • 썸네일 클릭 시 큰 이미지 표시.
    • data-src 속성 활용해 원본 경로 설정.
  • Ⅴ. 로컬 스토리지
    • 데이터 저장:
    • localStorage.setItem("key", JSON.stringify(data));
    • 데이터 읽기:
    • JSON.parse(localStorage.getItem("key"));
  • Ⅵ. 타이머
    • setInterval로 1초마다 카운트.
    • 시간이 0이 되면 clearInterval로 종료.

💡 Quick Insight

  • === 연산자를 사용해 자료형까지 일치하는 비교 습관을 들이자.
  • const와 let의 스코프 차이를 이해하면 버그를 줄일 수 있다.
  • DOM과 BOM을 구분해서 제어 범위를 명확히 하는 것이 좋다.
  • 이벤트 처리기는 함수 재사용과 유지보수를 용이하게 만든다.
  • 폼 입력값 검증 로직은 반드시 클라이언트와 서버 양쪽에 구현한다.
  • 실전 프로젝트를 통해 DOM 조작·이벤트·조건문 로직을 통합적으로 학습할 수 있다.
  • 로컬 스토리지 사용 시 JSON.stringify / JSON.parse 패턴은 필수다.
  • setInterval 사용 후에는 clearInterval로 메모리 누수를 방지해야 한다.

마무리 생각

  • 자바스크립트는 <script>태그로 불러오며, DOM을 통해 페이지의 모든 요소를 제어할 수 있음.
  • 최상위 객체인 window는 생략 가능.
  • 이벤트는 사용자가 페이지 영역 안에서 발생시키는 동작에 한정됨.

'도서리뷰 > 전공' 카테고리의 다른 글

HTML의 바른 이해와 XHTML이란 무엇인가 — 『Head First HTML & XHTML With CSS』  (2) 2025.08.15
깃&깃 허브 입문 가이드 — 『Do it! 지옥에서 온 문서관리자 깃&깃허브 입문』  (5) 2025.08.15
CodeIgniter 기본 — 『CodeIgniter』  (0) 2025.08.15
AIㆍ클라우드 관련 자료 영상 — 『AIㆍ클라우드 관련 자료』  (3) 2025.08.15
28일 동안 배우는 리눅스 기초 강좌 — 『28일 동안 배우는 리눅스 서버 관리』  (2) 2025.08.15
'도서리뷰/전공' 카테고리의 다른 글
  • HTML의 바른 이해와 XHTML이란 무엇인가 — 『Head First HTML & XHTML With CSS』
  • 깃&깃 허브 입문 가이드 — 『Do it! 지옥에서 온 문서관리자 깃&깃허브 입문』
  • CodeIgniter 기본 — 『CodeIgniter』
  • AIㆍ클라우드 관련 자료 영상 — 『AIㆍ클라우드 관련 자료』
coco dev
coco dev
coffee-code 님의 블로그 입니다.
  • coco dev
    Coffee & Code
    coco dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (25)
      • 도서리뷰 (25)
        • 일반 (7)
        • 전공 (18)
      • 항해99 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    라우터
    php
    계산량 분석
    MySQL
    프론트엔드
    TCP/IP 기초
    라우팅
    Order 표기법
    JavaScript
    스위치
    머신러닝
    개미 생태계
    네트워크 계층 구조
    개미 연구
    데이터베이스
    순차검색 이진검색
    개미사회 경제 문화 정치
    초개체 사회
    웹표준
    알고리즘 입문
    BOM
    css
    DOM
    웹개발
    vlan
    페로몬 소통
    html
    네트워크 보안
    자바스크립트
    방화벽
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
coco dev
자바스크립트를 이용한 웹 제어 — 『Do it 자바스크립트 입문』
상단으로

티스토리툴바