본문 바로가기
정보처리기능사+웹개발 국비 수업

[내가 공부하려고 ~] JSP란?

by 용굥이 2023. 6. 15.

JSP 란?

HTML문서에 내부적으로 자바 문법을 사용할 수 있게 하는 웹페이지 스크립트 언어

 

- JSP 나오기전에 웹 브라우저를 통해 웹 페이지를 보여주는 기능이 있었는데, 아파치(Apache) 같은 웹 서버를 이용해서 웹 페이지들을 브라우저에 표현하는 상식이 있었다. 이게 정적 웹 프로그래밍

 

아파치(Apache)?

세계에서 가장 많이 쓰는 웹 서버중 하나임.

HTTP 서버이고, 굉장히 다양하고 기능적인 면에서 우수함, 구축이 쉬워서 많이 사용한다.

하지만? 아파치 자체만으로 엄청 무겁고, Squid와 함께 Sloworis 취약점이 발견되어 프로그래밍 능력이 능숙하거나 대형사이트 운영자는 Nginx, IIS 를 주로 사용하함.

사용이 무료이기 때문에 중소기업에서 많이 사용한다.

 

정적 웹 프로그래밍?

-> 웹 서버에 미리 보여줄 HTML 페이지, CSS, 이미지, 자바스크립트 파일을 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식

   따라서, 사용자는 페이지가 변경되지 않는 한 고정된 웹 페이지를 보는 것임, 새로고침을 하지 않으면 실시간으로 변하는 효과 같은 걸 못 본다.

 

정적 웹 프로그래밍 특징!

- 사용자에게 화면 디자인 같은 고정된 정보만 제공

- 정보를 수정해야 될 때 관리자가 직접 HTML 소스를 수정해서 사용자에게 정보를 제공

 

동적 웹 프로그래밍?

-> 빠르게 변하는 사용자들의 요구에 만족시키기 위하여 동적으로 기능을 처리하는 방식으로 웹 프로그래밍을 수행.

처음에 동적인 방식으로 프로그램을 제공하는 기능은 대표적으로 CGI(Common Gate Interface, 공용 게이트웨이 인터페이스) 였다.

CGI 방식은 웹 애플리케이션 서버에서 실행되는 기능들이 모두 프로세스 방식으로 실행됨

 

CGI 특징!

- 초기 웹 프로그램에서 사용하는 방식

- 프로세스 방식으로 실행됨

- 서버의 부하가 심함.

 

처음에는 사용자 수와 수행할 기능이 적어서 사용하는데 문제가 없었지만 인터넷이 발전하면서 사용자수가 늘어났고,

그만큼 처리할 일도 많아져서 메모리에 과부하가 걸림

이 문제를 개선하기 위해 나온 것이! JSP, ASP, PHP 와 같은 동적 웹 프로그래밍 기술이다!

 

JSP 특징!

기본적으로 스레드방식으로 실행하기 때문에 CGI 방식보다는 효율적으로 기능을 수행함

 

동작 방식의 특징

- 프로세스 방식이 아닌 스레드 방식으로 실행함

   * CGI 방식은 웹 애플리케이션 서버에서 실행되는 기능들이 모두 프로세스 방식으로 실행됨

- 클라이언트의 요구를 처리하는 기능은 최소 한번만 메모리에 로드됨

- 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용함

 

그렇다면 프로세스와 스레드 방식이 간단하게 뭔지?

 

프로세스 방식 : 실행중인 프로그램, 자기만의 공간에 할당받아서 사용한다.

                         -> 디스크에 있는 프로그램이 메모리에 로드되면 프로세스가 됨!

                         -> 스택(Stack), 힙(Heap), 데이터(Data), 코드(Code)

 

스레드 방식 : 프로세스 안에서 실행되는 흐름의 단위, 다른 스레드와 공간을 공유하면서 사용한다.