Flask를 시작하기 전

Flask를 시작하기 전의 기초지식

Minwoo Kang
4 min readMar 25, 2018
“Two people in elegant shirts brainstorming over a sheet of paper near two laptops” by Helloquence on Unsplash

파이썬을 취미로 공부하던 중 플라스크로 백엔드를 만지는 형을 만나게 되었고 그때부터 플라스크를 시작하기로 마음먹었다.

웹에 대해서 많은 지식이 없는 나는 그때부터 웹에 대해서 찾아보기 시작했다.

플라스크가 백엔드를 만질 때 쓴다는데 백엔드가 뭘까?

백엔드가 무엇인지 찾아보기 전에 웹의 통신 과정이 어떻게 되는 것인가 그것에 대해 찾는 것이 먼저라고 생각했다.

위의 사진은 구글링을 통해서 찾은 사진이다.

영어를 잘 읽지는 못하지만 그림으로 대충 어떤 과정을 거치는지 알 것 같다.

  1. 사용자가 브라우저를 통해 http://host:port/path/file 이라는 URL로 접근하게 되면
  2. 브라우저는 서버로 요청을 보내게 된다.
  3. 그러면 서버에서 해당 URL을 문서 디렉토리에 있는 파일 혹은 프로그램에 매핑을 해준다.
  4. 그 후 서버에서 클라이언트로 응답 메시지를 되돌려 주고
  5. 브라우저에서 응답 형식을 지정해주고 화면으로 보여준다.

잘 해석한 것인지는 모르겠지만 정리하면 이런 것 같다.

여기서 한 가지 의문점이 더 든다.

Client와 HTTP, Server은 무엇을 말하는 걸까?

Client는 고객을 지칭하니까 서비스를 이용하는 우리를 말하는 것 같다.

하지만 HTTP와 Server의 정확한 뜻은 잘 모르겠어서 찾아보았다.

찾아본 결과 HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이라고도, 웹과 클라이언트-서버 모델 상에서 모든 데이터 교환의 기초라고도 하는데 사실 감이 다 잡히지는 않는다.

하지만 그림에서도 봤을 때 Client와 Server 사이에 HTTP가 위치하고 있는 것을 보아 서버와 클라이언트가 통신하는데 이용되는 방식(?)이라고 생각하면 될 것 같다.

그렇다면 서버는?

서버를 프로그램이 돌아가는 중심이라고 대충 예상을 해보았다.

찾아보니 서버는 어떤 특화된 임무를 수행하기 위해 설정된 컴퓨터를 지칭한다고 한다.

대충 예상한 것과 비슷한 것 같다.

이것저것 알아보다보니 메인 질문에 좀 엇나간 느낌이 들지만 다시 돌아가서 그렇다면

백엔드는 무엇?

이것도 어김없이 구글링을 해보았다.

백엔드를 설명하기에 앞서서 웹 개발에 대해서 알아야하는데(알게 왜 이렇게 많아…;;)

웹 개발은 프론트엔드, 백엔드로 나뉜다고한다.

프론트엔드가 클라이언트, 백엔드가 서버 분야라고 생각하면 될것 같은데

역할에 대해서 쉽게 말하면

프론트엔드는 사용자가 직접 눈으로 보면서 다루는 부분을 말하고, 백엔드는 사용자들의 요청에 대해 처리하고 다시 프론트엔드로 처리된 결과를 전달해 준다고 보면 될 것 같다.

구글링을 하며 본 사진을 이해에 도움이 될 것 같아 가져와보았다.

카운터(프론트엔드)가 주문 내역(데이터)을 주방(백엔드)로 전달하게 되면 주방(백엔드)에서 주문에 맞게 만든 음식(처리된 데이터)을 다시 카운터(프론트엔드)로 전달하는 형식이다.

이렇게 나는 웹개발을 시작하기 전에 알아야할 것 같은 지식들에 대해서 정리해보았다.

플라스크를 공부할 준비가 된 것 같으니 다음 포스팅에는 플라스크에 대해서 알아보는 것으로 올 예정이다.

--

--