전체 글 (326) 썸네일형 리스트형 08. 30 TIL : 쿼리 수정 1. 문제 상황 where절 and 조건으로 확인하는 값의 기준이 잘못되어 있어 수정을 해야 했다. 기존 테이블에는 해당하는 값이 없고 매핑이 다른 컬럼으로 되어있어 원하는 조회 결과가 출력되고 있지 않은 상황 2. 해결 새로운 테이블을 from에서 추가할 때 쿼리 속도를 최대한 빠르게 하기 위해 해당 조건이 참인 경우에만 테이블을 조회하고 해당 컬럼을 and 조건으로 확인하도록 했다. 결과적으로 기존 해당 쿼리보다도 약 5ms 속도도 개선된 쿼리를 만들어볼 수 있었다 재밌는 경험! SQL 개발자 (SQLD) 자격증 따기 Part.3 섹션 1. SQL 최적화의 원리 SQLD에서는 2~3문제 출제되는 비교적 비중이 낮은 문제(SQLP에서 더 중요하게 본다) 1. 옵티마이저 - SQL 개발자가 SQL을 작성하여 실행할 때, 옵티마이저는 SQL을 어떻게 실행할 것인지 계획하게 된다. ~ SQL 실행 계획을 수립하고 SQL을 실행한다 - 옵티마이저는 SQL의 실행 계획을 수립하고 SQL을 실행하는 데이터베이스 관리시스템의 소프트웨어이다 - 동일한 결과가 나오는 SQL도 어떻게 수행하느냐에 따라 성능이 달라진다. 따라서 옵티마이저의 실행 계획은 SQL 성능에 아주 중요한 역할을 한다. 1) 특징 - 옵티마이저는 데이터 딕셔너리에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해 예상되는 비용을 산정 - 옵티마이저는 여러 개의 실행 계획 중 최저비용을.. SQL 개발자 (SQLD) 자격증 따기 Part.3 섹션 0. 1. GROUP 함수(ROLL UP, GROUPING, GROUPING SETS, CUBE)에 대한 설명 1) ROLL UP - ROLL UP은 GROUP BY의 칼럼에 대해 Subtotal을 만들어준다. GROUP BY구에 칼럼이 두 개 이상이면 순서에 따라 결과가 달라진다 * DECODE문과 함께 유용하게 활용가능 2) GROUPING - GROUPING 함수는 ROLL UP, CUBE, GROUPING SETS에서 생성되는 합계 값을 구분하기 위해 만들어진 함수. 소계, 합계 등이 계산되면 GROUPING은 1을 반환하고 그렇지 않은 경우 0을 반환해 합계 값을 식별할 수 있다 + DECODE 함수를 사용해, 결과가 1일 경우 합계를 출력, 그렇지 않으면 NULL을 반환하게 할 수 있다 : SELE.. 08.19 TIL : 데브원영의 카프카 1. AWS에 카프카 클러스터 설치, 실행 0) 아파치 카프카 설치 준비 - 주키퍼 : 카프카 관련 정보를 저장 - 카프카 1) ec2 발급, 3대의 인스턴스 실행 2) wget 명령어로 주키퍼 설치, 압축해제, 주키퍼 앙상블 설정 3) etc/hosts 수정 4) 주키퍼 연동을 위한 방화벽 설정 : aws 보안그룹 설정 ~ 2181, 2888, 3888, 9092 포트 개방 5) 주키퍼 실행 6) 카프카 설치 : wget - 압축해제 - 브로커 id 설정 - 리스너 & advertise 리스너 설정 - 주키퍼의 hostname 및 포트 입력 7) 카프카 실행 : 토픽 생성 및 프로듀서와 컨슈머 간 통신 확인 2. 카프카 프로듀서 - 데이터를 토픽에 생산하는 역할 - 특정 토픽에 데이터를 publish .. 08. 17 TIL : 데브원영의 카프카 컨슈머 랙 (Lag) + 오프셋 : 컨슈머에서 메시지를 어디까지 읽었는 지 저장하는 값 - 컨슈머와 프로듀서 간 데이터 오프셋에 차이가 발생하게 되면 이를 기록하는 것이 컨슈머 랙이다 버로우 - 카프카 컨슈머 랙을 모니터링하는 오픈소스 어플리케이션 컨슈머 단에서 모니터링하는 경우 : 컨슈머와 의존성이 높아져 관련된 문제가 발생한다 ~ 컨슈머에 디펜던시가 걸린다, 컨슈머 정지 시 랙 기록 불가, 추가되는 컨슈머 당 모니터링을 개발해야함 장점 1) 멀티 카프카 클러스터 지원 2) Sliding Window를 통한 컨슈머의 상태를 표현할 수 있다 ~ warning, error, ok로 구분 3) HTTP API 제공 https://blog.voidmainvoid.net/243 Burrow - kafka con.. 08. 13 TIL : 간단한 전자정부 표준 프레임워크 교육 후기 8월 7일부터 13일까지 신청해둔 전자정부 표준 프레임워크 교육을 다 들었다. 다만, 시간적인 여유가 부족해 이번 기회에 수료하진 못했다.. ㅋㅋ 더 빡세게 해야겠다는 생각을 가져본다! 양이 생각 이상으로 많고 개념이 완전 생소한 것은 없었지만 제출해야 하는 과제가 좀 있어 제때 다 못했던 바람에. 그래도 들으며 정리한 주요 꼭지 - 프레임워크에 대한 개요, 이 부분에 대해 시험에 몇 문제나 나왔는지! 사실 개발에 있어 중요도가 높다고 생각하지 않았는 데 시험에 많이 나와 좀 당황했다. 오히려 실습이나 코드에 대한 부분을 시험에서 더 많이 봤더라면 좋았겠으나, 시험이 그렇게 출제된 이유가 있을 것이라 생각한다 - 개발에 있어 유용하다고 생각했던 각종 공통 컴포넌트, 템플릿 프로젝트 등이 있고 이를 해볼 .. 08.14 TIL : 데브원영의 카프카 1. 파티셔너 - 프로듀서가 데이터를 보낼때 무조건 파티셔너를 통해 보내야 한다 - 어떤 파티션(토픽 안에 있는)에 넣을지를 결정한다 - 레코드에 포함된 메시지 키 또는 메시지 값에 따라 파티션의 위치가 결정된다 - 기본 값 : UniformStickyPartioner 1) 메시지 키가 있을 때 특정 해시 값이 생성되고, 이를 바탕으로 어느 파티션으로 갈 지 정해진다 ~ 동일한 메시지 키를 가질 경우 동일 파티션에 들어가는 것을 보장하므로, 데이터의 순서를 보장할 수 있다 -> 파티션 내부에서 큐처럼 동작한다 2) 키가 없을 때 - 라운드 로빈 방식으로 토픽의 파티션에 값이 입력된다 3) 커스텀 파티셔너 - Pationer 인터페이스를 이용해 메시지 키, 값 또는 이름에 따라 데이터 분배방식을 임의로 설.. 08. 04 TIL : RDB 인덱스의 내부 작동 원리 문제 : 업무 중 DB를 검색하다 어떤 테이블을 봤을 때 클러스터형 인덱싱이 되어 있지 않은 것을 알게 되었다. 그 테이블의 데이터를 보다 깔끔하게 조회하려면 ORDER BY를 통해 정렬한 후 조회해야 했다. 왜 그렇게 테이블을 설계한 것인지가 궁금해졌고, 마침 공부하던 SQL책에서 관련 내용이 나와 정리해보려고 한다 시도해본 것 : 특별히 있진 않다. 어려운 문제가 아니고 다만 왜 클러스터형 인덱싱을 하지 않아 정렬하지 않은 이유가 있을 것인데, 왜 그런 판단을 내리게 된 것인지 그 근거와 이유를 이해하는 것이 더 중요하다 생각했다 0. 균형 트리 - 인덱스는 균형 트리 자료구조로 만들어지고, 균형 트리는 검색 연산 시 무조건 루트 노드(MySQL : 페이지)부터 검색한다. 루트 노드에 각 노드에 대해.. 이전 1 ··· 7 8 9 10 11 12 13 ··· 41 다음