본문 바로가기

Programming/Django45

DRF(Django REST Framework) 개발자를 위한 비교: APIView vs. Viewsets 🧐 DRF로 API를 개발하다 보면, 뷰(View)를 만들 때 APIView와 Viewsets 중에서 어떤 것을 사용해야 할지 고민하게 됩니다.두 가지 모두 훌륭한 도구지만, 각각의 특징과 장단점을 이해하면 상황에 맞는 더 효율적인 코드를 작성할 수 있어요. 1. APIView: 섬세한 제어가 가능한 장인 정신 🎨APIView는 DRF의 기본 뷰 클래스로, HTTP 메서드(GET, POST, PUT, DELETE)에 따라 함수를 직접 정의하는 방식입니다.마치 수공예 장인이 작품을 만들 듯, API 엔드포인트의 동작을 하나하나 섬세하게 제어할 수 있어요.장점:명확한 제어: 각 HTTP 메서드에 대한 로직을 get(), post()와 같이 별도의 함수로 작성하므로 코드가 직관적이고 명확합니다.유연성: 특정 H.. 2025. 8. 7.
Serializer, 대체 뭘까? 🧐 안녕하세요! 오늘은 Django REST Framework(DRF)의 핵심 기능 중 하나인 Serializer에 대해 쉽고 재미있게 알아보겠습니다.코드를 통해 Serializer가 어떻게 동작하는지, 그리고 왜 필요한지 함께 살펴볼까요?Serializer, 번역가와 같아요! 🗣️Serializer는 한 마디로 번역가 역할을 합니다.Django 모델(Python 객체): 우리가 데이터베이스에 저장하고 싶어 하는 파이썬 객체입니다.JSON(문자열): 인터넷을 통해 데이터를 주고받을 때 사용되는 범용적인 형식입니다.Django는 파이썬 객체를 다루지만, 웹은 JSON 형태의 텍스트 데이터를 주고받는 것이 일반적입니다. Serializer는 이 둘 사이에서 데이터를 변환해주는 역할을 담당합니다.파이썬 객체 →.. 2025. 8. 7.
🧾 Django REST Framework에서 API 문서 자동화하기 (DRF Spectacular + Swagger) 💡 왜 API 문서가 중요할까?API는 개발자들이 사용하는 제품입니다.좋은 API를 만든다고 해도, 사용법을 모르면 쓸 수 없겠죠?“API는 문서화된 만큼만 가치가 있다.”어떤 endpoint가 있는지어떤 method(GET, POST 등)가 가능한지어떤 데이터를 주고받는지인증은 어떻게 하는지이런 내용이 없다면, 그 API는 사용자가 없는 앱과 다를 바 없습니다.🧪 TDD로 Django 프로젝트를 개발 중이번 강의는 Django 심화 과정이었고, TDD(Test-Driven Development) 방식으로 API를 하나씩 만들고 있습니다.예를 들어 POST /recipes/나 GET /tags/와 같은 API를 만들고 테스트로 검증하죠.그런데 기능이 많아지면서, 내가 만든 API를 외부 개발자나 팀원.. 2025. 8. 6.
🔌 API란 무엇일까? 쉽게 풀어보는 API의 개념과 동작 원리 📌 1. API란?API는 Application Programming Interface의 줄임말로,“소프트웨어끼리 소통하게 해주는 통로”라고 생각하면 됩니다.쉽게 말해,"내가 만든 프로그램이 다른 프로그램에게 말을 걸고, 응답을 받는 방식"예를 들어:내 앱에서 날씨 정보를 가져오고 싶다 → 날씨 API 요청웹사이트에서 카카오 로그인을 하고 싶다 → 카카오 로그인 API 사용쇼핑몰에서 결제를 처리하고 싶다 → 결제사 API 연동즉, API는 외부의 기능을 내 서비스에서 쉽게 활용할 수 있도록 해주는 다리입니다.⚙️ 2. API는 어떻게 동작할까?API는 보통 클라이언트(요청)와 서버(응답) 사이에서 이렇게 작동합니다:[내 프로그램] → 요청(Request) → [API 서버] .. 2025. 8. 6.
✅ TDD란 무엇인가? 테스트 주도 개발을 처음 접하는 분들을 위한 설명 💡 TDD란?TDD(Test-Driven Development)는 테스트 주도 개발이라고 불리며,“테스트 코드를 먼저 작성하고, 그 테스트를 통과하는 실제 코드를 나중에 작성하는 개발 방식”을 말합니다.전통적인 개발은 기능을 먼저 만들고 테스트는 마지막에 하거나, 아예 하지 않는 경우도 많죠.하지만 TDD는 완전히 그 반대입니다.🔁 TDD의 개발 흐름TDD는 보통 다음의 3단계를 반복하며 개발합니다:Red – 실패하는 테스트 작성: 아직 기능이 없으니 테스트는 당연히 실패함 (의도된 실패)Green – 테스트를 통과하는 최소한의 코드 작성: 기능을 만들어 테스트가 통과하게 함Refactor – 코드 리팩토링: 테스트가 보장해주니 마음 놓고 구조 개선 가능이 사이클을 Red → Green → Refac.. 2025. 8. 6.
🛠 Django Admin 설정 중 FieldError: username 오류 해결기 (TDD 기반 개발) ✨ 목차프로젝트 상황TDD 방식으로 Admin 페이지 테스트 작성발생한 오류 분석원인: 커스텀 User 모델과 Django 기본 Admin의 충돌해결 방법: UserAdmin 커스터마이징마무리하며1. 프로젝트 상황현재 Django 심화 강의를 들으며 TDD 방식으로 프로젝트를 구성하고 있습니다.관리자(Admin) 페이지를 세팅하는 단계에서 다음과 같은 테스트 코드를 작성했습니다.# core/tests/test_admin.pyclass AdminSiteTests(TestCase): def setUp(self): self.client = Client() self.admin_user = get_user_model().objects.create_superuser( .. 2025. 8. 6.