IT 5분 잡학사전 10일차 TIL
DAY 10
어제 챌린지 실패했다 ㅠㅠ 그래도 남은 기간 포기하지말고 끝까지 해보겠습니당 홧팅..!
오늘의 책읽기 : 에피소드30-34
<책에서 기억하고 싶은 내용>
[코볼]
: 1959년에 탄생한 정말 오래된 언어이다. 정부 사이트가 오래되다 보니 그 시스템을 사용했다.
[SQL]
- SQL과 데이터베이스 개념 제대로 짚기
: SQL은 Structured Query Language의 줄임말이다. 즉 SQL은 데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어이다. 즉 SQL은 한마디로 말해 데이터베이스를 다루는 언어이다.
- 데이터베이스를 관리해주는 DBMS
: 데이터베이스는 데이터를 보관하는 창고 역할만 한다. 데이터를 직접 정리하거나 처리하는 능력이 없다. 사실 그런 일들은 DBMS라는 녀석이 한다. DBMS(DataBase Management System)은 이름 그대로 데이터베이스 관리 시스템을 말한다. 즉 SQL로 데이터베이스와 상호작용을 하려면 DBMS를 거쳐야 한다. 정리하면 SQL은 데이터베이스를 관리해주는 DBMS와 대화하기 위한 언어이다. 데이터베이스가 아니라!
: DBMS의 종류 : MySQL. PostgreSQL, SQLite, Oracle, MariaDB 등
: 데이터베이스는 엑설 문서와 똑같이 생겼다. 데이터베이스에서는 한 무리의 데이터를 테이블이라고 하는데 엑셀의 시트와 같다.
- SQL을 프로그래밍 언어로 쓸 수 있게 해주는 ORM
: 개발자들이 SQL을 잘 모르는 이유는 바로 ORM(Object Relational Mapping)때문이다. ORM은 개발자에게 SQL 번역기 같은 도구인데, 사용자에게 익숙한 프로그래밍 언어로 SQL을 사용할 수 있게 해준다.
[NoSQL이 뭐죠?]
- 데이터베이스의 성절도 조금 다른 NoSQL
: NoSQL은 SQL과 성격 자체가 다르다. SQL은 사투리처럼 프로그램마다 조금씩 다르다. NoSQL은 언어의 특징만 있는 것이 아니라 그들이 사용하는 데이터베이스 자체의 성질도 다르다. NoSQL의 데이터베이스 종류는 되게 많은데 이 책에서는 도큐먼트 데이터베이드(document DB), 키값 데이터베이스(Key-Value DB), 그래프 데이터베이스(graph DB)를 설명한다.
- 데이터 형식이 매우 자유로운 도큐먼트 데이터베이스
: 몽고디비(MongoDB)가 대표적이다. 데이터를 제이슨(JSON) 도큐먼트 형태로 저장한다.SQL의 데이터베이스는 표처럼 데이터를 행과 열의 개념으로 저장하는데 몽고디비는 그런 개념이 없다. SQL로 다루는 데이터베이스는 표의 형태를 띄고 있어서 형태가 매우 정적이다. 만약 열을 늘리고 싶다면 다른 행에는 반드시 그 열에 해당하는 값을 넣어줘야 하고, 만약 그 값이 없으면 그 녀석을 처리할 방법이 필요하다. 반면 제이슨 도큐먼트 형태는 대괄호와 중괄호로만 구성하면 되고, 데이터마다 구성이 같을 필요가 없다. 그래서 개발자가 원하는 어떠한 모양, 어떠한 종류의 데이터라도 저장할 수 있다는 장점이 있다.
- 읽고 쓰는 속도가 엄청 빠른 키값 데이터베이스
: 카산드라디비(CassandraDB), 다이나모디비(DynamoDB)가 대표적이다.
: 카산드라디비의 특징은 열이 넓다는(Column Wide)것이다. 말 그대로 한 행의 열이 엄청 넓은 데이터베이스를 생각하면 된다. 장점은 읽고 쓰는 속도가 정말 빠르다. 대용량 데이터를 빠르게 저장하거나 읽어야 한다면 정말 좋은 선택지이다.
: 다이나모디비는 아마존이 만들었다. 듀오링고라는 언어 학습 애플리케이션에서 다이나모디비를 쓴다.
- 노드로 관계를 표현하는 그래프 데이터 베이스
: 열이나 도큐먼트가 필요하지 않다. 하지만 노드라는 개념이 필요하다. 예를 들어 페이스북 같은 것을 만든다고 가정하면 이때 페이스북의 데이터는 각각 관계망으로 연결한다. 예) 사용자 1이 사진 1에 좋아요를 눌렀다. 사용자 1과 사용자 2는 친구이다. 이런 정보들 말이다. 그래서 페이스북은 자신들이 사용할 요량으로 데이터베이스를 아예 개발했던 것이다.
[깃&깃허브, 똑같은 거냐고?]
- 깃은 파일 이력을 관리하는 프로그램이다.
: 깃은 파일을 항상 지켜보는 사관이다. 깃은 감시자처럼 파일을 항상 지켜보고 있다. 파일에 무엇을 기록했는지, 무엇을 지웠는지, 파일을 이동했는지, 파일을 아예 지워버렸는지 모두 알고 있다. 같은 파일이라도 다른 버전으로 보관할 수 있다.
: 같은 파일을 복사해서 각자 컴퓨터에 저장해서 작업한 뒤 다른 사람이 변경한 부분과 내가 변경한 부분들을 비교해서 다시 하나도 만들 수 있다. 이렇게 작업하니 내가 실수한 내용을 다른 동료가 쉽게 알아차릴 수도 있다.
- 깃허브는 파일과 깃으로 관리한 이력을 저장하고 공유하는 공간
: 깃을 사용하면 내가 실수한 부분을 다른 동료가 확인할 수 있다고 했다. 그러면 그 실수한 내용은 어디서든 접근할 수 있는 곳에 저장해서 공유할 수 있어야한다. 바로 그 저장소가 깃허브이다. 깃허브는 깃으로 관리한 파일 이력을 모두 저장해서 공유할 수 있는 곳이다,
- 깃허브는 파일 클라우드 서비스와 같다
:깃허브도 구글 드라이브 등과 같은 서비스와 같은 기능이다. 다만 파일뿐만 아니라 깃으로 관리한 피일 이력도 공유할 수 있다는 점에서 차이가 있다. 동료가 깃허브에 접속해서 내가 관리한 파일과 깃으로 관리한 파일 이력을 모두 내려받을 수 있어서 파일에서 변화된 부분을 확인할 수 있다.
[버전을 표기하는 방법도 있어요?]
-SemVer은 숫자 3개로 표시하는 버전 표기 방식
: 숫자 3개를 사용하는 버전 표기 방식을 시멘틱 버저닝이라고 한다. 가장 널리 쓰이는 방식이다.
: 예를 들어 장고의 버전이 4.0.5로 표기되었다고 한다. 첫 번째 숫자 4는 프로그램에 엄청나게 큰 변화가 있을 때 바뀐다. 거의 새집으로 이사가는 수준의 변화라고 생각하면 된다. 중간 숫자는 마이너한 업데이트를 의미한다. 예쁜 카페트나 소품으로 인테리어를 업그레이드 하는 느낌이다. 마지막 숫자는 패치나 버그 수정을 의미한다. 기존 프로그램의 오류를 수정한 것이다.