전체 글

전체 글

    [12] 기본적인 웹 게시물 관리 - 비즈니스 계층

    비즈니스 계층은 고객의 요구사항을 반영하는 계층으로 프레젠테이션 계층과 영속 계층의 중간 다리 역할을 하게 된다. 영속 계층은 데이터베이스를 기준으로 해서 설계를 나눠 구현하지만, 비즈니스 계층은 로직을 기준으로 해서 처리하게 된다. 예컨대, '쇼핑몰에서 상품을 구매한다'라고 가정했을때 해당 쇼핑몰의 로직이 '물건을 구매한 회원에게는 포인트를 올려준다'고 하면 영속 계층의 설계는 '상품'과 '회원'으로 나누어서 설계하게 된다. 반면에 비즈니스 계층은 상품 영역과 회원 영역을 동시에 사용해서 하나의 로직을 처리하게 된다. 현재 예제는 단일한 테이블을 이용하고 있기 때문에 위와 같은 구조는 아니지만, 설계를 할 때는 원칙적으로 영역을 구분해서 작성해야 한다. 일반적으로 비즈니스 영역에 있는 객체들은 '서비스..

    [11] 기본적인 웹 게시물 관리 - 영속/비즈니스 계층의 CRUD 구현

    영속 계층의 작업은 항상 다음과 같은 순서로 진행한다. 테이블의 칼럼 구조를 반영하는 VO 클래스의 생성 MyBatis의 Mapper 인터페이스의 작성/XML 처리 작성한 Mapper 인터페이스의 테스트 위의 과정 전에 먼저 JDBC 연결을 테스트 하는 과정을 거치는 것이 좋지만, SQL Developer의 연결 자체가 이미 JDBC 연결을 이용하기 때문에 예제에서는 별도의 과정을 생략하고 진행하겠다. 1. 영속 계층의 구현 준비 1-1. VO 클래스의 작성 VO 클래스를 작성하는 작업은 테이블 설계를 기준으로 작성하면 된다. 현재 tbl_board 테이블의 구성은 아래와 같다. 1-2. 프로젝트에 org.zerock.domain 패키지를 생성하고, BoardVO클래스를 정의한다. 그리고 아래와 같은 코..

    [10] 기본적인 웹 게시물 관리 - 스프링 MVC 프로젝트의 기본 구성

    예제를 작성하기에 앞서서 스프링 MVC를 이용하는 프로젝트의 구성을 이해하는 일은 전체 데이터의 흐름을 보기 위해서이다. 브라우저에서 전송한 데이터를 스프링 MVC의 어떤 단계를 거쳐서 실행되는지를 이해한다면 문제가 발생했을 때 빠른 대처와 대안을 찾을 수 있기 때문이다. 일반적으로 웹 프로젝트는 3-tier 방식으로 구성한다. Presentation Tier(화면계층) : 화면에 보여주는 기술을 사용하는 영역이다. 책의 예제에서는 Servlet/JSP나 스프링 MVC가 담당하는 영역이 된다. Presentation Tier는 프로젝트의 성격에 맞춰 앱으로 제작하거나, CS(Client-Server)로 구성되는 경우도 있다. 이전 파트에서 학습한 스프링 MVC나 JSP를 이용한 화면 구성이 이에 속한다...

    [09] 스프링 MVC의 Controller 및 여러 예제 2

    3-8. @DateTimeFormat @InitBinder를 이용해서 날짜를 변환할 수도 있지만, 파라미터로 사용되는 인스턴스 변수에 @DateTimeFormat을 적용해도 변환이 가능하다. (둘중 하나를 사용.) 3-8-1. TodoDTO 클래스에 아래와 같은 코드를 추가한다. package org.zerock.domain; import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.ui.Model; import lombok.Data; @Data public class TodoDTO { private String title; // if you using @InitB..

    [08] 스프링 MVC의 Controller 및 여러 예제

    스프링 MVC를 이용하는 경우 작성되는 Controller는 다음과 같은 특징이 있다. HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능 GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능 상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정 가능 다른 프레임 워크들과 달리 스프링 MVC는 어노테이션을 중심으로 구성되기 때문에 예제들을 작성할 때에도 각 어노테이션의 의미에 대해서 주의해가며 학습해야 한다. 1. @Controller, @RequestMapping 1-1. 프로젝트 내 org.zerock.controller 패키지 폴더에 Sa..

    [07] 스프링 MVC의 기본 구조 및 예제 실습

    - 스프링 MVC : 스프링의 서브 프로젝트 스프링은 하나의 기능을 위해서만 만들어진 프레임워크가 아니라 '코어'라고 할 수 있는 프레임워크에 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발되어있다. 서브 프로젝트란 '별도의 설정이 존재할 수 있다'라는 개념이다. Spring Legacy Project로 생성한 예제의 경우에도 sevlet-context.xml과 root-context.xml로 설정 파일이 분리된 것을 볼 수 있다. 스프링 MVC가 서브 프로젝트이므로 구성 방식이나 설정 역시 조금 다르다고 볼 수 있다. 1. 스프링 MVC 프로젝트의 내부 구조 스프링 MVC 프로젝트를 구성해서 사용한다는 의미는 내부적으로는 root-context.xml로 사용하는 일반 Java 영역(..