[ 1. 게시판 만들기 - 영속성 계층 ] (*****) [ 1 - 1. VO 클래스 만들기 ] 더보기 [ + 코드 보기 ] package org.zerock.myapp.domain; import lombok.Value; @Value public class BoardVO { private Integer bno; private String title; private String content; private String writer; } // end class [ 1 - 2. CRUD 기능을 할 Mapper만들기 ] 더보기 [ + 코드 보기 ] package org.zerock.myapp.mapper; import java.util.List; import org.apache.ibatis.annotation..
[ 1. ROWNUM / ROW_NUMBER ] (*) [ 2. TOP-N Query ( 상위 N개의 행을 출력하는 쿼리 ) ] (***) 더보기 [ + 코드 보기 ] -- ---------------------------------------------- -- 1. Top-N Query ( 상위 N개만 추출하는 쿼리 ) -- ---------------------------------------------- -- + 우리가 1 페이지에 10개 씩만 보여주게 하려고 할 때, -- + 상위 10개씩 끊어야 하는데, 이때 사용한다. -- ---------------------------------------------- -- ----------------------------------------------..
[ 1. Controller에서 발생하는 예외 처리하기 ] [ 1 - 1. Controller에서 예외 발생하기 ] 더보기 [ + 코드 보기 ] package org.zerock.myapp.controller; import java.sql.SQLException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import lombok.NoArgsConstructor; import lombok.extern.log4j.Log4j2; @Log4j2 @NoArgsConstructor @RequestMapping("/sample3/") // 기본 URI ( b..
1. Spring MVC에서 파일 업로드에 필요한 것 - 1 ) 파일 업로드 처리용 라이브러리 설정 ( pom.xml – dependency ) - 2 ) 스프링 설정 파일에서 Multipart Request를 핸들링 할 수 있는 Bean 설정 ( Servlet-context.xml ) - + spring-webmvc sub framework가 빈 클래스를 제공해 준다. - + 이를 빈으로 등록하면, 이 Bean이 Multipart 처리를 위해 commons-fileupload 라이브러리를 이용한다. 2. 파일 업로드시 UUID를 사용하는 이유 - 1 ) 업로드된 파일을 저장할 시, 원본 파일명으로 저장해서는 안된다. (***) - + 불특정 다수가 파일 업로드를 수행가능하기에, 원본 파일명이 동일하게 ..
1. Controller의 리턴 타입 - String : jsp를 이용하는 경우에는 jsp파일의 경로와 파일 이름을 나타내기 위해 사용 - Void : 호출하는 상세 URI와 동일한 이름의 jsp를 리턴 - VO, DTO 타입 : 주로 JSON 타입의 데이터를 만들어서 반환하는 용도로 사용 - Response Entity 타입 : response할 때 Http 헤더 정보와 내용을 가공하는 용도로 사용 - Model, ModelAndView : Model로 데이터를 반환하거나 화면까지 지정하는 경우 사용 - HttpHeaders : 응답에 내용 없이 Http 헤더 메시지만 전달하는 용도로 사용 2. 자바 객체를 XML이나 JSON으로 변환하는 이유 - HTTP protocol에 정의된, 요청/응답 메시지의..
[ 1. Controller 연습 ] (*****) [ 1 - 1. @RequestMapping ] [ 1 - 2. @RequestMapping(path = " ") ] [ 1 - 3. @RequestMapping(path = { " " }, method = { " " } ) ] [ 1 - 4. 단축형 - @GetMapping(path) / @PostMapping(path) ] [ 1 - 5. 매개변수 있는 버전 ] (****) [ 1 - 6. 매개변수가 Model인 버전 ] (****) [ + 화면에서 Model 활용 ] [ 1 - 7. @ModelAttribute(key) / Command Object ] (****) [ + 화면에서 Model 사용 ] [ 1 - 8. redirect: / Redir..
1. Spring MVC( Model-View-Controller ) - Spring의 여러 하위 프로젝트 중 하나이다. - 어노테이션( Annotaion )을 이용해서 간편하게 설정할 수 있다. - 다양한 View를 지원한다. 2. 지금까지 배운 Spring의 하위 프로젝트 - 1 ) spring-context : Spring Beans Container + DI( 의존성 주입 ) - + 스프링 빈즈 컨테이너의 규격을 정의한 타입 : ApplicationContext - + WebApplicationContext에서는 웹과 관련된 빈이 들어가 있는 servlet-context.xml과 웹과 관련이 없는 root-context.xml이 구분되어 있으나, 같이 연동되는 방식으로 동작하기에 설정을 분리해도 ..
1. MyBatis의 용법 ( 기본 2가지, 확장 2가지 ) - [ 기본 2가지 ] - (1) SQL Mapper XML 파일에 SQL 문장을 저장하고 개발시, SqlSessionFactory 핵심 객체를 얻어서 이용하는 방식 - + SqlSessionFactoryBuilder.build( ) - + SqlSessionFactory.openSession( ) - + SqlSession.selectOne( sql, param ) - + SqlSession.selectList( sql, param ) - + mybatis-config.xml 파일에 Mapper XML 파일의 경로를 등록 - (2) 소위 Mapper Interface라고 불리는 자바 인터페이스의 추상 메소드 위에 @Select/@Update/..
1. Spring과 MyBatis 연동 - Spring과 MyBatis를 연동하기 위해서는 SqlSessionFactory 빈을 등록시켜야 한다. - 스프링은 MyBatis와의 연결을 위한 mybatis-spring 라이브러리를 이용해서 연동한다. 2. 지금까지 Spring 설정한 것 정리 - 1 ) Eclipse Enterprise : Spring Tool 3 Add-on Plug 설치 - + Spring 프로젝트 생성시 도움을 준다. - + 스프링 설정 등 수행 시, 설정 파일을 미리 생성해 준다. - + 빈즈 그래프와 같이 개발시 시각적인 도움을 준다. - 2 ) Spring 프로젝트 생성 후, 우리가 한 것 - + [1] pom.xml 파일에 스프링관련 dependency(라이브러리) 추가 - +..
1. ViewResolver - MVC 패턴에서 Model 데이터를 이용하여, 최종 응답화면을 생성할 View 역할을 수행할 대상을 찾아낸다. - 1 ) 접두사 : /WEB-INF/views/ - 2 ) 접미사 : .jsp - 3 ) 최종 뷰의 이름 : 접두사 + 뷰 이름 + 접미사 = /WEB-INF/views/뷰 이름.jsp 2. DataSource 설정 - DB와 Connection을 맺고 끊는 작업은 리소스의 소모가 많은 작업이다. - 그렇기에 Pooling이라는 기법을 통해서 객체를 미리 생성하고 빌려 쓰는 방식으로 이용해서 연결 시간을 단축시킨다. 3. Servlet – context.xml파일과 root – context.xml파일의 차이점 - 같이 빈을 관리하지만, 웹과 관련된 빈은 Ser..