본문 바로가기
카테고리 없음

서버란 무엇인가 (요청과 응답, 인증과 권한, 클라우드)

by korea-job 2026. 5. 20.

서버란 무엇인가

IT 공부를 시작하면 꼭 한 번씩 막히는 지점이 있습니다. 서버가 뭔지는 알겠는데, 왜 필요한지는 모르겠다는 상태입니다. 저도 처음에는 서버를 그냥 큰 컴퓨터 정도로 생각했습니다. 그런데 실제로 웹사이트 구조를 공부하면서, 서버가 없으면 로그인 하나도 제대로 안 된다는 걸 알게 됐습니다. 그 순간부터 서버가 다르게 보이기 시작했습니다.

요청과 응답, 서버가 하는 일의 본질

서버를 처음 배울 때 가장 먼저 잡아야 할 개념이 클라이언트-서버 구조(Client-Server Architecture)입니다. 여기서 클라이언트-서버 구조란 사용자의 기기(클라이언트)가 요청을 보내고, 서버가 그 요청을 처리한 뒤 응답을 돌려주는 방식으로 서비스가 작동하는 구조를 말합니다. 쇼핑몰에서 상품 목록을 클릭하는 순간, 사용자의 브라우저는 이미 서버에 요청을 보내고 있습니다.

제가 직접 공부해 보니, 이 흐름이 보이기 시작하면 웹사이트 전체가 다르게 보입니다. 로그인 버튼 하나를 누르는 행위가 실제로는 서버에 인증 요청을 보내고, 서버가 데이터베이스(Database)에서 회원 정보를 조회해 결과를 반환하는 과정이라는 걸 알게 됩니다. 여기서 데이터베이스란 사용자 정보, 게시글, 주문 내역 같은 데이터를 구조화해서 저장하는 저장소를 말합니다. 서버는 이 데이터베이스와 연결되어 데이터를 읽거나 쓰는 역할을 합니다.

서버가 꼭 필요한 또 다른 이유는 여러 사용자가 동시에 같은 서비스를 사용할 수 있어야 하기 때문입니다. 개인 컴퓨터에 파일을 저장해 두면 나만 볼 수 있습니다. 하지만 서버에 서비스가 올라가 있으면 수천 명이 동시에 접속할 수 있습니다. 배달 앱이 동시에 수만 건의 주문을 처리할 수 있는 것도 서버가 중심에서 요청을 받아 처리하기 때문입니다. 솔직히 이 부분은 처음 알았을 때 꽤 인상적이었습니다. 버튼 하나 누르는 게 이렇게 복잡한 과정이라는 게 놀라웠습니다.

서버가 처리하는 기능을 정리하면 다음과 같습니다.

  • 사용자의 요청(Request)을 수신하고 처리한 뒤 응답(Response)을 반환
  • 데이터베이스에서 데이터를 조회하거나 저장
  • 여러 사용자의 동시 접속 요청을 병렬로 처리
  • API(Application Programming Interface)를 통해 프런트엔드와 통신

여기서 API란 클라이언트와 서버가 데이터를 주고받을 때 사용하는 약속된 통로를 말합니다. 프런트엔드가 상품 목록 줘라고 요청하면 서버가 정해진 형식으로 데이터를 보내주는 방식입니다. 이 API 개념이 잡히면 백엔드 개발자가 실제로 무슨 일을 하는지도 훨씬 명확하게 이해됩니다(출처: MDN Web Docs).

인증과 권한, 서버가 보안을 책임지는 방식

서버는 데이터를 주고받는 것 외에도 중요한 역할을 하나 더 맡고 있습니다. 바로 인증(Authentication)과 권한 부여(Authorization)입니다. 여기서 인증이란 이 사용자가 실제로 등록된 회원인지를 확인하는 과정이고, 권한 부여란 이 사용자가 어떤 기능까지 사용할 수 있는지를 제한하는 과정입니다. 이 두 개념은 다르게 보이지만 서버 보안의 핵심입니다.

제 경험상 이 개념이 중요하다는 걸 제대로 느낀 건 마이페이지 구조를 공부할 때였습니다. 로그인한 사용자만 자신의 주문 내역을 볼 수 있어야 하고, 다른 사람의 정보는 볼 수 없어야 합니다. 이 제한을 구현하는 게 서버입니다. 서버는 세션(Session)이나 JWT(JSON Web Token) 같은 방식으로 사용자의 로그인 상태를 유지하고, 요청마다 권한을 확인합니다. 여기서 JWT란 사용자 정보를 암호화해서 토큰 형태로 주고받는 인증 방식으로, 서버가 별도의 저장소 없이도 사용자를 식별할 수 있게 해 줍니다.

