'전체 글'에 해당되는 글 203건

  1. 2015.07.20 MVC
  2. 2015.07.12 Statement vs PreparedStatement
  3. 2015.07.12 서블릿(Servlet) 기초2
  4. 2015.07.12 서블릿기초1
  5. 2015.07.12 서블릿이란?(Servlet)

MVC

ServletJDBC 2015. 7. 20. 18:00

MVC 아키텍쳐 란 무엇인가?

MVC(Model - View - Controller)로 아키텍처를 구성하여 프로젝트를 완성하는 것



컨트롤러(Controller) 컴포넌트의 역할

클라이언트의 요청을 받았을 때 그 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출하는 일

클라이언트에서 데이터를 보내왔다면 모델을 호출할 때 전달하기 쉽게 데이터를 적절히 가공하는 일

모델이 업무 수행을 완료하면, 그 결과를 가지고 화면을 생성하도록 뷰에게 전달하는 일

*즉, 클라이언트에 요청에 대해 모델과 뷰를 결정하여 전달하는 일*


모델(Model) 컴포넌트의 역할

데이터 저장소(예 : 데이터베이스, 디렉터리 서비스 등)와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 일

특히 여러 개의 데이터 변경 작업(추가, 변경, 삭제)을 하나의 작업으로 묶은 트랜잭션을 다루는 일


뷰(View) 컴포넌트의 역할

모델이 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면을 만드는 일. 

즉, 뷰 컴포넌트는 HTML과 CSS, Javascript를 사용하여 웹 브라우저가 출력 할 UI를 만듭니다.


웹 프로젝트에서의 MVC의 실행 흐름


MVC 의 이점은 무엇인가?

높은 재사용성, 넓은 융통성

① 화면 생성 부분을 별도의 컴포넌트로 분리하였기 때문에, 모델과 컨트롤러 상관 없이 뷰 교체가 가능하다.

② 원 소스 멀티 유즈(One Source, Multi Use) , 모델 컴포넌트가 작업한 결과를 다양한 뷰 컴포넌트로 전달 가능

(HTML, XML, JSON 등등) 

③ 코드를 재 사용 할 수 있다. 화면을 바꾸거나 데이터 형식을 바꾸더라도 모델 컴포넌트는 그대로 재사용 가능


빠른 개발, 저렴한 비용

①다른 프로젝트에서도 모델 컴포넌트를 재사용 할 수 있기 때문에 개발 속도가 빨라진다. 또한 서버 개발자는 컨트롤러와 모델 개발에 집중하고, 뷰 개발자와의 작업을 분리 할 수 있다.


'ServletJDBC' 카테고리의 다른 글

서블릿 데이터 보관소  (0) 2015.07.20
JSP 프리컴파일  (0) 2015.07.20
Statement vs PreparedStatement  (0) 2015.07.12
서블릿(Servlet) 기초2  (0) 2015.07.12
서블릿기초1  (0) 2015.07.12
Posted by slender ankles
,

JDBC를 사용하기 위한 java.sql 의

Statement vs PreparedStatement 비교

비교항목 

 Statement

PreparedStatement 

실행 속도 

질의할 때마다 SQL문을 

컴파일한다. 

SQL문을 미리 준비하여 컴파일해둔다.

입력매개변수 값만 추가하여 서버에 전송한다.

특히 여러 번 박복하여 질의하는 경우, 실행 속도가 빠름 

 바이너리 

데이터 전송

불가능 

가능 

 프로그래밍 

편의성

SQL문 안에 매개변수 값이 포함되어 있어서 SQL 문이 복잡하고 매개변수가 여러 개인 경우 코드 관리가 힘들다. 

 SQL문과 입력 매개변수가 분리되어 있어서 코드 작성이 편리하다.


'ServletJDBC' 카테고리의 다른 글

JSP 프리컴파일  (0) 2015.07.20
MVC  (0) 2015.07.20
서블릿(Servlet) 기초2  (0) 2015.07.12
서블릿기초1  (0) 2015.07.12
서블릿이란?(Servlet)  (0) 2015.07.12
Posted by slender ankles
,

서블릿 클래스는 반드시 javax.servlet.Servlet인터페이스를 구현해야 합니다.

