면접 요약 정리

기술 면접 준비 - 데이터베이스

JIN_Coder 2022. 11. 16. 18:25

- RDBMS(관계형)

데이터는 엄격한 스키마에 따라 테이블에 저장

관계를 통해 연결된 여러 개의 테이블에 저장

 

사용

    데이터가 자주 수정되는 서비스

    스키마의 변경이 없고, 명확한 스키마 구조를 필요로 할 때

 

장점

    명확한 데이터 구조 보장(정해진 스키마에 따라 데이터를 저장하기 때문에)

    중복 데이터 방지

 

단점

    관계로 인한 시스템 복잡도를 고려하여 구조화해야 함

    시스템이 복잡하면 쿼리문이 복잡해지고, 성능이 저하됨

 

- NoSQL(비 관계형)

정해진 스키마가 없고, 테이블 개념의 컬렉션에 저장

관계 설정을 하지 않음

 

사용

    데이터가 자주 변경되지 않는 서비스

    정확한 데이터 구조를 사용하지 않거나 데이터 구조의 변경, 확장을 필요로 할 때

    막대한 양의 데이터를 다룰 때(수평적 확장 용이)

 

장점

    테이블 간의 복잡한 관계를 생각하지 않아도 됨

    정해진 스키마가 없어 데이터를 조정하고, 구조 변경이 유연함

    수평적 확장에 용이(읽고 쓰기가 빠름)

 

단점

    데이터 변경이 자유롭다 보니 데이터 중복, 불일치 문제

 

- 조인(Join)

두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색

보통 Primary Key, Foreign Key로 연결

 

- 이너조인(INNER JOIN)

교집합

기존 테이블과 조인한 테이블의 중복 값을 보여줌

SELECT 별칭.칼럼, 별칭.칼럼 FROM 기준테이블별칭
INNER JOIN 조인테이블 별칭 
ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 
AND 기준테이블별칭.기준키 = 조인테이블별칭.기준키

// Ex)
SELECT A.NAME, B.AGE FROM EX_TABLE A   // A테이블의 NAME조회, B테이블의 AGE조회
INNER JOIN JOIN_TABLE B 
ON A.NO_EMP = B.NO_EMP 
AND A.DEPT = B.DEPT

 

- 레프트조인(LEFT OUTER JOIN) / 라이트조인(RIGHT OUTER JOIN)

기존 테이블 값 + 교집합

SELECT 별칭.칼럼, 별칭.칼럼 FROM 기준테이블별칭
LEFT OUTER JOIN 조인테이블 별칭 
ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 
AND 기준테이블별칭.기준키 = 조인테이블별칭.기준키

 

- 풀조인(FULL OUTER JOIN)

합집합

SELECT 별칭.칼럼, 별칭.칼럼 FROM 기준테이블별칭
FULL OUTER JOIN 조인테이블 별칭 
ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 
AND 기준테이블별칭.기준키 = 조인테이블별칭.기준키

 

- 셀프조인(SELF JOIN)

하나의 테이블을 여러 번 복사해서 조인

SELECT 별칭.칼럼, 별칭.칼럼 
FROM 테이블명 별칭1, 테이블명 별칭2

 

- 인덱스(index)

테이블에 대한 종작의 속도를 높여주는 자료구조

검색 연산의 성능을 향상

 

고려사항

    테이블의 전체 데이터 중 적은 양을 조회할 때 사용

    테이블 데이터가 적을수록 인덱스 효율은 떨어짐

    데이터의 유일성이 놓을수록, 데이터 범위가 넓을수록 인덱스 효율은 높음

    NULL이 적은 칼럼이 인덱스 효율이 높음

 

- 트랜젝션

데이터베이스의 상태를 바꾸는 기능을 수행하기 위한 작업의 단위

작업의 완전성을 보장해줌

논리적인 작업을 모두 처리하거나 처리 못할 경우 원상태로 복구하여 작업의 일부만 적용되는 현상을 방지함

특성 : 원자성, 일관성, 고립성, 지속성

 

Ex) 계좌 송금 과정 A에서 B로 1만원 송금 시

A 계좌에서 1만원 차감 후 B계좌에 1만원 증가해야 하지만,

차감 후 에러로 인해 작업이 중단되면 A 계좌의 1만원만 차감되는 문제 발생

트랜젝션이 적용되어 있다면 원상태로 롤백(rollback)되어 일부만 적용되는 문제 방지

 

 

 

 

 

 

 

 

 

Node js 백엔드 면접 질문 정리

Node Js를 사용하는 백엔드 개발자를 위한 면접 질문을 정리하고 있습니다. 아래에 계속 업데이트 될 예정입니다.특징관계형 데이터 베이스 조작 및 관리를 수행하는 완전 관리형 웹서비스automated

velog.io

 

 

[기술 면접] 신입 백엔드 기술 면접 질문 정리 및 답변

[목차] 1. Java 2. Spring & Spring boot 3. DB 4. 웹 & 통신 5. 운영체제 6. 자료 구조 1. Java 1. JVM이란 무엇인가? 자바 가상 머신의 약자를 줄여 부르는 용어(Java Virtual Machine) JVM의 역할 : 자바 애플리케이션을

backendcode.tistory.com

 

 

신입 개발자 면접 준비 (2) : 기술면접

처음 기술면접이라는 것을 봐보는 입장으로, 면접을 생각하니 떨리네요. 그렇지만 정리하면서 한번 보는 건 그 자체로도 재밌기도 하고 공부하다보니 다른 생각을 잊어버릴 수 있어서 좋은 것

coding-restaurant.tistory.com

 

'면접 요약 정리' 카테고리의 다른 글

기술 면접 준비 - 네트워크  (0) 2022.11.25
기술 면접 준비 - 기초 CS 지식  (0) 2022.11.17
기술 면접 준비 - JavaScript  (0) 2022.11.13
socket.io 정리  (0) 2022.10.28
쿠키, 세션, JWT 정리  (0) 2022.10.27