분류 전체보기77 스프링의 xml의 역할 1. web.xml 웹 어플리케이션 서버(WAS ex.Tomcat)가 최초로 구동될 때 각정 설정을 정의. 파일 내에서 여러 xml파일을 인식이 가능하게 설정이 되어있다. contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 태그에서 root-context로 모든 서블릿과 필터들이 공유됨 태그로 .. 2024. 7. 1. Retry 와 Recover 특정 작업을 다시한번 시도해야 할때가 있다.ex) API호출에 에러가 발생했을때Retry : 특정 조건에 따라서 다시 반복하는것Recover : Retry를 했음에도 안되는것들 org.springframework.retry spring-retry 1.2.4.RELEASE org.springframework spring-aspects 5.3.13 이렇게 추가를 해줬다면 springBootApplication 혹은 Configuration에 @EnableRetry를 붙여 기능을 활성화한다. @EnableScheduling@EnableRetry //여기@SpringBootApplicationpublic class Application { public static vo.. 2024. 5. 30. ehcache ehcache어노테이션설명@EnableCachingSpring Boot Cache를 사용하기 위해 '캐시 활성화'를 위한 어노테이션을 의미합니다.@CacheConfig캐시정보를 '클래스 단위'로 사용하고 관리하기 위한 어노테이션을 의미합니다.@Cacheable캐시정보를 메모리 상에 ‘저장’하거나 ‘조회’ 해오는 기능을 수행하는 어노테이션입니다.@CachePut캐시 정보를 메모리상에 '저장'하며 존재 시 갱신하는 기능을 수행하는 어노테이션입니다.@CacheEvict캐시 정보를 메모리상에 '삭제'하는 기능을 수행하는 어노테이션입니다.@Caching여러 개의 ‘캐시 어노테이션’을 ‘함께 사용’할 때 사용하는 어노테이션입니다. 어노테이션 주요 기능 캐싱 실행 시점@Cacheable캐시 조회, 저장 기능- 캐시 .. 2024. 5. 30. Statement와 PreparedStatement 모르면 PreparedStatement을 사용하면 된다Statement와 PreparedStatement 공통 역할DB와 연결되어있는 connection 객체를 통해 SQL문을 DB에 전달하여 실행하고, 결과를 리턴받아주는 객체(인터페이스)쿼리 문장 분석(parsing) → 컴파일(compile) → 실행(execute)Statement와 PreparedStatement 차이점쿼리문 작성 방법사용자 입력을 직접 쿼리 문자열에 포함시켜 쿼리를 생성한다Statement #사용자 입력을 직접 쿼리 문자열에 포함시켜 쿼리를 생성한다String sqldb = "SELECT name, age FROM table WHERE userID = " + userID PreparedStatement $쿼리의 미리 정의된 위.. 2024. 5. 30. 수정 삭제가 잦은 컬럼에 index가 적합하지 않은 이유 인덱스 생성 → 독립적인 인덱스 테이블 생성, 테이블 정렬 수행인덱스가 존재하는 테이블 삽입, 수정, 삭제 시 동작과정INSERT, UPDATE, DELETE 쿼리문 실행원본 테이블 및 인덱스 테이블 수정 작업원본 테이블 및 인덱스 테이블 정렬 작업수정 횟수 = 테이블 수정 작업, 정렬 작업따라서 수정이 잦은 컬럼에 Index를 생성하면 성능 이슈 발생할 수 있다. 2024. 5. 30. index를 사용하지 못하는 경우 1.인덱스의 컬럼을 변형 시키는경우인덱스 컬럼을 변형시키면 데이터베이스가 인덱스를 사용하지 않는다SELECT * FROM users WHERE LOWER('first_name') = 'hong'SELECT * FROM table WHERE ages+10 = 30 -> 인덱스 사용불가SELECT * FROM table WHERE ages = 20 + 10 -> 인덱스 사용가능 2.null 조건을 사용하는 경우null을 조건에 사용하면 Table Full Scan이 발생한다SELECT * FROM users WHERE ages IS NULL -> 인덱스 사용불가SELECT * FROM users WHERE ages IS NOT NULL -> 인덱스 사용불가SELECT * FROM users WHERE age.. 2024. 5. 30. 이전 1 2 3 4 5 6 ··· 13 다음