웹 개발 – 장고(Django) 튜토리얼 #1(장고 소개하기)

역자의 메모

이 번역을 하면서 나는 장고걸스 튜토리얼을 내 기억 속에 더 잘 남기고자 한다. 내가 임의로 가감한 부분도 있을 수 있다.

장고란 무엇인가?

Django(쟁고, 장고)는 파이썬으로 작성된 자유/오픈소스 웹 어플리케이션 프레임워크입니다. 웹 프레임워크는 웹 사이트를 더욱 빠르고 쉽게 만들 수 있게 해주는 부품 키트 같은 존재입니다. 혹은 역자는 웹 개발 스타터 키트이라고 하고 싶군요.

웹사이트를 만들 때에 항상 비슷한 비슷한 컴포넌트 꾸러미가 필요합니다. 회원가입, 로그인, 로그아웃 같은 사용자 인증을 처리하기 위한 수단과 웹사이트 관리 패널, 폼(form) 양식 그리고 파일을 업로드하기 위한 수단 등이 있겠습니다.

운이 좋게도 다른 사람들이 오래 전에 이미 웹 개발자들이 새로운 웹사이트를 구축할 때 비슷한 문제들을 직면한다는 것을 알아차리고는 팀을 이루어서 프레임워크라는 것을 만들었습니다(장고도 이 중 하나). 프레임워크는 사용을 위해 미리 만들어 준비된 부품들입니다.

프레임워크는 ‘바퀴를 다시 발명’하지 않아도 되도록 하고 웹 사이트 구축시 작업량을 경감해줍니다.

프레임워크는 왜 필요한가?

장고가 무엇에 쓰는 것인지 이해하기 위해선 서버가 뭔지 더 자세히 알아봐야 합니다. 첫 번째 봐야할 것은 서버를 시켜서 서비스받고 싶은 웹 페이지가 있다는 사실을 서버가 아는 것입니다.

날아오는 편지들(요청)이 모니터링되는 우편사서함(포트)을 상상해보세요. 웹 서버가 이 일을 합니다. 웹 서버는 편지를 읽고 웹 페이지와 함께 응답을 보냅니다. 하지만 뭔가를 보내고 싶을 때에는 내용이 있어야 합니다. 장고는 바로 그 내용을 만들게 당신을 도와주는 역할을 합니다.

누군가가 서버로부터 웹사이트를 요청할 때 무슨 일이 일어나나?

웹 서버로 요청(request)이 들어왔을 때 이 요청은 장고로 전달됩니다. 장고는 실질적으로 무엇을 요청받았는지 알아차리고자 합니다. 먼저 웹 페이지 주소를 받고 그 다음엔 뭘 할지 판단합니다. 이 부분은 장고(Django)의 urlresolver(URL리졸버, 해결자)에 의해 핸들링됩니다. URL리졸버는 그렇게 똑똑하지 않습니다. 패턴 목록을 받아서 URL와 매칭시키려 합니다. 장고(Django)는 리스트의 맨 위에서 맨 아래까지 체크한 후 뭔가가 매칭되면 요청을 뷰(view)라고 불리는 연관된 함수(function)로 전달합니다.

편지를 가진 우편 배달원을 상상해보세요. 그는 길을 걸어내려가며 매번 주택 번지수를 편지에 쓰여있는 번지수와 비교해갑니다. 만약 매칭이 된다면 거기다가 편지를 놓고 가겠지요. 이게 URL리졸버가 작동하는 방식입니다.

view 함수 내에서는 모든 흥미로운 일들이 처리됩니다. 어떠한 정보를 찾기 위해 특정 데이터베이스를 참고할 수 있습니다. 아마도 사용자가 데이터 내에 무언가를 변경하도록 요청했을 수 있습니다. "제 직업을 설명하는 부분을 바꿔주세요"와 같이 말이죠. view 함수는 당신이 그것을 하도록 허용되어 있는지 확인한 후, 직업 설명에 해당하는 부분을 바꾸고 "완료!"라는 메시지로 답해줄 수 있습니다. 그리고는 view 함수는 응답(response)을 생성하고 장고는 그것을 사용자의 웹 브라우저로 보낼 수 있습니다.

위 설명은 좀 단순화된 것입니다. 하지만 아직 모든 기술적 내용을 다 알 필요는 없습니다. 대략적인 그림을 머릿속에 그릴 수 있게 된 것으로 충분합니다.

그러니 너무 디테일한 부분으로 뛰어드는 것 보단, 장고로 뭔가 만들기 시작하면서 모든 중요한 부분들을 배워봅시다!

출처

https://tutorial.djangogirls.org/en/django/

Leave a Reply