서블릿 컨테이너가 서블릿에 대해 호출할 메서드를 정의한 것이 Servlet 인터페이스입니다.


[서블릿 인터페이스]


서블릿의 생명주기

서블릿의 구동절차(생명주기)

(1) 클라이언트 요청이 들어오면 서블릿 컨테이너는 서블릿을 찾습니다.

(2) 만약 서블릿이 없다면, 서블릿 크래스를 로딩하고 인스턴스를 준비한 후 생성자를 호출합니다. 그리고 서블릿 초기화 메서드인 init()를 호출합니다.

(3) 클라이언트 요청을 처리하는 service()메서드를 호출합니다. 메서드 이름을 보면 이미 그 용도를 짐작 할 수 있습니다. 즉 클라이언트의 요청에 대한 서비스를 제공한다는 뜻입니다.

(4) service() 메서드에서 만든 결과를 HTTP프로토콜에 맞추어 클라이언트에 응답하는 것으로 요청처리를 완료합니다.

(5) 만약 시스템 운영자가 서블릿 컨테이너를 종료하거나, 웹 어플리케이션을 종료 한다면,

(6) 서블릿 컨테이너는 종료되기 전에 서블릿이 마무리 작업을 수행 할 수 있도록 생성된 모든 서블릿에 대해 destroy()메서드를 호출합니다.



제네릭서블릿(GenericServlet)이란?



HttpServlet이란?


제네릭 서블릿의 service()추상메서드까지 모두 구현되어있고,

요청 메서드에 따라서 doGet(), doPost(), doPut() 등등의 메서드를 나누어놓은 추상메서드를 구현하면 됩니다.

실제로 구현할 때는 HttpServlet을 활용하게 됩니다.


'ServletJDBC' 카테고리의 다른 글

MVC  (0) 2015.07.20
Statement vs PreparedStatement  (0) 2015.07.12
서블릿기초1  (0) 2015.07.12
서블릿이란?(Servlet)  (0) 2015.07.12
서블릿을 시작하기 전..  (0) 2015.07.12
Posted by slender ankles
,

서블릿기초1

ServletJDBC 2015. 7. 12. 17:27

이클립스, JDK에 대한 설치는 했다고 가정합니다.


서블릿 프로젝트 생성하는 방법

eclipse 서블릿, JSP 기본 프로젝트 생성하는 방법

[File] -> [New] -> [Project..] -> Web -> Dynamic Web Project

=> Dynamic Web Project는 서블릿 및 JSP 기반 웹 어플리케이션을 만들 때 사용


왼쪽 하이라키의 서블릿 프로젝트의 각 파일들의 역할에 대해서 설명하겠습니다.

왼쪽 하이라키에는 Project Explorer, Package Explorer 등등이 있는데, 

Navigator에 대해서 설명하겠습니다.

Navigator가 없다면 [Window] -> [Show View] -> [Navigator]를 클릭하면 화면에 나타날 것임


[서블릿 프로젝트 구조의 예]


src 

자바 소스 파일을 두는 폴더. 앞으로 이 폴더에 서블릿 클래스나 필터, 리스터 등 필요한 모든 자바 클래스 파일 둘 것입니다. 프로퍼티(.properties)도 이 폴더에 둡니다.

build/classes

컴파일된 자바 클래스 파일(.class)이 놓이는 폴더입니다. 물론 패키지에 소속된 클래스인 경우 이 폴더에 해당 패키지가 자동으로 만들어집니다.

WebContent

HTML(.html),  CSS(.css), Javascript(.js), JSP, 이미지 파일 등 웹 콘텐츠를 두는 폴더입니다. 웹 애플리케이션을 서버에 배치할때 이 폴더의 내용물이 그대로 복사됩니다.

WebContent/WEB-INF

웹 애플리케이션의 설정과 관련된 파일을 두는 폴더입니다. 이 폴더에 있는 파일은 클라이언트에서 요청 할 수 없습니다. 따라서 HTML이나 Javascript, CSS 등 클라이언트에서 요청 할 수 있는 파일을 이 폴더에 두어서는 안 됩니다.

WebContent/WEB-INF/web.xml

