개발자 면접 질문 - DML / DDL / DCL 1. DML - SELECT / INSERT / UPDATE / DELETE 를 말한다. - 테이블 데이터 변경 명령어 2. DDL - CREATE / ALTER / DROP / RENAME / TRUNCA / TE - 테이블 구조 변경 명령어 3. DCL - GRANT / REVOKE - 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - Redis와 MongoDB 비교 1. Redis - 메모리 DB로 속도가 빠르다. - 키, 값으로 데이터를 저장한다. 2. MongoDB - JSON과 유사한 문서를 사용하여 스키마 없는 데이터를 저장한다. 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - 비관계형 데이터베이스(NoSQL)과 관계형 데이터 베이스(RDBMS) 차이 1. NoSQL(not only SQL) - 비 관계형 데이터베이스 - Scale-out : 여러 대의 서버를 중심으로 확장 - 스키마가 유동적 - 데이터 간의 관계를 정의하지 않음 - 빠른 쓰기, 읽기 - 저렴한 비용으로 분산 처리 및 병렬 처리 가능 2. RDBMS - 관계형 데이터 베이스 - Scale-up : 서버 한대 중심으로 확장 - 스키마가 고정적 (정해진 type 만 저장 가능) - 데이터 간의 관계를 정의함 * 비정형 데이터를 저장할 때 NoSQL을 사용한다. 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - 무결성 1. 무결성 - 데이터의 일관성, 정확성, 유효성을 유지하는 것 2. 무결성 제약 조건 - 개체 무결성 : 기본키는 NULL을 허용하지 않는다. - 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다. - 도메인 무결성 : 올바른 데이터가 입력되는지 체크하는 것이다. - 고유 무결성 : 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성 값은 모두 달라야 한다. - NULL 무결성 : 특정 속성 값에 NULL이 올수 없다는 조건이 주어진 경우, 그 속성 값은 NULL 값이 올 수 없다. - 키 무결성 : 하나의 릴레이션에는 최소한 하나의 키가 존재해야 한다. 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - SQL Injection 공격 방어 기법 1. 입력 값 검증 - 개발자가 의도한 유효한 값 인지 검증 2. 저장 프로시저 사용 3. 사용자 권한 제한 - DB 사용자 권한 제한 (System Stored Procedures 접근 금지) - DB 전체 제어권이나 Server 에 대한 접근이 불가능하도록 설정 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - Slow Query 대응 방법 1. Slow Query 확인 방법 - show variables like 'slow_query_%'; - log_file On 으로 변경하면 쿼리 기록을 남길 수 있다. 2. 해결 방법 - 정상적인 Index 사용 여부 확인 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - MariaDB 스토리지 엔진 종류 1. MyISAM - 트랜잭션 미지원 - update, delete, insert 수행 시 Table Lock(테이블 락)되어 성능 불리 - 시작, 정지가 빠름 2. InnoDB - 트랜잭션 기능 제공 - 비정상 종료시 복구 기능 제공 - 데이터 갱신이 Row Lock(로우 락) 으로 되어 있음 3. Aria - MyISAM 후속 버전 - 트랜잭션 기능 제공 - 비정상 종료시 복구 기능 제공 - 아직 InnoDB 대체할 정도로 완성되지 않음 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - JOIN 정의 1. JOIN - 정규화 작업으로 인해 여러 개로 나누어진 테이블 사이에서 원하는 정보를 가져오기 위해 테이블 간의 관계 설정 2. 종류 - 크로스조인(Cross Join) : 모든 경우의 수를 전부 표현해주는 방식 - 이너 조인(Inner Join) : 조인이 되는 키 값을 기준으로 교집합 - 셀프 조인(Self Join) : 자기 자신과 자기 자신을 조인, 가지고 있는 컬럼을 다양하게 변형시켜 활용할 때 사용 - 아우터 조인(Outer Join) : 조인이 되는 키 값을 기준으로 기준 테이블 키 값 * LEFT / RIGHT JOIN - SELECT *FROM A LEFT OUTER JOIN B : B테이블에 A테이블과 매핑되는 값이 있건 없건 A 값은 반드시 모두 나온다. - SELECT *FROM.. 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - 클러스터링과(Clustering) 리플리케이션(Replication) 차이 1. 클러스터링(Clustering) - DB 서버를 다중화 하는것 - 동기화 방식 - 자동 FailOver 기능 (시스템 대체 작동) 1) Active - Active 구성 - 2대가 모두 활성화되어 동작되는 구성 - 시스템 다운 시간이 짧음 - 성능이 좋음 - 저장소 병목 현상이 가끔 발생 2) Active - StandBy 구성 - 1대가 활성화되어 있고 1대는 대기하고 있는 구성 - Hot-Standby : 장애 발생 전에도 DB가 작동되는 구성 - Cold-Standby : Active DB가 다운된 시점에 작동하는 구성 2. 리플리케이션(Replication) - DB서버와 저장소를 같이 다중화 하는 것 - 비동기화 방식 - 자동 FailOver 기능이 없음 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - union 정의 1. union - 두개 이상의 테이블의 결과를 합쳐서 표시해준다. - 각 select문의 열수가 같아야 한다. - 중복 값은 하나로 나오는 것이 기본 설정이다. - order by의 경우 union 의 맨 끝에 하나만 받을 수 있다. - 열의 데이터 타입은 같거나 서로 변환 가능한 타입이어야 한다. 면접 - 데이터베이스 2020.12.04