JSP는 또 뭔데??..서버좀 만들어 보자^^
많은 분들이 처음 JSP라는 단어를 들어면 딱 봐도 “언어구나”….라고 느끼면서
좀 답답함과 막막함을 느꼈을수도 있을거 같아요…근데 사실 이건 축약어인데, 풀이해보면
자바 서버 페이지! 라고 하거든요? 말 그대로 자바 언어랑 양식이 거의다 똑같아요……
전혀 어려운거 하나도 없습니다!!! 하지만 jsp가 뭔지 이걸 왜쓰는지, 쓰면 뭐가 장점이고 뭐가 문제가 생기고,,,,,,,등등 이런것들을 알면서 써야지 진짜 도움이 되고, 나중에 제가 원하는 방식으로 잘 다룰수 있을거 같습니다!!!
서론이 길었는데, 자 ! 그래서 오늘은 JSP에 대한 개념을 정리해보고 장점이 뭔지 알아보겠습니다!.
또, 어떻게 쓰는지도 알아볼게요🙂
JSP ⇒ Java 코드가 들어가 있는 HTML 코드
정의 끝.
이해가 바로 되지 않나요?…..그냥 단순히 HTML코드안에 JAVA코드를 쓸 수 있다!
이거에요!!!! 쉽죠?? 자 그러면 왜 굳이 HTML코드안에 JAVA코드를 쓰냐??? 이렇게 궁금할 수 있어요!
자, HTML,CSS,JavaScript는 웹페이지를 꾸미고 만드는데 사용하는거였죠????
그러면 자바 코드는?? 뭔가를 연산작업을 효율적으로 처리하고 데이터를 비교하는 프로그램을 만들때 썼죠?
그러면 HTML코드양식만 쓰면 이건,,,,그냥 보여주기식이에요….😟
아무런 연산작업도 없고, 그냥 이쁘장한 페이지만 있는거죠?
근데 만약에 그 HTML코드에 어떠한 연산이나 기능을 쓸 수있다면??? ⇒ 로그인하고, 결제하고, 장바구니에 물건을 담고!
저희가 지극히 잘 알고 있는 일반 웹페이지랑 똑같죠??? (쿠팡, 네이버, 유튜브)
이제 좀 느낌이 오시나요?
자, 저희가 클라이언트로써 접속하는 모든 서버는 이러한 저희의 요청(요구사항) 에 따라 시시각각 작동하고 그에 맞는 데이터를 보내줘요!! 그 역할을 해줄수 있게 만드는 코드가 ! JSP프로그래밍 인거죠!!!!
자 여기까지 잘 이해 하셨다면 이제 정확한 정의를 내려봅시다 !
서블릿은 자바 소스코드 속에 HTML코드가 들어가는 형태인데, JSP는 이와 반대로 HTML 소스코드 속에 자바 소스코드가 들어가는 구조를 갖는 웹어플리케이션 프로그래밍 기술입니다.
HTML속에서 자바코드는 <% 소스코드 %> 또는 <%= 소스코드 =%>형태로 들어갑니다.
자바 소스코드로 작성된 이 부분은 웹 브라우저로 보내는 것이아니라 웹 서버에서 실행되는 부분입니다.
웹 프로그래머가 소스코드를 수정 할 경우에도 디자인 부분을 제외하고 자바 소스코드만 수정하면 되기에 효율을 높여줍니다.
또한 컴파일과 같은 과정을 할 필요없이 JSP페이지를 작성하여 웹 서버의 디렉토리에 추가만 하면 사용이 가능합니다.
서블릿 규칙은 꽤나 복집하기 때문에 JSP가 나오게 되었는데 JSP는 WAS(Web Application Server)에 의하여 서블릿 클래스로 변환하여 사용되어 집니다.
자 여기서 서블릿으로 변환하는 역할은 톰캣이 해준다고 했죠???
그렇게 서블릿변환이 완료된 자바 파일을 JDK가 컴파일을 해줘서 .class라는 실행파일이 생성되고. 그것을
실행하면 서블릿 객체가 생성이 되는겁니다!
자 여기서 WAS라고 하였는데요….생소한 언어일수 있지만 쉬운말로는
정적인 웹페이지 + 동적인 웹페이지 입니다!!!
Web Server + Application Server 인거죠?
이해가 잘 안가신다면 전 게시글에 다뤘던 서블릿과 서버에 대한 내용을 한번 더 참고하시면 좋을거 같습니다!!
자 다시 본론으로 돌아와서! 그렇다면 이제 JSP를 어떻게 쓰면 되는지도 알아봤고, 동작원리도 간단하게나마 개념을 짚어서
알아봤습니다!!! 실제로 어떻게 쓰는지 코드를 구현을 해본걸 한번 보여드릴려고 합니다!!
<% // jsp 영역 생성!!
//선언부 : jsp 에서 메소드나 변수를 선언할 수 있는 공간.
public String gugudan(int x){
String result="";
for(int i=1; i<=x; i++){
for(int j=1; j<10; j++){
// out.print(i+"*"+j+" ="+(i*j));
result += i+"*"+j+" ="+(i*j)+"<br>";
}
}
return result;
}
public int sum(int max){
int s=0;
for(int i=1; i<=max; i++){
s+=i;
}
return s;
}
%>
뭐 별거 없죠?….간단하게 <% %> 영역을 생성해서 그안에 자바코드를 쓸 수 있는거에요!!!1
이제 이러한 원리를 이해하고 접목을 시켜서 만드는게 실제 배포하는 서버페이지가 되겠죠!!! (동적인!)
오늘은 간단하게나마 JSP가 뭐인지, 어떻게 쓰는지, 장점은 뭐인지에 대해서 알아봤습니다!
다음 시간에는 이러한 기본 원리를 어느정도 이해 했다는 가정하에 (재가요…..ㅠ) 로그인 시스템을 구현 해보는
JSP코드를 짜보도록 하겠습니다!!!
마지막으로 서블릿과 JSP의 차이점만 기술하고 끝내겠습니다!
Servlet과 JSP의 차이== 실질적으로 기능에 차이는 없습니다만, 그 역할에 대해서는 조금 나뉩니다 !
Servlet
- Java 코드 안에 HTML 코드 (하나의 클래스)
- data processing(Controller)에 좋다. 즉 DB와의 통신, Business Logic 호출, 데이터를 읽고 확인하는 작업 등에 유용하다.
- Servlet이 수정된 경우 Java 코드를 컴파일(.class 파일 생성)한 후 동적인 페이지를 처리하기 때문에 전체 코드를 업데이트하고 다시 컴파일한 후 재배포하는 작업이 필요하다. (개발 생산성 저하)
JSP
- HTML 코드 안에 Java 코드
- presentation(View)에 좋다. 즉 요청 결과를 나타내는 HTML 작성하는데 유용하다.
- JSP가 수정된 경우 재배포할 필요가 없이 WAS가 알아서 처리한다. (쉬운 배포)
결론 : 서블릿이 최소한 뭔지 알고 동작은 어떻게 하는건지, 이런것좀 알고 난 다음에 JSP를 이해하면,
최소한 서블릿이랑 JSP를 헷갈리진 않겠죠????…뭐 둘다 기능은 크게 다르지 않지만요….
근데 이 글을 읽고 나면, 당연히 개발자 입장에서 JSP를 쓰겠죠??????
이해가 안갔다면, 당장 처음부터 다시 정독하십쇼 ^^.
'JSP' 카테고리의 다른 글
Servlet으로 웹페이지 구현해보기 (로그인) (0) | 2023.01.16 |
---|---|
일단 서버란 뭘까요…? 서블릿이란?…뭘까요오오??.. (0) | 2023.01.16 |
JSP ⇒ JSTL/EL 문법과 사용법…허허 (0) | 2023.01.16 |
JSP 내장 객체의 종류, 영역 ? (0) | 2023.01.16 |