Diary/TIL
2024-05-26) CS공부
nsean
2024. 5. 26. 00:40
기초 지식
- 자료 구조와 알고리즘
- 배열과 연결 리스트의 차이점은 무엇인가?
- 배열: 연속된 메모리 공간에 저장, 인덱스를 이용한 빠른 접근 가능, 크기 고정.
- 연결 리스트: 노드들이 포인터로 연결된 구조, 동적 크기, 삽입/삭제가 용이하지만 접근 속도가 느림.
- 스택과 큐의 차이점과 사용 사례는 무엇인가?
- 스택 (LIFO): 마지막에 삽입된 데이터가 먼저 나옴. 사용 사례: 함수 호출 스택, 백트래킹 알고리즘.
- 큐 (FIFO): 먼저 삽입된 데이터가 먼저 나옴. 사용 사례: 작업 대기열, BFS 알고리즘.
- 트리와 그래프의 차이점은 무엇인가?
- 트리: 계층적 구조, 루트 노드가 존재, 사이클 없음.
- 그래프: 네트워크 구조, 루트 노드 없음, 사이클 존재 가능.
- 이진 탐색 트리와 해시 테이블의 장단점은 무엇인가?
- 이진 탐색 트리: 정렬된 데이터 저장, 평균 시간 복잡도 O(log N), 최악의 경우 O(N).
- 해시 테이블: 키-값 쌍 저장, 평균 시간 복잡도 O(1), 충돌 해결 필요.
- 퀵 정렬과 병합 정렬의 차이점과 시간 복잡도는 어떻게 되는가?
- 퀵 정렬: 분할 정복, 평균 O(N log N), 최악 O(N^2), 제자리 정렬.
- 병합 정렬: 분할 정복, 항상 O(N log N), 추가 메모리 필요, 안정 정렬.
- BFS와 DFS의 차이점과 사용 사례는 무엇인가?
- BFS: 너비 우선 탐색, 큐 사용, 최단 경로 탐색에 유리.
- DFS: 깊이 우선 탐색, 스택 사용, 경로 탐색에 유리, 백트래킹에 유용.
- 데이터베이스
- 관계형 데이터베이스와 비관계형 데이터베이스의 차이점은 무엇인가?
- 관계형 DB: 테이블 간 관계, SQL 사용, 정규화 데이터 모델.
- 비관계형 DB: 테이블 관계 없음, 다양한 데이터 모델 지원, 스키마 유연.
- SQL과 NoSQL의 차이점은 무엇인가?
- SQL: 구조적 쿼리 언어, 고정 스키마, 관계형 DB.
- NoSQL: 다양한 데이터 모델, 유연한 스키마, 확장성.
- 인덱스의 역할과 사용 방법은 무엇인가?
- 인덱스: 데이터 검색 속도 향상.
- 사용 방법: Java의 Spring JPA @Index 어노테이션 등, B-Tree 구조로 logN 조회 속도.
- 정규화와 비정규화의 차이점과 장단점은 무엇인가?
- 정규화와 비정규화의 차이점
- 장단점:
- 정규화의 경우 데이터의 무결성이 최대한 보장되지만 속도가 느릴 확률이 높다.
- 비정규화의 경우 속도가 빠르지만 데이터의 중복등이 발생할 수 있다.
- 트랜잭션과 ACID 속성에 대해 설명하시오.
- 면접때 나왔던 질문이었다.
- 트랜잭션은 한 쿼리가 db에서 실행될때부터 마칠때까지의 과정을 말하며
- A 는 원자성, 모든 작업이 성공 or 실패 둘중에 하나
- C 는 일관성, 트랜잭션이 완료됐을 때 데이터베이스는 일관된 상태를 유지해야 함
- I 는 격리성, db 격리 레벨과 관련있는 내용
- D 는 트랜잭션이 완료되면 그 결과는 영구적으로 반영되어야 한다.
- 조인(Join)의 종류와 각각의 사용 사례는 무엇인가?
- 테이블의 주체에 따라 크게 LEFT JOIN, INNER JOIN, OUTER JOIN으로 나뉘게 됩니다.
'Diary/TIL' Related Articles