일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- UXUI기초정복
- 오픈패스
- 국비지원
- Be
- 환급챌린지
- 티스토리챌린지
- 내일배움카드
- 부트캠프
- UXUIPrimary
- 내일배움캠프
- baekjoon
- 국비지원교육
- Java
- mysql
- 디자인강의
- 오블완
- 객체지향
- 오픈챌린지
- 백준
- 디자인교육
- Spring
- UXUI챌린지
- 디자인챌린지
- 백엔드개발자
- 국비지원취업
- 백엔드 부트캠프
- KDT
- 패스트캠퍼스
- 백엔드
- OPENPATH
- Today
- Total
목록학습일지 (29)
군만두의 IT 공부 일지

목차 이번에는 이전 게시글에 정리하지 않았던 2.3 섹션과 2.5 섹션을 정리해보고 넘어가려고 합니다. 네트워크 공부를 안 한지 오래 되어서 그런지, 배운 내용이어도 어렵게 느껴지는 것 같습니다.2장 네트워크2.3 네트워크 기기2.3.1 네트워크 기기의 처리 범위네트워크 기기는 계층별로 처리 범위를 나눌 수 있음.상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만, 하위 계층을 처리하는 기기는 상위 계층을 처리할 수 없음.애플리케이션 계층: L7 스위치인터넷 계층: 라우터, L3 스위치데이터 링크 계층: L2 스위치, 브리지물리 계층: NIC, 리피터, AP2.3.2 애플리케이션 계층을 처리하는 기기스위치: 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데..

