기술면접을 위해 기초 CS에 대한 복습중이다.
공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다.
내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의!
인덱스 (Index)
- 책 부록에 '찾아보기(index)'처럼 모든 변수 다 검색할 필요 없이 빠르게 조회 가능
- 해시 테이블 or B-Tree 구조로 되어 있다. 주로 B-Tree
- 해시 테이블로 하면 검색은 빠르지만($O(1)$), 등호 연산 밖에 되지 않아 순차 검색이 불가하다.
- B-Tree는 $O(NlogN)$이지만, 부등호 연산이 가능해서 순차 검색이 가능하다.
관계형 데이터베이스 vs 비관계형 데이터베이스
- 관계형: key와 value로 이루어진 테이블 형태. RDBMS
- 비관계형: NoSQL(Not Only SQL)
- Document: MongoDB
- Key-Value DB: SQL보다 빠르게 읽을 수 있지만, 저장할 때 그에 맞춰서 저장해야 함.
- Graph: SNS 등
SQL
DB와 서로 주고 받기 위한 언어
SELECT (컬럼이름) FROM (테이블이름) WHERE (조건)
ORM
- 객체-관계 매핑, 객체와 관계형 DB를 매핑시켜주는 것.
- ex) JPA
'Study note > CS' 카테고리의 다른 글
디자인 패턴 1 (0) | 2024.04.12 |
---|---|
네트워크 (0) | 2024.04.12 |
개발 상식 (0) | 2024.04.12 |
Operation System (0) | 2024.04.12 |
C++ 코딩 인터뷰에서 기초 질문 모음 (0) | 2021.01.08 |