Computer Science(32)
-
4편: 내부망이란 무엇이고 왜 필요한가
3편에서 데이터가 라우팅과 DNS를 통해 목적지 근처까지 도달하는 과정을 배웠다.그런데 목적지 근처에 도착한 데이터는 그 다음에 어디로 가는 걸까? 이제부터는 내부망의 영역이다.모든 기기마다 자기만의 IP가 있어야 할까?언뜻 생각하면, 노트북도 휴대폰도 스마트워치도 각자 고유한 IP 하나씩 가지면 깔끔할 것 같다.하지만 실제로는 그렇게 하지 않는다. 두 가지 문제가 있기 때문이다. 첫째, 전 세계에서 쓸 수 있는 공인 IP는 한정된 자원이다.IPv4 기준으로 약 43억 개 정도가 전부다. 지구상의 모든 기기 하나하나에 공인 IP를 부여한다면 턱없이 부족하다. 둘째, 모든 기기가 인터넷에 직접 노출되면 보안에 취약해진다.기기 하나하나가 전부 외부에서 직접 접근 가능한 상태가 되면, 그만큼 공격 경로도 늘어..
2026.06.22 -
3편: 인터넷이라는 거대한 망을 어떻게 건너는가 - 라우팅과 DNS
2편에서 데이터가 목적지까지 가려면 IP 주소와 포트가 필요하다는 걸 배웠다.그런데 목적지 IP를 안다고 해서 데이터가 자동으로 그곳까지 찾아가는 건 아니다.전 세계에 수십억 대의 컴퓨터가 연결된 인터넷이라는 거대한 망을, 데이터는 어떻게 건너는 걸까? 이번 편에서는 두 가지를 다룬다.라우팅: 데이터가 수많은 중간 지점을 거쳐 목적지까지 경로를 찾아가는 방법DNS: 사람이 외우기 쉬운 도메인 이름을 실제 IP 주소로 바꿔주는 시스템라우팅, 길을 찾아가는 과정 인터넷은 수많은 네트워크(통신사, 회사, 데이터센터)들이 서로 연결된 거대한 망이다. 내가 보낸 데이터가 목적지(예: 미국에 있는 서버)까지 가려면, 직선으로 한 번에 가는 게 아니라 여러 중간 지점을 거쳐 단계적으로 이동한다. 이때 "다음엔 어디로..
2026.06.22 -
2편: 목적지를 어떻게 찾는가 - IP와 포트
1편에서 데이터가 물리적 신호로 변환되어 케이블을 타고 이동한다는 걸 배웠다. 그런데 한 가지 의문이 남는다.전 세계에 수십억 대의 컴퓨터가 연결되어 있는데, 내가 보낸 데이터는 그 중에서 "정확히 어느 컴퓨터"로 가야 하는지 어떻게 알까?그리고 그 컴퓨터에 도착한 뒤에는, 수많은 프로그램 중 "어떤 프로그램"에게 전달해야 하는지는 어떻게 알까? 이 두 질문에 답하는 것이 IP 주소와 포트다."어떤 컴퓨터로 보내야 하지?" → IP 주소"그 컴퓨터 안에서 어떤 프로그램에게 전달해야 하지?" → 포트IP 주소: 어떤 컴퓨터로 보낼지 정하는 주소IP 주소는 네트워크에 연결된 모든 기기에 부여되는 고유한 식별자다.우편을 보낼 때 집 주소가 필요한 것처럼, 데이터를 보낼 때도 "어디로 보낼지"를 식별할 주소가 ..
2026.06.22 -
1편: 데이터는 어떤 신호로 변환되어 이동하는가
내 노트북에서 클로드에 "안녕하세요"를 전송하는 순간,이 데이터는 도대체 어떤 과정을 거쳐 저 멀리 있는 클로드 서버까지 도달할까?이번 글에서는 컴퓨터에 입력한 데이터가 물리적인 신호로 변환되어 이동하는 전체 흐름을 따라가 본다. 전체 흐름을 한 줄로 요약하면 이렇다."안녕하세요" → 0과 1 → 전기/전파 신호 → 공유기 → 인터넷 → 클로드 서버 도착1단계: 데이터의 탄생 (내 컴퓨터 안)"안녕하세요"라는 텍스트를 입력하면,내 노트북의 소프트웨어(브라우저 또는 앱)가 정해진 인코딩 규칙(UTF-8 등)에 따라이를 0과 1(디지털 데이터)로 변환한다. 이 시점까지는 아직 컴퓨터 메모리 안에만 존재하는 데이터다.2단계: 물리적 신호로 변환 (하드웨어)네트워크 카드(유선) 또는 와이파이 칩(무선)이 이 0..
2026.06.22 -
프롤로그: 데이터는 어떻게 전달될까?
한 컴퓨터에서 다른 컴퓨터까지, 데이터는 어떻게 전달될까? 우리는 매일 인터넷을 쓴다. 카카오톡 메시지를 보내고, 유튜브 영상을 보고, 이 글을 읽고 있는 지금 이 순간에도! 하지만 내가 보낸 메시지가 상대방에게 어떻게 전달되는지는 한 번도 제대로 생각해본 적이 없었다.웹 개발 공부를 하다보니 이 데이터들이 실제 세상 속에서 어떻게 이동되는지 궁금해졌다. 이 시리즈는 딱 하나의 질문에 답하기 위해 쓴다."하나의 컴퓨터에서 다른 컴퓨터까지, 데이터는 어떻게 전달되는가?" 깊은 기술 지식을 다루는 글은 아니지만, 나처럼 네트워크를 처음 접하는 사람이 네트워크의 큰 그림을 잡을 수 있도록 쓴 글이다.그림 속 "Hello, world!"라는 데이터가 클라이언트를 떠나 인터넷이라는 거대한 망을 건너 서버에 도달..
2026.06.22 -
알고리즘 효율 분석 | 시간 복잡도, 빅오 표기법
1. 시간 복잡도 (Time Complexity)알고리즘의 성능을 나타내는 지표 입력 크기 n에 따라 연산 횟수가 어떻게 증가하는지를 나타낸다 즉, 입력 크기가 커질수록 성능이 어떻게 변하는지를 수학적으로 분석하는 것 시간 복잡도는 낮을 수록 좋다주로 빅오 표기법(Big-O Notation)을 사용해서 표현 2. 빅오 표기법 2-1. 빅오 표기법최악의 경우 시간 복잡도를 표현하는 방법 시간 복잡도의 점근적 상한 (상한선: 빅오, 하한선: 빅오메가) 어떤 프로그램의 연산 횟수가 f(x)라고 할 때, f(x)에서 가장 영향이 큰 항만 남기고 상수와 낮은 차수는 제거하는 방식으로 표현한다. 예: f(x)=2x² + 3x + 5 → O(x²)2-2. 빅오 시간 복잡도 구하기 (빅오 상한의 정의)다음을 만족하..
2025.03.12