장고 프레임워크 이해하기

justyoon·2023년 4월 10일
1

AI5 Python/Django

목록 보기
21/31
post-thumbnail

정의

Django는 파이썬 기반 무료 오픈소스 웹 애플리케이션 프레임워크(Open Source Web Application Framework) 입니다

웹 애플리케이션 프레임워크(Web Application Framework)란 웹 애플리케이션(우리가 흔히 아는 웹 페이지들)을 개발할 수 있도록 만들어 놓은 하나의 작업장입니다.
여기서 오픈소스(Open Source)란 장고(Django)를 구성하는 코드들이 온라인상으로 언제든 참조할 수 있게 열려있다는 말입니다.

프레임워크 (framework) 이해하기

언어별로 사용가능한 다양한 프레임워크들

문득 왜 이런 프레임워크라는 작업장을 만들어 놓았는지? 궁금해집니다.
간단히 말해 웹을 개발할 때 굉장히 빈번하게 반복적인 문제를 해결해야 될 때가 많기 때문입니다.

  • 예를들면 사용자들의 회원가입, 로그인, 로그아웃 등의 사용자 인증 및 관리 문제, 아니면 게시판과 같이 사용자들이 커뮤니케이션을 할 수 있는 공간을 마련하여 업로드, 다운로드를 할 수 있도록 하는 문제 등이 이에 해당합니다.

  • 하지만 우리가 아는 거의 모든 웹 페이지들은 이러한 기능들을 기본적으로 제공합니다. 그렇다면 우리도 그러한 웹을 서비스 할 때 유저들의 기대치를 충족하기 위해 기본적인 기능들을 제공해야 한다는 말입니다.

  • 이러한 편리한 개발 기능들을 만들어 놓은 환경이 바로 프레임워크입니다.

웹 환경(web) 이해하기

그렇다면 웹을 프레임워크에서 어떻게 개발을 할까요? 그리고 웹은 어떤식으로 작동을 하게 될까요? 프레임워크에서 어떻게 개발을 해나가야 되는지는 앞으로 계속 포스팅을 할 예정입니다. 그전에 웹이 어떻게 작동하는지에 대해서만 조금 이야기를 하겠습니다.

  • 우리는 웹 브라우저(Web Browser 예를들면 Chrome, Internet Explorer, FireFox 등)를 보면서 여러 행동을 하게됩니다.
  • 사용자의 모든 행동들은 웹 브라우저를 통해 서버(Server)로 "나는 지금 어떤 행동을 하고 싶다"를 편지의 형태로 보내게 됩니다. 이것을 요청(Request)이라 합니다.
  • 그렇다면 서버(Server)는 사용자가 보낸 편지에 답장을 해줘야겠죠. 이것을 응답(Response)이라고 합니다.
  • 서버는 응답을 브라우저를 통해 보여주게 되고, 그렇게 되면 사용자는 그 브라우저를 통해 자신이 요청한 사항에 대하여 적절한 응답을 보게 되는겁니다.

특징

  • 장점
  1. 고차원 언어인 Python을 기반으로 동작하기 때문에 익히기 쉽다.
  2. 익히기 쉬운 만큼 개발속도도 빠르고, 코드 완성도를 높게 유지할 수 있으며 확장성도 좋아서 개발 비용을 크게 절감시킬 수 있다.
  3. 웹 애플리케이션이 제공되어야하는 사용자 인증, 사용자 관리 등을 기본적으로 기능 구현이 되어 있다.
  4. 성공적인 비즈니스 모델 사례가 많다. (Instagram이 대표적인 사례.)
  5. 하드웨어에 접근하고, Data Science나 이미지 압축 등을 해야한다면 Django를 사용한다. 하드웨어 접근에는 Node.js는 도움이 되지 않는다. 왜냐햐면 JavaScript는 메모리나 램, 즉 하드웨어에 접근할 수 없기 때문이다. JavaScript는 하드코어한 처리를 위해 설계된 것이 아니기 때문에 만약 이러한 것들을 하고 싶다면 Django를 쓰는 것이 좋다.
  • 단점
  1. Python을 기반으로 하기 때문에 비교적 쉬운 언어이지만, Python이 객체 지향 개념이 포함된 프로그램이므로, 객체 지향 프로그램에 대한 이해도가 필요하다.
  2. Python의 단점을 대부분 포함한다.
    예시: Django의 경우 python을 언어로 사용하는데 Python은 비동기 언어가 아니기 때문에 실시간 처리를 할 element가 없다. 그렇기 때문에 만약 채팅 기능을 만들고자 한다면 Node.js가 필요할 것이다.
  • 수정) coroutine을 사용하면 채팅기능을 장고에서도 구현 가능합니다.
  1. 데이터를 다루는, 특히 실시간 처리 관련 성능이 다른 웹 애플리케이션의 프레임워크(Node.js 등)보다 좋지는 못하다.
  2. 한글화된 문서가 그렇게 많지 않다.
profile
with gratitude, optimism is sustainable

0개의 댓글

관련 채용 정보