본문 바로가기

Web Programming

(56)
HTTP Status 405 - HTTP method GET is not supported by this URL 웹 프로그래밍 하면서 처음으로 봤던 페이지 인데요.. HTTP Status 405 - HTTP method GET is not supported by this URL해당 페이지를 처리하는 Servlet 에 doGet() 또는 doPost() 메소드가 지원이 안되는 경우에 나타나는 메시지 입니다. 위와 같은경우엔 doGet() 메소드가 있는지 확인해야겠지요.. 암튼 에러를 처리하고 고고싱-
Chapter 3. 초 간단 미니 MVC 튜토리얼 ① 실제 서블릿을 생성하여 간단한 요청에 의한 웹페이지를 돌려주는 튜토리얼 페이지를 만들 예정입니다. 맥주를 골라주는 BeerSelection 이라는 프로그램이 있었는데 별로 맥주를 안좋아하는 관계로.. 여름이기도 하니 여름 해수욕장을 골라주는 웹 프로그램을 하나 만들어 보겠습니다. 먼저 화면을 설계합니다. 요런식으로 매우 간단합니다.. 동, 서, 남해중 하나를 고르면 해당되는 지역에 있는 제가 추천하는 해수욕장을 보여주는게 전부지요.. 아주 간단합니다. 간단해요.. 그럼 잠깐 얘기가 나왔던 MVC 패턴에 대해서 살펴보도록 하겠습니다. Model View Controller 패턴의 약어입니다. 핵심 내용은 비즈니스 로직과 프리젠테이션 로직을 분리하였다는데에 있습니다. 분리한다는 개념의 어떤 단위로 구분 지었..
Chapter 2. 웹 애플리케이션 아키텍처 ② 앞서 Deployment Description(이하 DD) 이용해서 서블릿 이름을 지어주는 것이 좋다고 했습니다. 그 이유중 하나는 물리적인 하드코딩이 아니라 선언적인 의미에 불과하기 때문에 코드 수정이 용이하다는 것이었습니다. 뭐 이해하고 있다면 무슨 말인지 알기 쉽지만 이해를 못하는 상황에서는 저런 정의도 무의미 하다는 생각이 듭니다. 그래서 직접 DD를 작성해 보았습니다. 예전에 SpringFrameWork 테스트 한다고 만들어 놔던 web.xml 파일을 가져와 봤습니다. 저기서 중요한 부분은 이라는 태그와 이라는 두 태그 입니다. mapping 이라는 단어에서 유추 할 수 있듯이, 뭔가 선언된 서블릿을 실제 경로에 존재하는 서블릿 클래스와 매핑을 시켜주는 그런 과정인거지요. 1. 태그내에 태그는 ..
Chapter 2. 웹 애플리케이션 아키텍처 ① 앞에서 이야기한 웹 서버는 실제로 하는 역할은 딱 한가지 뿐입니다. 사용자가 요청한 HTML 페이지를 찾아서 보여주는 역할만 하지요. 이미 정의가 되어있는 STATIC 한 페이지를 되돌려주는것이 전부입니다. 하지만 실제로 사용자가 원하는 페이지는 사용자의 구색에 맞게 변하는 동적인 페이지 이지요.. 그런 요구에 대응하기 위해 나온 구조가 웹 어플리케이션 아키텍쳐 입니다. 이런 동적인 페이지를 만들기 위한 시초정도라고 할 수 있는데.. C나 파이선, PHP 같은 언어로 구현이 되어있다고 합니다. 요청이 들어올때 마다 프로세스를 생성해야 하므로 퍼포먼스가 떨어진다는 단점이 있답니다. CGI와는 다르게 스레드를 생성하여 클라이언트의 요청에 부응합니다. 예전에 스레드와 프로세스의 차이를 다룬 내용이 있는데요....
Chapter 1. Servlet 과 JSP는 어디에 쓰는 물건인고 음.. OkJSP를 참고해서 하던 JSP, 서블릿이 급 변경이 되면서.. 헤드퍼스트 JSP / Servlet으로 대신하게 되었습니다. 1장, 2장을 예습해오기로 해서.. 미리 책을 읽고 정리를 해봅니다. 대략적으로 이런 모형이 그려집니다. 클라이언트가 웹브라우저를 사용해서 URL로 해당 서버에 접근하여 어떠한 페이지를 요청하면 서버는 그 페이지를 클라이언트에 돌려준다고 합니다. 클라이언트가 서버에게 Request를 보내는 종류에는 여러가지가 있는데 그중에서 HTTP GET 메소드와 POST 메소드를 사용한다고 합니다. GET과 POST 메소드를 알아보도록 하겠습니다. - GET 메소드 : 서버를 뭔가 돌려받는다는 것이 핵심입니다. 단순히 서버에게 자원을 요청합니다. - POST 메소드 : GET보다 좀 ..
Spring JDBC 사용하기 : 제 2 탄, 쿼리 날리기 JDBC 를 통해서 하던일 중에 가장 짜증나던 SQL Exception Handling 문제를 해결하고 나니 다음으로 기다리고 있는 것은 자주 반복되는 SQL 문 노가다 였다. 그걸 좀 쉽고 가독성있게 처리하는 방법이 있어서 따라 해 보았다. MeassageSourceAcessor 라는 클래스를 이용해서 미리 정의해 놓은 쿼리들을 가져다가 쓰는 것이다. 예상보다 아주 간단하게 할 수 있었고 코드를 고치지 않아도 조금씩 확장해서 쓸수 있는 것이 인상적이었다. SQL 문법과 자바 소스와 아예 분리를 시키므로서 SQL 코드를 뒤져야하는 상황이 줄어들며 나중에 협업을 할때도 SQL 문을 따로 DBA가 작성을 해줘도 될것 같다. dbQuery Messages 여기서 두가지 객체가 필요한데 하나는 ResourceB..
Spring JDBC 사용하기 : 제 1 탄, DBMS 커넥션 얻기~ dbQuery Messages 이부분은 bean을 선언해 놓은 applicationContext.xml 파일이다. 생성해준 객체들은 총 5개 이다. 기존 JDBC 를 사용했을때의 단점중에 하나인 Try Catch 와 관련된 반복이 줄어드는게 가장 먼저 보인 Spring JDBC 의 장점이었다. 먼저 DBMS 에 접근 하는 방법은 BasicDataSource 라는 클래스를 이용한다. 본래 DriverManager 클래스를 사용했던 것과 비슷하게 BasicDataSource 클래스의 생성자를 이용해서 파라미터 값들을 설정해 준다. 그리고 위의 dataSource 객체를 활용하는 곳은 JdbcTemplate 라는 클래스이다. 마찬가지로 생성자를 통해서 사용할 뿐이다. 별다른 사항들은 없다. 이렇게 JdbcTe..
ANT Build 만들기 예전에 ANT 배치 파일을 만들어서 사용했던 기억이 난다. 물론 내가 하지는 않았지만.. 그래서 이번에는 ANT 를 사용해서 자동으로 DB 테이블을 작성하도록 해보았다. Deploy를 하거나 환경 세팅을 할때 참 좋을듯.. 일단 첫번째로 어떤 DBMS의 SQL문에 맞도록 작성을 해 놓는다. 필자는 Oracle DBMS를 사용하였다. --DROP TABLE BOARD; CREATE TABLE BOARD ( BOARDNO NUMBER(11,0) NOT NULL ENABLE, TITLE VARCHAR2(80) NOT NULL ENABLE, NAME VARCHAR2(10) NOT NULL ENABLE, EMAIL VARCHAR2(30), PASSWORD VARCHAR2(10) NOT NULL ENABLE, CR..