Web Programming

    [게시판 만들기] 3-8. Spring 게시판 등록 및 상세화면 만들기

    1. AOP 설정 OOP를 보완하기 위해 나온 개념 객체 지향의 프로그래밍을 했을 때 중복을 줄일 수 없는 부분을 줄이기 위해 종단면(관점)에서 바라보고 처리한다. 주로 '로깅', '트랜잭션', '에러 처리'등 비즈니스단의 메서드에서 조금 더 세밀하게 조정하고 싶을 때 사용합니다. Interceptor나 Filter와는 달리 메소드 전후의 지점에 자유롭게 설정이 가능하다. Interceptor와 Filter는 주소로 대상을 구분해서 걸러내야하는 반면, AOP는 주소, 파라미터, 애노테이션 등 다양한 방법으로 대상을 지정할 수 있다. [게시판 만들기] 3-3. Spring 게시판을 위한 Log4j2 와 Interceptor AOP의 Advice와 HandlerInterceptor의 가장 큰 차이는 파라미터..

    [게시판 만들기] 3-7. Spring 게시판 등록 및 상세화면 만들기

    3-6까지 만들어 보았으면, 이후 개발까지 쉽게 진행할 수 있습니다. 1. 등록 페이지 생성 페이지 이동을 위하여 태그를 추가해 줍니다. 글쓰기 버튼을 클릭하면 @RequestMapping 을 통해 View 페이지를 호출 합니다. 작성 화면을 담당하는 JSP 페이지를 생성합니다. 기존 게시판 목록만들기와 동일한 과정으로 진행됨으로 자세한 설명은 생략하겠습니다. BoardController.java BoardServiceImpl.java BoardService.java BoardDAO.java mapping-ibatis2-board.xml iBatis는 변수는 #변수명# 으로 사용합니다. View 페이지에서 Form 태그 안에 name 속성을 사용하면 키 역활을 합니다. 또한 그 안의 값이 Value에 속..

    [게시판 만들기] 3-6. Spring 게시판을 위한 HandlerMethodArgumentResolver

    HandlerMethodArgumentResolver 란? View 페이지에서 Controller 로 데이터를 전달하기 전 파라메터를 커스터마이징 할 수 있게한느 인터페이스로 webArgumentResolver 였으나, Spring 3.X버전부터는 HandlerMethodArgumentResolver로 변경되었습니다. 스프링에서 제공하는 인터페이스로 , Controller 로 전달되는 파라메터(데이터)가 먼저 수정 및 가공이 이뤄집니다. 데이터를 전달하는 방법으로는 대표적으로 DTO(VO) 혹은 HashMap이 존재하는데 HandlerMethodArgumentResolver 는 HashMap으로 데이터를 가공해서 받을때 많이 사용하는 것으로 보입니다. DTO(VO) 를 사용하면 DB 테이블의 컬럼과 일치..

    [게시판 만들기] 3-5. Spring 게시판 목록 만들기

    게시판을 만들기 웹 프로젝트를 하면서 가장 기본적으로 배우게 되는 내용이며, 여러가지 설정과 기법을 통해 구현을 할 수 있습니다. 1. 데이터베이스 테이블 생성 각각의 데이터베이스가 존재하며 , 해당 글에서는 Oracle 11G ORCL을 통하여 작성하게 되었습니다. 테이블 생성 CREATE TABLE TB_BOARD( TB_IDX number primary key,-- 게시글에 대한 고유값 TB_TITLE varchar2(30),-- 게시글 제목 TB_CONTENTS varchar2(100),-- 게시글 내용 TB_CONTENT_CNT number(1),-- 게시글 조회 수 TB_DEL_GB char(1),-- 삭제여부 TB_WRITE_DTM Date,-- 게시글 작성일 TB_WRITE_ID varch..

    [게시판 만들기] 3-4. Spring 게시판을 위한 iBatis 와 Oracle연동

    1. iBatis(아이바티스)란? SQL에 기반한 데이터베이스와 자바, 닷넷(.NET) 등을 연결시켜 주는 역할을 하며, 프로그램의 소스코드에서 SQL 문장을 분리하여 연결시켜주는 방식입니다. 이는 기존 JDBC를 이용하여 프로그래밍을 하는 방식에 비해서 개발자의 부담을 덜어주고, 생산성 향상에도 도움이 됩니다. ibatis는 공식적으로 3.X 버전까지만 지원되며 이후, Mybatis 로 변경되었습니다. 2. pom.xml 에 iBatis 라이브러리 추가 스프링에서 iBatis를 사용하려면 라이브러리가 필요하다. 스프링 프로젝트는 Maven 을 통해 라이브러리가 관리되며 아래와 같이 추가하면 됩니다. ibatis를 4.X 에서 사용할 경우, mybatis-2-spring을 추가하셔야합니다. 3. pom...

    [게시판 만들기] 3-3. Spring 게시판을 위한 Log4j2 와 Interceptor

    1. 인터셉터의 설정 인터셉터는 DispatcherServlet이 컨트롤러를 호출하기 전,후에 요청과 응답을 가로채서 가공할 수 있도록 해줍니다. 예를 들어, 로그인 기능을 구현한다고 했을때, 로그인 여부에 따라 보여줄 수 있는 페이지와 없는 페이지를 분리할 때 사용할 수 있습니다. 2. 인터셉터의 생성 src/main/java/board 패키지 안에 패키지와 LoggingInterceptor.java 를 생성합니다. 인터셉터는 HandlerInterceptorAdapter 를 상속 받아 생성합니다. 클래스를 상속받으면 사용할 수 있는 3가지의 메서드가 존재합니다. perHandle() - 컨트롤러 호출 전 사용합니다. postHandle() - 컨트롤러 호출 후 사용합니다. afterHandle() -..

    [게시판 만들기] 3-2. Spring 게시판을 위한 web.xml 설명

    1. index.jsp 추가 프로젝트를 처음 생성하게 되면 기본적으로 views 폴더에 있는 home.jsp가 실행됩니다. 그렇지만 일반적으로 웹 프로그램이 시작되면 index 페이지가 기본값으로 보여지도록 약속되어 있습니다. 이를 위해 index.jsp를 추가합니다. 2. web.xml 설정 변경 web.xml은 WAS가 처음 구동될 때, WEB-INF 디렉토리에 있는 web.xml을 읽고 웹 애플리케이션 설정을 구성합니다. web.xml 통해서, 이 프로젝트가 시작되면 index.jsp를 호출하도록 변경할 수 있습니다. 3. Test 폴더 삭제 프로젝트를 생성하면 기본적인 틀이 생성되는데 그 안에 src/test/ 폴더도 함께 생성 됩니다. 해당 부분은 테스트 코드를 따로 관리하는 폴더 입니다. 사용..

    [게시판 만들기] 3-1. Spring 게시판을 위한 프로젝트 생성

    스프링은 자바 기반의 오픈 소스 어플리케이션으로 좀 더 획일화되고 좀 더 편리한 방법으로 프로젝트를 진행 할 수 있습니다. 가장 큰 특징으로는 제어 반전(IoC : Inversion of Control), 의존성 주입(DI : Dependency Injection)이 있습니다. 스프링의 특징 1. IoC 는 사용자의 제어권이 있는 것이 아니라 프레임 워크에 있다는 의미입니다. 예를 들면 기존엔 객체를 생성하였지만, 스프링은 프레임워크가 실행 시, 객체 ( 빈 ) 을 생성하여 호출하는 형식으로 사용 합니다. 2. DI 는 스프링 프레임워크가 실행 시, 빈 형태로 객체가 스프링 컨테이너에 담기게 됩니다. 이를 호출하여 사용하는 방식을 의존성 주입이라고 합니다. 3. 트랜잭션이나 로깅, 보안과 같이 여러 모듈..

    10. Spring 로그인 만들기를 통한 기능 엿보기

    인터셉터란? 컨트롤러에 들어오는 요청 과 응답을 가로채는 역할을 합니다. Filter와 비슷한 역활을 하지만 약간의 차이가 존재합니다. 가장 큰 특징으로는 호출되는 시점 차이로 Filter는 DispatcherServlet이 실행되기 전 , Interceptor는 DispatcherServlet이 실행된 후에 작동 합니다. 1. 인터셉터의 선언 DispatcherServlet 역활을 하는 servlet-context.xml 에서 인터셉터를 선언합니다. 2. 인터셉터의 생성 인터셉터는 HandlerInterceptorAdapter 를 상속받아 생성합니다. 인터셉터 안에는 preHandle , postHandle , afterCompletion 이 있으며 각각 다른 기능을 합니다. preHandle : Co..

    9. Spring 로그인 만들기를 통한 기능 엿보기

    Session 과 Cookie 란? HTTP 프로토콜은 사용자와 서버의 관계를 유지하지 않습니다. 이때 연결이 끊기더라도 지속적으로 유지하기 위하여 쿠키와 세션이라는 방식을 제공 합니다. 가장 큰 특징으로는 쿠키는 사용자측에 데이터를 남기고 세션은 서버 측에 데이터를 저장합니다. 1. Session 선언 세션을 사용하기 위해선 HttpSession 을 이용해야하며, setAttribute를 통하여 값을 담아 줍니다. 2. Session 종료 세션은 생성후 invalidate 메서드를 만나게 되면 삭제 됩니다. 3. Session을 이용한 계정 정보 관리 기존의 계정 정보는 중요한 정보이므로, 서버에 데이터를 관리하는 세션으로 구성하는 것이 좋습니다. 로그인 시 session.setAttribute( "세..