Django kickoff

최창환·2022년 3월 9일
0
post-thumbnail

드디어 Django를 배우기 시작하면서 여러가지 개념을 공부하게 되었다.
kickoff session때 배운 백엔드 개발자들이 하는 일의 전반적인 흐름과 Django란 무엇인지에 대해 알아보자.


Web Framework

동적인 웹 페이지나, 웹 어플리케이션, 웹 서비스 개발 보조용으로 만들어지는 애플리케이션 프레임워크의 일종이다.
즉 특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램이다.
웹페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 주 목적으로 통상 데이터베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 등의 기능을 포함하고 있다.


Django?

python기반으로 작성된 오픈소스 Web Framework이다.
즉 python 언어를 기반으로한 동적인 웹을 작성하는데 있어 장고라는 기본 개념 구조 요소를 이용하여 개발하게 되는 것이다.
Django를 통해 개발하게 되면 웹 개발에 있어 번거로운 요소들을 새로 개발할 필요 없이 내장된 기능만을 이용해 빠른 개발을 할 수 있다.


MVT 패턴

Django는 MVT 패턴을 사용하여 3가지 영역으로 나누어 개발을 한다.

Model : Django가 처리하는 데이터베이스에 저장되는 테이블

View : 실질적으로 프로그램 로직이 동작하여 데이터를 가져오고 적절하게          처리한 결과를 템플릿에 전달하는 역할을 수행

Template : 사용자에게 보여지는 UI 부분

백엔드 개발자 RoadMap

하얀색 네모난 공간을 AWS라 하자.
AWS는 Server Deployment Cloud Provider의 종류로서
좋은 환경에서 구성되어 있는 컴퓨터를 원격에서 원격으로 대여해준다. 즉 서버를 빌리고 네트워크를 자유롭게 만들어서 이를 통해 전체 인프라를 구축할 수 있다.(이슈를 많이 줄여줘서 웬만한 경우에 서버가 제대로 돌아가게 해줌)
(AWS는 나중에 더 배우고 블로그 작성 예정)

사진에는 API 서버, 데이터베이스, Load Balancing이 보이는데 Load Balancing은 트래픽이 많이지면 트래픽을 분산시켜줘서 부하를 줄여주는 역할을 한다.

클라이언트에서 요청이 오면 Internet Gateway, Router를 거쳐서 Load Balancing에 도달하는데
Load Balancing에서 API서버의 상황을 보고 여유있는 API서버로 요청을 보낸다.
API 서버는 데이터베이스로 클라이언트가 요청한 데이터에 관한 요청을 보내며 데이터베이스에서 정보를 꺼내오고 역으로 반환되어 클라이언트는 원하는 정보를 얻을 수 있다.


Django workflow


전체적인 흐름을 Django workflow를 통해 정리해보자


요청이 들어옴
-> URL conf에서 분석
-> URF conf에서 정의가 되어있을시 target과 매핑되어 있는 View 로직     실행
-> 데이터베이스와 통신이 필요없는 경우 바로 응답
-> 데이터베이스와 통신이 필요한 경우 Model파일에 권한을 위임
-> Model파일이 데이터베이스와 통신하여 결과를 View에 반환
-> View에서 최종적으로 결과를 가공하여 클라이언트에 전달





2차 프로젝트가 끝났을 때 위의 사진대로 서버를 구축해서 배포하는 것을 목표로 잡으라고 멘토님께서 말씀해주셨는데 막막해보이긴 하지만 일단 이를 목표로 열심히 달려야겠다.
RoadMap을 통해 백엔드 흐름의 큰그림을 잡으면서 내가 할 수 있는 것부터 차근차근 정리해나가다 보면 언젠가는 목표에 도달할 수 있지않을까?

profile
포기하지 않는 개발자

0개의 댓글