반응형

전체 글 96

[코드로 배우는 스프링 웹 프로젝트] 11강. 화면 처리1 (게시물 조회/목록 페이지 구현/include/bootstrap)

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 각 영역에 대한 모든 처리와 테스트가 끝이 났다! 이제 화면을 구성해보도록 한다. 화면은 BootStrap의 무료디자인을 활용할 것이다. * 사용 BootStrap 다운로드 URL : https://startbootstrap.com/theme/sb-admin-2 SB Admin 2 - Free Bootstrap Admin Theme - Start Bootstrap Like our free products? Our pro products are even better! Go Pro Today! startbootstrap.com 1. 목록 페이지 작업과 includes 1.1 목록 페이지 만들기 /WEB-INF/views/boa..

[코드로 배우는 스프링 웹 프로젝트] 10강. 프레젠테이션(웹) 계층의 CRUD 구현

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 1. Controller의 작성 : Controller는 하나의 클래스 내에서 여러 메소드를 작성하고, @RequestMapping 등을 이용하여 URL을 분기하는 구조로 작성할 수 있기 때문에, 하나의 클래스에서 필요한 만큼 메소드의 분기를 이용하는 구조로 작성한다. 2. BoardController의 작성 : org.zerock.controller 패키지 생성후, BoardController.java를 작성한다. BoardController.java : 앞서 작성한 글에 작성항 등록, 조회, 수정, 삭제에 대한 모든 메소드를 작성하였다. package org.zerock.controller; import org.spri..

[코드로 배우는 스프링 웹 프로젝트] 9강. 비즈니스(Business) 계층 구현하기

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 이번 시간에는 비즈니스 계층을 구현해본다. 비즈니스 계층이란, 고객의 요구사항을 반영하는 계층으로 프레젠테이션 계층과 영속 계층의 중간다리 역할을 한다. 로일반적으로 비즈니스 영역에 있는 객체들은 '서비스(Service)'라는 용어를 많이 사용한다. 1. 비즈니스 계층의 설정 비즈니스 계층을 위한 org.zerock.service 패키지를 생성하고, service 패키지 내 BoardService.java(Interface)와 BoardServiceImp.java (Class) 를 추가한다. (설계를 할 때, 각 계층 간의 연결은 인터페이스를 이용해서 느슨한(loose) 결합을 하도록 한다.) BoardService 인터페..

[코드로 배우는 스프링 웹 프로젝트] 8강. 영속(Peristence) / 비즈니스(Business) 계층의 CRUD 구현하기

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 이번 시간에는 코드를 이용해서 CRUD 작업을 진행해본다. Persistence 계층의 작업은 다음 순서로 진행한다. -. 테이블의 컬럼 구조를 반영한 VO(Value Object) 클래스의 생성 -. MyBatis의 Mapper 인터페이스의 작성 / XML 처리 -. 작성한 Mapper 인터페이스 테스트 1. Persistence(영속) 계층의 구현 준비 1) VO 클래스의 작성 프로젝트에 org.zerock.domain 패키지를 생성하고, BoardVO 클래스를 정의한다. BoardVO.java : 생성한 테이블과 동일한 타입/명칭으로 정의한다. package org.zerock.domain; import java.ut..

[코드로 배우는 스프링 웹 프로젝트] 7강. 스프링 MVC 프로젝트의 기본 구성

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 스프링 MVC 프로젝트의 기본 구성 : 일반 적으로 웹 프로젝트는 3-tier 방식으로 구성된다. - Presentation Tier (화면 계층) : 화면에 보여주는 기술을 사용하는 영역. 주로, Servlet/JSP나 스프링 MVC가 담당하는 영역을 말함. - Business Tier (비즈니스 계층) : 비즈니스 로직만을 담고 있는 영역. 즉, 고객의 원하는 요구 사항을 반영 하는 계층. - Persistence Tier (영속 계층 혹은 데이터 계층) : 데이터를 어떤 방식으로 보관하고 사용하는가에 대한 설계가 들어가는 계층. 일반적으로 데이터베이스를 많이 이용하지만, 경우에 따라 네트워크 / 원격 호출 등의 기술이..

