-
원티드 프리온보딩 백엔드 챌린지 2023년 2월 후기후기 2023. 2. 18. 20:04
이번달 원티드 프리온보딩을 통해서 데이터베이스의 중요한 개념을 많이 배웠다.
그 동안 나는 orm을 통해서 원하는 결과를 얻기만하면 된다고 생각했다.
하지만 내부적으로 어떤 동작이 일어나고 같은 결과를 얻더라도 발생하는 비용에서 상당한 차이가 있다는걸 알게 됐다.
또 데이터베이스 지식뿐만 아니라 강사님은 자신의 이력서, 회사 지원 이력 및 결과 등 사람들이 오픈하기 꺼려하는 예민한 개인 정보까지 오픈해주셨다.
수강생들에게 데이터베이스 지식뿐만 아니라 여러가지 경험을 간접적으로 할 수 있는 강의였다고 생각한다.
프리온보딩 주제
- 다양한 데이터베이스 데이터베이스 장/단점 비교
- Big Tech 기업들이 MySQL을 선택하는 이유
- MySQL이 제공하는 다양한 기능들
- MySQL 최적화 방안
수업내용
1주차
- 데이터베이스의 원칙
- data integrity(무결성)
- data reliability (안전성)
- scalability (확장성)
- 데이터베이스 종류
- 서비스에 적합한 데이터베이스 선택법
- 관계형 데이터베이스(RDBMS) vs 비관계형 데이터베이스(NoSQL)
다양한 데이터베이스 특징
데이터베이스의 원칙 data integrity(무결성) : 정확성, 일관성, 유지성이 유지되는 것 개체 무결성 : 모든 테이블은 기본키(pk)를 가져야하며 null값과 중복을 허용하지 않는다. 참조 무결성 참조 관계
hssm93.tistory.com
2주차
- Mysql 설치
- MySQL을 사용하는 Big Tech
- Transaction
- 작업의 완전성을 처리하거나 원상태로 복구함
- MySQL 엔진
- 데이터베이스 관리 시스템의 핵심 부분으로, 데이터의 입출력과 인덱스 구조, 쿼리 처리 등을 담당
- Mysql 스토리지 엔진
- Database Lock
- Isolation Level(격리수준)
https://hssm93.tistory.com/entry/MySQL-Storage-Engines-%EC%9A%94%EC%95%BD
MySQL Storage Engines 요약
데이터베이스의 성능을 극대화하기 위해 효과적으로 사용할 수 있도록 MySQL의 각 스토리지 엔진의 기능을 이해하는 것이 필수이다. MySQL은 다음과 같이 테이블에 다양한 스토리지 엔진을 제공합
hssm93.tistory.com
3주차
- 쿼리 실행 절차
- SELECT
- JOIN
- SUBQUERY
https://hssm93.tistory.com/entry/MySQL-Subquery-%EC%9A%94%EC%95%BD
MySQL Subquery 요약
subquery : select, insert, update, delete와 같은 다른 쿼리 내에 중첩된 쿼리이다. 서브쿼리 내 또 다른 서브쿼리가 중첩될 수 있다. 괄호 안에서 사용해야한다. 비교 연산자 (=, >, >=,
hssm93.tistory.com
https://hssm93.tistory.com/entry/MySQL-Join-%EC%9A%94%EC%95%BD
MySQL Join 요약
join은 뭐야? 왜 사용하는 거야? 관계형 데이터베이스는 여러 관계 테이블이 같은 컬럼을 linking하여 이뤄져있고 보통 이 컬럼을 외래키(foreign key)라고 한다. 주문과 주문 상세 테이블이 존재한다
hssm93.tistory.com
4주차
- indexing
- 도서의 찾아보기('색인')과 유사
- 인덱스 처리된 컬럼의 값을 주어진 순서로 미리 정렬해서 보관한다
- 수정,삽입,삭제의 성능을 어느정도 포기하고 읽기 성능을 올리는 도구
- 랜덤 I/O 접근 row의 갯수를 줄이는게 핵심
- 인덱스 키 사이즈와 포인터 사이즈의 크기가 크면 인덱스 테이블당 저장하는 데이터의 갯수가 달라짐
- normalization
- 데이터 중복이 어떻게 줄어드는지
- MySQL이 중복 데이터를 방지할 수 있기 때문
- partitioning
- 대용량 테이블을 소규모 테이블로 나누어 저장하는
- sharding
- DB를 여러개로 나눠 놓은 것
cache ( mysql8.0 부터는 지원하지 않는다고 함)
흥미로웠던 점
1. 데이터베이스 락
https://hssm93.tistory.com/entry/MySql-Database-Lock
MySql Database Lock
기능 여러 클라이언트가 동시에 데이터를 접근(*동시성)하는 상황에서 데이터 일관성을 유지 역할 동시에 여러 개의 쿼리가 실행될 때, 쿼리 실행에 필요한 데이터에 대한 접근 권한을 부여하고
hssm93.tistory.com
2. 격리 수준
https://hssm93.tistory.com/entry/MySql-Isolation-Level%EA%B2%A9%EB%A6%AC%EC%88%98%EC%A4%80
MySql Isolation Level(격리수준)
여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것 READ UNCOMMITTED DIRTY READ : 어떤 트랜잭션에에서 처
hssm93.tistory.com
3. 쿼리 실행 절차
https://hssm93.tistory.com/entry/mysql-%EC%BF%BC%EB%A6%AC-%EC%8B%A4%ED%96%89-%EC%A0%88%EC%B0%A8
mysql 쿼리 실행 절차
mysql 엔진 오브젝트 사전 지식 파서 사용자가 요청한 SQL 문을 쪼개 최소 단위로 분리하고 트리를 만듬, 트리를 만들면서 문법 검사 수행 전처리기 파서에서 생성한 트리를 토대로 SQL 문에 구조적
hssm93.tistory.com
'후기' 카테고리의 다른 글
원티드 프리온보딩 백엔드 챌린지 2023년 1월 후기 (0) 2023.02.18 프론트앤드 개발자 신입 질문 요약 (1) 2020.01.21 국비지원(it) 비트캠프 강남점 후기! (1) 2020.01.21