Internet 4. script language
Script Language
- 스크립트 언어: 프로그래밍 언어의 한 종류, 기존에 이미 존재하는 소프트웨어를 제어하기 위한 용도
- 스크립트 언어 종류 : 2가지로 나뉜다.
① 클라이언트 사이드 스크립트 언어(client side script language) : 자바스크립트, VB스크립트
② 서버 사이드 스크립트 언어(server side script language) : JSP, ASP, PHP, Pyhton
웹은 클라이언트가 서버에게 요청한 페이지를 서버에서 잘 가공하여 다시 클라이언트에게 응답하는 구조이다.
여기서 어느 측에서 요청을 처리하느냐에 따라서 클라이언트 사이드 스크립트 언어(Client Side Script Language)와 서버 사이드 스크립트 언어(Server Side Script Language)로 나뉜다. 말 그대로 클라이언트에서 실행되는 스크립트 언어를 클라이언트 사이드 스크립트 언어라고 하고, 서버에서 실행되는 스크립트 언어를 서버 사이드 스크립트 언어라고 한다.
Javascript
- .js확장자
- 동적으로 컨텐츠를 바꾸고, 멀티미디어를 다루는 등을 할 수 있는 스크립트 언어, 웹 브라우저에서 주로 사용
- 현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있다.
- HTML로는 웹 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현
- 자바스크립트의 특징
1) 객체 기반의 언어이다. 하지만 상속과 클래스라는 개념은 없다.
객체(object): 프로그래밍 대상을 속성과 동작으로 묶어서 정의한 자료형
2) 동적이며 타입을 명시할 필요가 없는 인터프리터 언어로서 클라이언트의 웹 브라우저에 의해 해석되고 실행된다.
(C언어와 같은 언어가 소스파일 작성 후 컴파일을 통해 사용자가 실행할 수 있는 실행파일을 만들어 사용하는 반면,
인터프리터 언어는 컴파일 작업을 거치지 않고 소스코드를 바로 실행할 수 있는 언어를 의미)
3) HTML 문서 내에 기술되고, HTML문서와 함께 수행된다.
4) HTML에 연산 제어 등 프로그래밍적인 요소를 추가하고 클라이언트의 자원을 활용할 수 잇게 한다.
- 자바스크립트의 장점 : 컴파일 과정이 없어서 빠른 시간 내에 코드 작성 가능.
웹에 특화되어서 운영체제나 플랫폼 상관없이 잘 작동
- 자바스크립트의 단점: 성능이나 보안. -> 내부에서 제공되는 기능이 제한적이고 개발도구도 적음.
또 HTML소스코드와 함께 작성되면서 소스코드가 외부로 공개되어 보안취약점 발생 가능
- 사용용도 예시
1) 사용자의 입력을 제어하고 싶을 때
2) 웹 브라우저 내의 여러 가지 기능을 조절하고 싶을 때
3) 사용자에게 메시지를 보내고 싶을 때(경고나 확인)
4) 쿠키를 이용한 페이지 간의 data 유지
쿠키(cookie) : 서버가 사용자의 웹브라우저에 전송하는 작은 데이터 조각
5) 동적인 웹사이트 제작(HTML 요소나 스타일 동적 변경)
- 자바스크립트의 위치 : 외부형, <head> 내부형, <body> 내부형, 인라인형
_js
.html_
<head
>
<title
>Page title
</title
>
<script
><src=“myscript.js”>
</script
>
<script
>
Document.write(“head
내부형
자바스크립트
<br>”);
</script>
</head
>
<body>
<script>
Document.write(“body
내부형
자바스크립트
<br>”);
</script>
<p onclick=“
alert(‘인라인형 스크립트’)”></p>
</body>
_myscript.js_
Document.write(“
외부
스크립트
<br>”);
- 자바와 자바스크립트는 이름은 유사하지만 전혀 다른 언어이다.
항목
|
자바스크립트
|
자바
|
실행방법
|
브라우저에 의해 해석됨 (스크립트 언어) |
서버에서 컴파일 된 Byte Code를 클라이언트에서 해석됨 (컴파일 언어) |
언어성격
|
Object-Based Language 클래스 미지원 프로토타입 기반 언어 |
Object-Oriented Language 클래스 지원 상속과 다형성 지원 |
사용형태
|
HTML문서 내에 소스코드 기술 (HTML과 결합되어 사용) |
HTML문서에 작은 공간을 얻어 수행 (HTML과 별도 존재 가능) |
변수형 정의
|
미리 정의할 필요 없음(동적 Typing) |
반드시 미리 정의 해야함 |
객체 참조 시기
|
실행 시 객체 참조 검사 (동적 바인딩) |
컴파일 시 객체 참조 검사 (정적 바인딩) |
보안
|
Secure(HTML에 같이 수행되므로) But, 악의적인 목적의 코드 존재가능 |
Secure (Local File System에 Write 못하므로) |
- 자바스크립트의 라이브러리는 prototype, jQuery, YUI 등.
라이브러리 : 자주 사용되는 로직들을 재활용 가능하도록 만든 로직들의 묶음
제일 많이 사용하는 건 jQuery이다.
jQuery: 자바스크립트 라이브러리
- 기본 문법
$(선택자).동작함수();
-> 달러($) 기호는 제이쿼리를 의미하고, 제이쿼리에 접근할 수 있게 해주는 식별자
선택자를 이용하여 원하는 html 요소를 선택하고, 동작함수를 정의하여 선택된 요소에 원하는 동작설정
예제) 문서 내의 모든 <li>요소를 선택하여 변수에 저장한 후, 해당 변수를 사용하는 예제.
$(function() {
var items = $("li"); // <li>요소를 모두 선택하여 변수 items에 저장함.
$("button").on("click", function() {
$("#len").text("저장된 <li>요소의 총 개수는 " + items.length + "개 입니다.");
});
});
JSP(Java Server Page)
- .jsp확장자
- 자바(java)를 서버환경에서 사용하는 스크립트 방식의 언어
-> HTML 내에 자바코드를 삽입, 보통 <% 자바코드 %> 식으로 사용
- 자바스크립트가 클라이언트의 웹 브라우저 화면에 실행되는 방법이라면, JSP는 서버에서 실행되어 사용자에게 보여주는 방식 즉 jsp에서 작성된 내용은 서버에서 실행되고 그 결과가 웹 브라우저로 전송
- JSP 동작과정 : JSP로 작성된 프로그램은 서버로 요청 시 서블릿(servlet) 파일로 변환되어
JSP태그를 분해하고 추출하여 다시 순수한 HTML로 변환하여 전송된다.
자바 서블릿(Java Servlet)? 자바언어를 기반으로 웹페이지를 동적으로 생성하기 위한 서버측 프로그램이다.
웹 애플리케이션 서버위에서 컴파일되고 동작한다.
웹 애플리케이션? 웹에서 실행되는 응용프로그램을 뜻하며 인터넷을 통한 은행업무, 인터넷 쇼핑 등
인터넷에서 하는 여러 서비스를 총칭
à 동작하기 위한 4가지 구성요소
1. 웹 브라우저: 클라이언트가 요청하고 전달받은 페이지를 볼 수 있는 환경
2. 웹 서버: 클라이언트로부터 요청받아 서버에 저장된 리소스를 클라이언트에게 전달 (Apache)
3. 웹 애플리케이션 서버(WAS): 서버단에서 필요한 기능을 수행하고 그 결과를 웹서버에게 전달
(서블릿이나 JSP의 스크립트를 번역해줌, ex. Tomcat(톰캣))
4. 데이터베이스: 서비스에 필요한 데이터를 보관, 갱신 등 관리
-