LumoMate
LumoMate/용어집/SurfaceWeb

JavaScript

자바스크립트(JavaScript, JS)는 웹 페이지에 동작과 상호작용을 더하는 프로그래밍 언어입니다. 버튼을 누르면 무엇이 일어나는지, 화면을 어떻게 동적으로 바꾸는지를 정합니다.
JavaScript의 개념을 표현한 편집형 일러스트.

쉬운 설명

초기 웹은 링크를 누르면 페이지가 통째로 새로 열리는 정적 문서였습니다. 자바스크립트가 등장하면서 '페이지를 새로 열지 않고도 일부만 바꾸는' 일이 가능해졌고, 오늘날 우리가 쓰는 거의 모든 웹 앱이 그 위에 서 있습니다.

브라우저에서 돌아가는 언어로 시작했지만, 지금은 영역이 매우 넓습니다. ① 서버(Node.js·Deno·Bun으로 백엔드 작성), ② 모바일 앱(React Native), ③ 데스크톱 앱(Electron), ④ 임베디드·IoT(일부 환경), ⑤ 빌드 도구·CLI까지 — 한 언어로 거의 모든 종류의 소프트웨어를 만들 수 있을 만큼 활용 범위가 큽니다.

기본 구조는 다른 언어와 비슷합니다. 변수·함수·조건문·반복문, 객체와 배열, 비동기 처리(Promise·async/await). 다만 '동적 타입'이라는 특성이 있어 초보자에게는 부드럽고, 큰 코드베이스에서는 헷갈리기 쉽습니다. 그래서 큰 프로젝트는 보통 TypeScript로 옮겨 가서 미리 타입을 적어 두고 오류를 잡습니다.

브라우저 자바스크립트가 특별한 이유는 DOM과 이벤트입니다. document.querySelector로 HTML 요소를 잡아 텍스트·스타일·자식을 바꾸고, addEventListener로 클릭·키보드·스크롤 같은 사용자 동작에 반응합니다. 현대에는 이 위에 React·Vue·Svelte 같은 프레임워크가 얹혀 'DOM 직접 조작' 대신 '상태와 화면을 연결'하는 사고로 짭니다.

주의할 점도 있습니다. 자바스크립트는 모든 브라우저에서 실행되기 때문에, 보안 측면에서 항상 신경 써야 합니다(XSS 같은 공격). 또 클라이언트 코드는 사용자에게 그대로 노출되므로 비밀번호·API 키 같은 민감 정보를 코드에 적으면 안 됩니다. 또 '자바'와 '자바스크립트'는 이름만 비슷하고 완전히 다른 언어 — 자주 헷갈리니 명확히 구분해 두면 좋습니다.

JavaScript의 개념을 본문 안에서 다른 각도로 비춰 보는 편집형 일러스트.
FIG. 1JavaScript을 다른 각도에서 다시 봅니다.

비유로 보면

HTML이 건물의 구조, CSS가 인테리어라면 JS는 '그 안에서 일어나는 동작'입니다. 문을 열면 불이 켜지고, 손을 흔들면 커튼이 닫히고, 사람이 들어오면 음악이 바뀝니다. 보이지 않지만 공간을 살아 있게 만드는 부분이 자바스크립트입니다.

어디에서 만나나

브라우저(거의 모든 동적 웹 페이지), 서버(Node.js로 만든 백엔드 API), 모바일(React Native), 데스크톱(Electron — VS Code·디스코드·슬랙이 모두 이 위), 자동화 스크립트, 그리고 게임·임베디드·블록체인 일부 영역까지. 한 언어로 풀스택을 도는 회사도 많아졌습니다.

작은 예시

쇼핑몰에서 상품 이미지에 마우스를 올리면 확대 미리보기가 뜨고, '관심 상품' 하트를 누르면 새로고침 없이 즉시 빨갛게 채워집니다. 이 모든 동작이 페이지 안에서 도는 자바스크립트가 만들어 내는 것입니다.

자주 하는 오해

오해
흔한 오해 둘. ① '자바스크립트는 자바의 일종' — 완전히 다른 언어입니다. 1995년 마케팅상의 이유로 비슷한 이름을 붙였을 뿐입니다. ② '자바스크립트는 장난감 같은 언어' — 1990년대의 평가입니다. 지금은 페이스북·구글·넷플릭스의 가장 큰 시스템이 자바스크립트(+TypeScript)로 돌고 있습니다.

한 줄 정리

자바스크립트는 '한 번 익히면 가장 많은 곳에 쓸 수 있는' 언어입니다. 처음 배우는 언어로도, 깊이 가는 언어로도 모두 좋은 선택입니다.
매주 월요일 오전 8시

한 주에 한 통,
오래 남는 이해를 보냅니다.

흘려보내지 않는 글만 골라 보내드립니다. 광고와 추적, 외부로 빠지는 미끼 링크 없이 메일 안에서 끝나는 한 통입니다.

언제든 한 번의 클릭으로 해지할 수 있습니다. 스팸은 보내지 않습니다.