Framework 51

Django Template Engine은 무엇이고 어떤 기능을 제공합니까?

Django Template Engine은 Django 웹 프레임워크의 일부로서, 동적 웹 페이지를 생성하기 위해 사용되는 도구입니다. Template Engine은 템플릿 파일을 사용하여 데이터와 로직을 결합한 후, HTML 또는 다른 텍스트 기반 출력물을 생성합니다. 이를 통해 웹 애플리케이션의 프론트엔드와 백엔드 사이에 유연한 계층을 제공하며, 개발자와 디자이너간의 협업을 용이하게 합니다. Django Template Engine의 주요 기능은 다음과 같습니다. 변수 치환: 템플릿에서는 중괄호 {{ }} 안에 변수를 넣어 표시할 수 있으며, 이 변수는 런타임에 해당 변수의 값을 치환하여 출력합니다. 태그: Django 템플릿은 다양한 기능을 제공하는 태그를 사용하여 템플릿 로직을 수행할 수 있습니다..

Framework/Django 2023.12.18

_meta

Django의 _meta API는 모델 클래스의 메타데이터에 접근할 수 있게 해주는 기능이다. 이 API를 사용하면 모델의 속성, 필드 및 다양한 메타 정보에 프로그래밍적으로 접근할 수 있다. _meta 속성은 보통 일상적인 웹 애플리케이션 개발에서는 직접적으로 _meta를 사용할 일이 많지 않다. 대부분의 경우에는 간단한 쿼리와 모델 정의만으로 충분하다. 하지만 특정 상황에서 _meta를 사용하는 것이 유용할 수 있다. 동적 쿼리 빌드 모델 간 관계 탐색 일반화된 코드 작성 앱 내 모델 동적 처리 프로젝트 유틸리티 및 도구 개발 정보 가져오는 방식 상수로 남기기 1번에 대한 예시 from django.db import models class Product(models.Model): name = mode..

Framework/Django 2023.12.17

ORM이란?

ORM은 "Object-Relational Mapping"의 약어로, 객체와 관계형 데이터베이스 간의 매핑을 의미한다. 관계형 데이터베이스는 테이블, 행, 열 등의 구조를 가지고 있고, 객체 지향 프로그래밍에서는 클래스, 객체, 상속 등의 구조를 가지고 있다. ORM은 이러한 두 가지 다른 데이터 모델 간의 간극을 줄이기 위해 사용된다. ORM은 개발자가 객체 지향 언어를 사용하여 데이터베이스와 상호 작용할 수 있도록 도와준다. 객체와 데이터베이스 테이블 간의 매핑을 자동으로 처리하며, 개발자는 SQL 쿼리를 직접 작성하는 대신 객체에 대한 조작을 통해 데이터베이스와 상호 작용할 수 있다. 일반적으로 ORM은 언어나 프레임워크에 종속적일 수 있으며, 대표적인 ORM 도구는 Hibernate(Java), ..

Framework/Django 2023.12.16

reverse, reverse_lazy

장고에서 두 함수는 모두 from django.urls import _하여 url을 생성하는 함수이다. 하지만 이름이 다르듯, 함수의 차이도 존재한다. reverse() : 함수 호출 시 즉시 URL 생성 reverse_lazy() : URL이 필요한 시점까지 생성을 미루고 필요 시 생성, 지연평가(lazy evaluation)를 사용 * 지연 평가(Lazy Evaluation) : 특정 연산이 필요한 시점까지 실행을 연기하는 컴퓨터 프로그래밍의 패턴. 즉, 데이터나 연산의 평가를 가능한 최후 순간으로 미루는 것을 의미한다. 이는 성능 최적화, 자원 효율성, 그리고 필요한 경우에만 계산을 수행하는 효율적인 방법을 제공한다. 파이썬에서는 앞서 공부한 제너레이터가 예시이다. 장고에서 reverse_lazy ..

Framework/Django 2023.12.16

DRF manage.py 해석

개인 프로젝트를 진행하면서 DRF를 하나하나 이해해보기 위해 여러 가지를 보고 있는데, 모든 명령 코드가 manage.py에서 시작되기 때문에 manage.py 코드를 꼼꼼히 읽어보았다. #!/usr/bin/env python """Django's command-line utility for administrative tasks.""" import os import sys def main(): """Run administrative tasks.""" os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Studysyncer.settings') try: from django.core.management import execute_from_command_line except..

