인덱스 데이터를 찾는 두 가지 방법이 있다고 하자 어떤 초등학교를 방문해 홍길동을 찾는 방법은 두 가지다 첫째는 1학년 1반부터 6학년 맨 마지막 반 모두를 돌며 홍길동을 찾는 것이고 두 번째는 교무실에서 학생명부를 받아서 교실로 찾아가는 방식이다 이때 홍길동 학생이 많으면 많을수록 전자가 빠르고 적으면 적을 수록 후자가 빠르다 그래서 학생명부는 이름...
SQL_튜닝_04
AutoTrace 이는 SQL의 실행계획과 성능 통계를 자동으로 출력해 주는 기능입니다 SQL> set autotrace on SQL> select * from emp where empno = 7900; EMPNO ENAME JOB MGR HIREDATE SAL COMM ...
SQL_튜닝_03
성능 차이가 발생하는 이유 SQL 이 느린 이유는 거의 대부분 디스크 I/O에서 발생하기 마련이다 컴공을 공부하다 보면 마주하는 이슈 중에 하나가 CPU의 속도에 비해서 데이터가 저장이 되어 있는 하드디스크의 I/O 속도는 매우 느린 편에 속합니다 CPU는 수많은 프로세서들을 동시에 처리하고 있는데 생성 -> 준비 -> 실행 -> 대기...
SQL_튜닝_02
SQL 공유 및 재사용 SQL을 한번 호출하면 SQL 파싱 -> SQL 최적화 -> 로우 소스 생성을 통해서 우리에게 결과 셋을 보여주게 됩니다 이때 한번 만들어진 로우 소스 같은 경우는 반복적인 재사용 SQL에 대해서는 파싱과 최적화 과정을 거치지 않고 바로 로우 소스 생성을 호출해서 우리에게 결과를 가져다주게 됩니다 즉 SQL 을 호출하...
SQL_튜닝_01
튜닝을 공부하게 된 계기 Back-end 개발자로서는 SQL 개발은 필수이다 JAVA 진영에서는 그것을 대체하는 JPA 영역이 들어오긴 했지만 그래도 성능 면에서는 여전히 Native_SQL 을 따라갈 수 없다 그렇기에 이번 시간부터 개발자를 위한 튜닝 공부에 힘을 쏟기로 했습니다 옵티마이저 옵티마이저는 DBMS의 심장입니다 입력된 SQL 을 바탕으...
Spring MicroService 29 Spring MicroService 총정리
마이크로 서비스 포스트를 마치며 사실 공부하는 책의 일부분이 어느 정도 남았지만 사실 이론에 가깝고 실습이 어렵기에 이전 포스트 집킨을 끝으로 블로그에 포스트 되는 글은 마지막이 이 글이 마지막이 됩니다 그간 저는 약 6개월간 마이크로 서비스 관련한 이론과 실습에 대해서 공부를 했습니다 사실 이론 부분이 강한 책을 붙잡고 하는 바람에 코드에 어려움이...
Spring MicroService 28 Spring MicroService 분산 추적 3
집킨 집킨은 마이크로서비스에서 요청의 흐름을 분석하고 성능을 모니터링 하는데 사용됩니다 즉 우리가 앞에서 사용한 키바나는 로그를 바탕으로 각 어플리케이션간의 분산 로그를 추적하는 반면 집킨은 요청의 흐름으로 데이터를 시각화 하고 어플리케인션간의 성능을 모니터링 합니다 단 집킨과 키바나를 1:1 비율로 비교할 수 없습니다 서로 목적이 다르기 때문입니다 ...
Spring MicroService 27 Spring MicroService 분산 추적 2
지난시간에는 스프링 클라우드 슬루스를 활용해서 우리가 특별한 로직이 없어도 프레임워크가 알아서 판단해서 추적ID , 스팬ID 를 넣는것을 보았습니다 지난시간에는 단순히 로그를 보여주는것으로 그쳤는데 이번시간에는 해당 로그를 중앙 저장소에 쌓고 (엘라스틱서치) 시각화(키바나) ELK 에 대해서 알아보겠습니다 로그스태시 , 엘라스틱서치 , 키바나는 지식이...
Spring MicroService 26 Spring MicroService 분산 추적
마이크로서비스의 아키텍쳐는 모놀리스의 단일 모듈을 여러 모듈로 분해해서 빌드 배포할 수 있다 이렇게 해서 얻을 수 있는 장점은 유연성 독립성을 얻지만 복잡성이라는 비용도 떠안게 된다 마이크로서비스는 그 특징상 에러가 발생하면 발생한 위치의 디버깅이 상당히 힘들다 이번시간에는 분산 추적에 관련해서 마이크로서비스는 어떻게 대처할 수 있는지에 대해서 알아...
Spring MicroService 25 Spring MicroService 분산 캐싱
우리는 지난시간에 비동기 메세지를 처리하면서 카프카와 주키퍼를 활용해서 메세지 생산자 , 메세지 소비자를 만들어 empClient 에서 empClient 의 생성 , 삭제 , 읽기 , 수정이 일어났을때 메세지 발행 , 그리고 그 메세지를 savingMoney 에서 소비하는 모습을 보였습이다 지난시간에는 메세지를 직접 발행 소비만 하는 과정을 보였지 이...