개발자 면접 질문 - 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
개발자 면접 질문 - union과 union all 차이 1. Union - union distinct와 동일한 작업을 하기 때문에 중복되는 레코드를 제거해준다. 2. Union All - 별도의 중복 제거 과정을 거치지 않고 그냥 내려준다. 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - like 검색 문제점 1. 문제점 - like 검색은 인덱스를 사용하지 않기 때문에 속도가 느리다. - 풀 스캔이 일어난다. - mysql 같은 경우 full-text검색으로 대체할 수 있다. - oracle일 경우 text기능을 사용해서 도메인 인덱스를 사용한다. 2. 해결 방법 - 별도의 인덱스를 구성 : 공백을 기준으로 단어들을 나누어 테이블 키와 함께 별도의 인덱스 테이블 구성 - 별도 검색엔진 사용 - 앞에 %를 쓰지 않고 사용 ex) '%야호%' -> '야호%' 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - 트리거 (Trigger) 1. 트리거 (Trigger) - 특정 테이블에서 데이터의 변화가 발생했을 때 자동으로 insert, update, delete문이 실행되는 스토어드 프로시저 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - 저장 프로시저(Stored Procedure) 1. 저장 프로시저(Stored Procedure) - DB 내부에 저장된 SQL 명령들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 - 쿼리문의 함수화 버전 2. 장점 - 반복적인 작업을 피할 수 있다. - 개발 언어에 비의존적이다. - 네트워크 트래픽이 감소한다. - 보안성이 향상된다. 3. 단점 - 유지보수가 힘들다. 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - MaxActive보다 MaxIdle이 적을 경우 1. MaxActive 10 / MaxIdle 5 일때 - 기본적으로 maxActive와 maxIdle값은 같은 것이 바람직하다. - MaxActive = 10이고 MaxIdle = 5일 경우 항상 커넥션을 동시에 5개 사용하고 있는 상황에서 1개의 커넥션이 추가로 요청되면 maxActive = 10이므로 1개의 추가 커넥션을 db에 연결한 후 풀은 비지니스 로직으로 커넥션을 전달한다. 이후 비즈니스 로직이 커넥션을 풀에 반납한 경우 커넥션은 maxIdle=5 (항상 5개만 유지)에 영향을 받아 커넥션을 실제로 닫아 버리므로 일부 커넥션이 매번 생성되었다 닫혔다 하는 비용이 발생된다. 면접 - 데이터베이스 2020.12.04
개발자 면접 질문 - HTTP 와 TCP의 Keep-Alive 1. HTTP Keep-Alive - Socket에서 IN/OUT의 Access가 마지막으로 종료된 시점부터 정의된 시간까지 Access가 없어도 대기하는 구조 - 정의된 시간 내에 Access가 이루어지면 계속 연결 상태를 유지할 수 있다. 2. TCP Keep-Alive - TCP 프로토콜은 자체적으로 장애 감지가 없기 때문에 Keep-Alive를 사용하여 장애를 감지한다. - 연결된 TCP 소켓을 체크할 수 있다. - TCP 연결이 여전히 진행중인지 끊어졌는지를 감지한다. 면접 - 네트워크 2020.12.04