목차 제목: 면접을 위한 CS 전공지식 노트 저자: 주홍철 출판사: 길벗 가격: 24,000원 디자인 패턴, 운영체제, 데이터베이스,자료 구조, 네트워크, 개발자 면접 면접 대비를 위해서 친구들과 스터디를 진행하기로 했습니다. 위 책으로 매주 학습한 내용을 정리한 후 모의면접을 진행하려고 합니다. 순서는 우선순위를 정해 2장부터 진행할 것이며, 오늘은 2.2 섹션 위주로 정리하려고 합니다.2장 네트워크2.1 네트워크의 기초네트워크: 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합노드: 서버, 라우터, 스위치 등 네트워크 장치링크: 유선 또는 무선2.1.1 처리량과 지연 시간처리량(throughput): 링크 내에서 성공적으로 전달된 데이..
목차 10.3 실행 계획 분석MySQL 8.0 버전부터는 EXPLAIN 명령의 결과로 출력되는 실행 계획의 포맷을 기존 테이블 포맷과 JSON, TREE 형태로 선택할 수 있음.실행 계획의 출력 포맷보다는 실행 계획이 어떤 접근 방법을 사용해서 어떤 최적화를 수행하는지, 그리고 어떤 인덱스를 사용하는지 등을 이해하는 것이 더 중요함.아무런 옵션 없이 EXPLAIN 명령을 실행하면, 쿼리 문장의 특성에 따라 표 형태로 된 1줄 이상의 결과가 표시됨.표의 각 라인(레코드)은 쿼리 문장에서 사용된 테이블(서브쿼리로 임시 테이블을 생성한 경우 그 임시 테이블까지 포함)의 개수만큼 출력됨.실행 순서는 위에서 아래로 표시됨(UNION이나 상관 서브쿼리와 같은 경우 순서대로 표시되지 않을 수도 있음).출력된 실행 계..
목차10. 실행 계획10.1 통계 정보MySQL 서버는 5.7 버전까지 테이블과 인덱스에 대한 개괄적인 정보를 가지고 실행 계획을 수립함.하지만 테이블 칼럼의 값들이 어떻게 분포되어 있는지에 대한 정보가 없기 때문에, 실행 계획의 정확도가 떨어지는 경우가 많았음.MySQL 8.0 버전부터는 인덱스되지 않은 칼럼들에 대해서도 데이터 분포도를 수집해서 저장하는 히스토그램(Histogram) 정보가 도입됨. 히스토그램이 도입됐다고 해서 기존의 테이블이나 인덱스의 통계 정보가 필요치 않은 것은 아님.10.1.1 테이블 및 인덱스 통계 정보비용 기반 최적화에서 가장 중요한 것은 통계 정보임.통계 정보가 정확하지 않다면 엉뚱한 방향으로 쿼리를 실행할 수 있기 때문임. 부정확한 통계 정보 탓에 0.1초에 끝날 쿼리에..
목차9.4 쿼리 힌트MySQL 서버가 서비스의 비지니스를 완벽히 이해하지 못하므로, 서비스 개발자나 DBA가 옵티마이저에게 부족한 실행 계획을 어떻게 수립하는지 알려주기 위한 목적으로 MySQL에서는 힌트를 제공함.MySQL 서버에서 사용 가능한 쿼리 힌트는 다음과 같이 2가지로 구분할 수 있음.인덱스 힌트: 예전 버전의 MySQL에서 사용된 힌트옵티마이저 힌트: MySQL 5.6 버전부터 추가된 힌트이 책에서는 옵티마이저 힌트가 아닌 것은 인덱스 힌트 절로 분류함.9.4.1 인덱스 힌트STRAIGHT_JOIN과 USE INDEX 등을 포함한 인덱스 힌트는 MySQL 서버에 옵티마이저 힌트가 도입되기 전 사용된 기능으로, SQL 문법에 맞게 사용해야 하기 때문에 ANSI-SQL 표준을 준수하지 못함.My..
목차9.3 고급 최적화옵티마이저 옵션은 조인 관련된 옵티마이저 옵션과 옵티마이저 스위치로 구분할 수 있음.9.3.1 옵티마이저 스위치 옵션옵티마이저 스위치 옵션은 optimizer_switch 시스템 변수를 이용해서 제어함.optimizer_switch 시스템 변수에는 여러 개의 옵션을 세트로 묶어서 설정하는 방식으로 사용함.옵티마이저 스위치 이름기본값설명batched_key_accessoffBKA 조인 알고리즘을 사용할지 여부 설정block_nested_looponBlock Nested Loop 조인 알고리즘을 사용할지 여부 설정engine_condition_pushdownonEngine Condition Pushdown 기능을 사용할지 여부 설정index_condition_pushdownonIndex..
목차9.2 기본 데이터 처리9.2.4 GROUP BY 처리GROUP BY 또한 ORDER BY와 같이 쿼리가 스트리밍된 처리를 할 수 없게 하는 처리 중 하나임.GROUP BY 절이 있는 쿼리에서는 HAVING 절을 사용할 수 있는데, HAVING 절은 GROUP BY 결과에 대해 필터링 역할을 수행함.GROUP BY 작업은 인덱스를 사용하는 경우와 그렇지 못한 경우로 나뉨.인덱스를 사용할 때인덱스를 차례대로 읽는 인덱스 스캔 방법인덱스를 건너뛰면서 읽는 루스 인덱스 스캔 방법인덱스를 사용하지 못할 때임시 테이블 사용9.2.4.1 인덱스 스캔을 이용하는 GROUP BY(타이트 인덱스 스캔)조인의 드라이빙 테이블에 속한 칼럼만 이용해 그루핑할 때, GROUP BY 칼럼으로 이미 인덱스가 있다면 그 인덱스를..
목차9.1 개요9.1.1 쿼리 실행 절차MySQL 서버에서 쿼리가 실행되는 과정(3단계)사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리(파스 트리)함.이 단계를 SQL 파싱(Parsing)이라고 함.MySQL 서버의 SQL 파서라는 모듈로 처리함.SQL 문장이 문법적으로 잘못됐다면 걸러짐.SQL 파스 트리가 만들어짐.MySQL 서버는 SQL 문장 그 자체가 아니라 SQL 파스 트리를 이용해 쿼리를 실행함. SQL의 파싱 정보(파스 트리)를 확인하면서 어떤 테이블로부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택함.SQL 파스 트리를 참조하면서 다음 내용을 처리함.불필요한 조건 제거 및 복잡한 연산의 단순화여러 테이블의 조인이 있는 경우 어떤 순서로 테이블..