728x90
반응형

java, spring 139

[Spring framework] 프레젠테이션(웹) 계층의 CRUD 구현 (Controller)

[Spring framework] 프레젠테이션(웹) 계층의 CRUD 구현 (Controller) Controller의 작성 스프링 MVC의 Controller은 하나의 클래스 내에서 여러 메서드를 작성하고, @RequestMapping 등을 이용해서 URL을 분기하는 구조로 작성할 수 있기 때문에 하나의 클래스에서 필요한 만큼 메서드의 분기를 이용하는 구조로 작성합니다. 과거에는 Controller 테스트를 하기 위해 WAS를 실행하고, 웹 화면을 만들어서 URL을 요청하여 테스트했습니다. 이 방법은 시간이 오래 걸리기 때문에 WAS를 실행하지 않고 테스트하는 방법을 익혀야 합니다. BoardController의 분석 작성하기 전에 원하는 기능을 호출하는 방식에 대해 테이블로 정리 후 코드로 작성합니다...

java, spring 2021.06.26

[Spring framework] 비즈니스 계층 CRUD

[Spring framework] 비즈니스 계층 CRUD 비즈니스 계층은 고객의 요구사항을 반영하는 계층으로 프레젠테이션 계층과 영속 계층의 중간 다리 역할을 하게 됩니다. 영속 계층은 데이터베이스를 기준으로 해서 설계를 나눠 구현하지만, 비즈니스 계층은 로직을 기준으로 해서 처리하게 됩니다. 예시로 쇼핑몰에서 상품을 구매한다고 하고, 해당 쇼핑몰의 로직이 '물건을 구매한 회원에게 포인트를 올려준다'고 하면 영속 계층의 설계는 '상품'과 '회원'으로 나누어서 설계하게 됩니다. 반면 비즈니스 계층은 상품 영역과 회원 영역을 동시에 사용해서 하나의 로직을 처리하게 되므로 다음과 같은 구조를 만들게 됩니다. busisness ◀───▶ Persistence tier [ 구매 서비스 ] ←→ [ 상품 처리 객체..

java, spring 2021.06.24

[Spring] 영속 영역의 CRUD 구현 (MyBatis - CRUD)

[Spring] 영속 영역의 CRUD 구현 (MyBatis - CRUD) 이번 글에서는 MyBatis에서 CRUD를 구현해봅니다. 이전 글에서 CRUD를 구현하기 전까지의 과정을 다루었으니 필요하다면 참고하시기 바랍니다. https://lifere.tistory.com/138 [Spring] 영속 계층의 CRUD 구현을 위한 환경설정 [Spring] 영속 계층의 CRUD 구현을 위한 환경설정 영속 계층의 작업은 항상 다음과 같은 순서로 진행합니다. 1. 테이블의 컬럼 구조를 반영하는 VO(Value Object) 클래스의 생성 2. MyBatis의 Mapper 인터페이 lifere.tistory.com MyBatis는 내부적으로 JDBC의 PreparedStatement를 활용하고 필요한 파라미터를 처리..

java, spring 2021.06.21

[Spring] 영속 계층의 CRUD 구현을 위한 환경설정

[Spring] 영속 계층의 CRUD 구현을 위한 환경설정 영속 계층의 작업은 항상 다음과 같은 순서로 진행합니다. 1. 테이블의 컬럼 구조를 반영하는 VO(Value Object) 클래스의 생성 2. MyBatis의 Mapper 인터페이스의 작성/XML 처리 3. 작성한 Mapper 인터페이스의 테스트 지난 글에 다음과 같은 구조로 테이블을 작성했습니다. 해당 테이블을 다시 사용하려고 합니다. https://lifere.tistory.com/130 [MariaDB] MariaDB 테이블 생성, 오토 시퀀스 (자동 값 증가) [MariaDB] MariaDB 테이블 생성, 오토 시퀀스 (자동 값 증가) 테이블 생성하기 CREATE TABLE tb_board ( seq_bno INT NOT NULL AUTO..

java, spring 2021.06.19

[Spring framework] 스프링 MVC 프로젝트 Java로 구성하기

[Spring framework] 스프링 MVC 프로젝트 Java로 구성하기 지난 글에서 pom.xml을 설정했던 것 까지는 같습니다. pom.xml을 제외한 xml 파일들을 삭제하고 Java로 Config 파일들을 구성해야 합니다. 먼저 pom.xml을 구성하는 것은 이전 글을 참조합니다. 1. pom.xml 설정 및 라이브러리 설치 https://lifere.tistory.com/128 [Spring framework] 스프링 MVC 프로젝트의 기본 구성 [Spring framework] 스프링 MVC 프로젝트의 기본 구성 스프링 MVC를 이용하는 프로젝트의 구성을 이해하는 일은 전체 데이터의 흐름 보고 이해하기 위해서 입니다. 일반적으로 웹 프로젝트는 3-tier( lifere.tistory.com..

java, spring 2021.06.18

[Spring framework] 데이터베이스 연결 테스트 코드

[Spring framework] 데이터베이스 연결 테스트 코드 다음 테스트 코드들을 활용하여 데이터베이스 연결을 테스트합니다. JDBCTests 클래스 package com.project.persistence; import static org.junit.Assert.fail; import java.sql.Connection; import java.sql.DriverManager; import org.junit.Test; import lombok.extern.log4j.Log4j; @Log4j public class JDBCTests { static { try { Class.forName("org.mariadb.jdbc.Driver"); } catch(Exception e) { e.printStackTr..

java, spring 2021.06.17

[Spring Framework] SQLSessionFactory

[Spring Framework] SQLSessionFactory MyBatis에서 가장 핵심적인 객체는 SQLSession이라는 존재와 SQLSessionFactory입니다. SQLSessionFactory의 이름에서 보듯이 내부적으로 SQLSession이라는 것을 만들어 내는 존재인데, 개발에서는 SQLSession을 통해서 Connection을 생성하거나 원하는 SQL을 전달하고, 결과를 리턴 받는 구조로 작성하게 됩니다. root-context.xml에서는 아래와 같은 형태로 작성합니다. root-context.xml 일부 Java 설정을 이용하는 경우 RootConfig 클래스에 @Bean을 이용해서 설정합니다. @Bean public SqlSessionFactory sqlSessionFacto..

java, spring 2021.06.11

[Spring framework] 스프링 MVC 프로젝트의 기본 구성

[Spring framework] 스프링 MVC 프로젝트의 기본 구성 스프링 MVC를 이용하는 프로젝트의 구성을 이해하는 일은 전체 데이터의 흐름 보고 이해하기 위해서 입니다. 일반적으로 웹 프로젝트는 3-tier(티어) 방식으로 구성합니다. Presentation ↔ Business ↔ Persitence tier ■ Presentation Tier (화면 계층)는 화면에 보여주는 기술을 사용하는 영역입니다. Servlet/JSP나 스프링 MVC가 담당하는 영역이 됩니다. ■ Business Tier (비즈니스 계층)는 순수한 비즈니스 로직을 담고 있는 영역입니다. 이 영역이 중요한 이유는 고객이 원하는 요구 사항을 반영하는 계층이기 때문입니다. 이 영역의 설계는 고객의 요구 사항과 정확히 일치해야 합..

java, spring 2021.06.07

[Spring Framework] 404 에러 페이지

[Spring Framework] 404 에러 페이지 도움이 되셨다면 광고 한 번 클릭 부탁드립니다. 한 번의 클릭이 제게 큰 힘이 된답니다!^^ WAS의 구동 중 가장 흔한 에러와 관련된 HTTP 상태 코드는 '404'와 '500' 에러 코드입니다. 500 메시지는 'Internal Server Error'이므로 @ExceptionHandler를 이용해서 처리되지만, 잘못된 URL을 호출할 때 보이는 404 에러 메시지의 경우는 조금 다르게 처리하는 것이 좋습니다. ▼ ExceptionHandler와 관련된 지난 글 ▼ https://lifere.tistory.com/125 서블릿이나 JSP 개발 시 web.xml을 이용해서 별도의 에러 페이지를 지정할 수 있습니다. 스프링 MVC의 모든 요청은 Dis..

java, spring 2021.05.30

[Spring framework] Controller의 Exception 처리

[Spring framework] Controller의 Exception 처리 스프링 MVC에선 예외 상황을 고려하여 Controller를 작성하려면 작업이 엄청나게 늘어날 수밖에 없습니다. 모든 메서드에 Exception을 추가하는 작업은 곧 중복되는 코드의 많은 양을 메서드가 추가될 때마다 써야 하는 것일 수도 있습니다. ​ 다음과 같은 방법을 사용하여 예외 처리하는 코드의 중복을 최소화할 수 있는 방법이 있습니다. 1. @ExceptionHandler와 @ControllerAdvice를 이용한 처리 2. @ResponseEntity를 이용하는 예외 메시지 구성 오늘은 @ExceptionHandler와 @ControllerAdvice 어노테이션을 이용한 처리 방법에 대해 알아보겠습니다. @Contro..

java, spring 2021.05.29
728x90
반응형