🚀네트워크의 로켓배송 DNS와 CDN
·
CS/네트워크
보호되어 있는 글입니다.
🌐서브넷, NAT? AWS에서 본 거 같은데
·
CS/네트워크
IP 주소 체계 (IPv4)IP(Internet Protocol) 주소는 인터넷에 연결된 모든 기기를 식별하기 위한 고유한 주소다. 현재 가장 널리 쓰이는 IPv4는 192.168.0.1처럼 4개의 숫자가 점으로 구분된 형태를 띤다. 이는 사실 32비트의 이진수를 사람이 읽기 편하게 8비트(1바이트)씩 4개로 쪼개어 10진수로 표현한 것이다.32비트라면 총 2^32, 즉 약 43억 개의 주소를 만들 수 있다. 예전에는 "이 정도면 전 세계 컴퓨터에 다 나눠 주고도 남겠지?"라고 생각했다. 하지만 스마트폰, 태블릿, 스마트 TV, 심지어 냉장고까지 인터넷에 연결되는 시대가 오면서 43억 개로는 턱없이 부족해졌다.네트워크 ID와 호스트 IDIP 주소는 크게 두 부분으로 나뉜다.네트워크 ID: 어떤 네트워크(..
OSI 7계층 & TCP/IP 4계층
·
CS/네트워크
OSI 7계층? 왜 굳이 7개로 나눴을까?OSI 7계층은 통신 과정을 7개의 단계로 세분화한 모델이다. 그렇다면 왜 굳이 복잡하게 7개로 나눴을까?이렇게 계층을 세분화해서 분리하면, 흐름을 한눈에 보기 쉽다는 장점이 있다. 또한, 통신에 문제가 생겼을 때 다른 계층에 영향을 주지 않고 이상이 생긴 계층만 고칠 수 있기 때문이다. OSI 7계층, 소포 배달로 이해하기우리가 일상생활에서 누군가에게 소포(배달)를 보낸다고 가정하고 각 계층을 비유해서 설명해 보겠다. 7계층부터 설명할 건데, 역순으로 설명하는 이유는 실제로 전송할 때는 7계층부터 1계층으로, 수신할 때는 1계층에서 7계층 방향으로 흐름이 형성되어 있기 때문이다. 때문에 계층이 낮아질수록 헤더가 추가되어 캡슐화되고 높아질수록 헤더가 벗겨진다. ..
🎛️정규화 vs 반정규화
·
CS/DB
Intro.데이터베이스 중 특히 RDB라면 절대 빠질 수 없는 이야기인 정규화에 대해서 얘기해보도록 하겠다. 정규화?정규화란 쉽게 말해 데이터의 중복을 최소화하고, 무결성을 유지하기 위해 테이블을 쪼개는 과정이다. 그렇다면 왜 굳이 잘 있는 테이블을 쪼개서 복잡하게 만드는 걸까? 이상 현상(Anomaly) 방지만약 정규화를 하지 않고 모든 데이터를 하나의 거대한 테이블에 다 때려 넣으면, 데이터가 중복해서 저장된다. 이 중복은 필연적으로 다음과 같은 이상 현상(Anomaly)을 유발한다.삽입 이상(Insertion Anomaly): 새 데이터를 넣으려는데, 불필요한 데이터까지 억지로 넣어야 하는 상황. (예: 신입생을 등록하려는데, 아직 수강 신청한 과목이 없어서 '과목명' 컬럼에 NULL을 넣어야만 ..
🗂️인덱스, 넌 누구니?
·
CS/DB
Intro.지난 게시글에서 데이터의 신뢰를 지키는 Transaction과 ACID에 대해 알아보았다. 데이터가 정확하게 저장되는 것을 보장했다면, 이제는 그 데이터를 '얼마나 빨리 찾을 것인가'에 대한 고민이 필요하다. 서비스의 규모가 커지고 데이터가 쌓일수록, DB 성능 최적화는 선택이 아닌 필수가 된다. 이번 게시글에서는 그 최적화의 가장 기본이자 핵심인 Index(인덱스)에 대해 설명해 보도록 하겠다. 인덱스?인덱스는 두꺼운 책에 우리가 원하는 내용을 빠르게 찾으려고 붙이는 색인과 같다. 만약 '트랜잭션'이라는 단어를 책에서 찾고 싶은데 색인이 없다면? 첫 페이지부터 마지막 페이지까지 한 장씩 다 넘겨봐야 할 것이다. 이를 DB에서는 Full Table Scan이라고 부른다. 데이터가 1억 건이라면..
📱트랜잭션과 ACID
·
CS/DB
Intro.전 시간에 DB의 양대산맥인 RDB와 NoSQL에 대해서 알아보았다. 오늘은 그중 특히 RDB에서 데이터 무결성을 보장하기 위해 고안된 개념인 ACID와 트랜잭션에 대해서 알아보도록 하겠다. 데이터 무결성에 대해서는 지난 시간에 설명했으니 생략하고 넘어가겠다. 2026.03.22 - [CS/DB] - 📦RDB와 NoSQL 📦RDB와 NoSQLIntro.어쩌면 다른 분야도 마찬가지겠지만, 소프트웨어에는 만병통치약 같은 기술 스택이나 방법이 존재하지 않는다. 흔히 'No Silver Bullet'이라고 표현된다. 지금까지 그랬고 앞으로도 그럴 것이고asht1214.tistory.com ACID 원칙데이터 무결성을 지키기 위해 데이터베이스는 ACID라는 4가지 핵심 원칙을 따른다. Atomici..
📦RDB와 NoSQL
·
CS/DB
Intro.어쩌면 다른 분야도 마찬가지겠지만, 소프트웨어에는 만병통치약 같은 기술 스택이나 방법이 존재하지 않는다. 흔히 'No Silver Bullet'이라고 표현된다. 지금까지 그랬고 앞으로도 그럴 것이고 이번에도 그렇다. 데이터를 저장하는 방법은 여러 가지가 있는데, 우리가 자주 접하는 표 방식도 있고 그래프 방식도 있고 JSON처럼 키-벨류로 써서 저장하는 방식 등 여러 가지가 있다. 정답인 것은 없다. 언제 무엇을 쓰는지 한 번 알아보자. RDB?RDB는 Relational DataBase의 약자로, 행과 열을 갖는 표의 형태로 데이터들을 저장하는 것을 뜻한다. 표 하나를 테이블(Table)이라고 한다. 그런데 왜 관계형이냐? 그 이유는 바로 여러 개의 테이블들이 서로 관계를 갖기 때문이다. 고..
동기/비동기와 블로킹/논블로킹
·
CS
Intro.지난 게시글에서 멀티 스레딩과 성능, 그리고 그 효율 뒤에 숨겨진 컨텍스트 스위칭 비용에 대해 알아보았다. 결국 우리가 멀티 스레드를 쓰는 근본적인 이유는 "여러 일을 동시에 처리해서 응답성을 높이기 위함"이었다. 이 '응답성'을 이야기할 때 절대 빠질 수 없는 개념이 바로 동기(Synchronous)와 비동기(Asynchronous)다. 멀티 스레드와 혼동하기도 하지만, 사실 이건 '작업을 어떻게 수행하느냐'에 대한 이야기다. 동기(Synchronous)동기 방식은 말 그대로 '동기화'를 맞춘다는 뜻이다. 어떤 작업이 시작되면 그 작업이 끝날 때까지 다음 작업은 시작하지 않고 기다린다. 카페에서 커피를 주문했는데, 직원이 커피를 다 만들어서 내 손에 쥐어 줄 때까지 내가 카운터 앞에서 꼼짝..