[Spring] @ControllerAdvice / @Exceptionhandler / @Responsestatus (Spring MVC 에러 처리 관련 어노테이션)

어노테이션을 이용한 에러 처리에 대한 코드를 보다가 @exceptionhandler과 @responsestatus 등 언제 어떻게 사용하는 것인가 헷갈려 작성한 글이다. @ControllerAdvice : 모든 @Controller, 전역에서 발생할 수 있는 예외를 잡아 처리해주는 역할을 한다. 예외 처리 Class 위에 ControllerAdvice를 붙이고 어떤 예외를 잡아낼 것인지는 각 메소드 상단에 @ExceptionHandler(처리할 Exception.class)를 작성하여 각 Exception 별로 처리할 수 있게 한다. 예) @ControllerAdvice @Log4j public class CommonExceptionAdvice { ... 생략 } @Exceptionhandler : @C..

[IT]/Spring 2021.12.20

[코드로 배우는 스프링 웹 프로젝트] 6강. 스프링 MVC의 Controller 2 (Model, Controller의 Return / Exception 처리)

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. [코드로 배우는 스프링 웹 프로젝트] 6강. 스프링 MVC의 Controller 1 (어노테이션, @RequestMapping 활용, 해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 스프링 MVC를 이용하는 경우 작성되는 Controller는 아래와 같은 특징이 있다. -. HttpServletRequest, HttpServletResponse ee2ee2.tistory.com 위 글에 이어서 작성하는 글이다! 4) Model이라는 데이터 전달자 : Model이라는 객체는 JSP 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재이다. 이를 이용해서, JSP와 같은 뷰(View)..

[코드로 배우는 스프링 웹 프로젝트] 6강. 스프링 MVC의 Controller 1 (어노테이션, @RequestMapping 활용, 파라미터 수집)

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 스프링 MVC를 이용하는 경우 작성되는 Controller는 아래와 같은 특징이 있다. -. HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현 -. 다양한 타입의 파라미터 / 리턴 타입 사용 가능 -. GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능 -. 상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정 가능 스프링 MVC는 어노테이션이 많이 쓰이고, 구성되기 때문에 어노테이션의 의미를 확실히 알아두자. 1. @Controller, @RequestMapping org.zerock.controller 내 SampleCo..

[코드로 배우는 스프링 웹 프로젝트] 5강. 스프링 MVC의 기본 구조

해당 프로젝트는 코드로 배우는 스프링 웹 프로젝트(개정판)을 기반으로 진행됩니다. 스프링은 하나의 기능을 위해서만 만들어진 프레임워크가 아니라, '코어(Core)'라고 할 수 있는 프레임워크에서 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발되었다. 스프링 MVC는 스프링의 서브 프로젝트이다. 즉, 별도의 설정이 존재할 수 있다는 말이다. 스프링 MVC 프로젝트의 내부 구조 (코드로 알아보기) 1. 프로젝트 생성하기 프로젝트 생성 > Spring Legacy Project > Spring MVC Project 생성 >프로젝트 명 : ex01 > 'org.zerock.controller' 패키지 생성 2. pom.xml 수정하기 스프링 버전을 5.0.7로 변경 lombok 기능을 이용해..

[Database] 데이터베이스 정규화(Normalization)란? (정규화의 목적, 과정, 이상현상, 1NF ~ 3NF)

정규화의 사전적 의미를 살펴보면, 어떤 대상을 일정한 규칙이나 기준에 따르는 ‘정규적인’ 상태로 바꾸거나, 비정상적인 대상을 정상적으로 되돌리는 과정을 뜻한다. - 위키백과 - 그럼, 데이터베이스에서 정규화란 무엇을 의미할까? 1. 데이터베이스 정규화(Normalization)란? : 기본 목표는 테이블 간의 데이터 중복을 허용하지 않는다는 것이다. 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법으로 속성들끼리의 종속 관계를 분석하여 여러개의 관계(Relation)로 데이터를 분해하는 것을 의미한다. 2. 정규화의 목적 1) 불필요한 데이터를 제거해 불필요한 중복을 최소화하기 위함. 2) 데이터베이스 구조 확장시 재디자인을 최소화하기 위함 3) 다양한 관점에서의 Query를 ..

[IT]/Database 2021.12.08