본문 바로가기

728x90
반응형

BackEnd/Spring

[코드로 배우는 스프링 웹 프로젝트] ch09 비즈니스 계층 ◎ 비즈니스 계층 ▷ 고객의 요구사항을 반영하는 계층, 프레젠테이션 계층과 영속 계층의 중간 다리 역할 ▷ 영속 계층은 데이터베이스 기준으로 해 설계를 나눠 구현하지만, 비즈니스 계층은 로직을 기준으로 처리 ◎ 쇼핑몰에서 상품 구매 예시 1. 쇼핑몰 로직이 '물건을 구매한 회원에게는 포인트 올려준다'고 하면 영속 계층의 설계는 '상품', '회원'으로 나누어 설계 2. 비즈니스 계층은 상품 영역, 회원 영역을 동시에 사용해서 하나의 로직 처리를 하므로 아래와 같은 구조 설계를 할 때는 원칙적으로 영역을 구분해서 작성해야 하며 일반적으로 비즈니스 영역에 있는 객체들은 '서비스'라는 용어 사용 1. 비즈니스 계층 설정 1. org.codehows.service 패키지 생성 2. 각 계층 간의 연결은 인터페이스.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch08 영속/비즈니스 계층의 CRUD 구현 2(create, read, update, delete) https://bobo12.tistory.com/297 2. 영속 영역의 CRUD 구현 ▷ 웹 프로젝트 구조에서 마지막 영역이 영속 영역이지만, 실제로 구현을 가장 먼저 할 수 있는 영역도 영속 영역 ▷ 기본적으로 CRUD 작업 하기 때문에 테이블과 VO(DTO) 등 약간의 준비만으로도 비즈니스 로직과 무관하게 CRUD 작업 가능 (1) Create(insert) 처리 ▷ tbl_board 테이블은 PK 칼럼으로 bno 이용, 시퀀스를 이용해 자동 데이터 추가시 번호가 만들어지는 방식 사용 ▷ 자동으로 데이터가 추가될 때 번호가 만들어지는 방식 사용 ▶ insert만 처리되고 생성된 PK 값을 알 필요가 없는 경우 ▶ insert문이 실행되고 생성된 PK 값을 알아야 하는 경우 ◎ BoardMapper .. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch08 영속/비즈니스 계층의 CRUD 구현 1(select, 테이블 출력) ◎ 데이터베이스를 이용한 CRUD 진행 순서 ▷ 테이블 칼럼 구조를 반영하는 VO(Value Object) 클래스 생성 ▷ MyBatis의 Mapper 인터페이스 작성/XML 처리 ▷ 작성한 Mapper 인터페이스의 테스트 1. 영속 계층의 구현 준비 ▷ 대부분 웹 애플리케이션의 최종 목적은 데이터베이스에 데이터를 기록하거나 원하는 데이터를 가져오는 것 ▶ 따라서, 개발시 어느 정도 설계가 진행되면 데이터 베이스 관련 작업을 함 ◎ VO 클래스의 작성 ◎ tbl_board의 테이블 구성 ◎ src/main/java → org.codehows.domain → BoardVO 클래스 생성 package org.codehows.domain; import java.util.Date; import lombok.Da.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch07 스프링 MVC 프로젝트 기본 구성 1. MVC 프로젝트 기본 구성 및 초기 설정 ▷ 스프링 MVC를 이용하는 프로젝트의 구성을 이해하는 일은 전체 데이터 흐름을 보기 위해서임. ▷ 브라우저에서 전송한 데이터를 스프링 MVC의 어떤 단계를 거쳐서 실행되는지 알면 문제 발생시 빠른 대처, 대안을 찾을 수 있음 일반적인 웹 프로젝트 구성 3-tier(티어) 방식으로 구성 1. Presentation Tier(화면 계층)는 화면에 보여주는 기술을 사용하는 영역 ▷ 프로젝트의 성격에 맞춰 앱으로 제작하거나 CS(Client-Server)로 구성되는 경우도 있음 ▷ 스프링 MVC와 JSP를 이용한 화면 구성이 이에 속함 2. Business Tier(비즈니스 계층)는 순수한 비즈니스 로직을 담고 있는 영역 ▷ 고객이 원하는 요구 사항을 반영하는 계.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller 3(Controller Exception) https://bobo12.tistory.com/290 [코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller 1 1. 스프링 MVC 이용시 Controller의 특징 ▷ HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현 ▷ 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능 ▷ GET, POST bobo12.tistory.com https://bobo12.tistory.com/291 [코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller 2 https://bobo12.tistory.com/290 [코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller .. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller 2 https://bobo12.tistory.com/290 [코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller 1 1. 스프링 MVC 이용시 Controller의 특징 ▷ HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현 ▷ 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능 ▷ GET, POST bobo12.tistory.com 5. Controller 리턴 타입 ▷ 스프링 MVC 구조가 기존의 상속과 인터페이스에서 어노테이션을 사용하는 방식으로 변한 후 리턴 타입이 자유로워짐 ◎ Controller 메소드가 사용할 수 있는 리턴 타입 1. String : jsp를 이용하는 경우에 jsp 파일의 경로.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller 1 1. 스프링 MVC 이용시 Controller의 특징 ▷ HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현 ▷ 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능 ▷ GET, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능 ▷ 상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정 기능 ◎ @Controller, @RequestMapping ◎ SampleController 클래스 package org.codehows.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotat.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch05 스프링 MVC 기본 구조 1. 스프링 MVC 기본 구조 ▷ MVC는 스프링의 서브 프로젝트 ▷ 스프링은 하나의 기능을 위해서만 만들어진 프레임워크가 아니라 '코어'라고 할 수 있는 프레임워크에서 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발됨 ▷ 서브 프로젝트 : 별도의 설정이 존재(servlet-context.xml, root-context.xml로 설정 파일이 분리된 것과 유사) ◎ 스프링 MVC 프로젝트의 내부 구조 ▷ 내부적으로 root-context.xml로 사용하는 일반 Java 영역과 servlet-context.xml로 설정하는 Web 관련 영역을 연동해서 구동 ▷ 바깥쪽의 WebApplicationContext는 기존 구조에 MVC 설정을 포함하는 구조 ▷ 스프링은 웹 애플리케이션의 목적으로.. 더보기

728x90
반응형