보라코딩
Day 7 본문
오늘 한일
- 팀 소개, 업무 소개
- Git game
- 반도체공정 정리
- README.md 업데이트
- 내일 배울 NoSQL 예습
Git game
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
learngitbranching.js.org
새로 배운 명령어
> git branch -f master C6
> git checkout HEAD~1
> git branch -f bugFix HEAD~1
> git cherry-pick C3 C4 C7
> git rebase -i HEAD~4
NoSQL vs. RDB
- RDB 단점
- 컬럼 추가 위해 스키마 계속 변경 필요
- 스키마에 맞춰서 데이터를 저장하기 때문에 유연한 확장성의 부족
- 정규화하는 과정에서 데이터의 중복을 없애기 위해 테이블을 여러 개로 나누었고, 여러 데이터를 가져오려면 JOIN 여러 번 필요 -> 응답시간 길어짐 -> 성능 하락
- RDB 단점 해결 방안 (성능 향상 방안)
- scale up : 성능 좋은 컴퓨터로 변경하여 해결 (cpu, 메모리 up)
- scale out : DB서버를 다른 컴퓨터에도 증설해서 해결
- sharding, multi-master 같은 방법도 있지만 RDB는 scale out에 유연한 DB는 아님
- transaction ACID를 보장하려다 보니 DB 서버에도 영향을 미침
- NoSQL 장단점
- 장점
- flexible schema
- 중복 허용 (join 회피)
- scale-out 최적화 (서버 여러 대를 하나의 클러스터로 구성하여 사용)
- ACID 일부 포기하고 high-throughput, low-latency 추구
- 단점
- application 레벨에서 스키마 관리 필요
- application 레벨에서 중복된 데이터들이 모두 최신 데이터 유지할 수 있도록 관리 필요
- 금융, 결제, 예약 등 consistency가 중요한 환경에서는 사용하기 조심스러움
- 장점
- Redis
- key-value 형태로 데이터를 저장하고 관리하는 in-memory DB 또는 cache
- value로 저장되는 값은 매우 다양 (strings, lists, sets, hashes, sorted sets...)
- hash 기반으로 sharding된 클러스터 구성 가능
- 고가용성 지원 (replication, 자동 failover 가능)
- 사용 방법
- 사용자가 요청을 하면 바로 DB로 가지 않고, Redis에서 확인 후 DB로 감
- 만약 없었으면 DB에서 가져오면서 redis에 key-value 형태로 저장됨
'개발자가 되었다?' 카테고리의 다른 글
Day 8, Mongo DB (1) | 2023.08.25 |
---|---|
대댓글 DB (0) | 2023.08.25 |
Day 6, 반도체공정 (0) | 2023.08.23 |
Day 5, Git (0) | 2023.08.22 |
Day 4, 사내 시스템 교육 (0) | 2023.08.21 |