[CS] Django / Compiler / Interpreter

finelinefe·2020년 12월 8일
0

CS

목록 보기
7/46

Django 특성 정리

파이썬 기반의 웹 프레임 워크 중 하나이다.

1) 장점 : 로그인, 회원가입, 인증, CORS 등 반복적인 작업을 요구하는 부분에 대해선 별도의 라이브러리를 이용해 쉽게 구현 가능. 또한 장고 내의 템플릿에 html 파일을 넣어 연동이 가능하다. (이 경우 Django Template Language)를 통해 조작. 장고의 models.py는 입력 자체로 데이터베이스 상의 테이블을 작성해주는 등 편리함이 있다.

2) 단점 : 파이썬은 일반적으로 인터프리터 언어이다. 그렇기 때문에 프로그램의 실행 특성상 시간이 걸리며 에러의 경우 차후에 발견될 가능성이 있다.(한 줄씩 해석하는 컴파일 언어와는 다름). 뿐만 아니라 장고의 경우 임의 기본 세팅 된 것이 있기 때문에 타 웹 프레임워크와 다르게 사용자의 기호와 편의에 따라 커스텀하기 어렵다.

[django] 로컬 DB와 서버 DB 구조 차이로 인한 migrate conflict 날 경우 해결

일반적으로 장고에서는 makemigrations를 사용해 데이터베이스 구성을 위한 models.py의 변경사항을 알려준다. 그 이후 migration 폴더가 생성되는데 이를 잘 확인해야한다.

뿐만 아니라 makemigrations / migrate 뒤에 별도의 (앱 이름)을 추가하여 특정 기능별로 마이그레이션을 진행할 수 있으며 showmigrations를 통해 적용사항까지 확인할 수 있다.

번외

1) CORS(Cross-origin-resource-sharing) : 다른 도메인 상에서의 자원 허용을 관리한다. 웹 페이지상에서 제한된 리소스를 최초 서비스한 도메인 외의 다른 외부 도메인들도 요청할 수 있게 허용한다.

(2) ~ (3) 여기서 수준의 높고 낮음의 질을 말하는것이 아니라 컴퓨터와 같은 기계어에 가까운지, 인간이 말하는 자연어에 가까운지를 말한다. 일반적으로 고수준 언어의 경우 가독성이 높지만 그만큼 해석하는데 많은 시간이 든다. 그렇기 때문에 처리 효율이 낮다.

2) 컴파일러 : 고급 언어. 인간이 이해할 수 있는 고수준의 언어로 작성된 경우 원시코드(Source Code)는 실행 전에 목적코드(Object Code)로 변환해야한다. 목적코드는 컴퓨터가 실행 할 수 있는 코드를 말하는데 이것을 번역하는 과정을 컴파일(Compiling)이라고 한다. 즉, 컴파일러란 원시코드를 실행할 수 있게 목적코드로 번역하는 프로그램을 말한다. 그렇기 때문에 한줄 단위로 실행되며 오류사항을 잘 발견할 수 있다.(ex. Java, C++ etc)

3) 인터프리터 : 인터프리터는 컴파일러와 다르게 원시코드 자체를 바로 실행한다(ex. 리스프, 베이직 etc). 원시코드를 번역없이 바로 실행하기 때문에 컴파일러보다 실행속도가 느리며 처리의 효율성이 떨어진다. 또 오류사항의 경우 차후에 발견될 가능성도 농후하다(오류 발견보다는 실행 중점?).


4) MVC pattern : Model, View, Controller. 모델의 경우 데이터베이스에 저장되는 테이블을 생성한다. 뷰(템플릿)는 사용자에게 보여지는 부분으로써 인터페이스 역할을 담당한다. 컨트롤러의 경우 가져온 데이터를 템플릿에 저장한다.

5) ORM(Objec-Relational-Mapping) : 객체와 관계형 데이터베이스를 연결한다. 쿼리셋 형식으로 반환한다. 별도의 sql 문을 사용하지 않고도 스키마를 구성할 수 있으며 접근도 가능하다.



CORS
얄팍한 코딩사전 : MVC

0개의 댓글