Framework/Django 2023.10.31

DRF Serializer는 무엇이며, 어떤 기능을 수행합니까?

Serialize를 직역하면 '직렬화하다'라는 뜻이 나온다. 그렇다면 직렬화는 왜 수행하고, 어떻게 수행하는지 궁금해져서 정리를 해보았다. 먼저 직렬화를 이해하기 위해서는 Rest API에 대해 이해하고 넘어가야 한다. Rest API Rest API는 Rest를 기반으로 만들어진 API를 의미한다. Rest는 Representational State Transfer의 약자로, 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 말한다. 다시 말해, HTTP URI를 통해 자원(resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것 데이터가 요청될 때 JSON이나 XML을 통해..

Framework/Django 2023.10.11

RESTful API

RESTful API란? RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스다. 대부분의 비즈니스 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신해야 한다. 예를 들어 월간 급여 명세서를 생성하려면 인보이스 발행을 자동화하고 내부의 근무 시간 기록 애플리케이션과 통신하기 위해 내부 계정 시스템이 데이터를 고객의 뱅킹 시스템과 공유해야 한다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 이러한 정보 교환을 지원한다. REST란? Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키..

Framework/Django 2023.09.23

Django 테스트코드에서 setup 함수와 setupclass의 차이는 무엇입니까?

💡 setUp() 함수 각각의 테스트 메서드가 실행될 때마다 실행 각 테스트메서드는 방금 생성된 fresh한 오브젝트를 입력받음 각 테스트가 끝나면 롤백되기 때문에 데이터베이스에 대한 변경 사항을 정리하지 않아도 된다 테스트 중 내용이 변경될 수 있는 객체를 이곳에서 생성한다 단점 : 테스트당 한 번 호출됨 => 시간이 오래 걸리는 경우 테스트 속도가 크게 느려질 수 있다. 💡 setUpClass() @classmethod 데코레이터를 달아 함께 사용, 메서드 인자로 cls를 넘겨준다 모든 테스트 함수들을 아울러 데이터를 한 번만 설정한다 한 곳에 테스트에 필요한 데이터들을 정의하고 관리할 수 있다는 장점이 있다 단점 : 테스트 클래스가 시작되기 이전에 전체를 한 번 호출하기때문에 테스트 도중에 자동 롤..

Framework/Django 2023.09.23

장고 50문 50답 채우기(4)

16. Django의 기본 기능을 사용하는 것과 JWT를 사용하여 로그인 기능을 구현하는 것에는 어떤 차이점이 있습니까? JWT를 사용하면 유저 관련 정보를 모두 base64 인코딩을 하고 유지 시간도 짧아 보안에 유리하며, 다른 프레임워크에 호환성도 높다. Django 기본 인증은 Django 내장인 만큼 훨씬더 간편하게 사용할 수 있는 이점이 있다. 17. 데이터 테이블 간의 관계를 나타내는 FK, OneToOne, ManyToMany 필드에 대해서 설명하시오 FK: 다대일 관계. 다른 테이블과 관계가 있을 때 다른 테이블의 내용을 불러오고 이용할 수 있다. OnetoOne: 1:1의 대응 관계 테이블입니다. 예를들어 유저와 유저프로필 모델 ManytoMany: A 모델에 연관된 B 모델 필드가 여러..

Framework/Django 2023.07.25

장고 50문 50답 채우기(3)

11. Django를 통해 CRUD를 구현하는 방법에 대해서 HTTP Method와 함께 설명하시오 get: 정보 조회 (read) post: 정보 업로드(create) put: 정보수정(update) delete: 정보 삭제(delete) 12. Django에서 테이블을 설계하고 데이터베이스에 반영하는 방법에 대해서 설명하시오 models.py에 models.Model을 상속해 클래스를 생성하고 charfield, integerfield 등 필드를 사용해 테이블을 설계합니다. 만들어진 테이블은 python manage.py makemigration 명령어로 migration 파일을 생성한뒤 python manage.py migrate로 반영합니다. 13. 회원가입을 할 때 비밀번호를 암호화하여 저장하는..

Framework/Django 2023.07.24