본문 바로가기
반응형

2017/088

2017.2 버전에 추가된 기능 정리 IntelliJ 2017.2 버전에서 추가된 기능에 대한 소개가 IntelliJ 블로그에 올라와 정리하였습니다. Endpoints TabEndpoints Tab이 추가되었습니다. Run/Debug 실행시 등장하는 화면에는 이제 SpringBoot Actuator의 Beans, Health, Mapping 정보들이 같이 노출됩니다. 단, 해당 기능은 compile('org.springframework.boot:spring-boot-starter-actuator')과 같이 프로젝트에 spring-boot-starter-actuator 의존성이 포함되어있어야만 합니다. (spring-boot-starter-actuator가 없을 경우) (spring-boot-starter-actuator가 있을 경우 - He.. 2017. 8. 31.
패스트캠퍼스 SQL튜닝캠프 5일차 (1) - 고급 조인 테크닉 여러 상황에서 효율적으로 조인을 사용하는 방법을 알아보겠습니다.1. 누적매출 구하기아래와 같은 형태의 테이블이 있다고 가정하겠습니다.(출처 : 구루비)이 테이블의 데이터에 전체매출 데이터를 포함해서 조회하고 싶습니다.(이렇게 누적 매출이 추가되고 싶습니다.)오라클이라면 분석함수를 이용해서 해결할 수 있습니다.select 지점, 판매월, 매출, sum(매출) over(partition by 지점 order by 판매월 range between unbounded preceding and current row) 누적매출 from 월별지점매출partition by는 Group by에서 집합을 뺀 기능이라고 보시면 됩니다. 즉, 지점 단위로 잘라내기만 한 것입니다.unbounded preceding는 현재 윈도우.. 2017. 8. 30.
패스트캠퍼스 SQL튜닝캠프 4일차 - 조인의 기본 원리와 활용 조인 알고리즘오라클은 아래의 3개 조인 알고리즘을 모두 지원하지만 MySQL에서는 NestedLoop조인만 지원합니다.1. Nested Loop 조인이름 그대로 중첩반복을 사용하는 조인 알고리즘입니다.(출처: SQL 레벨업)위 그림을 참고하여 Nested Loop 조인의 실행순서는 아래와 같습니다.Table A에서 row를 하나씩 반복해가며 스캔합니다. 이 테이블을 Driving Table 혹은 Outer Table이라 합니다. 반대로 Table B (반대편)는 Inner Table이라 합니다.Driving Table의 row 하나마다 내부 테이블의 레코드를 하나씩 스캔해서 Join 조건에 맞으면 리턴합니다.1~2를 Driving Table의 모든 row에 반복합니다.Nested Loop의 실행시간은 다.. 2017. 8. 25.
패스트캠퍼스 SQL튜닝캠프 3일차 - 인덱스 스캔 효율 8. (4) Index Skip Scan을 이용한 비효율 해소Index Skip Scan을 통해 인덱스를 좀 더 효율적으로 사용하는 경우와 방법을 진행해보겠습니다.고객번호, 판매월, 판매구분, 판매금액으로 이루어진 월별고객판매집계 테이블이 있다고 가정합니다. 이때 판매구분 + 판매월을 기준으로 조회해야 할때 어떻게 개선할 수 있을지 확인해보겠습니다.케이스1. 인덱스: 판매구분 + 판매월인덱스를 판매구분 + 판매월로 잡아 수행해보겠습니다.인덱스 : 판매구분 + 판매월 select count(*) from 월별고객판매집계 t where 판매구분 = 'A' and 판매월 between 200801 and 200812실행계획을 수행해보면 ConsistencyRead(LogicalRead)는 281이 나옵니다.... 2017. 8. 23.
Spring OAuth + Spring Session시 HTTP URL must not be null 발생 원인 및 해결 안녕하세요? 이번 시간엔 Spring OAuth + Spring Session시 HTTP URL must not be null 발생의 원인 및 해결방안을 소개드리려 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 문제 상황Spring Session과 Spring OAuth2를 조합해서 로그인 시스템을 구축한다고 가정해보겠습니다.Spring OAuth2 적용가장 먼저 Spring OAuth2를 프로젝트에 적용시켜보겠습니다.build.gradlebuildscript { ext { springBootVersion = '1.5.6.REL.. 2017. 8. 19.
Spring Security & 구글 OAuth & 테스트코드로 진행하는 계정 권한 관리 - 2 1-4. 로그인 세션 관리 OAuth2를 사용한다고해서 기존과 다른 마법같은 일이 펼쳐지는것은 아닙니다. OAuth2는 사용자 인증 및 허가된 정보를 가져오는 것외에는 사용하지 않습니다. 인증된 정보를 통해 로그인 세션을 관리하고, 사용자는 저희가 만든 서비스의 세션을 통해 서비스를 이용해야만 합니다.세션을 사용하는 방법은 크게 3가지가 있습니다.톰캣 세션을 사용한다.일반적으로 별다른 설정을 하지 않으시고 HttpSession을 사용할 경우입니다.이렇게 될 경우 톰캣(WAS)에 세션이 저장되기 때문에 2대이상의 WAS가 구동되는 환경에서는 톰캣들간의 세션 공유를 위한 추가설정이 필요합니다.Database를 세션저장소로 사용한다.여러 WAS들간의 공용 세션을 사용할 수 있는 가장 쉬운 방법입니다.많은 설정.. 2017. 8. 14.

728x90
반응형