본문 바로가기

전체 글24

DRF Tutorial 6 ViewSets & Routers 시작이번 포스트에서는 DRF(Django Rest Framework) 튜토리얼을 통해 ViewSets와 Routers를 사용하는 방법에 대해 알아보겠습니다. 본 포스트는 macOS와 VS Code 환경에서 진행됩니다.본문ViewSets으로 리팩토링UserList와 UserDetail을 하나의 UserViewSet 클래스로 리팩터링 합니다.from rest_framework import viewsetsclass UserViewSet(viewsets.ReadOnlyModelViewSet): """ 이 뷰셋은 `list` 및 `retrieve` 액션을 자동으로 제공합니다. """ queryset = User.objects.all() serializer_class = UserSeria.. 2024. 9. 14.
DRF Tutorial 5 Relationships & Hyperlinked APIs 시작이번 포스트에서는 DRF(Django Rest Framework) 튜토리얼을 따라 Relationships와 Hyperlinked APIs을 다루는 방법을 알아보겠습니다. 본 포스트는 macOS와 VS Code 환경에서 진행됩니다.본문루트 API Endpoint 생성API에서 각 엔드포인트를 명확하게 탐색할 수 있도록 루트 엔드포인트를 만들겠습니다.snippets/views.py에 api_root 뷰를 추가하여 모든 API의 시작점을 정의합니다.# ...from rest_framework.decorators import api_viewfrom rest_framework.response import Responsefrom rest_framework.reverse import reverse@api_vie.. 2024. 9. 14.
DRF Tutorial 4 Authentication & Permissions 시작이번 포스트에서는 DRF(Django Rest Framework) 튜토리얼을 따라 Authentication와 Permissions을 다루는 방법을 알아보겠습니다. 본 포스트는 macOS와 VS Code 환경에서 진행됩니다.본문Snippet 모델과 유저 모델 관계 추가먼저 snippets/models.py의 Snippet 모델에 새로운 필드를 추가하여 사용자와 연결합니다.owner = models.ForeignKey('auth.User', related_name='snippets', on_delete=models.CASCADE)highlighted = models.TextField() 또한 pygments 라이브러리를 사용하여 코드 조각의 HTML 표현을 강조 표시할 수 있는 save 메서드를 정의합.. 2024. 9. 14.
DRF Tutorial 3 Class-based Views 시작이번 포스트에서는 DRF(Django Rest Framework) 튜토리얼을 따라 Class-based Views을 다루는 방법을 알아보겠습니다. 본 포스트는 macOS와 VS Code 환경에서 진행됩니다.본문Class-based Views를 사용하여 API 재작성Function-based Views에서 if request.method == 'GET'와 같은 분기 처리를 메서드로 분리하여 코드를 더욱 간결하고 효율적으로 만들 수 있습니다. snippets/views.py를 Class-based Views를 활용하여 리팩터링 합니다.from django.http import Http404from rest_framework import statusfrom rest_framework.response imp.. 2024. 9. 14.
DRF Tutorial 2 Requests and Responses 시작이번 포스트에서는 DRF(Django Rest Framework) 튜토리얼을 따라 Requests와 Responses를 다루는 방법을 알아보겠습니다. 본 포스트는 macOS와 VS Code 환경에서 진행됩니다.본문DRF에서 제공하는 객체DRF는 Request 객체, Response 객체, Status codes 등을 제공하며 API 뷰를 작성하는 데 사용할 수 있는 두 가지 주요 래퍼를 지원합니다. 함수 기반 뷰를 위한 @api_view 데코레이터클래스 기반 뷰를 위한 APIView 클래스이러한 객체들을 사용하면 더 간결하고 효율적인 코드를 작성할 수 있습니다.코드 개선이제 Request 객체, Response 객체, Status codes를 사용하여 코드를 좀 더 개선해 보겠습니다.from rest.. 2024. 9. 11.
DRF Tutorial 1 Serialization 시작DRF(Django Rest Framework) 튜토리얼을 따라 Serialization에 대해 알아보려고 합니다. 본 포스트에서는 macOS와 VS Code를 사용하여 진행합니다.본문프로젝트 생성 및 설정먼저 프로젝트를 생성하고 필요한 설정을 진행합니다. 다음 명령어를 차례대로 실행하여 Django와 Django Rest Framework(DRF)를 설치하고 프로젝트를 생성합니다.# 'drf_tutorial'이라는 디렉터리를 생성합니다.mkdir drf_tutorial# 'drf_tutorial' 디렉터리로 이동합니다.cd drf_tutorial/# 가상 환경(venv)을 생성합니다.python3 -m venv venv# 가상 환경을 활성화합니다.source venv/bin/activate# Dja.. 2024. 9. 11.
GitHub Repository에 Coveralls 배지 적용하기 시작Java와 Spring을 사용하는 프로젝트에서 GitHub Actions로 CI/CD를 구성할 때 Coveralls 배지를 적용하는 방법을 공유하고자 합니다.본문Coveralls에 회원가입하고 리포지토리를 연동하는 과정은 생략하겠습니다. 자세한 내용은 Coveralls 가이드를 참조하세요.1. Jacoco 설정build.gradle 파일에 다음 코드를 추가하여 Jacoco를 설정합니다plugins { ... id 'jacoco'}tasks.named('test') { ... finalizedBy jacocoTestReport }jacocoTestReport { reports { xml.required = true } }이 설정은 테스트 시.. 2024. 9. 11.
Rest Docs의 템플릿 커스터마이징 시작Rest Assured와 Spring REST Docs를 사용하면 REST API 문서를 자동으로 생성할 수 있습니다. 하지만 실제 프로젝트에 적용해 보니 기본적으로 제공되는 Rest Docs의 템플릿을 그대로 사용하기에는 부족한 부분이 있었습니다. 프로젝트에 맞게 문서를 좀 더 깔끔하게 관리하려면 커스터마이징이 필요했습니다. 이 포스트에서는 Rest Docs의 템플릿을 어떻게 커스터마이징 했는지 그리고 제가 직면했던 문제와 해결 방법을 공유하고자 합니다.본문1. 프로젝트 설정build.gradle에 필요한 의존성입니다.plugins { // AsciiDoc 파일을 HTML로 변환하는 플러그인 id "org.asciidoctor.jvm.convert" version "3.3.2"}confi.. 2024. 9. 11.
첫 번째 Django 앱 만들기 (Part 8: Adding third-party packages) 시작Part 7에 이어 간단한 설문조사(Polls) 앱을 구축했고 이번이 마지막 파트로 서드파티 패키지에 대해 알아보려고 합니다. 풍부한 서드파티 패키지 생태계가 존재한다는 것이 Django의 강점 중 하나입니다. 본 포스트에서는 macOS와 IntelliJ IDEA Ultimate을 사용합니다.본문Django Debug Toolbar 설치1. 패키지 설치python -m pip install django-debug-toolbar Django와 통합되는 서드파티 패키지를 프로젝트와 통합하려면 설치 후 설정이 필요합니다. INSTALLED_APPS 설정에 패키지의 Django 앱을 추가해야 하는 경우가 종종 있습니다. 일부 패키지에는 URLconf(urls.py) 추가와 같은 다른 변경도 필요합니다.2. .. 2024. 9. 2.
첫 번째 Django 앱 만들기 (Part 7: Customizing the admin site) 시작Part 6에 이어서 간단한 설문조사(Polls) 앱을 만드는 과정을 통해 Django의 Admin 사이트 커스터마이징 방법을 알아보려고 합니다. 본 포스트에서는 macOS와 IntelliJ IDEA Ultimate을 사용합니다.본문Admin Form 커스터마이징admin.site.register(Question)과 같이 Question을 등록하면 Django는 기본 form을 구성할 수 있습니다polls/admin.py를 아래처럼 수정합니다.from django.contrib import adminfrom .models import Questionclass QuestionAdmin(admin.ModelAdmin): fields = ["pub_date", "question_text"]admin... 2024. 8. 23.