노마드코더 챌린지/노개북 - IT 5분 잡학사전

[북클럽][TIL] <IT 5분 잡학사전> - Day 10. 컴퓨터 공학 지식 (2)

엘레나림 2024. 4. 22. 01:32
728x90

오늘 읽은 범위

  • 마당 3 & 4. 컴퓨터 공학편 ep30 ~ ep34

 

책에서 기억하고 싶은 내용

  • ep30 : 레거시 시스템의 교훈
    • 과거 핫했던 언어, 코볼(COBOL = common business oriented language) 은 미국 은행 시스템 등 레거시 시스템의 근간이 된 언어.
    • 그러나, 관리되지 않고 배우는 사람도 없어서 현재 유지보수 매우 어려움
    • 프로그램은 반드시 책임 있게 만들어야 하며, 끊임없이 관리되어야 한다!

 

  • ep31 : SQL
    • SQL(structured query language): 구조화된 질문/문의 언어 = 데이터베이스에 어떤 질문/문의하기 위한 구조를 가진 언어.
    • DBMS(database management system): 데이터베이스 관리 시스템.
      종류로는 MySQL, PostgreSQL, SQLite, Oracle, MariaDB 등. 이것들은 데이터베이스가 아닌 DBMS다.
    • SQL로 데이터베이스와 상호작용을 하려면 DBMS를 거쳐야함
    • ORM(object relational mapping)은 SQL 번역기 같은 도구라서 프로그래밍 언어로도 SQL을 사용할 수 있음. 여러 언어를 바꿔가며 작업하지 않아도 되서 편리하지만, 그래도 SQL은 꼭 알아두자!
      • python에서는 장고 ORM (Django ORM)
      • 라라벨에는 엘러퀀트 ORM (eloquent ORM)
      • node.js에서는 시퀄라이즈 ORM(sequelize ORM), 타입 ORM(type ORM)

 

  • ep32 : NoSQL
    • NOSQL
    • 도큐먼트 데이터베이스(document DB) : 대표적으로 몽고디비(MongoDB). JSON(javascript object notation) 도큐먼트 형태로 저장.
      • 구성이 같을 필요없고 어떤 데이터든 대괄호과 중괄호로 구분해서 저장. 
      • ex) [
           { "id": 1, "name":xxx },
           { "id": 1, "name":yyy, "price": 1000 }
        ]
    • 키값 데이터베이스(key-value DB) : 대표적으로 카산드라디비(CassandraDB), 다이나모디비(DynamoDB). 읽고 쓰는 속도 매우 빠름.
      • 카산드라DB: column wide
      • 다이나모DB
    • 그래프 데이터베이스(graph DB)

 

  • ep33 : 깃 & 깃허브
    • 깃(Git) : 파일의 이력을 관리하는 프로그램
    • 깃허브(GitHub) : 파일과 깃으로 관리한 이력을 저장하고 공유하는 공간
    • Git의 특징
      • 같은 파일이라도 다른 버전으로 보관 가능
      • 병합(merge) 가능
    • GitHub에서 git 이력을 업로드하는 것을 푸시(push), 내려받는 것을 풀(pull)

 

  • ep34 : 기술/프로그램 버전 표기법
    • SemVer(semantic versioning specification) : 숫자 3개로 표시하는 버전 표기 방식

 

오늘 읽은 소감은? 떠오르는 생각들

  •  

 

3줄 요약

- 프로그램은 책임있게 만들고 끊임없이 관리해야 한다

- SQL은 데이터베이스를 다루는 언어, DBMS는 데이터베이스 관리 시스템
- Git은 파일의 이력을 관리하는 프로그램, GitHub는 파일과 깃으로 관리한 이력을 저장하고 공유하는 공간