🌿Tiles 페이지를 만들다 보면 공통적으로 생기는 디자인적인 뼈대가 있다. Tiles는 이때 사용할 수 있는 레이아웃 프레임워크이다. 이전에는 레이아웃을 로 페이지를 최대한 분리시켜서 반복되는 디자인 요소를 구성했다. 레이아웃을 서포트하는 프레임워크를 사용하면 조직적이고 대규모적인 작업을 할 수 있다. Tiles는 include를 대신하여 페이지의 레이아웃을 구성하고 관리하는 기술이다. 구현 기능 메인(index.do) 회원 회원정보(member/info.do) 활동내역(member/history.do) 즐겨찾기(member/favorite.do) 관리자 로그(admin/log.do) 환경설정(admin/setting.do) 🌿Tiles를 사용하지 않고 레이아웃 구현 파일 생성 com.test.comt..
🌿코드 조각 관리 게시판 코드 조각 관리 게시판을 구현해 보도록 하자. 파일 생성 com.test.controller CodeController.java com.test.persistence CodeDAO.java (I) CodeDAOImpl.java (C) com.test.domain CodeDTO.java views list.jsp views.jsp add.jsp src/main/resources > mapper code.xml 기본 작업 1. 프로젝트 설정 2. CodeDTO 태그 name 추가 3. CodeDAOImpl과 CodeDAO implements 설정 4. CodeDAOImpl이 bean이 되도록 @Repository 붙임 @Autowired private CodeDAO dao; //pu..
🌿쿼리 경우의 수 1. 반환값(X), 매개변수(X) 2. 반환값(X), 매개변수(O) 3. 반환값(O), 매개변수(X) 반환값: 단일값 반환값: 레코드 1줄 반환값: 레코드 N줄 4. 반환값(O), 매개변수(O) 반환값: 단일값 반환값: 레코드 1줄 반환값: 레코드 N줄 [Spring] MyBatis: Connection Pool (Commons DBCP, HikariCP) 🌿MyBatis 영속성 계층 (데이터베이스 조작 계층) Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크이다. MyBatis는 Spring 기술이 아닌 독립적인 기술 isaac-christian.tistory.com 이전 MyBatis 글에서 이어..
🌿MyBatis 영속성 계층 (데이터베이스 조작 계층) Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크이다. MyBatis는 Spring 기술이 아닌 독립적인 기술이지만, Spring에서 도입을 해서 사용할 수 있도록 연동되어 있다. MyBatis는 SQL을 별도의 파일을 분리해서 관리하게 하며, 응용프로그램과 데이터베이스를 연결하는 JDBC 같은 역할을 한다. 단, SQL을 그대로 사용할 수 있다는 점에서 JDBC을 사용할 때의 불편함을 해결했다. [JDBC] JDBC란? (Java Database Connectivity) 🍁JDBC JDBC는 자바 프로그램과 데이터베이스(오라클)를 연결시켜 주는 자바 API(응용..
요청 메서드의 반환 자료형은 String의 빈도가 가장 높고, 다음으로 3번의 redirect, 5번의 사용 빈도가 높다. 요청과 응답은 어떤 업무든 연관이 되어 있기 때문에 이에 대한 정리가 필요하다. 🌿String //- JSP 파일명 //- ViewResolver 호출 @GetMapping(value="/ex06.do") public String test() { return "ex06"; } 문자열은 ViewResolver를 호출하면서 JSP 파일 이름을 나타내는 용도로 사용했다. 🌿void @GetMapping(value="/ex06.do") public void test() { } 서블릿에서 jsp를 호출을 안 하는 것과 같다. 그러면 브라우저에서 하얀 화면이 나와야 한다. 그런데 화면이 출력된..
🌿컨트롤러 구현 1. Controller 인터페이스 구현 2. @Controller 어노테이션 사용 어노테이션을 사용하는 방식이 편의성이 좋기 때문에 더 많이 사용한다. 🍃@Controller 어노테이션 사용 @Controller public class Ex03Controller { } 어노테이션을 사용하는 순간 인터페이스를 선언하는 것과 결과가 같다. handleRequest는 만들고 싶어서 만들었던 게 아니라 Controller 인터페이스가 만들라고 했기 때문에 만든 것이었다. 하지만 어노테이션을 사용하면 강제로 만들어야 하는 게 없다. 자유로운 요청 형식 @Controller public class Ex03Controller { public String test() { return ""; } pub..
Spring은 Controller, View 등을 사용하기 편하도록 MVC 패턴을 모두 구현을 해 두었다. Servlet/JSP에서는 웹 요청 처리와 통제를 Controller 역할로 지정해 주었지만, Spring MVC에서는 Controller라는 이름이 전용으로 있으므로 이를 사용한다. 🌿Controller Ex01Controller.java: jsp 연결 package com.test.spring.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.sp..
🌿Spring AOP Aspect Oriented Programming 관점 지향 프로그래밍(AOP)은 애플리케이션의 핵심 비즈니스 로직에서 분리된 관심사(Concern)를 모듈화 하여 코드의 가독성과 유지보수성을 향상하는 기술이다. 관점(관심사)은 업무 구현 시 주 업무가 아닌 나머지 보조 업무를 의미한다. 주 업무와 보조 업무 게시판 글쓰기를 예로 들어 주 업무와 보조 업무를 구분해 보도록 하자. 1. 기존 방식 - add.do a. 글쓰기 (주 업무) b. 권한 체크 (보조 업무) 기존 방식은 주 업무와 보조 업무를 같은 곳(한 파일)에서 구현한다. 단점: 코드 관리가 불편하다. 어디부터 어디까지가 주 업무이고 보조 업무인지 알기 어렵다. 2. AOP 방식 - add.do 주 업무와 보조 업무를 물..