✔ 오늘의 3줄 요약
- 내가 만든 프로그램에 완벽하게 책임을 져야 한다.
- SQL은 꼭 시간을 투자해서 공부하자.
- 기술에는 좋고 나쁨이 없다. 용도에 맞게 쓰면 된다.
✔ 오늘 읽은 범위
EP.30 코로나가 준 레거시 시스템의 교훈
EP.31 데이터와 단짝 친구, SQL
EP.32 NoSQL이 뭐죠?
EP.33 깃 & 깃허브, 똑같은 거냐고?
EP.34 버전을 표기하는 방법도 있어요?
✔ 기억하고 싶은 내용
- SQL과 데이터베이스 개념
SQL (structured 구조화 query 질문, 문의 language 언어)
SQL은 데이터베이스에 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어, 데이터 베이스를 다루는 언어이다.
- 데이터베이스를 관리해 주는 DBMS
데이터베이스는 데이터를 보관하는 창고 역할만 한다. 이것은 DBMS
DBMS (database management system) - 데이터베이스 관리 시스템
SQL로 데이터베이스와 상호작용을 하려면 DBMS를 거쳐야 한다.
즉 SQL은 데이터베이스를 관리해 주는 DBMS와 대화하기 위한 언어이다.
DBMS의 종류
- MySQL, PostgreSQL, SQLite, Oracle, MariaDB 등
이것들은 데이터베이스가 아니라 DBMS (데이터베이스 관리 시스템)라고 생각해야 한다. 편의상 데이터베이스라고 부르는 것
- SQL을 프로그래밍 언어로 쓸 수 있게 해주는 ORM(object relational mapping)
ORM은 SQL 번역기 같은 도구이다.
파이썬- 장고 ORM
라라벨 - 엘리퀀트 ORM
Node.js - 시퀄라이즈 ORM, 타입 ORM
개발자들은 ORM에 많이 의존한다. ORM에 의존하면 ORM만으로 해결하기 어려운 상황에 대처하기 어렵다. SQL을 사용해야 하는 모든 상황에서 ORM만이 해결책을 제시하는 도구는 아니다. 번역기가 만능은 아닌 것처럼..
그렇기에 SQL의 기초 공부를 해야 한다. SQL은 개발에 꼭 필요한 데이터와 데이터베이스를 이해할 수 있게 해주는 언어이기 때문.
- NoSQL
SQL과 성겨 자체가 다르다. SQL은 사투리처럼 프로그램마다 조금 다른데 NoSQL은 언어의 특징뿐만 아니라 사용하는 데이터베이스 자체의 성질도 다르다.
NoSQL의 데이터베이스 종류는 많은데 3가지만 알아보자.
1. 도큐먼트 데이터베이스(document DB)
2. 키값 데이터베이스(key-value DB)
3. 그래프 데이터베이스(graph DB)
1. 도큐먼트 데이터베이스
몽고디비(Mongo DB)가 대표적이다.
몽고디비는 데이터를 제이슨(JSON) 도큐먼트 형태로 저장한다.
SQL의 데이터베이스는 표처럼 행과 열의 개념으로 저장한다. 하지만 몽고디비는 그런 개념이 없다.
SQL의 데이터 베이스
몽고디비에 저장한 데이터의 모습
SQL로 다루는 데이터베이스의 표의 형태를 띠고 있어서 형태가 매우 정적이다.
2. 키값 데이터베이스
대표적인 키값 데이터베이스
- 카산드라디비(CassandraDB)
- 다이나모디비(DynamoDB)
- 카산드라디비의 특징은 열이 넓다.(column wide)
한 행의 열이 넓은 데이터베이스를 생각.
장점은 읽고 쓰는 속도가 정말 빠르다 수만 개의 데이터를 순식간에 쓸 수 있을 정도이다.
애플은 카산드라디비로 10페타바이트의 데이터를 저장하고 있다. 넷플릭스, 인스타그램, 우버 등등
대용량 데이터를 빠르게 저장해야 하거나 읽어야 한다면 카산드라디비가 탁월하다.
국제단위계(SI 접두어)
1페타바이트(petabyte, PB)는 1,024 테라바이트(TB)
10 페타바이트(PB)는 100만 기가바이트(GB)
1 테라바이트 1바이트 10^12배
- 다이나모디비
아마존이 만들었다. 듀오링고(Duolingo)라는 언어 학습 애플리케이션에서 다이나모디비를 사용한다.
이것도 굉장히 빠르게 읽을 수 있다. 데이터를 1초에 2만 4,000개나 읽을 수 있다.
3. 그래프 데이터베이스
도큐먼트가 필요하지 않는다. 노드라는 개념이 필요하다.
예를 들어 페이스북의 데이터는 각각 관계망으로 연결한다.
페이스북은 자신들이 사용한 요량으로 데이터베이스를 아예 개발했다.
SQL 결론
SQL 데이터베이스와 NoSQL 데이터베이스 둘 다 다른 개념이라
자신에게 필요한 것을 사용하면 된다.
평범한 프로젝트라면 대부분 SQL 데이터베이스를 사용하는 편이다.
인스타그램도 처음에는 PostgreSQL, SQL 데이터 베이스로 시작했는데 성장하면서 그래프 데이터베이스(NoSQL 데이터베이스)로 옮겨야 하는 상항이었을 때 수정했다.
기술에는 좋고 나쁨이 없고 용도에 맞게 쓰면 된다.
- git은 파일 이력을 관리하는 프로그램, github는 저장소
깃랩, 비트버킷이라는 저장소 서비스도 있다.
- 버전을 표기하는 방법
SemVer는 숫자 3개로 표시하는 버전 표기식이다.
숫자 3개를 사용하는 버전 표기 방식을 시멘틱 버저닝이라고 한다. 모든 사람이 프로그램의 버전을 시멘틱 버지닝 방식으로 표기하지는 않는다. 하지만 가장 널리 쓰는 방식이다.
시멘틱 버저닝 방식으로 버전을 표기하는 대표적인 기술
리액트, 장고
- 장고의 버전 예
4.0.5
4는 프로그램에 엄청난 큰 변화, 새집으로 이사하는 수준
0 인 중간 숫자는 마이너 한 업데이트를 의미, 살짝 업데이트하는 수준
리액트 버전에서
훅이라는 콘센트가 도입되었는데
16.7.0에서 16.8.0으로 표기되었다. 기존 리액트에서 새 기능을 추가하는 수준이라 내 프로젝트의 코드를 완전히 갈아 치울 필요는 없다.
마지막 숫자 5는 패치나 버그 수정을 의미한다. 4.0.25 라면 수정을 25번 했다고 생각
✔ 소감 및 떠오르는 생각
버전관리와 표기방법을 따로 알아보자.
✔ 과제
참고한 사이트
[데이터베이스 이해하기] Database(DB), DBMS, SQL의 개념
데이터베이스(Database, DB)란? : 데이터의 저장소. DBMS(Database Management System, 데이터베이스 관리 시스템)란? 데이터베이스를 운영하고 관리하는 소프트웨어. 계층형, 망형, 관계형 DBMS 중 대부분의 DBM
hongong.hanbit.co.kr
https://meetup.nhncloud.com/posts/276
mongoDB Story 3: mongoDB 데이터 모델링 : NHN Cloud Meetup
mongoDB 데이터 모델링은 어플리케이션의 처리방안을 고려하여 도큐먼트를 적절한 방식으로 설계해야 합니다. 3부에서는 도큐먼트의 임베디드 방식과 레퍼런스 방식의 개념 및 데이터 모델링 절
meetup.nhncloud.com
'Book > IT 5분 잡학사전' 카테고리의 다른 글
[IT 5분 잡학사전 - 컴퓨터 공학 편 2] DAY12, EP.35 ~ EP.38 (0) | 2024.02.21 |
---|---|
[IT 5분 잡학사전] Day11, github 업로드 (0) | 2024.02.19 |
[IT 5분 잡학사전 - 컴퓨터 공학 편] DAY9, EP.26 ~ EP.29 (0) | 2024.02.17 |
[IT 5분 잡학사전] Day8, Quiz 2 (1) | 2024.02.16 |
[IT 5분 잡학사전 - 컴퓨터 공학 편] DAY7, EP.22 ~ EP.25 (2) | 2024.02.16 |