본문 바로가기

전쟁과 기술24

외래키는 왜 필요할까? 나누어진 테이블을 다시 연결하는 방법 회원정보 화면에는 이름과 연락처가 보이고, 주문내역 화면에는 상품명과 결제금액이 나타난다. 사용자는 두 화면을 오가면서도 주문한 사람과 주문 기록이 당연히 연결되어 있다고 여긴다. 하지만 데이터베이스 안에서는 고객과 주문을 한 표에 모두 적어 두지 않는 경우가 많다.고객 정보는 고객 테이블에, 주문은 주문 테이블에 나누어 저장한다. 한 고객이 주문을 열 번 했다면 고객의 이름과 주소를 열 번 반복해서 기록하는 대신, 주문마다 고객을 가리키는 값만 남긴다. 표는 떨어져 있지만 정보의 관계는 끊어지지 않는다.앞선 글에서 살펴본 기본키가 자기 테이블 안의 한 행을 구별하는 이름표라면, 외래키는 다른 테이블에 있는 그 이름표를 가져와 관계를 표시하는 값이다. 관계형 데이터베이스가 여러 표를 따로 보관하면서도 하.. 2026. 9. 3.
기본키는 왜 필요할까? 수많은 행 가운데 하나를 구별하는 방법 회사에 같은 이름을 가진 사람이 두 명 있다고 해보자. 부서까지 다르면 사람은 문맥을 보고 어느 김민수인지 대개 알아차린다. 그러나 데이터베이스는 눈치로 판단하지 않는다. 이름과 부서, 입사일처럼 저장된 값만 보고 기록을 구분해야 한다.문제는 이름이 같을 수 있고, 부서가 바뀔 수도 있으며, 입사일마저 우연히 겹칠 수 있다는 데 있다. 이름을 잘못 골라 전화번호를 고치면 엉뚱한 사람의 정보가 바뀐다. 한 행을 삭제하려다가 같은 이름을 가진 다른 사람의 기록까지 지워질 수도 있다.앞선 글에서는 데이터가 행과 열로 나뉘어 저장되는 이유를 살펴보았다. 열은 어떤 정보를 담을지 정하고, 행은 한 사람이나 한 상품처럼 하나의 대상을 기록한다. 표의 모양을 갖추었다고 해서 각 행이 저절로 구별되는 것은 아니다. 수.. 2026. 8. 30.
데이터는 왜 행과 열로 나눠 저장할까? 지난 글에서는 파일이 많아지고 여러 사람이 같은 정보를 다루기 시작할 때 데이터베이스가 필요한 이유를 살펴보았다. 그런데 데이터를 한곳에 모으는 것만으로는 문제가 해결되지 않는다. 사람마다 이름과 날짜를 적는 방식이 다르고, 같은 대상을 서로 다른 말로 기록한다면 컴퓨터는 그 자료를 제대로 묶거나 비교하지 못한다.창고에 물건을 쌓는 일과 필요한 물건을 꺼내 쓰는 일이 다른 것처럼, 데이터를 저장하는 일과 사용할 수 있게 정리하는 일도 다르다. 데이터베이스가 단순한 전자 보관함이 되지 않으려면 각각의 값이 무엇을 뜻하는지 알아볼 수 있는 구조가 필요하다. 오늘날 가장 널리 쓰이는 구조 가운데 하나가 행과 열로 이루어진 테이블이다.한줄 요약행은 사람이나 장비, 사건처럼 한 건의 대상을 담고 열은 그 대상이 .. 2026. 8. 29.
데이터베이스는 왜 필요할까? 엑셀과 파일 저장의 한계 지난 글에서는 웹페이지가 화면에 나타나기까지 브라우저와 웹서버가 어떤 일을 하는지 살펴보았다. 주소 하나를 입력하고 기다리는 짧은 시간에도 브라우저는 필요한 자료를 요청하고, 서버는 그 요청에 맞는 내용을 찾아 다시 보내준다.그런데 서버가 무엇인가를 찾아 보내려면 당연히 그 정보가 먼저 어딘가에 있어야 한다.쇼핑몰에서 지난달 주문내역을 눌렀는데 내가 구입한 상품이 바로 나타난다. 은행에서는 몇 달 전 거래내역까지 확인할 수 있다. 회사의 업무시스템에서도 오래전에 등록한 장비나 계약, 업무기록을 다시 찾아볼 수 있다.이런 자료는 화면을 열 때마다 새로 생기는 것이 아니다. 이전에 입력하고 처리한 정보가 계속 저장되어 있기 때문에 다시 꺼내볼 수 있다.여기까지는 어렵지 않다. 컴퓨터에는 원래 파일을 저장할 .. 2026. 8. 24.
웹페이지는 서버에서 날아오는 걸까? 인터넷 주소를 입력하면 브라우저가 서버를 찾아간다. 지금까지의 글에서 DNS와 라우터, TCP/IP와 HTTP, URL과 웹서버를 차례로 살펴본 이유도 결국 이 과정을 이해하기 위해서였다.브라우저는 필요한 자료가 있는 곳을 찾아 요청을 보내고, 서버는 그 요청에 맞는 내용을 다시 돌려준다. 사용자는 그 결과를 화면으로 보게 된다.겉으로 보면 과정은 단순하다. 주소를 입력하고 잠시 기다리면 웹페이지가 나타난다. 하지만 서버에서 사용자 화면까지 오는 과정을 조금만 안쪽에서 살펴보면 생각보다 여러 일이 이어진다.우리가 보는 웹페이지도 서버 안에 완성된 그림 한 장으로 들어 있는 것은 아니다. 웹서버가 자료를 보내면 브라우저가 그것을 읽고 화면에 맞게 구성한다.한줄 요약웹페이지는 서버에 저장된 완성된 화면을 그.. 2026. 8. 24.
웹서버는 수많은 요청을 어떻게 처리할까? 앞선 글에서는 URL을 따라 브라우저가 원하는 서버와 자료를 찾아가는 과정을 살펴보았다. 주소창에 입력한 한 줄의 주소 안에는 서버를 찾기 위한 도메인과 서버 안에서 원하는 자료를 가리키는 경로 등이 함께 들어 있었다. 브라우저는 이 정보를 이용해 요청을 만들고 인터넷을 통해 서버로 보냈다.그렇다면 그 요청이 서버에 도착한 뒤에는 무슨 일이 벌어질까?평소에는 별로 생각할 일이 없다. 뉴스 제목을 누르면 기사가 열리고 검색어를 입력하면 잠시 뒤 검색결과가 나타난다. 로그인을 하면 내 이름이 표시되고 쇼핑몰에서는 내가 주문했던 상품을 다시 확인할 수 있다.그런데 같은 사이트를 이용하고 있는 사람이 나 혼자일 리는 없다. 방문자가 많은 사이트라면 같은 시간에도 누군가는 기사를 읽고, 누군가는 로그인하고, 다른.. 2026. 8. 10.