⭐️ 2023.10.23 (월)

이준영·2023년 10월 24일

⭕️ TIL (Today I Learned)

목록 보기
67/100
post-thumbnail

⭕️ Today I Learned


매일 할 일 ✅ ❌

✅ 1일 1커밋
❌ 1일 1알고리즘 문제 풀이
✅ 1일 2기술면접 개념 정리

✏️ 오늘 한 공부

알고리즘 문제풀이

백준


기술 면접 대비 개념 공부

[ 기술 면접 대비 개념 정리 통합본 ]

  1. NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.
RDBMS는 관계형 데이터베이스 관리 시스템을 의미합니다. 이름과 같이 RDBMS는 RDB를 관리하는 시스템이며 RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 여러개의 속성(column)을 가진 2차원 테이블 형태로 표현하는 데이터베이스입니다. RDBMS는 SQL(Structured Query Language)를 통해 데이터를 관리합니다.

NoSQL(Not Only SQL)은 RDB와 다른 형태로 데이터를 저장합니다.RDBMS와는 다르게 테이블 간 관계를 정의하지 않습니다.데이터 테이블은 그냥 하나의 테이블이고, 일반적으로 테이블간 Join도 불가능 합니다.
빅데이터의 등장으로 데이터와 트래픽이 기하급수적으로 증가함에 따라 RDBMS의 단점인 성능을 향상시키기 위해 등장했습니다. 데이터의 일관성은 포기하되, 비용을 고료하여 여러대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장했습니다.

RDBMS와 NoSQL의 장단점

RDBMS
장점
  • 정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장.
  • 또한 각 데이터를 중복없이 한 번만 저장할 수 있음.
단점
  • 테이블 간 관계를 가지고 있어 시스템이 커질경우 Join문이 많은 복잡한 쿼리가 만들어 질 수 있음.
  • 스키마로 인해 데이터가 유연하지 못하다. 나중에 스키마가 변경 될 경우 번거롭고 어렵다.
NoSQL
장점
  • 스키마가 없기 때문에 유연하고 자유로운 데이터 구조를 가진다.
  • 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있다.
단점
  • 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 해야함.
  • 스키마가 존재하지 않아 명확한 데이터 구조를 보장하지 않는다.

RDBMS, NoSQL 언제 사용해야 할까?

RDBMS는 데이터 구조가 명확하여 변경될 여지가 없고, 관계를 맺고있는 데이터가 자주 변경이 이루어지는 시스템에 적합합니다.
NoSQL은 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우 사용하는 것이 좋습니다. 중복된 데이터를 변경할 때에는 모든 컬렉션에서 수정을 해야 하기에 Update가 많이 이루어지지 않는 시스템이 좋습니다.
  1. mvc 패턴에 대해서 설명해주세요.

MVC 란

MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.
MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리합니다.
  1. RDBMS의 정규화에 대해 설명해주세요.
DB를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입,삭제,수정 연산을 수행할 때 부작용이 발생할 수 있습니다. 이러한 부작용을 이상(anomaly)현상이라고 하고, 이러한 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해 나가는 과정이 정규화 입니다.
  1. Primary Key, Foreign Key에 대해 설명해주세요.
릴레이션에서 튜플을 구분하기 위해 후보키들중 하나를 선택해야하는데 이것이 기본키 입니다. 후보키가 1개라면 이것을 기본키로 선택해야겠지만, 여러개라면 환경을 고려하여 적합한 것을 기본키로 선택하면 됩니다.
외래키는 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합입니다. 외래키는 릴레이션들 사이의 관계를 올바르게 표현하기 위해 필요합니다. 외래키는 반드시 다른 릴레이션의 기본키를 참조해야하며, 외래키의 도메인은 참조되는 기본키와 같게 정의되어야 합니다.

실전 프로젝트 공부해야 할 것들

  • Kafka
  • ELB, Nginx - 로드밸런싱
  • blue green 배포

실전 프로젝트

  • Kafka 공부 및 적용 해보기
    - 아직도 이해가 잘 되지 않았다...

⭐️ 하루 생각 정리 ⭐️

동시성 문제도 해결해야하는데..

profile
작은 걸음이라도 꾸준히

0개의 댓글