노마드 개발 북클럽 “IT 5분 잡학사전” 2주 챌린지
(23.11.10 ~ 23.11.24)
11/19 SUN, Assignment # 10
🔖 오늘 읽은 범위 : 에피소드 30 ~ 에피소드 34
1. 책에서 기억하고 싶은 내용은?
✏️ 코로나가 준 레거시 시스템의 교훈 (에피소드 30)
✓ 프로그램은 책임 있게 만들어야 한다
먼저 개발자의 관점에서 살펴볼게. 개발자는 자신이 만든 프로그램에 완벽하게 책임을 져야 해. 왜냐하면 개발자가 만든 프로그램은 사람들에게 영향을 줄 테니까 말이야.
✓ 프로그램은 끊임없이 관리해야 한다
이건 관리하는 사람이 생각해 보면 좋겠어. 코볼 개발자를 구할 때 이 문제를 더 부각시켰던 건 시스템 관리자가 코볼을 코발트로 잘못 알고 있었다는 거야. 정부 시스템 관리자가 언어 이름도 제대로 몰랐다니! 정말 충격이지. 얼마나 시스템 관리에 관심이 없었는지 알 수 있겠지? 프로그램을 오랫동안 방치한 결과라고 생각해.
시스템은 한번 구축하면 끝이 아니야. 개발자라면 코드를 살아 있는 생명체처럼 대해야 해. 꾸준히 관리 해야 하지. 물을 자주 주지 않아도 되는 선인장도 방치하면 죽는 거랑 똑같아. 그러니 개발자가 되려고 준비한다면 이 사실을 꼭 인지하고 생각하며 살아가야 해.
✏️ 데이터와 단짝 친구, SQL (에피소드 31)
- SQL은 structured query language
SQL은 데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어➡️ SQL은 한마디로 말해 데이터베이스를 다루는 언어야.
- 데이터베이스를 관리해 주는 DBMS“데이터베이스는 데이터를 보관하는 창고 역할”
DBMS(database management system)는 이름 그대로 데이터베이스 관리 시스템을 말해. 즉, SQL로 데이터베이스와 상호작용을 하려면 DBMS를 거쳐야 해.
➡️ SQL은 데이터베이스를 관리해 주는 DBMS와 대화하기 위한 언어야.
✏️ NoSQL이 뭐죠? (에피소드 32)
NoSQL은 SQL과 성격 자체가 달라.
NoSQL은 언어의 특징만 있는 것이 아니라 그들이 사용하는 데이터베이스 자체의 성질도 달라. NoSQL의 데이터베이스 종류는 되게 많은데 여기서는 도큐먼트 데이터베이스(document DB), 키값 데이터베이스(key-value DB), 그래프 데이터베이스(graph DB)만 설명해 줄게.
1. 데이터 형식이 매우 자유로운 도큐먼트 데이터베이스
ex. 몽고디비(MongoDB)
- 데이터를 제이슨(JSON) 도큐먼트 형태로 저장
2. 읽고 쓰는 속도가 엄청 빠른 키값 데이터베이스
ex. 카산드라디비(CassandraDB), 다이나모디비(DynamoDB)
- 이 녀석의 장점은 읽고 쓰는 속도가 정말 빠르다는 거야! 수만 개의 데이터를 1초 만에 순식간에 쓸 수 있을 정도라고! 이 장점 때문에 애플은 카산드라디비로 10페타바이트의 데이터를 저장하고 있어. 넷플릭스, 인스타그램, 우버 같은 회사도 마찬가지지! 대용량 데이터를 빠르게 저장해야 하거나 읽어야 한다면 카산드라디비가 정말 좋은 선택지야.
- 다이나모디비는 아마존이 만들었어. 듀오링고(Duolingo)라는 언어 학습 애플리케이션에서 다이나모디비를 쓰지. 이 녀석도 굉장히 빠르게 읽을 수 있어. 데이터를 1초에 2만 4,000개나 읽을 수 있다고 해.
3. 노드로 관계를 표현하는 그래프 데이터베이스
- 이 녀석은 열이나 도큐먼트가 필요하진 않아. 하지만 노드라는 개념이 필요하지.
2. 오늘 읽은 소감은?
에피소드 30에 등장한 ‘코볼’ 개발자를 찾는다는 이야기가 인상적이었다. 코볼은 1959년 탄생한 정말 오래되었고, 매우 훌륭한 언어인데다가, 코볼로 구현되어 있는 시스템이 아직 많이 있는데도 불구하고 지금의 개발자들이 전혀 관심을 가지지 않는 언어라니, 왠지 상상이 잘 되지 않는다. 하지만 시스템은 한번 구축하는 것으로 끝이 아니라, 관심을 가지고 꾸준히 관리해야만 한다는 것을 깨닳았다. 언젠가는 ‘코볼’ 개발자를 찾는 날이 온 것처럼, 살아있는 프로그램이라면 지속적으로 관리가 필요한 것이 기계에서도 왠지 모를 인간미가 느껴진다고 할까, 생명이 느껴진다고 해야할까.
SQL과 NoSQL에 대한 에피소드를 읽으며, SQL과 NoSQL이 다르다는 것도 알게 되었는데 조금 더 학습이 필요할 것 같다. 아직은 머릿속에서 뭔가 뒤죽박죽 섞여 있는 것 같다. 내가 SQL 또는 NoSQL을 다루게 될 날이 올까? 그 날이 오면 조금씩 다시 정리가 되겠지?
'Frontend Dev > Input' 카테고리의 다른 글
[IT 5분 잡학사전 2주 챌린지] 하이브리드 앱, 크로스 플랫폼 앱 다른거 나만 몰랐어..? (0) | 2023.11.23 |
---|---|
[IT 5분 잡학사전 2주 챌린지] 프로그래밍 패러다임과 객체지향 프로그래밍 (0) | 2023.11.22 |
[IT 5분 잡학사전 2주 챌린지] 드디어 챌린지 2주차 진입! (0) | 2023.11.18 |
[IT 5분 잡학사전 2주 챌린지] 자료구조와 알고리즘은 필수라고? (0) | 2023.11.16 |
[IT 5분 잡학사전 2주 챌린지] 서버리스가 뭘까? (0) | 2023.11.15 |