[노개북] 08. TIL: IT 5분 잡학사전 e.30~34

summereuna🐥·2023년 1월 22일
0

노개북

목록 보기
8/11

TIL (2023.1.22.일)

DAY 10
📚 IT 5분 잡학사전
🔖오늘 읽은 범위: episode 30~34


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


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

2020년 초 코로나 확산 시 미국 뉴저지의 주지사가 “코볼 개발자를 급하게 찾는다.”라는 말을 했다.
코로나로 인해 실업자가 많아지며 미정부 시스템의 프로그램 업데이트가 필요했다. 그런데 대부분의 미정부 시스템이 과거에 많이 사용했던 언어인 코볼로 구현되어 있었다. 요즘에는 잘 사용하지 않는 언어일 뿐더러 프로그램 관리가 제대로 되어 있지 않았기에 코볼 개발자를 급하게 찾은 것이다.
이를 통해 우리는 두 가지 교훈을 생각해 볼 수 있다.

  1. 프로그램은 책임 있게 만들어야 한다.
  2. 프로그램은 끊임없이 관리해야 한다.

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

1. SQL과 DB의 개념

SQL(Structured query language)데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어이다. 즉, 데이터 베이스를 다루는 언어이다.

1) DB를 관리해 주는 DBMS

  • DB: data를 보관하는 창고 역할만 한다.
  • DBMS(Database management system): 데이터베이스 관리 시스템

SQL로 DB와 상호작용하려면 DBMS를 거쳐야 한다.
따라서 SQL은 DB가 아니라, DB를 관리해주는 DBMS와 대화하기 위한 언어이다.

  • DBMS 종류: MySQL, PostgreSQL, SQLite, Oracle, Maria DB 등

2) DB와 SQL은 어떻게 상호작용할까?
DB는 엑셀 문서와 똑같이 생겼다. DB에서 한 무리의 data를 테이블(table)이라고 하는데 엑셀시트랑 같다.

  • 예시
  • users 테이블에서 사용자들의 email data만 가져오려면?
    • SELECT email FROM users;

2. SQL을 프로그래밍 언어로 쓸 수 있게 해주는 ORM

ORM(Object relational mapping)은 개발자에게 SQL 번역기 같은 도구로 사용자에게 익숙한 프로그래밍 언어로 SQL을 사용할 수 있게 해준다.

하지만 ORM은 만능이 아니기 때문에 SQL 기초 공부를 하자. SQL은 개발에 꼭 필요한 data와 DB를 이해할 수 있게 해주는 언어이기 때문이다.

32장. NoSQL

NoSQL은 SQL과 성격이 다르다.

  1. SQL
  • SQL은 사투리처럼 프로그램 마다 조금씩 다르다. SQL의 DB는 data를 table에 행렬처럼 저장한다.
  • SQL로 다루는 DB는 표의 형태로 형태가 매우 정적이다.
  • 열을 늘리고 싶으면 다른 행에 반드시 그 열에 해당하는 값을 넣어야 한다.
  1. NoSQL
  • 언어의 특징이 있을 뿐만 아니라 사용하는 DB자체의 성질도 다르다.
  • NoSQL의 DB는 도큐먼트 DB, 키값 DB, 그래프 DB, 3가지로 나누어 볼 수 있다.
도큐먼트 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이든 용도에 맞게 사용하면 된다.


33장. Git과 Github

1. 깃(Git): 파일 이력을 관리하는 프로그램

깃은 동작원리를 아는게 중요하다.

1) 깃은 파일을 항상 지켜보는 사관 같다.

  • 파일에 무엇을 기록하는지, 지우는지, 이동하는지, 아예 파일 자체를 지우는지 모든 이력을 깃은 알고 있다.
  • 따라서 같은 파일이라도 다른 버전으로 보관이 가능하다.

2) 함께 일하는 동료에게도 유용한 깃

  • 같은 파일을 복사해서 각자 컴퓨터에 저장해서 작업한 뒤, 다른 사람이 변경한 부분과 내가 변경한 부분을 비교해서 다시 하나로 만들 수 있다.
  • 따라서 협업이 쉬워진다.

2. 깃허브(Github)는 파일과 깃으로 관리한 이력을 저장하고 공유하는 공간이다.

깃허브는 파일 클라우드 서비스와 비슷하다.

  • 푸쉬(Push): 깃허브에 깃 이력 업로드 하는 것
  • 풀(Pull): 깃허브에 깃 이력 내려 받는 것

깃허브와 비슷한 서비스로는 깃랩(GitLab), 비트버킷(Bitbucket)등이 있다.


34장. 버전을 표기하는 방법

SemVer(Semantic versioning specification)는 숫자 3개로 표시하는 버전 표기 방식이다.

  • 가장 넓게 쓰이는 방식
  • 리액트, 장고 등이 Semver 방식으로 버전을 표기

표기법 사용 방법 예시

  1. 첫 번째 숫자 변화: 프로그램에 엄청 큰 변화(새 집으로 이사하는 수준)
    • 예) 장고 1.1.0버전에서 2.1.0버전으로 업데이트 후, 장고 코드가 많이 깨져서 코드도 업데이트가 필요했음
  2. 두 번째 숫자 변화: 마이너한 업데이트(소품, 인테리어로 살짝 업그레이드하는 수준)
    • 예) 리액트가 새로운 기능인 훅 콘셉트를 도입하며 16.7.0에서 16.8.0으로 버전을 업데이트함
  3. 세 번째 숫자 변화: 패치나 버그 수정
    • 예) 4.0.25 는 수정을 25번 했다는 의미

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


앱스토어에서 항상 버전이 업데이트 되는 것을 보며 저 숫자는 뭘까 늘 궁금했지만 찾아보진 않았는데 나름의 의미가 있다는 것을 알게 되었다.


❓ 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.


SQL 문법이 궁금하다.

profile
Always have hope🍀 & constant passion🔥

0개의 댓글