보안이 약한 서버는 개인정보 유출이나 계정 탈취로 이어질 수 있습니다. 그래서 서버 개발에서는 비밀번호를 그대로 저장하지 않고 해시(Hash) 처리하는 것이 기본입니다. 여기서 해시란 원래 값을 알아볼 수 없는 고정 길이의 문자열로 변환하는 방식으로, 비밀번호가 유출되더라도 원본을 복원하기 어렵게 만듭니다. 국내 개인정보 보호 규정상 비밀번호의 안전한 암호화 저장은 의무 사항이기도 합니다(출처: 개인정보보호위원회).

서버 개념을 이해하면 클라우드(Cloud)가 왜 등장했는지도 자연스럽게 연결됩니다. 예전에는 회사가 직접 물리 서버를 구매하고 관리해야 했습니다. 하지만 지금은 AWS, Azure, Google Cloud 같은 클라우드 서비스를 통해 서버 자원을 필요한 만큼 빌려 쓸 수 있습니다. 제가 공부하면서 느낀 건, 클라우드가 단순히 편리한 것이 아니라 서버 확장성(Scalability) 문제를 해결하기 위해 나온 개념이라는 점이었습니다. 사용자가 갑자기 몰릴 때 서버를 빠르게 늘리고, 트래픽이 줄면 줄일 수 있다는 게 핵심입니다.

서버를 처음 공부할 때 장비 중심으로 설명된 자료를 먼저 접하면 거리감이 생기기 쉽습니다. 저도 그랬습니다. 그런데 사용자의 요청을 받아 처리하고 응답을 돌려주는 시스템이라는 한 줄만 잡고 시작하면, 이후에 나오는 백엔드, API, 데이터베이스, 클라우드, 인증 같은 개념들이 모두 이 흐름 위에 얹히는 구조라는 게 보입니다.

서버 개념 하나를 제대로 이해하고 나면 IT의 상당 부분이 연결되기 시작합니다. 백엔드 개발이 무엇인지, API가 왜 필요한지, 클라우드가 어떤 문제를 해결하는지까지 흐름이 보입니다. 어렵게 외우려 하기보다, 요청과 응답이라는 구조에서 출발해 하나씩 연결해 보시길 권합니다. 그게 저한테는 가장 빠른 방법이었습니다.

서버를 이해하면 백엔드와 클라우드 개념도 쉬워진다

서버 개념을 이해하면 다른 IT 개념도 더 쉽게 연결됩니다. 백엔드 개발자는 서버에서 동작하는 기능을 만드는 사람에 가깝습니다, 사용자의 요청을 처리하고, 데이터베이스와 연결하며, API를 만들고, 인증과 권한을 관리합니다. API도 서버와 연결됩니다. 프런트엔드가 서버에 데이터를 요청하고, 서버가 응답을 보내는 약속된 통로가 API입니다.

클라우드 역시 서버와 관련이 깊습니다. 예전에는 회사가 직접 물리 서버를 구매해 운영하는 경우가 많았지만, 지금은 AWS, Azure, Google Cloud 같은 클라우드 서비스를 통해 서버 자원을 빌려 쓰는 경우가 많습니다. 즉, 서버를 이해하면 웹사이트 구조, 앱 구조, 백엔드, 데이터베이스, 클라우드, 보안까지 자연스럽게 연결해서 볼 수 있습니다.

IT 입문자라고 서버를 단순히 어려운 장비로만 볼 필요는 없습니다. 먼저 사용자의 요청을 받아 처리하고 결과를 돌려주는 시스템이라고 이해하면 충분합니다. 서버는 웹사이트와 앱이 실제로 작동하도록 만드는 중요한 구조로 사용자의 요청을 받고, 데이터를 처리하고, 필요한 정보를 찾아 응답하며, 보안과 권한 관리까지 담당합니다.

정리하면 서버가 필요한 이유는 다음과 같습니다.

  • 사용자의 요청을 처리하기 위해 필요합니다.
  • 데이터를 저장하고 불러오기 위해 필요합니다.
  • 여러 사용자가 동시에 서비스를 이용할 수 있게 합니다.
  • 로그인, 권한, 보안 기능을 관리합니다.
  • 웹사이트와 앱의 동적인 기능을 가능하게 합니다.
  • 백엔드, API, 데이터베이스, 클라우드 개념과 연결됩니다.

서버는 단순히 큰 컴퓨터가 아닙니다. 서비스가 사용자와 소통하고, 데이터를 주고받고, 안정적으로 운영되도록 돕는 핵심 시스템입니다. IT를 처음 공부한다면 서버를 어렵게 외우기보다, 사용자의 요청을 처리하는 중심 역할로 이해하는 것이 좋습니다. 이 개념이 잡히면 웹 개발과 앱 개발, 백엔드 공부도 훨씬 쉽게 연결될 수 있습니다.