DAY 10
📚 IT 5분 잡학사전
🔖오늘 읽은 범위: episode 30~34
2020년 초 코로나 확산 시 미국 뉴저지의 주지사가 “코볼 개발자를 급하게 찾는다.”라는 말을 했다.
코로나로 인해 실업자가 많아지며 미정부 시스템의 프로그램 업데이트가 필요했다. 그런데 대부분의 미정부 시스템이 과거에 많이 사용했던 언어인 코볼로 구현되어 있었다. 요즘에는 잘 사용하지 않는 언어일 뿐더러 프로그램 관리가 제대로 되어 있지 않았기에 코볼 개발자를 급하게 찾은 것이다.
이를 통해 우리는 두 가지 교훈을 생각해 볼 수 있다.
SQL(Structured query language)은 데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어이다. 즉, 데이터 베이스를 다루는 언어이다.
1) DB를 관리해 주는 DBMS
SQL로 DB와 상호작용하려면 DBMS를 거쳐야 한다.
따라서 SQL은 DB가 아니라, DB를 관리해주는 DBMS와 대화하기 위한 언어이다.
2) DB와 SQL은 어떻게 상호작용할까?
DB는 엑셀 문서와 똑같이 생겼다. DB에서 한 무리의 data를 테이블(table)이라고 하는데 엑셀시트랑 같다.
SELECT email FROM users;
ORM(Object relational mapping)은 개발자에게 SQL 번역기 같은 도구로 사용자에게 익숙한 프로그래밍 언어로 SQL을 사용할 수 있게 해준다.
하지만 ORM은 만능이 아니기 때문에 SQL 기초 공부를 하자. SQL은 개발에 꼭 필요한 data와 DB를 이해할 수 있게 해주는 언어이기 때문이다.
NoSQL은 SQL과 성격이 다르다.
도큐먼트 DB(document DB) | 키값 DB(key-value DB) | 그래프 DB(graph DB | |
---|---|---|---|
특징 | 데이터 형식이 매우 자유로움 | 읽고 쓰는 속도가 엄청 빠름 | 노드로 관계를 표현한 |
예 | 몽고디비(MongoDB): data를 JSON(javascript object notation)도큐먼트로 저장하기 때문에 대괄호와 중괄호로 구성되어 있다. Data마다 구성이 같지 않아도 되기 때문에 어떤 종류나 모양의 data든 저장 가능하다. | 카산드라디비(CassandraDB): 행의 열이 엄청 넓은 DB로 대용량 data를 빠르게 저장하거나 읽을 때 사용한다. 넷플릭스, 인스타그램, 우버 등이 이용하고 있다. | 페이스북이 만든 DB로 열이나 도큐먼트가 필요하지 않고 노드가 필요하다. |
다이나모디비(DynamoDB): 아마존이 만든 DB로 듀오링고가 다이나모디비를 이용 중이다. | 페이스북의 data는 각각 관계망으로 연결되어 있다. |
SQL이든 NoSQL이든 용도에 맞게 사용하면 된다.
깃은 동작원리를 아는게 중요하다.
1) 깃은 파일을 항상 지켜보는 사관 같다.
2) 함께 일하는 동료에게도 유용한 깃
깃허브는 파일 클라우드 서비스와 비슷하다.
깃허브와 비슷한 서비스로는 깃랩(GitLab), 비트버킷(Bitbucket)등이 있다.
SemVer(Semantic versioning specification)는 숫자 3개로 표시하는 버전 표기 방식이다.
1.1.0
버전에서 2.1.0
버전으로 업데이트 후, 장고 코드가 많이 깨져서 코드도 업데이트가 필요했음16.7.0
에서 16.8.0
으로 버전을 업데이트함4.0.25
는 수정을 25번 했다는 의미앱스토어에서 항상 버전이 업데이트 되는 것을 보며 저 숫자는 뭘까 늘 궁금했지만 찾아보진 않았는데 나름의 의미가 있다는 것을 알게 되었다.
SQL 문법이 궁금하다.