그림 1-4에서 웹 서버(web server)는 클라이언트의 요청을 받아 비교적 간단히 처리할 수 있는 응답은 바로 하고, 처리하기 어려운 요청은 웹 애플리케이션 서버(web application server)로 보냅니다. 웹 애플리케이션 서버는 웹 서버로부터 받은 복잡한 요청을 처리한 후 이를 웹 서버에 반환합니다.
백엔드 개발자는 웹 서비스가 잘 돌아가도록 웹 서버와 웹 애플리케이션 서버를 개발하는 사람입니다. 웨이터와 주방장이 손님의 주문을 잘 처리하도록 관리하고 교육하는 매니저와 같은 존재라고 볼 수 있죠. 따라서 백엔드 개발자는 네트워크, 데이터베이스, 인프라에 대한 지식을 갖추고 있어야 합니다.
• 네트워크 지식: 네트워크에 연결된 클라이언트와 서버 간에 어떤 방식(프로토콜)으로 소통하는지 알고, 이를 구현합니다.
• 데이터베이스 지식: 클라이언트가 요청한 데이터를 처리하기 위해 데이터베이스를 구축하고 데이터를 저장・관리합니다.
• 인프라 지식: 서버를 운영하는 데 필요한 하드웨어와 소프트웨어를 관리합니다. 예를 들어 클라이언트의 요청이 서버가 감당하기 어려울 정도로 증가하면 서버 장비를 증설하는 등 인프라를 관리합니다.