분류 전체보기 104

SPRING 페이징 처리 (pagination)

목표 : 빠르게, 필요한 양만큼만 데이터를 가져온다. 페이징 처리 방법 2가지 1) 번호 이용 2) 계속 보기(무한스크롤, 더보기) 실행계획 : SQL을 DB에서 어떤 순서와 방식으로 처리할 것인가? : SQL 파싱(parsing) -> SQL 최적화 -> SQL 실행 SQL을 실행하면 트리구조로 처리결과를 보여준다. 안쪽에서 바깥쪽, 위에서 아래로 확인한다. 1. 오라클 db 페이징 처리 1.1. index를 이용한 정렬 : 색인. 데이터베이스의 테이블의 데이터를 찾거나 정렬하기 위한(scan) 도구이다. : 테이블 생성 시 PK를 지정하면 인덱스가 만들어 진다. : 정렬이 되어 있는 상태이다. (SORT 과정 생략 가능) + order by를 사용해 정렬하면 데이터가 많은 경우 엄청난 시간과 리소스를..

SPRING 2022.11.30

SPRING 로딩 구조, 어노테이션

: 스프링 프레임워크 동작 -> 필요한 객체 등록 -> 의존성 주입 수행 ex) 스프링 프레임워크 동작 -> 스프링이 사용하는 메모리 영역인 Context를 만듦 (스프링 컨테이너인 ApplicationContext 객체 생성 - 스프링은 필요한 객체들을 생성·주입 등을 관리하는 '컨테이너'나 '팩토리'기능이 있다.) -> 객체들에 대한 설정파일인 root-context.xml이 태그에 등록된 패키지들을 스캔. -> 해당 패키지들의 클래스 중 @Conponent 어노테이션이 존재하는 클래스의 인스턴스를 생성 (@Component 해당 클래스가 스프링에서 관리해야하는 대상임을 표시) -> @Autowired에 따라 객체 주입시킴 1.1 설정파일 1) web.xml : Tomcat 구동과 관련된 설정 (we..

SPRING 2022.11.25

SPRING 기본설정 (XML, JAVA 공통부분)

0. 필수 프로그램 설치 JDK11 Tomcat9 STS3 오라클(Oracle11g, SQLDeveloper(ojdbc8)) 또는 MySQL 1. STS3 설정 : 스프링에서 관리되는 객체(Bean)에 대한 설정은 XML이나 Java Configuration을 이용해 처리한다. 둘 중 한 방법을 선택한 후 프로젝트 내에서 동일한 방식을 사용한다. (SpringBoot는 Java설정만 가능) 1.1 톰캣 설정 : window -> preference -> server선택 1.2. PRING MVC 프로젝트 생성 방법 : File -> New -> Spring Legacy Project -> Spring MVC Project 생성 (XML 방식)(기본 spring버전 : 3.X, servlet버전 2.5) ..

SPRING 2022.11.24

오류 sts3 프로젝트 생성

상황 spring tool suite 3 실행 후 첫 프로젝트 생성 시 아래 오류들이 발생했다. "An error has occurred. See error log for more details. Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter." "An error has occurred. See error log for more details. java.lang.ExceptionInInitializerError." 해결방법 1. jdk 버전을 변경한다. ex)18을 11로 다운그레이드 window -> preferences -> Java-> Installed JREs -> Add -..

ERROR RESOLVING 2022.11.23

SPRING Database 연동과 Jdbc 지원

1. SPRING의 Database 연동 지원 : JDBC, Hibernate, iBatis 등을 이용해 DAO Class를 구현할 수 있도록 한다. 1.1 Template Class : 데이터에 접근하는 Code는 거의 동일한 구성을 갖는데, spring은 Template Class를 제공해 중복된 Code를 줄인다. ex) Jdbc Template Class 1.2 예외 지원 : Spring에서는 Database 처리과정에서 발생한 예외를 구체적으로 확인할 수 있는 예외 Class를 제공한다. (JDBC Database 처리 과정에서 발생하는 SQLException은 예외 발생 원인을 찾기 위해 SQLException의 실제 타입과 에러 Code를 확인해야 하는 번거로움이 있다.) Template C..

SPRING 2022.11.18

HTML 이외의 View 구현

1. 파일 Download 구현을 위한 커스텀 View : (JSP 대신) Download를 위한 커스텀 View Class를 구현한다. 컨트롤러 클래스는 Download 파일 관련 정보를 생성해 View에 전달한다. BeanNameViewResolver나 XmlViewResolver를 이용해 커스텀 View Class를 설정한다. Download를 위한 컨텐츠 타입을 설정한다. (ex. "application/octet-stream") public DownloadView() { setContentType("application/download; charset=utf-8"); } Content-Disposition 헤더의 값을 지정해 Download File 이름을 설정한다. response.setHea..

SPRING 2022.11.17

SPRING tiles2

1. Tiles 2 연동을 이용한 레이아웃 템플릿 처리 : 레이아웃이 같고 동일한 내용일 들어가는 영역이 많을 때 템플릿 Library(ex. Tiles)를 사용해 레이아웃을 처리해 View와 관련한 Code 중복을 제거할 수 있다. Tiles2 연동방법 1) jar 파일 추가 - tiles-api-2.1.x.jar, tiles-core-2.1.x.jar, tiles-jsp-2.1.x.jar - commons-beanutils.jar, commons-digester.jar, commons-logging.jar - SPRING webmvc Module 2) spring 설정파일 - TilesConfigurer Class를 이용해 Tiles2 레이아웃 설정파일 명시 /WEB-INF/tiles2def/tile..

SPRING 2022.11.16

SPRING View 영역 구현

1. ViewResolver 설정 : springMVC의 화면 설정은 ViewResolver 객체를 통해 이뤄진다. DispatcherServlet은 ViewResolver를 사용해 Controller가 지정한 View 이름으로부터 응답 결과를 출력할 View 객체를 구한다. 브라우저에서 직접 접근할 수 없는 '/WEB-INF/views' 폴더를 경로로 지정한다. ServletConfig.java - ViewResolver와 static 자원 경로 지정 @Override public void configureViewResolvers(ViewResolverRegistry registry) { InternalResourceViewResolver bean = new InternalResourceViewReso..

SPRING 2022.11.14

SPRING Controller Model

: 데이터 전달자. 파라미터(request)로 데이터를 받아 추가적으로 처리한 후 결과를 View로 전달할 때 주로 사용한다. 파라미터를 Model 타입으로 선언하면 SpringMVC에서 자동으로 Model타입의 객체를 만들어준다. 필요한 데이터를 Model 객체에 담아주면 된다. @RequestMapping가 적용된 메서드에서 controller에서 처리한 데이터를 Model 객체에 담아서 View(화면, jsp)에 전달한다. ex) @Controller public class GameSearchController { @ModelAttribute("searchTypeList") public List referenceSearchTypeList() { List options = new ArrayList()..

SPRING 2022.11.13