[노마드북클럽/IT 5분 잡학사전] #10_TIL

2023. 1. 22. 21:59STUDY/BOOK

728x90
반응형

#DAY10  : 에피소드 30 ~ 34

TIL (Today I Learned) 날짜

: 2022.01.22(일)

 

오늘 읽은 범위 :

✔️ 에피소드 30~34

 

오늘 TIL 3줄 요악

  • SQL과 NoSQL의 종류
  • 깃, 깃허브의 개념
  • 버전을 표기하는 법

 책에서 기억하고 싶은 내용을 써보세요.

 

 

30. [코로나가 준 레거시 시스템의 교훈]

✔️  프로그램은 책임 있게 만들어야 한다.

"프로그램이 돌아가기만 하면 그만이다" 라는 생각으로 코드를 대충 짜는 개발자는 NO!

 

✔️ 프로그램은 끊임없이 관리해야 한다.

 

 

31. [데이터와 단짝 친구, SQL]

✔️ SQL (structured query language)

: SQL은 데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어 (=데이터베이스를 다루는 언어)

 

✔️ 데이터베이스를 관리해 주는 DBMS(database management system)

SQL로 데이터베이스와 상호작용을 하려면 DBMS를 거쳐야 한다.

SQL은 데이터베이스를 관리해 주는 DBMS와 대화하기 위한 언어!

DBMS 종류 - MySQL, PostgreSQL, Oracle ...

 

✔️ 데이터베이스와 SQL은 어떻게 상호작용할까?

SELECT email FROM users;

: users테이블에서 email 열에 해당하는 정보만 가져온다.

 

SELECT email FROM users WHERE age > 21;

: users테이블에서 21살이 넘은 email 열에 해당하는 정보만 가져온다.

 

✔️ ORM(object relational mapping)이란?

개발자에게 SQL 번역기 같은 도구인데, 사용자에게 익숙한 프로그래밍 언어로 SQL을 사용할 수 있게 해준다.

 

 

32. [NoSQL이 뭐죠?]

SQL은 사투리처럼 프로그램마다 조금씩 다른데 NoSQL은 언어의 특징만 있는 것이 아니라 사용하는 데이터베이스 자체의 성질도 다르다.

NoSQL의 데이터베이스 종류는 다양한데 책에서는 도큐먼트 데이터베이스, 키값 데이터베이스, 그래프 데이터베이스를 설명해준다.

 

✔️  데이터 형식이 자유로운 도큐먼트 데이터베이스

도큐먼트 데이터베이스의 대표적인 예 - 몽고디비(MongoDB)

몽고디비는 데이터를 제이슨(JSON) 도큐먼트 형태로 저장한다.

만약 SQL로 다루는 데이터베이스는 표의 형태라 열을 늘리고 싶으면 다른 행에는 반드시 그 열에 해당하는 값을 넣어주어야 하고, 값이 없으면 그것을 처리할 방법이 필요하다.

하지만 JSON 도큐먼트 형태는 대괄호와 중괄호로만 구성하면 되고, 데이터마다 구성이 같을 필요가 없다.

 

✔️  읽고 쓰는 속도가 엄청 빠른 키값 데이터베이스

키값 데이터베이스에는 카산드라디비와 다이나모디비가 있다.

한 행의 열이 엄청 넓은 데이터베이스를 생각하면 된다.

장점 - 읽고 쓰는 속도가 매우 빨라서 수만 개의 데이터를 1초 만에 쓸 수 있다. 이 장점 때문에 애플은 카산드라디비로 10페타바이트의 데이터를 저장하고 있다고 한다.

넷플릭스, 인스타그램, 우버와 같은 대용량 데이터를 빠르게 저장하거나 읽어야 한다면 카산드라디비가 좋은 선택지이다.

다이나모디비는 아마존에서 만들었다. 데이터를 1초에 2만 4000개나 읽을 수 있다고 한다.

 

✔️  노드로 관계를 표현하는 그래프 데이터베이스

열이나 도큐먼트가 필요하지 않고, 노드라는 개념이 필요하다.

ex) 페이스북 - 페이스북의 데이터는 각각 관계망으로 연결한다.

  • 사용자 1이 사진 1에 좋아요를 눌렀다.
  • 사용자 1과 사용자 2는 친구이다.

 

 

33. [깃&깃허브, 똑같은 거냐고?]

✔️ 깃은 파일 이력을 관리하는 프로그램

내가 파일에 무엇을 기록했는지, 지웠는지, 이동했는지, 아예 삭제했는지 모두 알고 있다.

개발자들은 보통 혼자 일하지 않고 함께 일하는 동료가 있는데 같은 파일을 복사해서 각자 컴퓨터에 저장해서 작업한 뒤 다른 사람이 변경한 부분과 내가 변경한 부분을 비교해서 다시 하나로 만들 수 있다.

 

✔️ 깃허브는 파일과 깃으로 관리한 이력을 저장하고 공유하는 공간

깃허브는 깃으로 관리한 파일 이력을 모두 저장해서 공유할 수 있는 곳

깃허브에 깃 이력을 업로드하는 것 - 푸시

내려받는 것 - 풀

 

 

34. [버전을 표기하는 방법도 있어요?]

ex) oo프로그램 16.8.1 버전 -> 이런 표기를 본 적이 많다.

✔️  SemVer는 숫자 3개로 표시하는 버전 표기 방식

앞서 언급한 숫자 3개를 사용하는 버전 표기 방식을 시맨틱 버저닝이라고 한다. 

 

ex) 장고의 버전이 4.1.5로 표기되었다고 하자.

첫번째 숫자는 이사하는 수준이라면 중간 숫자는 예쁜 카페트나 소품을 이용해서 인테리어를 살짝 업그레이드하는 느낌이다.

마지막 숫자는 패치나 버그 수정을 의미한다. 기존 프로그램의 오류를 수정한 것

4.0.25와 같이 표기되었다면 수정을 25번했다고 생각하면 된다.

 

 

책에서 기억하고 싶은 내용을 써보세요.

📌 코로나가 준 레거시 시스템의 교훈으로 개발자는 책임감을 가지고 프로그램을 제작해야 한다.

 

📌 SQL은 데이터베이스를 관리해 주는 DBMS와 대화하기 위한 언어이다. DBMS는 데이터베이스를 관리해 주는 시스템이다.

 

📌 깃은 파일 이력을 관리하는 프로그램이고, 깃허브는 파일과 깃으로 관리한 이력을 저장하고 공유하는 공간이다.

 

 

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

🗣 SQL로 쿼리짜는 것만 간략하게 알고 있었는데 도큐먼트 데이터베이스, 키값 데이터베이스, 그래프 데이터베이스의 개념을 처음 알게 되었다. 특히, 키값 데이터베이스의 예시를 보면서 인스타그램을 보면 전세계 사람들이 애용하는 SNS인데 그 많은 데이터를 어떻게 관리하는지 항상 궁금했는데 카산드라디비를 쓰고 있다는 것을 알게 되었다.

 

🗣 깃은 파일 이력을 관리할 뿐만 아니라 다른 사람들과 함께 작업할 때 각자 컴퓨터에 저장해서 작업한 뒤 다른 사람이 변경한 부분과 내가 변경한 부분을 비교해서 다시 하나로 만들 수 있다는 사실을 알게 되었다. 

 

🗣 프로그램의 버전의 뜻이 있는지 몰랐는데 첫번째 숫자, 중간 숫자, 끝 숫자의 의미를 알게 되었다.