2021. 12. 23. 14:07ㆍ강의 정리/Django 기초
장고(Django)를 배우기 시작한 입문자이시거나, 또는 배우고 싶은 생각이 있으신 분은 위 출처의 강의를 적극 추천드립니다!!!
현재 웹프론트엔드 개발과 스마트폰 애플리케이션 개발이 중점이 되면서 서버에 대한 API 서버가 필요해짐
이 API 서버를 개발할 때 바로 백엔드, 즉 Django가 필요해짐
웹서비스가 필요한 이유?
- 서버의 역할을 하기때문에
- 모든 서비스의 근간이기 때문에
웹서비스들을 만들때마다 반복되는 것들을 표준화 해서 묶어놓은 것 즉 반복을 줄여주는 것이 각 언어의 웹프레임워크이다. (Django, Flask)
- Django : 백엔드 개발에 필요한 거의 모든 기능을 제공(입문자에게 매우 적합)하고 중복된 작업을 최대한 줄여주는 프레임워크
- Flask : 백엔드 개발에 필요한 일부분의 기능을 제공 ORM으로서 SQLAlchemy를 주로 사용
Django의 장점
- 파이썬을 사용한다는 것 즉 언어 하나를 통해 여러 작업을 할 수 있기 때문에 가성비가 좋다는 것(웹서비스, 머신러닝, 웹크롤링등등)
- 커뮤니티가 활성화 되어있다는 것
- 풀스택 웹프레임워크라는 것
- 백엔드 개발에 필요한 거의 모든 것을 Django에서 직접 지원
- API 개발에 필요한 거의 모든 것을 django-rest-framework에서 지원
강사님이 추천해주신 조합
- Django + React + typescripts
장고는 MTV 프레임워크이다.
- Model -> 장고의 Model #데이터베이스 SQL 쿼리를 생성/수행
- View -> 장고의 Template #복잡한 문자열 조합을 도와준다.
- Controller -> 장고의 View #HTTP 클라이언트로부터의 요청을 처리하는 함수
강사님의 조언
- 백엔드는 서비스의 중심이다. 백엔드 / 서비스운영을 먼저 탄탄하게 하고나서, 그 후에 프론트/앱을 고민하는 것이 순서에 맞다.
강의에서 사용할 Skill
- 웹 서비스 및 API : 파이선 / Django
- 웹 프론트엔드 : 리액트와 jQuery
- 인프라 : Paas(Platform as a Service) 혹은 Serverless 플랫폼
Paas란?
- 하드웨어 및 애플리케이션 소프트웨어 플랫폼이 제3사를 통해 제공되는 클라우드 컴퓨팅의 한 가지 형태입니다. 주로 개발자와 프로그래머가 사용하는 PaaS는 보통 해당 프로세스와 관련된 인프라 또는 플랫폼을 구축하고 유지관리할 필요 없이 자체 애플리케이션을 개발, 실행 및 관리 할 수 있도록 해줍니다.
- PaaS 제공업체는 자체 인프라에서 하드웨어와 소프트웨어를 호스팅하고 이러한 플랫폼을 사용자에게 통합 솔루션, 솔루션 스택 또는 인터넷을 통한 서비스로 제공합니다.
출처 : https://www.redhat.com/ko/topics/cloud-computing/what-is-paas
데코레이터 문법이란?
- 클래스에서 메서드를 만들 때 @staticmethod, @classmethod, @abstractmethod 등을 붙였는데, 이렇게 @로 시작하는 것들이 데코레이터입니다. 즉, 함수(메서드)를 장식한다고 해서 이런 이름이 붙었습니다.
출처 : https://dojang.io/mod/page/view.php?id=2427
현재 시대는 웹 문서 시대에서 웹 애플리케이션의 시대 바뀌었다.
- 웹문서에서는 컴포넌트나 링크를 클릭할 때 페이지가 바뀌는 식으로 이벤트가 일어났지만, 웹 어플리케이션에서는 페이지가 바뀌지않고 UI적 변화만 일어난다.
웹문서의 기본 동작에서의 화면 전환시에는
- 서버로부터 새로운 화면에 대한 HTML,CSS,JS를 받아옴
- 전체 화면을 새로 그린다.
SPA 방식의 화면 전환
- JS를 통해 화면을 부분적으로 변경한다.
- 필요시에 백그라운드에서 JS로 서버와 통신을 한다.
SPA란?
- 어떤 웹 사이트의 전체 페이지를 하나의 페이지에 담아 동적으로 화면을 바꿔가며 표현하는 것이 SPA이다. 뭔가를 클릭하거나 스크롤하면, 상호작용하기 위한 최소한의 요소만 변경이 일어나게 하는 것
출처 : https://www.huskyhoochu.com/what-is-spa/
최신 자바스크립트를 사용하고 싶은데 브라우저 호환성이 걱정된다면
- module bundler (webpack 등)을 사용해서 코드 변환 ( Transpiling )하면 된다.
트랜스파일링( Transpiling )이란?
- 코드를 변환하는 것인데, 최신 JS 버전을 사용하더라도 낮은 버전의 JS를 지원하는 브라우저 지원을 위해 낮은 버전의 JS코드로 변환하는 트랜스파일링이 필요 ex) babel
React에서 babel 사용을 통해 트랜스 파일링하기
- https://devdongbaek.tistory.com/35?category=1023659
React란?
- React는 상호작용이 많은 UI를 만들 때 생기는 어려움을 줄여주고, 데이터가 변경될 때 적절한 컴포넌트만 효율적으로 갱신하고 렌더링합니다.
React에 대해서 더 자세히 알아보고 싶으신 분들은 동백의 Tistory 글을 살펴보시는 것도 좋은 선택이 되실 것 같습니다!
'강의 정리 > Django 기초' 카테고리의 다른 글
Django 회원 가입 이메일 보내기 (1) | 2022.02.05 |
---|---|
Django User 모델 커스텀 및 회원가입 구현 (0) | 2022.02.04 |
관계를 표현하는 모델 필드 #ManyToManyField (0) | 2022.01.03 |
Django App이란 무엇일까??? (0) | 2021.12.24 |
동백 // Django 설치 및 프로젝트 생성 (0) | 2021.12.23 |