JavaScript란?
JavaScript는 객체 지향 스크립트 언어로, (HTML, CSS)와 함께 사용되며 웹 페이지의 동작을 담당한다.
1. JavaScript의 역할
- 웹 페이지의 동적 변경
- 사용자 상호작용 처리
- 비동기 통신 지원
- 애니메이션과 시각 효과 추가
- 폼 검증
웹 페이지의 일방적인 정보 제공을 벗어나 정보의 검색, 정보의 전달 등 클라이언트의 요구를 동적으로 수용할 수 있도록 제공한다.
2. JavaScript의 필요성
2000년대 초반에는 웹 페이지가 대부분 정적이었고, JavaScript는 단순한 기능만 제공했다. 그때는 JavaScript의 가치를 잘 몰랐다. 그러나 사용자 요구가 다양해지면서 웹 페이지가 더 동적으로 변화했다. 그래서 JavaScript는 점점 더 중요한 도구가 되었고, 현재는 웹 애플리케이션에서 필수적인 기술로 자리 잡았다.
JavaScript의 특징
1. 스크립트 언어이다.
프로그래밍 언어는 실행 과정에서 기계어로 변환하는데 요구되는 두 종류의 번역기가 필요하다.
컴파일러 : 전체 소스 코드를 한 번에 분석하고 변환하여 실행 파일을 생성한다. 이 과정에서 문법 오류를 검사하고 최적화를 수행하여 기계어 코드로 변환한다.
인터프리터 : 소스 코드를 한 줄씩 읽어 해석하고 즉시 실행한다. 프로그램 실행 중에 각 줄을 해석하므로, 코드가 실행되는 동안 오류를 검사한다.
JavaScript는 인터프리터를 요구한다.
2. 객체 중심(지향) 언어이다. (Object Oriented Language)
객체는 현실에 존재하거나 생각할 수 있는 모든 것으로 사물이나 개념을 프로그램에서 표현하는 방법이다. 예를 들어, 비행기, 가로등, 고양이 등이 모두 객체가 될 수 있다.
- 객체는 속성과 함수의 집합이다. 객체를 사용하여 데이터를 구조화하고, 관련 기능을 그룹화 하여 관리할 수 있다.
- 객체는 재사용이 가능하다. 이는 코드 중복을 줄이고 유지보수를 용이하게 한다.
- 직관적인 코드 분석이 가능하다.
3. 동적 웹 브라우저용 언어이다.
HTML로만 만들어진 웹 페이지와는 다르게 JavaScript가 적용된 웹 페이지는 정적이다.
사용자의 요구에 따라 상호간에 정보를 교환하는 동적인 스타일로 변환한다. JavaScript가 포함된 웹 페이지는 클라이언트에 다운로드되어 클라이언트의 웹 브라우저에서 실행되어 화면을 구성한다.
JavaScript와 Java의 차이점
JavaScript | Java |
객체지향 객체는 프로토 타입 형태로 상속 객체에 대한 속성과 메서드의 동적 추가 |
객체지향, 클래스 기반 객체는 클래스 계층 구조에 의해 상속 클래스나 인스턴스는 동적으로 추가 불가 |
변수의 자료형을 별도로 선언하지 않음 (동적 연결) | 변수의 자료형이 반드시 지정되어야 함(정적 연결) |
인터프리터 | 컴파일러 |
소스 접근성 높음 | 안정성 높음 |
JavaScript 활용
1. 웹 페이지 개발
- JavaScript는 웹 브라우저에서 실행되는 클라이언트 애플리케이션을 개발하기 위해 제공되었다.
- 웹 페이지 개발을 위한 다양한 도구는 있지만 웹 브라우저에서 실행되는 언어는 JavaScript 가 유일하다.
- 가장 인기있는 JavaScript 라이브러리는 jQuery다.
2. 웹 서버 개발
- Node.js로 웹 개발에 필요한 모든 과정을 진행할 수 있다.
3. 모바일 애플리케이션 개발
- 페이스북에서 발표한 React.js는 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리이며, 일부 기술은 모바일에서 사용되고 있다.
JavaScript 작성 규칙
1. 대소문자를 구분한다.
변수 'MyPage'와 'mypage'는 다른 변수이다. 마찬가지로, 함수 'start()'와 'START()'도 다른 함수다.
대소문자를 반드시 구분하여 사용해야 한다.
2. 공백 문자 무시
JavaScrip는 연속되는 공백 문자는 무시 또는 하나의 공백 문자로 인식한다. 공백없이 작성해도 오류는 없으나 가독성을 위해 연산자들 사이는 띄어쓰는 것이 관례다.
3. 문장 그룹화
JavaScrip 뿐만 아니라 모든 언어에서 여러 개의 문장을 그룹핑하여 하나의 묶음으로 처리할 수 있다. 주로 조건문, 반복문, 함수 등에서 요구된다. 문장 그룹핑은 중괄화{} 에 의해 묶여진다.
function Car(model, color, speed) {
this.model = model;
this.color = color;
this.speed = speed;
}
기타&관례
- 한줄 주석 : '//'로 시작하는 문장이다. html과 다르다.
- 여러 줄 주석 : '/*' 시작하며 '*/'로 끝낸다.
- 세미콜론';' : 식의 종결을 의미, 구문을 구분할 때 사용한다.
- 행길이 및 줄바꿈 : 가독성을 위해 개발자들은 보통 80자 이상의 코드 행을 피하길 원한다.
- JavaScrip문이 한 줄에 들어 맞지 않는 경우 연산자를 사용한 후에 행을 바꾼다.