본문 바로가기

분류 전체보기

(18)
트랜잭션과 ACID: 은행 이체가 ‘정확하게’ 처리되는 기술적 원리 왜 은행 이체는 거의 틀리지 않을까인터넷 뱅킹이나 모바일 앱으로 이체를 할 때 사용자는 몇 초 안에 “이체가 완료되었습니다”라는 메시지를 본다. 계좌에서 돈이 빠져나가고, 상대 계좌에 돈이 들어가는 과정은 눈에 보이지 않지만, 거의 항상 정확하게 처리된다.그러나 내부에서는 여러 가지 위험이 상존한다.이체 도중 서버가 다운될 수도 있고,네트워크가 끊길 수도 있고,같은 이체 요청이 두 번 들어올 수도 있다.그럼에도 불구하고 은행 시스템이 안정적으로 동작하는 이유는 데이터베이스 트랜잭션(Transaction)과 ACID 특성(Atomicity, Consistency, Isolation, Durability) 덕분이다.이 글에서는 트랜잭션, ACID, 은행 이체, 데이터베이스, 일관성을 핵심 키워드로 삼아,트랜..
데이터베이스 기초: 엑셀과 무엇이 다르고 어디에 쓰이는가 엑셀로 시작했는데, 왜 데이터베이스가 필요해지는가많은 사람이 데이터 관리를 시작할 때 가장 먼저 떠올리는 도구는 엑셀이다. 판매 내역, 고객 명단, 재고 관리, 학습 기록 등 대부분의 업무가 엑셀 한 파일로도 어느 정도는 처리 가능하기 때문이다. 초반에는 시트 몇 개로도 충분해 보이고, 필터와 정렬만 잘 써도 “이 정도면 됐다”라고 느끼기 쉽다.그러나 데이터가 점점 많아지고, 함께 일하는 사람이 늘어나고, 정보가 복잡해질수록 엑셀만으로는 한계가 드러난다. 파일이 자꾸 깨지거나, 버전이 여러 개 생기고, 같은 고객이 여러 행에 중복되며, 누군가 필터를 잘못 건 채 저장해 전체 정렬이 꼬이는 일도 흔하다. 이 시점에서 등장하는 개념이 바로 데이터베이스(Database)이다.이 글에서는 데이터베이스, 엑셀, ..
패킷과 포트 번호: 하나의 인터넷 회선으로 여러 서비스가 동시에 동작하는 비밀 인터넷 회선 하나로 왜 이렇게 많은 일이 될까집이나 회사에서 사용하는 인터넷 회선은 보통 하나이다. 그런데 이 한 회선 위에서웹 서핑,유튜브 동영상 재생,메신저,화상 회의,클라우드 파일 동기화가 동시에 돌아가도 대체로 큰 문제 없이 동작한다.겉으로 보면 “선 하나”에 불과한데, 어떻게 서로 다른 네트워크 서비스들이 섞이지 않고 각자 제자리로 정확히 도착하는지 궁금해질 수 있다. 이 비밀을 이해하려면 패킷, 포트 번호, TCP/IP, 인터넷 회선이라는 키워드를 알아야 한다.이 글에서는 전산학 비전공자도 이해할 수 있도록인터넷에서 데이터를 잘게 나누는 단위인 패킷이 무엇인지,하나의 IP 주소 안에서 여러 포트 번호가 왜 필요한지,이 구조 덕분에 하나의 인터넷 회선으로 여러 서비스가 동시에 동작하는 원리가 무..
HTTP와 HTTPS: 웹 브라우저가 웹사이트와 대화하는 규칙과 보안 HTTP와 HTTPS를 알면 주소창 자물쇠의 의미가 보인다사용자는 웹 브라우저 주소창에 웹사이트 주소를 입력하고, 별다른 고민 없이 로그인, 쇼핑, 결제를 진행한다. 화면만 보면 단순히 “페이지가 잘 뜨는지” 정도만 신경 쓰게 된다. 그러나 그 뒤에서는 HTTP, HTTPS, 웹 브라우저, SSL/TLS, 암호화 같은 기술이 웹사이트와 브라우저 사이의 대화를 지키고 있다.특히 주소창 왼쪽에 있는 자물쇠 아이콘은 사이트의 보안 상태를 간단히 보여주는 신호이다. 같은 사이트 주소라도 http://로 시작하는지 https://로 시작하는지에 따라,아이디와 비밀번호,카드 번호,주민등록번호, 주소 같은 개인정보가중간에서 쉽게 노출될 수도 있고, 강하게 보호될 수도 있다.이 글은 전산학 비전공자도 이해할 수 있도록..
DNS 동작 원리: 웹사이트 주소를 입력하면 실제 서버를 찾는 과정 웹사이트 주소와 실제 서버 사이를 잇는 DNS의 역할사용자는 웹사이트에 접속할 때 보통 브라우저 주소창에 google.com, daum.net 같은 도메인 이름을 입력한다. 그러나 인터넷 내부에서는 이런 문자 주소 대신 223.130.xxx.xxx 같은 IP 주소를 사용하여 실제 서버를 찾는다. 사람이 보기에는 도메인 이름이 훨씬 편리하지만, 네트워크 장비와 서버는 숫자로 된 IP 주소를 기준으로 통신한다.이때 “도메인 이름 → IP 주소”로 바꿔 주는 중간 단계가 필요하다. 이 기능을 담당하는 시스템이 바로 DNS(Domain Name System)이다. DNS는 인터넷 전체에 분산된 DNS 서버(네임 서버)들의 협력을 통해, 사용자가 입력한 도메인 이름에 대응하는 IP 주소를 찾아 브라우저에 알려 준..
라우터와 스위치: 집·회사 네트워크에서 트래픽을 나누는 방법 인터넷 선 하나로 여러 기기가 동시에 통신하는 이유집이나 사무실에서 인터넷을 사용할 때 보통 하나의 인터넷 회선을 공유한다. 하지만 실제로는 PC, 노트북, 스마트폰, 프린터, TV 등 여러 기기가 동시에 인터넷을 사용한다. 동영상 스트리밍, 파일 다운로드, 화상 회의가 한꺼번에 이루어지는데도 대부분 큰 문제 없이 동작한다.이 구조를 가능하게 해 주는 핵심 장비가 라우터(router)와 스위치(switch)이다. 겉으로 보기에는 모두 “인터넷 선을 여러 개로 나눠 주는 상자”처럼 보이지만, 내부에서 하는 역할과 네트워크 트래픽을 처리하는 방식은 분명히 다르다.이 글에서는 라우터, 스위치, 네트워크 트래픽, 가정용 공유기, 회사 네트워크를 핵심 키워드로 삼아,라우터와 스위치가 각각 하는 일을 구분하고,집과..
IP 주소와 도메인: 숫자 주소를 사람이 읽을 수 있는 이름으로 바꾸는 구조 IP 주소와 도메인 이름이 필요한 이유인터넷을 사용할 때 대부분의 사람은 주소창에 google.com, daum.net 같은 도메인 이름을 입력한다. 그러나 실제 인터넷 내부에서는 사람이 읽기 쉬운 문자 대신 142.250.206.206 같은 IP 주소라는 숫자 형태의 주소가 사용된다. 사람이 보기에는 도메인 이름이 훨씬 편하지만, 컴퓨터와 네트워크 장비는 여전히 숫자 주소인 IP 주소를 기준으로 서로를 찾아간다.이 사이를 연결해 주는 구조가 바로 IP 주소, 도메인 이름, DNS(도메인 네임 시스템)이다. 이 구조를 이해하면 다음과 같은 의문에 답할 수 있다.도메인 이름을 입력했을 뿐인데 실제 서버를 어떻게 찾아가는지왜 같은 사이트가 여러 IP 주소를 가질 수 있는지도메인을 새로 연결했는데 반영되기까지..
파일 시스템의 원리: 우리가 저장하는 파일이 디스크 안에 정리되는 방법 파일을 “저장했다”는 말의 진짜 의미컴퓨터를 사용할 때 대부분의 사람은 파일을 저장하는 일을 자주 한다. 문서를 작성하고 “저장” 버튼을 누르거나, 스마트폰에서 사진을 PC로 옮기면 하드디스크나 SSD 어딘가에 파일이 쌓인다고 생각한다. 폴더를 만들고 그 안에 파일을 넣다 보니, 마치 디스크 안에 실제로 서랍과 서류철이 있는 것처럼 느껴지기도 한다.그러나 실제 디스크 내부에는 폴더라는 물건이 존재하지 않는다. 대신 운영체제는 파일 시스템(file system)이라는 규칙을 이용해 수많은 0과 1을 “파일”이라는 단위로 나누고, “폴더(디렉터리)”라는 논리적 구역 안에 정리해 놓는다. 같은 디스크를 사용해도 파일 시스템 구조에 따라 속도, 안정성, 오류 발생 시 복구 난이도가 크게 달라진다.이 글에서는 컴..
TCP/IP 네트워크 기초: 인터넷에서 데이터가 ‘정확히’ 도착하는 이유 인터넷에서는 어떻게 길 잃지 않고 도착할까우리가 인터넷을 사용할 때는 주소창에 웹사이트 주소를 입력하거나, 메신저로 메시지를 보내고, 동영상을 스트리밍하는 일이 자연스럽게 이루어진다. 화면만 보면 모든 데이터가 한 번에 쭉 이어져서 전달되는 것처럼 보이지만, 실제로는 수많은 작은 조각들이 전 세계를 돌아다니며 목적지에 도착한다. 그 과정에서 중간 경로의 일부가 고장 나거나, 혼잡해지거나, 일시적으로 끊어지는 일도 계속 생긴다.그럼에도 불구하고 대부분의 경우 웹 페이지는 온전하게 뜨고, 파일은 손상 없이 잘 내려받아진다. 이 “정확한 도착”을 보장하기 위해 사용되는 핵심 기술이 TCP/IP, 네트워크 프로토콜, 패킷, 신뢰성, 재전송 같은 개념이다.이 글에서는 전산학 비전공자도 이해할 수 있도록,인터넷에서..
가상 메모리와 페이지 교체: 메모리가 부족할 때 벌어지는 일 메모리가 부족할 때 컴퓨터 안에서는 무슨 일이 일어날까컴퓨터를 사용하다 보면 어느 순간부터 창이 잘 안 열리거나, 프로그램 전환 속도가 눈에 띄게 느려지는 순간이 찾아온다. 작업 관리자나 상태 표시줄을 보면 “메모리 부족”, “디스크 사용률 100%” 같은 메시지가 뜨는 경우도 있다. 이때 많은 사용자는 단순히 “컴퓨터가 오래돼서 그렇다”라고 생각하지만, 내부에서는 가상 메모리, 페이지 교체, 페이지 폴트와 같은 운영체제의 복잡한 메모리 관리 기법이 동작하고 있다.현대 운영체제는 실제 메모리(RAM)가 한정된 상황에서도 여러 프로그램을 동시에 실행하기 위해 가상 메모리와 페이지 교체 기법을 사용한다. 이 덕분에 물리적으로 8GB RAM만 있어도 마치 그보다 훨씬 큰 메모리를 가진 것처럼 프로그램을 실행할..