웹 애플리케이션 배치 설명서(Deployment Descriptor)파일입니다. 영어 표현을 줄여서 'DD파일' 이라고도 부릅니다. 서블릿이나 필터, 리스너, 매개변수, 기본 웹 페이지 등 웹 애플리케이션 컴포넌트들의 배치 정보를 이 파일에 작성합니다. 서블릿 컨테이너는 클라이언트의 요청을 처리할 때 이 파일의 정보를 참고하여 서블릿 클래스를 찾거나 필터를 실행하는 등의 작업을 수행합니다. 자세한 설정 방법은 이후에 진행되는 과정을 통해 단계적으로 배우겠습니다.

WebContent/WEB-INF/lib

자바 아카이브(Archive)파일(.jar)을 두는 폴더입니다. 아카이브란? 우리말로 '기록보관소'라는 뜻입니다. 즉 아카이브 파일은 클래스 파일(.class)과 프로퍼티 파일(.properties)들을 모아 놓은 보관소 파일입니다. 이러한 이유로 Java ARchive의 합성어를 확장한 확장자 명(.jar)으로 사용하고 있습니다. 또한 'jar'단어 자체는 '단지'라는 뜻이 있습니다.

'ServletJDBC' 카테고리의 다른 글

MVC  (0) 2015.07.20
Statement vs PreparedStatement  (0) 2015.07.12
서블릿(Servlet) 기초2  (0) 2015.07.12
서블릿이란?(Servlet)  (0) 2015.07.12
서블릿을 시작하기 전..  (0) 2015.07.12
Posted by slender ankles
,

데스트탑 애플리케이션 vs 웹 애플리케이션?

데스크톱 어플리케이션

사용자가 직접 아이콘을 더블 클릭하거나 명령 창(터미널)을 통해 실행시키는 프로그램

웹 애플리케이션

사용자가 웹 서버를 통해 간접적으로 실행시키는 프로그램


CGI(Common Gateway Interface)란 무엇인지?

웹 브라우저에서 웹 서버로 정보를 요청하면 웹 서버는 프로그램에 작업을 요청하여

CGI규칙을 통해 결과를 받아서 클라이언트로 응답한다.

이 때 웹 서버와 프로그램 사이의 데이터를 주고받는 규칙을 CGI(Common Gateway Interface)라고 한다.


CGI 프로그램에서 컴파일 방식 vs 인터프리터 방식

CGI프로그램은 C, C++, Java와 같은 컴파일 방식의 언어로 작성 할 수도 있고

Perl, PHP, Python과 같이 스크립트 언어로도 작성 할 수 있다.

컴파일 방식은 

기계어로 번역된 코드를 바로 실행하기 때문에 실행 속도가 빠르지만,

변경 사항이 발생할 때마다 다시 컴파일하고 재배포해야하는 문제가 있다.


스크립트 방식은

실행할 때마다 소스 코드의 문법을 검증하고 해석해야 하기 때문에 속도가 느리지만,

변경 사항이 발생하면 단지 소스 코드를 수정하고 저장만 하면 되기 때문에 편리하다.



서블릿(Servlet)이란 무엇인가?

자바로 만든 CGI프로그램을 서블릿(서버 + 애플릿의 합성어)이라고 함

자바 서블릿이 다른 CGI프로그램과 다른 것은 웹 서버와 직접 데이터를 주고 받지 않으며,전문 프로그램에 의해 관리된다는 것


서블릿 컨테이너?

서블릿의 생성과 실행, 소멸 등 생명주기를 관리하는 프로그램, "서블릿 컨테이너"

서블릿 컨테이너가 서블릿을 대신하여 CGI 규칙에 따라 웹서버와 데이터를 주고 받음.

개발자들은 CGI 규칙을 알 필요가 없지만 서블릿 규칙에 대해서 알아야 함.


WAS(Web Application Server)란 무엇인지?

서블릿과 서블릿 컨테이너와 같은 웹 기술 기반으로 동작하는 애플리케이션 서버를 

"WAS(Web Application Server)"라고 함



'ServletJDBC' 카테고리의 다른 글

MVC  (0) 2015.07.20
Statement vs PreparedStatement  (0) 2015.07.12
서블릿(Servlet) 기초2  (0) 2015.07.12
서블릿기초1  (0) 2015.07.12
서블릿을 시작하기 전..  (0) 2015.07.12
Posted by slender ankles
,