Database Index
OR 조건은 인덱스 억세스, 필터 조건으로 사용할 수 없고 테이블 필터 조건으로만 사용 가능
Between 패턴을 쓸려면 인덱스 선두 컬럼인지 , null 허용 컬럼인지 확인 하자
OR 조건은 인덱스 억세스, 필터 조건으로 사용할 수 없고 테이블 필터 조건으로만 사용 가능
Between 패턴을 쓸려면 인덱스 선두 컬럼인지 , null 허용 컬럼인지 확인 하자
ORDER BY – ASC, DESC order by 절은 제일 마지막에 수행 된다. From 절을 먼저수행 하고 Select를 수행한 다음 Order By
Where – Where 절은 From 절을 수행한 다음에 수행된다. 그래서 Select 절에 별칭을 지정했고 이를 Where절에서 사용하면 에러가 발생한다.
nls_session_p
의 목표 => 작동하는 Clean Code를 만드는게 목표
TDD 원칙
자동화된 테스트가 실패한 경우만 새로운 코드를 작성한다. (대원칙) – 잘동작중인 코드를 변경하지 말라
중복을 제거한다. (대원칙) – 리팩토링
실패하는 테스트를 작성하기 전엔 코드를 작성 하지 않음 (대원칙을 지키기위한) – 테스트 코드를 먼저 작성한다.
실패하는 테스트 코드를 한번에 하나 이상 작성하지 않는다.(대원칙을 지키기위한)
실패하는 테스트를 통과하기에 충분한 정도를 넘는 코드를 작성하지 않는다. (대원칙을 지키기위한) – 열을 알지 말자
TDD의 개발 발식
WebSecurityConfigurerAdapter를 상속 받아 HttpSecurity 및 WebSecurity를 설정하고 Filter 및 Provider를 등록 한다. HttpSecurity 설정은 login page, cors, csrf 등 다양하게 할 수 있다. provider는 JWT 혹은 Username, Password 로 인증을 제공하는 역할을 한다.
Username, Password로 인증을 처리하고 싶은 경우 UsernamePasswordAuthenticationFilter를 상속받아 Custom filter를 작성한다. 그리고 처리한 데이터는 Authentication Manager로 넘겨서 인증 처리를 한다.
인증 성공 및 실패에 대해 Handler를 등록한다.
아래 URL 에서 application.properties에 들어갈 h2, datasource설정을 찾을수 있다.
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties-data
hikari 는 DB 와의 Connection pool을 관리해주는 역할을 한다. 서버 실행시 H2는 schema.sql 의 쿼리를 한번 실행한다. 이를 이용해 테이블을 만들수 있다.
객체지향 쿼리 언어
JPQL, Criteria 쿠리, 네이티브 SQL, JDBC, MyBatis SQL 매퍼 프레임워크 사용
JPQL 특징
키워드는 대소문자 구분 안함
엔티티명을 사용
별칭이 필수
TypedQuery — 반환타입이 명확한 경우 Query — 반환타입이 명확하지 않는 경우 (OBJ로 반환)
More