본문 바로가기

WEB

(12)
[WEB] 서블릿과 데이터베이스 (feat. JDBC) 서블릿은 많은 경우, 데이터의 생성과 삭제 및 수정 등을 하며 클라이언트의 요청에 응답을 한다. 이 과정에서 더욱 상세히 데이터를 다루기 위해서는 데이터베이스가 필수적이다. 자바의 어플리케이션이 MySQL과 같은 외부 DB에 접속하기 위해서는 별도의 데이터 접근 API가 필요한데 이것이 바로 JDBC이다. 서블릿과 JDBC DriverManager를 통해 Connection 생성하기 서블릿에서 DB의 데이터를 가져온다고 생각해보자. 어떤 과정을 거쳐야 할까? 먼저 자바의 언어로 DB와는 소통할 수 없으므로 JDBC 드라이버를 등록해야 한다. 그후 JDBC 드라이버를 통해 DB와 연결을 하기 위한 Connection 인터페이스의 구현 객체를 생성한다. 다음으로는 원하는 질의문(SQL)을 DB로 보내 그에 ..
[WEB] HTTP요청과 HttpServlet HTTP 요청과 service() 서블릿은 클라이언트에게 요청이 들어오면 service() 메서드를 호출하여 처리한다. 그렇다면 http 요청은 service() 메서드로 어떻게 처리할 수 있을까? 일단 http 요청은 대표적으로 GET 요청과 POST 요청이 있다. 일단 이 두 요청을 분류해서 해결할 필요가 있다. public void service(ServletRequest req, ServletResponse res) { private boolean isGet; pirvate boolean isPost; // http 요청을 파싱하여 get 요청 / post 요청 여부 확인 if (isGet) { doGet(...) } if (isPost) { doPost(...) } } public void do..
[WEB] 서블릿 프로그래밍 CGI 프로그램 웹 브라우저와 웹 서버 사이에는 HTTP 프로토콜을 통해 요청 형식과 응답 형식에 맞게 데이터를 주고 받게 된다. 그렇다면 웹 서버와 프로그램 사이에도 마찬가지로 데이터를 주고 받기위한 규칙이 필요할 것이다. 그 규칙이 바로 CGI(Common Gateway Inteface)이다. 그리고 이 규칙에 따라서 웹서버와 데이터를 주고 받을 수 있게 작성된 프로그램을 CGI 프로그램이라고 한다. 서블릿 자바로 만든 CGI 프로그램을 서블릿(Servlet)이라고 한다. 서블릿은 컴파일 방식으로 바이트 코드 파일(.class 파일)을 컴파일하여 웹서버와 소통하는데 다른 컴파일 방식의 CGI 프로그램(C/C++)과 다르게 웹서버와 직접 데이터를 주고 받지 않고, 중간 관리자인 서블릿 컨테이너에 의해 ..
[WEB] 웹 어플리케이션과 HTTP 프로토콜 웹서버와 웹 어플리케이션 아키텍처 기존의 서버-클라이언트 아키텍처는 내부 동작과 UI 파트를 분리함으로써 내부 동작과 관련된 코드가 수정 되더라도 클라이언트의 재설치가 필요 없으며, 클라이언트가 내부DB에 직접 접근하는 것을 방지할 수 있었다. 하지만 서버-클라이언트 아키텍처도 여전히 클라이언트가 UI를 담당하므로 UI가 변경되면 재설치가 필요했다. 또한 멀티스레드를 관리해야 하는 소켓프로그래밍은 어플리케이션 개발의 생산성을 저해하였다. 웹기술을 적용하여 만들어진 웹 어플리케이션 아키텍처는 위에서 언급한 이러한 문제들을 해결 할 수 있었다. 먼저 기존의 서버는 어플리케이션 서버와 웹 서버로 나뉘게 된다. 어플리케이션 서버는 기존의 서버처럼 내부 작업을 수행하고 웹서버에게 응답한다. 웹서버는 화면을 띄울 ..