우리 삶은 온통 연결로 이루어져 있어요. 손에 쥔 휴대폰에서 영상이 끊기지 않고 나오고, 쇼핑몰 결제가 순식간에 끝나고, 게임 접속이 빠르게 되는 순간마다 보이지 않는 connection이 바쁘게 오가고 있습니다. 문제는 이 connection이 한 번만 꼬여도 화면이 멈추고, 결제가 실패하고, 회사 서버가 다운될 수 있다는 점이에요. 그래서 요즘 개발자뿐 아니라 기획자, 운영 담당자도 connection에 대해 기본은 알아두려는 흐름이 강해지고 있습니다.
서비스에서 가장 중요한 connection 중 하나는 바로 DB와 이어지는 연결이에요. 많은 사람이 동시에 글을 쓰고, 로그인하고, 주문을 넣으면 그때마다 DB에 요청이 쏟아지는데, 매번 새 connection을 만들었다 끊었다 하면 시간이 오래 걸리고 서버 힘도 많이 빠집니다. 그래서 미리 여러 개의 connection을 만들어 저장해 두는 connection 풀이라는 방식을 써요. 누군가 DB를 쓸 일이 생기면 이 풀에서 connection을 하나 빌려 쓰고, 다 쓰면 다시 돌려놓는 거죠. 여기서 중요한 포인트는 숫자와 반납이에요. 풀에 들어 있는 connection 개수는 서버가 버틸 수 있는 선으로 정해야 하고, 사용이 끝난 connection은 꼭 다시 풀로 돌려보내야 해요. 반납이 누락되면 풀에 남은 connection이 점점 줄어들어, 어느 순간 새로운 요청은 기다리기만 하다가 시간 초과가 나버리기 때문입니다.
DB까지 가는 길에는 또 다른 connection이 있습니다. 바로 인터넷을 타고 흐르는 네트워크 연결이에요. 여기서는 두 가지가 핵심이에요. 하나는 데이터가 비틀어지지 않게 지키는 것, 다른 하나는 남이 몰래 보지 못하게 막는 것입니다. 데이터가 먼 길을 오가다 보면 중간에 전기 신호가 흐트러질 수 있는데, 이때는 작은 검사 값을 함께 보내서 문제가 생겼는지 확인해요. 검사 값이 안 맞으면 다시 보내 달라고 해서 connection 위에 실린 내용이 찌그러지지 않게 잡아줍니다. 또 결제 정보나 로그인 정보처럼 중요한 내용은 그대로 보내지 않고, SSL 같은 암호화 방식을 이용해 뒤섞어서 보냅니다. 서버와 내 기기 사이에 안전한 connection을 깔아두고, 그 안에서만 내용을 주고받는 방식이라고 이해하시면 편해요. 여기에 더해, 누가 진짜 사용자인지 확인하는 인증 기능까지 붙이면, 내용도 안 깨지고, 안 들키고, 아무나 들어오지 못하는 꽤 든든한 connection이 완성됩니다.
online에서 본인 확인을 할 때도 connection이라는 생각이 숨어 있어요. 여러 사이트를 돌아다니며 회원 가입을 하다 보면, 같은 사람인지 아닌지 구분해야 할 때가 많죠. 이때 주민등록번호를 이곳저곳에 뿌리면 위험하니, 그 대신 쓰는 정보가 있어요. 바로 여러 서비스 사이에서 사람을 이어 주는 암호화된 connection 정보입니다. 우리나라에서는 이를 CI라고 부르는데, 일정 길이로 된 긴 값 안에 내가 누구인지 구별할 수 있는 정보가 숨겨져 있어요. 사이트 입장에서는 이 CI 값만 보고도 같은 사람인지 알아볼 수 있지만, 속을 들여다봐도 주민등록번호 같은 직접적인 정보는 알 수 없게 돼 있습니다. 덕분에 서로 다른 서비스들이 같은 사용자를 이어 보는 connection을 유지하면서도, 개인 정보는 조금 더 안전하게 지킬 수 있게 되었어요.
지금까지 살펴본 것처럼 connection은 DB와 서버, 인터넷과 우리 기기, 그리고 여러 서비스 속 사용자까지 넓은 범위를 아우르고 있습니다. connection 풀로 자원을 아끼고, 네트워크 connection으로 안전하게 데이터를 옮기고, 사람을 잇는 connection 정보로 본인을 확인하는 구조까지 이어지네요. 이런 흐름을 알고 나면 화면 뒤에서 어떤 연결이 움직이는지 조금 더 선명하게 떠올릴 수 있을 거예요.
