웹에서의 프론트 서버 / 백엔드 서버 (개념) - 네트워크 study6

김태은·2020년 1월 28일
6

네트워크 공부

목록 보기
6/6

1. 서버?

서버(server) : 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터를 의미한다.

말그대로 어떤 요청을 원하는 대상에게 요청에 대한 응답을 넘겨주는 모든 것들을 (serve + er) 서버라고 함.

그렇다면 웹에서는 서버는 어떻게 동작할까?

2. 웹에서의 서버

먼저 웹 환경에서는 브라우저가 클라이언트 역할을 한다.

주소에 어떤 도메인이나 컴퓨터 주소를 치면 해당 컴퓨터(서버)가 요청에 대한 응답을 하는데

이 때, 보통은 프론트 서버, 백엔드 서버로 나뉘어짐.

3. 프론트 서버

프론트 서버는 어떤 주소에 대한 요청을 보냈을 때, markup Language (html ,css) 를 보내줘서

사용자에게 GUI 환경을 제공해주는 서버를 의미한다. (화면을 그려주는 역할)

  • react, next, styled component, redux 등등

4. 백엔드 서버

백엔드 서버는 프론트 서버와 통신하는 컴퓨터로도 볼 수 있는데

사용자가 프론트서버에서 어떤 동작을 하였을 때, 사용자 정보나 해당 어플리케이션의 데이터에 접근하는 것을 가능하게 해주는 서버를 의미한다.

  • DB, express, rest API(통신방식) 등등

5. 프론트, 백엔드 분리 이유

사실, GUI 환경을 제공하는 컴퓨터와 어플리케이션 데이터들을 제공하는 컴퓨터를 한 곳에 둘 수도 있지만,

데이터가 많아지면 분리해서 따로 컨트롤 하는 것이 좋다.
1. 속도적인 측면 : 서버를 한 곳에 모아둘 경우, 속도가 느리다.

  1. 관리적인 측면 :
  • 화면을 그려주는 방식과 데이터를 제공하는 방식은 많이 달라서 따로 분리해서 관리
  • 서버를 추가할 때도 프론트, 백엔드 중 필요한 부분만 추가하거나 할 수 있음.

6. 프론트, 백엔드 분리 문제점 : CORS 이슈

프론트 , 백엔드를 분리해서 통신을 하게되면

각자 다른 컴퓨터가 서로 통신을 하는 것이기 때문에 cors 문제가 발생.

서버에서 프론트의 요청을 허용해주는 작업을 따로 해주어야한다.

CORS (Cross-Origin Resource Sharing) : 추가 HTTP 헤더를 사용하여 브라우저에게 한 출처에서 실행중인 웹 응용 프로그램의 다른 출처의 선택된 자원에 대한 접근 권한을 알려주는 메커니즘

profile
프론트엔드 개발 공부블로그

2개의 댓글

comment-user-thumbnail
2021년 4월 21일

감사합니다

답글 달기
comment-user-thumbnail
2022년 4월 8일

좋은 정보 잘 보고 갑니다.

답글 달기