전체 글 315

[Cache] Memcached vs Redis 차이

Memcached 와 Redis 란? Memcahced와 Redis는 Key-value 형태의 인-메모리 기반의 캐싱 시스템으로, 캐시 레이어로서 DB의 부하를 줄여주며, 주로 웹 어플리케이션의 응답 속도 개선을 위해 사용된다. 두가지 모두 사용하기 어렵지 않지만, Memcached는 Cache 서비스를 위해 설계된 반면, Redis는 좀더 다양한 용도에 효과적으로 사용 할 수 있도록 설계되었다는 차이가 있다. Memcached 특징 웹 서버에서 기존에 할당된 캐시 메모리를 초과시, 전체 할당된 메모리에서 유동적으로 사용 가능 Data Evicion 전략 : LRU (Least Recently Used) 알고리즘만 사용 Data Structure : String 형태만 지원 Persistance : Me..

DB/이론 2022.11.22

[MSA 경험기] 모아 구독 (1) 프로젝트 기획 및 설계

MSA 프로젝트 시작 계기 최근 몇달 전 부터 MSA라는 단어와 우연히? 마주치는 빈도가 많아졌었다. MSA에 대해서는 일전에 모놀리식과의 장단점을 비교해보았던 적이 있었고, MSA 가 가진 장점에 많은 이점에 공감했기에, 이번에 모인 팀원들과 함께 사이드로 프로젝트를 경험해보려고 하였다. https://yubi5050.tistory.com/155 [SW 개발] MSA vs 모놀리식 Monolithic Architecture (모놀리식 아키텍쳐) 장점 서비스의 개발 환경이 동일해 복잡하지 않다. End-to-End 테스트와 개발 및 관리가 용이 단점 프로젝트의 규모가 커지면 작은 부분을 수정하더라도 전 yubi5050.tistory.com 프로젝트 구조 및 설계 📌 프로젝트 주제 모아 구독 : MSA 기..

[DRF] 간단한 캐싱 기능 구현 하기 (by. redis, DRF)

1. Docker redis run & django-redis 설치 Memcached 형태의 Memory DB인 Redis를 Docker로 작동시킨다. $ docker run -p 6379:6379 redis Django에서 Redis에 접근하기 위한 추가 library를 설치한다. $ pip install django-redis 2. settings.py 작성 django-admin을 이용한 project는 만들었다고 가정 CACHES = { 'default':{ 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379', } } 3. urls.py 작성 from django.contrib import admin fr..

Python/DRF 2022.11.19

[Django] 간단한 메일 전송 기능 구현 (by. Gmail )

1. Google 계정 보안 설정하기 (1) 구글 계정 - 보안 접속 (2) 2단계 인증 설정 (3) 앱 비밀번호 생성 구글 뿐만 아니라 네이버로 전송시에도 다음과 같이 앱 비밀번호를 생성하는 절차를 거쳐야 한다. 2. settings.py 메일 전송에는 SMTP Protocol이 활용되고, django에 내장된 mail 기능을 사용 # gmail EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = "smtp.gmail.com" EMAIL_HOST_USER = EMAIL_HOST_PASSWORD ='' # gmail 2단계 보안 인증 - 앱 비밀번호임! EMAIL_PORT = 587 # gmail SMTP 포트 EMAIL_..

Python/Django 2022.11.18

[DB] MongoDB Docker + Robo3T 셋팅

MongoDB , Robo3T 👉 MongoDB - 대표적인 NoSQL DB (링크) MongoDB Atlas: Cloud Document Database Cloud-hosted MongoDB service on AWS, Azure, and GCP www.mongodb.com 👉 Robo3T - MongoDB DBMS Tool (링크) Robo 3T | Free, open-source MongoDB GUI (formerly Robomongo) Read by Dmitry Schetnikovich robomongo.org MongoDB Docker 명령어 # VOLUME 위치, USERNAME PASSWORD 임의 설정하기 $ docker run --name mongodb-container -v :/data..

DB/기본 실습 2022.11.13

[Django] Pagination 방법 비교 (Feat. Django, DRF)

Pagination이란? Pagination 이란 한번에 많은 데이터를 받기 힘든 경우, 특정 구역을 나눠서 받는 방법 Django에서는 Pagination을 구현하기 위한 여러 모듈들이 존재하는데, 향후 Pagaintation 구현시 의사 결정을 빠르게 할 수 있도록, 각 방법을 비교 해보며 특징을 정리 해놓으려고 한다. 👉 Pagination 의 큰 갈래 (방향성) Pagination 방법에는 여러 종류가 있겠지만 크게 3가지로 나뉘는 걸로 보이며, 1), 2) 의 경우 많이 쓰이는 대중적인 방법으로 선호됩니다. 3) 의 경우에도 1) 페이지 번호 기반 : 미리 페이지 크기(page_size)를 정하고, 페이지 번호(page_num)를 요청받아 조회 응답 방법 2) 특정 지점 부터 특정 갯수 기반 :..

Python/Django 2022.11.10

[DRF] DRF Pagination (by. CursorPagination)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 추가적으로 DRF 에는 세부적으로 3가지 방법이 제공되는데 PageNumberPagination : 페이지 크기(PAGE_SIZE)를 정하고, 페이지 번호를 요청하는 조회 방법 LimitOffsetPagination : 특정 지점(offset) 부터 특정 데이터 갯수(limit)을 정해서 가져..

Python/DRF 2022.11.10

[DRF] DRF Pagination (by. LimitOffsetPagination)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 추가적으로 DRF 에는 세부적으로 3가지 방법이 제공되는데 PageNumberPagination : 페이지 크기(PAGE_SIZE)를 정하고, 페이지 번호를 요청하는 조회 방법 LimitOffsetPagination : 특정 지점(offset) 부터 특정 데이터 갯수(limit)을 정해서 가져..

Python/DRF 2022.11.10

[DRF] DRF Pagination (by. PageNumberPagination)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 추가적으로 DRF 에는 세부적으로 3가지 방법이 제공되는데 PageNumberPagination : 페이지 크기(PAGE_SIZE)를 정하고, 페이지 번호를 요청하는 조회 방법 LimitOffsetPagination : 특정 지점(offset) 부터 특정 데이터 갯수(limit)을 정해서 가져..

Python/DRF 2022.11.10

[Django] Django Pagination (by. Django Paginator)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 해당 글은 Django의 Paginaotor를 이용해 Pagination을 구현하는 방법을 설명한다. 1. Project, App 생성 django-admin startproject pagination1 django-admin startapp posts 2. settings.py INSTALL..

Python/Django 2022.11.10