Back-End/Spring Legacy
-
[3-ch10 스프링] 프레젠테이션(웹) 계층의 CRUD 구현Back-End/Spring Legacy 2022. 8. 23. 12:30
앞 포시팅에서, 비즈니스 계층과(Service) 영속계층 (MyBatis, Mapper.xml) 계층 구현은 완료했다. 그럼 스프링 MVC 작업에서 남은 건 Cotroller 이기에 이번 포스팅에선 Controller 메서드를 작성해보도록 하겠다. https://wonisdaily.tistory.com/53 [3-ch8 스프링] 영속/비지니스 계층의 CRUD 구현, Mapper 인터페이스와 xml VO 클래스 작성 VO 클래스를 생성하는 작업은 테이블 설계를 준으로 작성하면 된다. tbl_board 테이블의 구성대로 작성한다. 프로젝트에 org.zerock.domain 패키지를 생성하고 BoardVO 클래스를 정의한다. p wonisdaily.tistory.com https://wonisdaily.tis..
-
[Spring] GET/POST 두 방식의 특징과 차이점 알아보기Back-End/Spring Legacy 2022. 8. 23. 10:07
서버 API를 구현하다보면 GET/POST 방식을 볼 수 있는데 주로 @RequestMapping(value = "/basic", method= {RequestMethod.GET, RequestMethod.POST}) 이런 방식으로 RequestMapping이나 아예 각자 하나씩만 다루는 @GetMapping, @PostMapping 어노테이션을 사용하는 컨트롤러에서 만날 수 있다. 그럼 의문이 들지 않는가 어떨때 Get을 사용하고 어떨때 Post를 사용하는지! 오늘은 두 방식의 특징과 차이점을 알아보려고 한다. 전달 방식 GET/POST는 HTTP 프로토콜을 이용해서 서버에 정보를 전달할 때 사용하는 방식이다. 둘의 차이점은 어디에 위치해있는가인데 POST 용청 시 URL 파라미터가 보이지 않는 이유는..
-
[3-ch9 비즈니스 계층] Service의 생성과 설정Back-End/Spring Legacy 2022. 8. 19. 13:22
비즈니스 계층이란? 비즈니스 계층은 고객의 요구사항을 반영하는 계층으로 프레젠테이션 계층(컨트롤러, view) 과 영속 계층(db)의 중간 다리 역할을 하게 된다. 영속 계층은 데이터베이스를 기준으로 해서 설계를 나눠 구현하지만, 비즈니스 계층은 로직을 기준으로 해서 처리한다. 예를들어, '쇼핑몰에서 상품을 구매한다'고 가정해볼때, 해당 쇼핑몰의 로직이' 물건을 구매하는 회원에게는 포인트를 올려준다'고 하면 영속 계층의 설계는 '상품'과 '회원'으로 나누어서 설계하게 된다. 반면에 비즈니스 계층은 상품 영역과 회원 영역을 동시에 사용해서 하나의 로직을 처리하게 되므로 다음과 같은 구조를 만들게 된다 . 오늘 포스팅할 예제는 단일 테이블을 이용하고 있기 때문에 위와 같은 구조는 아니지만, 설계를 할 때는 ..
-
[3-ch8 스프링] 영속/비지니스 계층의 CRUD 구현, Mapper 인터페이스와 xmlBack-End/Spring Legacy 2022. 8. 19. 10:41
VO 클래스 작성 VO 클래스를 생성하는 작업은 테이블 설계를 준으로 작성하면 된다. tbl_board 테이블의 구성대로 작성한다. 프로젝트에 org.zerock.domain 패키지를 생성하고 BoardVO 클래스를 정의한다. package org.zerock.domain; import java.util.Date; import lombok.Data; @Data public class BoardVO { private Long bno; private String title; private String content; private String writer; private Date regDate; private Date updateDate; } Mapper 인터페이스와 Mapper XML MyBatis는 SQ..
-
[3-ch7 스프링 MVC] 프로젝트 기본 구성, DB 더미 테이블 생성Back-End/Spring Legacy 2022. 8. 17. 11:24
스프링 MVC 프로젝트의 기본 구성 일반적으로 웹 프로젝트는 3-tier(티어) 방식으로 구성된다. Persentation tier(화면계층)은 화면에 보여주는 기술을 사용하는 영역이다. 앞의 포스팅 내용을 살펴봤을 땐 Servlet/JSP나 스프링 MVC가 담당하는 영역이 된다. Persentation tier는 프로젝트의 성격에 맞춰 앱으로 제작하거나, CS(Client-Server)로 구성되는 경우도 있다. Business Tier(비지니스 계층)는 순수한 비즈니스 로직을 담고있는 영역이다. 이 영역이 중요한 이유는 고객이 원하는 요구 사항을 반영하는 계층이기 때문이다. 이 영역의 설계는 고객의 요구 사항과 정학히 일치해야 한다. 이 영영은 주로 'xxxService'와 같은 이름으로 구성하고, 메..
-
[2-ch6 스프링] MVC의 Controller 어노테이션 (@RequestMapping, @requestParam, Model, 반환타입)Back-End/Spring Legacy 2022. 8. 16. 12:04
스프링 MVC Controller 특징 스프링 MVC를 이용하는 경우 작성되는 Controller는 아래와 같은 특징이 있다. - HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현 - 다양한 타입의 파리미터 처리, 다양한 타입의 리턴 타입 사용 가능 - GET, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 가능 - 상속/ 인터페이스 방식 대신 어노테이션만으로도 필요한 설정 가능 @Controller 프로젝트 내 org.zerock.controller 패키지 폴더에 SampleController라는 이름의 클래스를 작성한다. @Controller @RequestMapping("/sample/*") @Log4j2 public cla..
-
[2-ch5 스프링 MVC 패턴] 기본구조와 로딩구조 (DispatcherServlet, listener, ViewResolver)Back-End/Spring Legacy 2022. 8. 15. 11:30
스프링 웹 프로젝트를 진행하려면 제일 중요하게 알아야되는 기본 개념이 바로 MVC 패턴의 구조이다. 국비 수업을 들으면서 몇번이고 반복해서 학습했더니 조금씩 눈에 들어오는 느낌? 처음엔 이게 무슨 소리야,, 헷갈리는 부분도 많았지만 전체적인 기본구조와 로딩구조를 정리하면서 디자인 패턴이나 xml의 역할 등 세세하게 알아볼까한다. 스프링 MVC 프로젝트 내부 구조 스프링 MVC 프로젝트를 구성해서 사용한다는 의미는 내부적으로 root-context.xml로 사용하는 일반 Java 영역 (흔히 POJO)과 servlet-context.xml로 설정하는 Web 관련 영역을 같이 연동해서 구동하게 된다. 위의 틀을 WebApplicationContext라고 볼 수 있는데, 이 존재는 기존의 구조에 MVC 설정을..
-
[1-ch4 스프링] MyBatis특징과 스프링 연동Back-End/Spring Legacy 2022. 8. 14. 17:22
MyBatis란? 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거한다. SQL 쿼리의 분리로 코드의 간결성 및 유지보수성 향상 resultType, resultClass등 VO를 사용하지 않고 조회결과를 사용자 정의 DTO, MAP 등으로 매핑하여 사용할 수 있다. MyBatis 관련 라이브러리 추가 MyBatis와 mybatis-spring을 사용하기 위해 pom.xml에 추가적인 라이브러리들을 설정해야 한다. org.mybatis mybatis 3.4.6 org.my..