본문 바로가기
반응형

Spring Framework4

SQL - Index 인덱스 인덱스 - DB 조회 속도를 향상시키기 위해 컬럼에 적용하는 일종의 목차 인덱스를 사용해야 하는 경우 - 테이블에 데이터가 많을 때 - 컬럼 값의 범위가 넓을 경우 - Where 적 또는 Join 문에 사용되는 컬럼 - 검색결과가 전체 데이터의 2%~4% 이내를 검색하는 경우 - Null을 포함하는 컬럼이 많은 경우 (Null 값은 인덱스에 포함되지 않기에 인덱스의 크기가 줄어든다) 인덱스를 사용하지 않아야 하는 경우 - 테이블에 데이터가 적을 때 - Where 문에 해당 컬럼이 자주 사용되지 않을 때 - 검색 결과가 전체 데이터의 10%~15% 이상을 검색하는 경우 - 테이블에 DML(Data Manipulation Language) 작업이 많은 경우 (인덱스도 변경되어야 하기 때문) - 인덱스가 적용.. 2020. 6. 28.
AOP - 어드바이스(Advice) & 인터셉터(Intercepter) AOP(Aspect Oriented Programing) - 요청에 따른 처리를 하다보면 공통적인 처리부분이 있다. 예를들어 모든 트랜잭션이 종료된 후 로깅이란 과정을 반드시 수행한다고 했을 때 로깅 수행은 트랜잭션에 상관없이 공통적으로 수행되는 부분이다. 이와같이 프로그램을 횡단하는 곳에 나타나는 공통적인 코드를 횡단적 관심사(Crosscutting Concern)이라고 한다 공통된 부분을 모듈화(클래스로 생성)하고 호출코드만으로 사용한다. AOP는 호출코드까지 생략시켜 완전한 코드의 분리를 만든다. 필터(Servlet filter) - 스프링 프레임워크와 무관하게 지정된 자원에 대해 동작 - 스프링은 Dispatcher Servlet 으로부터 시작되므로 필터는 스프링 컨텍스트 밖에 존재(스프링과 관계.. 2020. 6. 28.
JPA (Java Persistence API) JPA (Java Persistence API ) - ORM 기술 표준, 인터페이스 모음 - 개발자가 직접 SQL 문을 작성하지 않아도 호출할 때 알아서 JDBC API를 이용해서 DB에 쿼리를 날린다. - 기존에 필드를 변경할 때 모든 SQL문을 수정해야 하던것과 달리, JPA에 필드만 추가하면 SQL문은 알아서 수정된다. - 객체 그래프를 완전히 자유롭게 탐색할 수 있다. - 지연로딩전략(Lazy Loading) 사용으로 객체를 실제로 사용하는 시점에 SELECT 쿼리를 DB에 날려 객체를 가져온다. (객체를 생성하고 값을 넣은 시점이아니라 그 객체를 사용할 때) - (트랜잭션) 트랜잭션을 커밋하기 전까지 메모리에 INSERT 쿼리를 쌓는다. 2020. 6. 8.
서블릿 필터(Servlet Filter), 인터셉터(Intercepter), 어드바이스(Advice) Servlet filter(서블릿 필터) - 스프링 프레임워크어ㅘ 무관하게 지정된 자원에 대해 동작. 스프링은 Dispatcher Servlet 으로부터 시작되므로 서블릿필터는 스프링 컨텍스트 밖에 존재. 인터셉터(Intercepter) - 스프링의 DispatcherServlet이 컨트롤러를 호출할 때 전후로 끼어든다. - 스프링 컨텍스트 내부에 존재. 인터셉터의 메소드 4개 preHandle() - 컨트롤러 메소드 실행 직전에 수행, true를 반환하면 계속 진행되고, false를 리턴하면 실행체인(다른 인터셉터,컨트롤러 실행)이 중지되고 반환. 필터의 응답처리가 있다면 그것은 실행. postHandle() - 컨트롤러 실행 직후에 실행. - View 페이지가 렌더링 되기 전에 ModelAndView.. 2020. 6. 8.
반응형