개념 사전 · 언어
JavaScript
자바스크립트 · JS
는 브라우저와 다른 에서 프로그램 동작을 작성하는 언어이다. 브라우저에서는 ··웹 API와 연결되며 사용자의 환경에서 실행되는 검증 코드를 서버 권한 검사의 근거로 그대로 신뢰할 수 없다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 웹 페이지의 입력··화면 상태를 처리한다.
- 웹 API를 통해 서버와 자료를 주고받는다.
- 함수·객체·비동기 작업으로 클라이언트 프로그램의 동작을 구성한다.
02어떤 순서로 동작하나
- 코드 해석
이 소스를 파싱하고 함수·변수 등의 실행 구조를 준비한다.
- 동기 작업
현재 호출 스택에서 표현식·함수· 처리 등의 작업을 수행한다.
- ·비동기 완료
사용자 이벤트나 비동기 완료가 해당 실행 모델의 작업 흐름으로 이어지고 콜백· 후속 동작이 실행된다.
- 서버 경계
요청 값이 서버로 전달되면 서버가 인증·권한·업무 조건을 독립적으로 검사하고 결과를 돌려준다.
03먼저 알아둘 용어와 구성요소
- 문서를 객체 구조로 표현하는 브라우저 API다. 언어 자체와 별개이며 페이지 요소의 읽기·변경을 가능하게 한다.
- 클릭·입력·완료 같은 사건을 프로그램 처리로 연결하는 방식이다. 처리 함수 등록과 실제 실행 시점은 다르다.
- 비동기 결과의 완료·실패를 표현하는 객체다. 작업 결과를 연결하지만 모든 계산을 별도 CPU에서 병렬 실행한다는 뜻은 아니다.
- 사용 편의를 위한 입력 형식 확인 등으로 브라우저에서 수행된다. 사용자가 코드를 바꾸거나 요청을 직접 구성할 수 있으므로 서버 검증을 대체하지 않는다.
- 화면에 표시되지 않는 폼 필드일 뿐 비밀 저장소가 아니다. 전송 전에 사용자가 바꿀 수 있는 값으로 취급해야 한다.
- 언어 엔진과 제공 API의 조합이다. 브라우저 은 서버 에 자동으로 존재하지 않으므로 언어 문법과 환경 기능을 구분한다.
04예제로 따라가기
- 브라우저에서 입력값을 숫자로 검사해도 사용자가 요청을 직접 만들 수 있으므로 서버가 같은 업무 범위를 다시 검증해야 한다.
- 공개된 문자열 변환과 해시만으로 만든 토큰에 서버 비밀이나 세션 조건이 없으면 사용자가 동일 값을 계산할 수 있다.
- 비동기 요청의 응답 전에 화면 함수를 호출하면 값이 아직 준비되지 않을 수 있어 완료 흐름과 오류 흐름을 함께 연결한다.
05혼동하기 쉬운 점과 확인 기준
- 와 Java는 서로 다른 언어이며 이름의 유사성으로 실행 모델이나 라이브러리를 혼동하지 않는다.
- 브라우저 콘솔이 열리는 사실 자체가 보안 취약점이 아니다. 서버가 클라이언트 값을 신뢰하여 권한을 부여하는 경계가 문제이다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.