본문 바로가기

전공

MySQL튜닝2) SQL 튜닝 용어 이해하기2 1. 오브젝트 스캔 종류 DB의 오브젝트 스캔 종류 테이블 스캔: 인덱스를 거치지 않고 테이블의 데이터로 직접 접근 인덱스 스캔: 인덱스를 통해 테이블 데이터에 접근 1. 테이블 스캔 / 테이블 풀 스캔 (Table Full Scan) 인덱스를 거치지 않고 테이블 데이터에 직행하여 처음과 끝까지 스캔하는 방식 WHERE 조건문을 기준으로 활용할 인덱스가 없는 경우, 전체 데이터 대비 대량의 데이터가 필요할 때 사용 대량의 데이터에 접근할 때 테이블 풀 스캔을 쓰면, 인덱스를 통한 랜덤 액서스가 발생하지 않아 이점이 있음 2. 인덱스 스캔 인덱스 풀 스캔 (Index Full Scan) 테이블에 접근하지 않고, 인덱스 내의 열만을 참조하여 처음부터 끝까지 스캔하여 데이터에 접근하는 방식 인덱스는 테이블의 .. 더보기
MySQL튜닝1) SQL 튜닝 용어 이해하기 1. MySQL 서버 = MySQL 엔진 + 스토리지 엔진 (물리 엔진 용어) MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 나눠볼 수 있다. MySQL 엔진은 클라이언트로부터 오는 요청 처리(요청된 SQL 문장을 분석, 최적화, ...)를 담당하고, 스토리지 엔진은 실제 데이터를 디스크 스토리지에 저장하거나 조회하는 부분을 담당한다. 1) MySQL 엔진 사용자가 요청한 SQL 문을 넘겨받은 뒤 SQL 문법 검사와 적절한 오브젝트 활용 검사를 하고, SQL 문을 최소 단위로 분리하여 원하는 데이터를 빠르게 찾는 경로를 모색하는 역할을 수행한다. 또한 스토리지 엔진으로부터 전달받은 데이터 중 불필요한 데이터는 제거하거나 가공 및 연산하는 역할을 한다. 즉, SQL 문의 시작 및 마무리 단계에.. 더보기
정규화 1. 정규화(Normalized)란? - 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스 - 정규화(Normalization)의 목표는 테이블 간 중복 데이터를 허용하지 않는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 2. 정규화의 장단점 1) 장점 - 데이터베이스 변경 시 이상 현상(Anomaly) 제거 - 저장 공간의 최소화 - 데이터 구조의 안정성 및 무결성 유지 - 데이터 삽입 시 릴레이션 재구성의 필요성 감소 - 효과적인 검색 알고리즘 생성 가능 2) 단점 - 릴레이션 간의 JOIN 연산 증가→ 질의에 대한 응답 시간 저하 3. 정규화를 하는 이유 - 이상 문제를 해결하기 위해 .. 더보기
파일 시스템 1. 관련 용어 1) File - 컴퓨터에서 의미가 있는 정보를 담은 논리적인 단위 - 비휘발성 보조기억장치(하드디스크)에 저장 - 운영체제는 다양한 저장 장치를 file 이라는 동일한 논리적 단위로 볼 수 있게 해줌 - 실행 파일과 데이터 파일로 존재 * 실행 파일 : 운영체제가 메모리로 가져와 CPU를 이용하여 작업하는 파일 (ex 윈도우 exe 파일. 유닉스는 따로 확장자 없음) * 데이터 파일 : 실행파일이 작업하는데 필요한 데이터를 모아놓은 파일 2) File attribute (= metadata) - 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 - 파일 이름, 유형, 저장된 위치, 접근 권한, 소유자 등 3) Directory - 파일의 메타데이터 중 일부를 보관하고 있는 일.. 더보기
[스터디 4일차] 3 way handshake와 4 way handshake / OSI 7 계층 1. 3 way handshake와 4 way handshake 1) 관련 용어 - 프로토콜 : 서로 다른 하드웨어와 운영체제를 가지고 서로 통신을 하기위한 규칙 - IP : 인터넷 환경에서의 통신 규약. 패킷이라는 통신 단위로 데이터를 전달하며, 지정한 IP주소로 데이터를 전달함 비연결성과 비신뢰성의 특징을 가짐 - TCP : 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 연결 지향적 프로토콜 1.연결형 서비스로 가상 회선 방식을 제공 2.3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking 과정을 통해 해제 3.흐름 제어 및 혼잡 제어 4.높은 신뢰성을 보장 5.UDP보다 속도가 느림 6.전이중(Full-Duplex), 점대점(Point to Point).. 더보기
[스터디 2일차]함수형 프로그래밍/ 좋은 코드란 / MVC 패턴이란 1. 함수형 프로그래밍 1) 명령형 프로그래밍 (Imperative Programming) 설명 : 프로그래밍의 상태 & 상태를 변경하는 구문의 관점에서 설명하는 방식 특징 : 알고리즘을 명시하고, 목표는 명시하지 않음 예시 : 절차지향 프로그래밍(C,C++), 객체지향 프로그래밍(C++,Java) 2) 선언형 프로그래밍 (Declarative Programming) 설명 : 방법론 보다는 무엇을 해야하는지를 설명하는 방식 특징 : 알고리즘을 명시하지 않고, 목표만 명시 // 이론적 배경을 람다 계산식에 둠 예시 : 함수형 프로그래밍( Lisp, ML ), 반응형 프로그래밍 // 명령형 function add (arr) { let result = 0 for (let i = 0; i < arr.length.. 더보기
[스터디 1일차] - git / TDD / 객체지향 프로그래밍 0. 출처 https://github.com/alstjgg/cs-study GitHub - alstjgg/cs-study: CS 스터디입니다 CS 스터디입니다. Contribute to alstjgg/cs-study development by creating an account on GitHub. github.com 1. [git과 github] 1. GIT - 버전관리 도구, 대표적 관리 도구엔 git과 svn이 존재 - svn과의 가장 큰 차이는 svn은 중앙 집중 관리식, git은 분산 관리식이라는 것입니다( 저장소를 여러개를 두고 분산관리 한다는 차이점이 존재) - SVN은 소스 변경 사항과 히스토리가 서버에 즉시 반영되기 때문에 변경 사항 및 히스토리 관리가 용이하다. 그러나 중앙 저장소 데이터.. 더보기
[DB 기술면접 질문 리스트] : JOIN - JOIN이란? 두개이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을경우 주로 사용하며 여러개의 테이블을 마치 하나의 테이블인 것처럼 활용하는 방법입니다. 보통 Primary key혹은 Foreign key로 두 테이블을 연결합니다 - JOIN 종류는( 논리적 JOIN ) ? 1. INNER JOIN - 기준테이블과 Join한 테이블의 중복된 값을 보여줌 - 교집합 2. LEFT OUTER JOIN - JOIN 문 기준 왼쪽 테이블(A)의 전체 데이터와, A테이블과 B테이블의 중복 데이터를 보여줌 3.RIGHT OUTER JOIN - JOIN문 기준 오른쪽 테이블(B)의 전체 데이터와, A테이블과 B테이블의 중복 데이터를 보여줌 4... 더보기