코딩한걸음
article thumbnail
[Django] inspectdb
Python/Django 2024. 1. 25. 09:00

개요 inspectdb 명령어는 기존의 데이터베이스 테이블을 Django 모델 코드로 변환하는 데 사용 데이터베이스 스키마를 자동으로 분석하여 Django 모델 클래스로 변환하는 코드를 생성 사용방법 $ python manage.py inspectdb 연결된 데이터베이스의 모든 테이블에 대한 Django 모델 클래스를 출력한다. 출력된 코드는 위처럼 콘솔에 나타나며, 이를 복사하여 models.py 에 붙여넣으면 된다. 옵션 -database : 사용할 데이터베이스를 지정. 는 settings.py에 정의된 데이터베이스의 이름이다. -include-partitions: 파티션된 테이블을 포함합니다. -include-views: 데이터베이스 뷰를 포함합니다. : 특정 테이블에 대해서만 모델을 생성하려는 경..

article thumbnail
[Django 50문 50답] RESTful API는 무엇을 의미합니까?
Python/Django 2023. 11. 4. 08:00

Q. RESTful API는 무엇을 의미합니까? REST는 REpresentational State Transfer의 약자로, 웹 기반의 시스템에서 컴포넌트 사이의 데이터 전송을 위한 아키텍처 스타일입니다. 이 아키텍처는 자원(resource)의 표현(representation)을 통해 상태 정보를 주고 받는 것을 기본으로 합니다. 자원은 URI로 식별되며, 그 상태는 JSON, XML 등의 형태로 전달됩니다. REST의 특징은 Server-Client, Stateless, Cacheable, Layered System,Uniform Interface, Self-Descriptiveness입니다. REST API는 이러한 원칙을 따르는 API를 구현한 것이며, RESTful API는 REST 원칙들을 최..

article thumbnail
[Django 50문 50답] JWT의 Access Token과 Refresh Token은 왜 필요한가요?
Python/Django 2023. 11. 3. 18:25

Q. JWT의 Access Token과 Refresh Token은 왜 필요한가요? Access Token은 사용자가 인증을 마친 후 서비스 내의 리소스에 접근할 수 있는 권한을 부여하기 위해 사용됩니다. 이 토큰은 짧은 유효 시간을 가지고 있으며, 이는 만약 토큰이 탈취되더라도 제한된 시간 동안만 유효하다는 의미 입니다. 따라서 보안 리스크를 최소화할 수 있습니다. Refresh Token은 유효기간이 만료된 Access Token을 새로 발급받기 위해 사용됩니다. Refresh Token은 상대적으로 긴 수명을 가지고 있고 Access Token보다 더 안전하게 저장되어야 합니다. 사용자가 매번 로그인하여 새로운 Access Token을 받는 번거로움 없이, 안전하게 서비스를 이용할 수 있도록 합니다...

article thumbnail
[Django 50문 50답] JWT에 대해서 설명하시오
Python/Django 2023. 11. 3. 14:20

Q. JWT에 대해서 설명하시오 JWT는 JSON Web Token의 약자로 JSON을 이용해 정보를 안전하게 다루기 위한 개방형 표준입니다. JWT는 크게 헤더(Header), 내용(Payload), 서명(Signature)으로 나뉘어지며 `.`으로 각 부분을 구분합니다. 각 부분은 전부 Base64 URL-safe Encode로 인코딩되어 사용됩니다. JWT는 자체적으로 필요한 정보를 담고 있어서, 인증 정보를 매 요청마다 서버에 저장할 필요가 없어서 상태를 유지하지 않는(stateless) RESTful API에 적합합니다. 또한, 여러 다른 플랫폼과 도메인 간에도 사용할 수 있어 확장성이 높습니다. 하지만 보안 측면에서는 몇 가지 주의할 점이 있습니다. 암호화되지 않은 JWT는 Payload의 내..

[Django 50문 50답] Django Template Engine은 무엇이고 어떤 기능을 제공합니까?
Python/Django 2023. 10. 27. 12:00

