5. Django의 프로세스는 어떤 순서로 동작합니까?
1. 클라이언트 요청 수신: 클라이언트로부터 HTTP Request 요청을 받습니다.
2. URL 매핑 : urls.py에 정의된 url 패턴들과 요청된 url을 비교하여 일치하는 url 패턴과 연결된 뷰 함수 또는 클래스를 찾습니다. 해당 view가 호출됩니다.
3. 뷰 처리: 뷰 함수는 클라이언트의 요청을 처리하고 모델과 상호작용하여 데이터베이스의 데이터를 읽거나 수정합니다.
4. 템플릿 렌더링: 뷰 함수에서 처리된 데이터는 템플릿(Template)을 이용하여 html 페이지로 렌더링됩니다. 이 때 처리된 데이터를 html에 삽입하여 동적인 컨텐츠를 생성하며, 이는 사용자에게 보여지는 부분이 됩니다.
5. HTTP 응답 반환: 뷰에서 리턴된 html 페이지와 함께 HTTP 응답을 생성하여 클라이언트에게 response를 반환합니다.
6. 클라이언트 응답 수신: 클라이언트는 서버로부터 받은 응답을 처리합니다.
6. Django의 MTV 패턴 시스템은 무엇입니까?
MTV는 Model-Template-View 패턴입니다.
모델은 데이터베이스와 관련된 부분으로, 데이터베이스 스키마를 정의하고 데이터베이스와의 상호작용을 담당합니다. 데이터의 구조를 정의하는 클래스로서, 각 모델 클래스는 데이터베이스 테이블과 매핑됩니다.
템플릿은 사용자에게 보여지는 부분으로, 뷰에서 처리한 데이터를 템플릿에 전달하여 사용자에게 보여줍니다. 반복문, 조건문 등의 기능으로 동적 콘텐츠를 생성합니다.
뷰는 클라이언트로부터 들어온 요청을 처리하고, 해당 요청에 대한 적절한 데이터를 처리해 템플릿에 전달합니다
7. ORM은 무엇인가요?
ORM은 Object Relational Mapping으로, 객체 지향 프로그래밍 언어를 사용하여 데이터베이스와 상호 작용합니다. 객체 지향 프로그래밍에서 사용하는 객체를 관계형 데이터베이스 테이블과 연결해 데이터를 관리하고, SQL 쿼리를 사용하지 않고 관리할 수 있습니다.
8. Django ORM의 장단점은 무엇입니까?
장점
- SQL 쿼리를 작성하지 않고도 데이터베이스를 관리할 수 있게 해줍니다.
- ORM을 사용하면 데이터베이스 종류에 상관없이 동일한 코드를 사용하여 데이터베이스를 조작할 수 있습니다. 이를 통해 유지보수성도 향상시킬 수 있습니다.
- 객체 간의 관계를 지원하며, ForeignKey, OneToOneField, ManyToManyField 등을 사용하여 데이터베이스 간의 관계를 표현하고 다룰 수 있습니다.
단점
- 간단한 SQL 쿼리를 직접 작성하는 것보다 성능이 느릴 수 있습니다. 특히 대규모 데이터베이스 작업에서는 성능에 영향을 미칠 수 있습니다.
- 오히려 복잡한 쿼리를 작성할 때에는 SQL문을 사용하는 것이 효율적일 수 있습니다.
- 일부 특정한 데이터베이스 엔진 기능이나 성능 최적화를 위해 직접 SQL을 작성해야 할 수도 있습니다.
9. Django Admin은 무엇입니까?
Django Admin은 관리자 인터페이스로, 개발 과정에서 데이터베이스의 내용을 직접 관리할 수 있습니다. 데이터베이스 모델에 대해 CRUD를 수행할 수 있습니다.필요에 따라 커스터마이징할 수 있으며, 관리자 권한을 설정하여 특정 사용자만 관리자 페이지에 접근하도록 할 수 있습니다.
10. Django Template Engine을 통해서 무엇을 할 수 있습니까?
Django Template Engine은 장고에서 사용되는 템플릿 시스템으로, 동적인 HTML 콘텐츠를 생성하기 위한 기능을 제공합니다. 템플릿 엔진은 HTML 코드 내에서 변수, 반복문, 조건문, 필터 등을 사용하여 사용자에게 동적인 웹 페이지를 보여줄 수 있습니다. 템플릿 변수를 사용하여 데이터를 HTML 페이지에 출력할 수 있고, 또한 템플릿 상속을 지원하기 때문에 기본 템플릿을 정의할 수 있습니다. 따라서 공통된 레이아웃을 정의하고, 여러 페이지에서 해당 레이아웃을 상속받아 사용할 수 있습니다.
11. Django를 통해 CRUD를 구현하는 방법에 대해 HTTP Method와 함께 설명하시오
Create (POST): 데이터 생성
HTTP Method: POST
Read (GET): 데이터 조회
HTTP Method: GET
Update (PUT/PATCH): 데이터 수정
HTTP Method: PUT / PATCH
PUT - 전체 데이터를 업데이트 / PATCH - 일부 데이터만 업데이트
Delete (DELETE): 데이터 삭제
HTTP Method: DELETE
GitHub 댓글