2025/03 127

API 문서화(Documentation)

API 문서 API 사용법을 정리한 문서단순 구두로 설명하거나 메시지로 공유하는 방식의 한계 → API 사용법을 정리한 문서를 만드는 API 문서화(Documentation) 필요 조직에 맞게 완벽하게 커스터마이징 가능별도의 학습 없이 누구나 문서 작성 및 수정 가능코드가 변경될 때마다 문서를 따로 수정해야 함 (코드 변경 시 문서를 수정하지 않는다면, 문서와 실제 API가 달라지는 신뢰도 문제 발생)  API 문서에 담는 정보들Endpoint(어떤 URL에 요청해야 하는지)HTTP 메서드(GET, POST, PUT, DELETE...)필요한 헤더(Header) 정보요청 시 전송할 데이터 형식응답 데이터의 구조예외 상황 에러 코드 안내API 문서는 조직에 따라 개발과 문서화에 사용하는 툴이 다르기 때문에..

Redis를 Django 캐시 백엔드로 설정하기

Redis(Remote Dictionary Server)외부에 존재하는 key-value 저장소빠른 응답 속도를 바탕으로 캐싱, 세션 관리 등에 활용 In-memory 데이터베이스: 메모리에 데이터를 저장하여 디스크보다 약 1,000배 빠름다양한 데이터 타입 지원복잡한 쿼리 불필요데이터를 잊어버릴 수 있음 → cache 만료시간(TTL) 등으로 관리 가능단일 작업 처리 → 오히려 성능 안정성과 예측 가능성 향상→ 데이터를 빠르게 읽고 쓰는 데 최적화된 도구  Redis의 활용 카운터(Counter)로 사용조회수, 방문자 수 등의 실시간 카운팅에 적합 DB 대신 Redis에 먼저 기록하고, 주기적으로 DB에 반영 자주 변경되는 데이터예: 좋아요, 팔로우실시간 랭킹, 인기 게시물 계산 등에도 유용→ 초당 1..

Django ORM(Object Relational Mapping) 활용

Django에서 ORM(Object Relational Mapping) 데이터베이스 테이블을 파이썬 객체처럼 다룰 수 있게 해주는 기술→ Python 쉘이나 view, script 안에서 실행할 수 있음   사전 준비하기 products 앱 생성, Product 모델 정의python manage.py startapp products# settings.pyINSTALLED_APPS = [ ..., # Local "products", ...]# products/urls.pyfrom django.urls import pathurlpatterns = []# urls.pyfrom django.contrib import adminfrom django.urls import path, includ..

2025.03.29

행복하다!!04:30 취침 10:00 기상DRF 빨리 조져버리고 싶다. 이제 빨리끝낼 수 있을 것 같은데 자꾸 더디다.이브는 자꾸 화장실에서 뒹굴더니 털이 하얘서 몰랐는데 꼬리 속살이 엉망진창이었다.털이 길어서 웬만한 샤워로는 안되고 애기 때 곰팡이 닦아줄 때처럼 털을 뒤져가면서 닦아준다. 싫다고 꼬리를 탁탁하는데 어쩌라고다.흥오빠랑 저녁으로 가라아게를 먹었다.맛은 그저그랬다.샤워안했다. 요가도 안했다. 물도 안마셨다. 제주도가는데 짐도안쌌다.후웅..

2025/미정 2025.03.30

Token Auth with JWT

JWT (JSON Web Token) 인증 방식 토큰 자체에 유저 정보를 담아 별도의 인증 저장소(DB 등) 없이 인증 가능Cookie는 브라우저에 국한되므로 다양한 환경에서 통합 인증이 어려움 → JWT방식의 Token 인증이 사용됨토큰 자체가 하나의 인증 데이터 클라이언트가 ID/PW 전송서버는 검증 후 JWT 발급클라이언트는 JWT를 헤더에 담아 서버에 요청서버는 토큰 유효성 확인 후 요청 처리*Cookie(쿠키)웹 브라우저와 요청과 응답을 주고받을 때 사용하는 데이터 조각쿠키는 도메인에 제한적이며 유효기간이 정해져있음Auth 외에도 다양한 방식으로 활용**Session(세션)stateless한 HTTP 특징을 보완하기 위한 방법세션 DB를 이용해서 유저의 정보를 기억하며 Session ID라고 하..

DRF models with relationship CRUD API 구현

관계(Relationship)가 있는 모델 처리 관계가 있는 모델을 직렬화(Serialization)하고 API를 통해 CRUD 기능 구현Article - Comment 관계  댓글 기능에 필요한 API특정 게시글의 모든 댓글 조회 (GET /articles/comments/)특정 게시글에 댓글 작성 (POST /articles/comments/)특정 댓글 삭제 (DELETE /articles/comments//)특정 댓글 수정 (PATCH /articles/comments//)  모델 정의# articles/models.pyclass Comment(models.Model): article = models.ForeignKey( Article, on_delete=models.CASCADE..

Class Based View (CBV)

Class Based View (CBV) Django와 Django REST Framework(DRF)에서 View를 작성하는 두 가지 방식FBV (Function Based View): 함수로 처리CBV (Class Based View): 클래스로 처리 CBV의 장점 HTTP 메서드별 처리(get(), post(), put(), delete() 등)를 메서드 단위로 분리할 수 있어 가독성과 유지보수성이 높아짐클래스 기반이라 공통 로직을 재사용하기 좋고, 확장성이 뛰어남DRF는 CBV를 더 쉽게 쓰기 위한 기본 클래스를 제공 CBV 클래스 종류 (DRF 기준)APIViewCBV의 기본 클래스 - 직접 메서드 정의 필요GenericAPIViewAPIView 기반 + 쿼리셋, 직렬화 등 기본 기능 내장Mix..

DRF Single Model CRUD API 구현

DRF의 ModelSerializer를 활용한 Django Model JSON 형태 직렬화단일 모델 기반 데이터 조회, 생성, 수정, 삭제하는 기본 API 구성 ModelSerializer는 Django의 ModelForm과 비슷한 역할을 함직렬화와 유효성 검사, 저장까지 전부 처리할 수 있어 매우 강력   urls.py & 기본 구조 설정 프로젝트 URL 연결# api_pjt/urls.pyfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path("admin/", admin.site.urls), path("api/v1/articles/", include("articles.urls")),] 앱..

728x90