Basic 73

JAVA Map 컬렉션, Set 컬렉션, Iterator

Collection Framework : 객체를 수집해서 저장하는 역할을 한다. 컬렉션 사용법을 정의한 인터페이스들을 통해 다양한 컬렉션 클래스를 이용할 수 있다. 1. Map 컬렉션 대표 구현 클래스 HashMap Map map = new HashMap(); put(K key, V value) : 키와 값 추가 get(Object key) : 해당 키의 값 리턴 2. Set 컬렉션 : like 집합, 주머니 : List와 달리 저장 순서가 유지되지 않고 중복해서 저장할 수 없다. Iterator(반복자) : 자바 컬렉션 프레임워크(Java Collection Framework)에 포함되는 클래스와 인터페이스(List, Set, Map 등)를 순회하며 저장된 요소를 읽어오는 인터페이스이다. Iterato..

Basic/JAVA 2023.01.06

JAVA 클래스

1. 클래스 구성 멤버 : 필드, 생성자, 메소드로 이루어져 있다. 1) Field : 객체의 데이터가 저장된다. 생성자와 메소드 전체에 사용된다. 2) Constructor : 객체 생성 시 초기화 역할을 담당하는 중괄호 블록이다. new 연산자로 호출할 수 있으며, 이때 생성된 객체들는 해당 클래스의 인스턴스들로 각각 독립되어 있다. new 연산자로 생성된 객체는 메모리 heap영역에 생성된 후 객체의 주소를 리턴하는데, 이 주소를 참조타입인 클래스변수에 저장하면 stack영역의 변수가 객체를 참조하게 된다. 3) Method : 객체의 동작에 해당하 중괄호 블록이다. 객체 간의 데이터 전달의 수단으로 사용된다. 2. 예제로 알아보기 1) 예제 Car [라이브러리용 클래스] public class C..

Basic/JAVA 2023.01.03

SPRING 페이징 처리 (pagination)

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

Basic/SPRING 2022.11.30

SPRING 로딩 구조, 어노테이션

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

Basic/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) ..

Basic/SPRING 2022.11.24

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..

Basic/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..

Basic/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..

Basic/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..

Basic/SPRING 2022.11.14