1-1) 웹 개발의 구조
1-2) 서버의 동작 원리
1-3) 백엔드 개발자가 하는 일
1-4) 백엔드 로드맵 소개
웹이란 간단히 말하자면 인터넷이라는 네트워크 공간 안에서 HTTP 프로토콜을 사용하여 데이터를 공유하는 방식을 말한다.
웹이란 HTTP 프로토콜을 사용하여 데이터를 공유하는 방식을 말하기 때문에 웹 개발은 해당 데이터를 공유 및 처리하기 위한 개발을 한다는 것이라고 볼 수 있다.
예전에는 한 사람이 모든 개발을 했었지만,
점차 웹의 규모가 커짐으로서 현대에서는 클라이언트와 백엔드 라는 2가지 영역으로 세분화 되었다.
프론트엔드 개발자가 하는일은 크게 2가지다.
1) 사용자 인터페이스 부분을 개발하는 것.
2) 네트워크 통신망을 통해 데이터를 송수신하는 것.
백엔드 개발은 웹 애플리케이션에서 사용자가 보지 못하는 영역, 즉 서버와 DB를 관리하는 일을 한다.
좀 더 구체적으로는 아래와 같은 일을 맡는다고 볼 수 있다.
1) 클라이언트에 요청을 처리할 수 있는 기능(API)을 개발하는 것.
2) 요청에 필요한 데이터를 제공하기 위한 데이터베이스와 상호작용 하는것.
백엔드 개발자가 하는일은 구체적으로 5가지로 나눌 수 있다.
1.서버 개발
: 클라이언트에게 들어오는 요청을 접수하고 처리 후 적절한 응답 제공
2.데이터베이스 설계 및 관리
: 웹 애플리케이션의 데이터를 효율적으로 저장 및 관리하기 위한 데이터베이스를 설계 및 관리
3.API 개발
: 프론트엔드와 백엔드가 데이터를 효율적으로 주고받을 수 있도록 하는 인터페이스 개발
4.보안 및 인프라 관리
: 외부 공격으로부터 서버와 데이터 보호 + 안정적인 서비스를 제공
5.네트워크 설정
: 서버와 클라이언트 간의 효율적인 통신을 보장 (로드밸런싱, 캐싱)
클라이언트의 요청을 원활하게 처리하기 위해선 해당 5가지의 과정을 다룰 줄 알아야하기에 많은 시간과 노력이 필요된다.
현대에서 웹에서는 주로 클라이언트-백엔드 모델을 채택하여 사용하고 있다.
이에 따른 통신과정은 아래와 같다.
1)클라이언트 -> 웹 서버
에 무언가 요청
2)웹 서버 -> 웹 애플리케이션 서버
에 데이터 처리 요청
2-알파) (필요에 따라서)웹 애플리케이션 서버 -> 데이터베이스
접근
3)웹 애플리케이션 -> 웹 서버
에 데이터 처리 값 반환
4)웹 서버 -> 클라이언트
요청 응답 및 데이터 반환
웹 서버 : 클라이언트와 웹 애플리케이션 서버 사이에 위치해 있으며, 정적인 콘텐츠 요청은(뷰 템플릿과 같은) 그대로 클라이언트에게 전달하고, 그 외의 동적인 요청은 웹 애풀리케이션에 요청한다.
ex) Apache / Nginx / IIS 등웹 애플리케이션 서버 : 웹 서버로부터 들어온 요청에 맞게 데이터를 추출 및 가공하여 웹 서버에 다시 반환시키는 역할을 담당한다. 필요에 따라선 DB와 상호작용 한다.
ex) Apache Tomcat / 제이보스 / IBM웹스피어 / Oracle 웹로직 등