Q. Django Template Engine은 무엇이고 어떤 기능을 제공합니까? (이하 DTE) DTE은 Django 프레임워크 내에 내장된 웹 템플릿 시스템입니다. 이것을 통해 Python 객체와 값을 HTML과 같은 텍스트 기반 형식에 동적으로 렌더링 할 수 있습니다. 주요 기능은 " 변수 치환 : 템플릿 내에서 `{{ value }}` 형태로 변수 값을 렌더링 태그 시스템 : `{% tag %}` 형태로 제공되며, 반복, 조건문, 템플릿 상속 등의 로직을 처리 필터 : `{{ value|lower }}` 형태로 변수에 특정 변환을 적용하기 위해 사용 자동 HTML 이스케이프 : 보안을 위해, 기본적으로 모든 변수가 HTML로 이스케이프. 이를 통해 XSS 공격을 방지 " 입니다. 질문 의도 MVT..

[Django 50문 50답] Django Admin은 무엇이고 어떤 기능을 제공합니까?
Python/Django 2023. 10. 27. 08:00

Q. Django Admin은 무엇이고 어떤 기능을 제공합니까? Django Admin은 Django 프레임워크에 포함된 관리자 인터페이스입니다. 이를 통해 개발자는 웹 어플리케이션의 데이터를 쉽게 관리하고 조작할 수 있습니다. 주요 기능은 " 모델 기반의 인터페이스 생성 : 등록된 모델에 기반하여 자동으로 CRUD 인터페이스 생성 사용자 인증 : 사용자 관리 및 권한 관리 기능을 내장하여, 특정 사용자나 그룹에 대한 접근 제한 설정 검색 및 필터링 : 생성된 인터페이스에서 데이터 검색 및 필터링 기능을 지원 커스터마이징 : 기본 제공되는 인터페이스나 동작 외에도, 개발자의 요구에 맞게 인터페이스를 커스터마이즈 가능 다양한 필드 지원 : 이미지 업로드, 날짜 선택 등 다양한 필드 타입을 지원하여 복잡한 ..

[Django 50문 50답] Django ORM의 장단점은 무엇입니까?
Python/Django 2023. 10. 26. 12:00

Q. Django ORM의 장단점은 무엇입니까? Django ORM의 장점은 생산성, 데이터베이스 독립성, 보안입니다. 생산성 : SQL 쿼리를 직접 작성하지 않아도 되므로 코드가 더욱 간결하고 가독성이 좋아집니다. 데이터베이스 독립성 : 다양한 데이터베이스 시스템에 독립적으로 동작하므로, 데이터베이스를 변경할 때 유용합니다. 보안 : 내부적으로 쿼리를 생성해 SQL Injection과 같은 보안 취약점을 줄일 수 있습니다. 단점은 성능 이슈가 있습니다. 성능 이슈 : N+1 문제, 불필요한 데이터 조회, 복잡한 쿼리의 ORM 사용 등 질문 의도 Django ORM에 대한 이해 : Django ORM을 사용하는 방법 뿐 아니라 그 장단점, 적절한 사용 시나리오에 대한 이해도를 가지고 있는지 확인 성능 이..

[Django 50문 50답] ORM에 대해서 설명하시오
Python/Django 2023. 10. 26. 08:00

Q. ORM에 대해서 설명하시오 ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터를 매핑하는 프로그래밍 기술입니다. ORM을 사용함으로써 개발자는 SQL 쿼리를 직접 작성하지 않고도 데이터베이스의 데이터를 객체로써 다룰 수 있게 됩니다. 이는 개발자의 생산성에 도움이 됩니다. 질문 의도 기본 지식 확인 : ORM에 대한 기본 지식을 가지고 있는지 데이터베이스 연동 이해 : ORM을 통해 SQL 쿼리 없이 데이터베이스와 상호작용하는 프로세스을 얼마나 잘 이해하고 있는지 예상 꼬리 질문 ORM을 사용하면서 성능 이슈를 겪은 경험이 있나요? 있다면 원인과 해결 방법은 무엇인가요? ORM만 사용하는 것과 직접 SQL 쿼리를 작성하는 것 중 어느..