반응형

Dev/Django 15

Django Rest Framework

안녕하세요. Django 카테고리로 포스트를 작성해보겠습니다. 이번에는 Django를 사용한다면 많이 들어봤을 Django REST Framework(이하 DRF)를 간략하게 소개 해보겠습니다. 1. DRF란 무엇인가? 앞서 정의한 약자 대신 DRF가 실제로 어떤 역할을 하는지를 살펴보겠습니다. 먼저 Django에서 RESTful한 API를 생성하기 쉽게 도와주는 역할을 합니다. 그렇다면 도대체 어떤역할을 하는지 더 자세히 보겠습니다. 참고로 DRF도 Django가 설치되어야 실행됩니다. 즉 별개의 module이 아닌 python 위에서 수행된다는 것 입니다. 1.1 json의 De/Serialization을 지원한다. DRF를 사용하는 이유 중 하나입니다. Serialization/Desearializ..

Dev/Django 2020.08.24

Elasticsearch와 Django를 연동해 검색 API 개발

안녕하세요. 이 포스트는 시리즈로 구성되어있습니다. 이번 포스트는 지난 포스트의 로그인/회원가입, 소셜로그인을 이어 검색 API에 대해서 작성해보겠습니다. 검색 API를 적용해본 것은 기존에도 ElasticSearch를 비롯한 ELK(ElasicSearch, LogStash, Kibanna) 기술 스택에 관심이 있었고 1차로 진행한 프로젝트에서 새로운 것을 적용해보자는 마음이 있었습니다. elasticsearch(엘라스틱 서치)에 대해 간략하게 소개하자면, 오픈소스의 검색엔진입니다. 자세한 건 추후에 포스트 할 기회가 있다면 하도록 하겠습니다. 구현한 과정 절차 따라 서술하도록 하겠습니다. 제가 reference 한 글은 https://blog.nerdfactory.ai/2019/04/29/django-..

Dev/Django 2020.08.17

WebSite(Class101) Clone Project - Part2.구현 파트 정리(회원가입/로그인 소셜로그인)

안녕하세요. 이 포스트는 시리즈로 구성되어있습니다. 저번 포스트에 이어서 작성하도록 하겠습니다. 클래스 101이라는 사이트에서 제가 맡은 파트에 대해 대략적인 리뷰와 코드를 작성하는 형태로 포스팅을 하겠습니다. 1. user(account)의 회원가입/로그인 가장 기본이 되는 회원가입/로그인이지만 회원가입 때는 특별히 Regular Expression(정규표현식)으로 Validation check를 했습니다. 저는 Django에 내장되어 있는 django.core.validators 라이브러리의 RegexValidator를 import해 사용했습니다. 각 validator는 다음과 같이 선언하고 예외 체크를 했습니다. class SignUpView(View): def post(self, request):..

Dev/Django 2020.08.17

WebSite(Class101) Clone Project - Part1.시작&나의 역할

안녕하세요. 이 포스트는 시리즈로 구성되어있습니다. 2주간의 1차 프로젝트 기간 동안 시행착오가 정말 많았습니다. 스스로 생각하기에 IT 전공인이 맞는가 하고 의심될 정도로 아쉬운 부분이 많았습니다. 그만큼 현업으로의 개발과 IT 운영과는 비슷하지만 또 다르다는 생각입니다. 아래는 1차 프로젝트의 회고 및 소개글입니다. WebSite(wiselyshave) Clone Project - Part1. 시작&데이터 모델링 WebSite(wiselyshave) Clone Project - Part.2 Data Modeling & End Point Refactoring WebSite(wiselyshave) Clone Project - Part.3 views.py Refactorin WebSite(wiselysha..

Dev/Django 2020.08.09

Django - UnitTest

안녕하세요. 이번 포스트에서는 Django UnitTest(유닛테스트)를 활용한 테스트를 소개해보겠습니다. 1. UnitTest(유닛테스트) 란? 먼저 유닛테스트에 대한 소개를 하겠습니다. 유닛테스트란 작성한 코드의 가장 작은 단위인 Method나 Function을 테스트하는 메소드 입니다. 그래서 작성한 로직을 테스트하는 유닛테스트 코드를 작성하여 테스트하게 됩니다. 유닛테스트는 아래 피라미드 구조도와 같이 가장 기본이 되는 테스트로 전체 테스트의 70%를 차지하는 모든 테스트의 기반과 같은 역할을 합니다. 2. UnitTest를 사용하는 이유(장점) 유닛테스트도 결국에는 Python 프로그램을 만들어야 하는 번거로움이 있는데 기존에 활용하던 Postman(포스트맨)이나 httpie를 활용하면 되지 않..

Dev/Django 2020.08.09

WebSite(wiselyshave) Clone Project - Part.4 후기

안녕하세요. 이 포스트는 시리즈로 구성되어있습니다. 지난번 포스트까지가 전체적인 코드와 자세한 기술적 리뷰였고, 이번에는 후기를 작성해보겠습니다. WebSite(wiselyshave) Clone Project - Part1. 시작&데이터 모델링 WebSite(wiselyshave) Clone Project - Part.2 Data Modeling & End Point Refactoring WebSite(wiselyshave) Clone Project - Part.3 views.py Refactorin WebSite(wiselyshave) Clone Project - Part.4 후기 1. 프로젝트 소개 프로젝트 소개는 part1 포스트에도 기록되어 있습니다. 이 클론 프로젝트는 단순한 일부 구현만 기능하..

Dev/Django 2020.08.03

WebSite(wiselyshave) Clone Project - Part.3 views.py Refactoring

안녕하세요. 이 포스트는 시리즈 포스트로 구성되어있습니다. WebSite(wiselyshave) Clone Project - Part1.시작&데이터모델링 WebSite(wiselyshave) Clone Project - Part.2 Data Modeling & End Point Refactoring WebSite(wiselyshave) Clone Project - Part.3 views.py Refactorin WebSite(wiselyshave) Clone Project - Part.4 후기 지난번 포스트에 이어 Refactoring에 대해 다뤄보겠습니다. 이번에는 가장 핵심적인 views.py를 다루겠습니다. 1. Product App views.py Refactoring 이후 가장 급진적인 변화가 ..

Dev/Django 2020.08.02

WebSite(wiselyshave) Clone Project - Part.2 Data Modeling & End Point Refactoring

안녕하세요. 이 포스트는 시리즈로 구성되어있습니다. WebSite(wiselyshave) Clone Project - Part1.시작&데이터모델링 WebSite(wiselyshave) Clone Project - Part.2 Data Modeling & End Point Refactoring WebSite(wiselyshave) Clone Project - Part.3 views.py Refactorin WebSite(wiselyshave) Clone Project - Part.4 후기 지난번 wiselyshave.com 클론 프로젝트의 모델링을 소개했습니다. 제 모델링이 틀렸다까지는 아니지만, 프로젝트가 끝난 지금 돌이켜보니 효과적이지 못 했던 것 같습니다. 적어도 이번 클론 프로젝트에서만은 확실하게 ..

Dev/Django 2020.08.02

WebSite(wiselyshave) Clone Project - Part1.시작&데이터모델링

안녕하세요. 이 포스트는 시리즈로 구성되어있습니다. WebSite(wiselyshave) Clone Project - Part1.시작&데이터모델링 WebSite(wiselyshave) Clone Project - Part.2 Data Modeling & End Point Refactoring WebSite(wiselyshave) Clone Project - Part.3 views.py Refactorin WebSite(wiselyshave) Clone Project - Part.4 후기 이번 포스트에서는 실제 웹사이트를 클론하는 프로젝트를 시리즈를 작성하고자 합니다. 클론하는 사이트 대상은 와이즐리 면도기(https://www.wiselyshave.com/) 사이트 입니다. TMI지만, 와이즐리 제품을 ..

Dev/Django 2020.07.27

Django - QuerySet 활용하기(select_related & prefetch_related)

안녕하세요. 이번 포스트에서는 Django QuerySet 활용에 대해서 학습해보겠습니다. 본 목차 전에 QuerySet에 대해 간단하게 언급하겠습니다. Django QuerySet은 제 블로그의 Django 이해하기 Part1. MTV Pattern의 하단에서도 언급하였습니다. BackEnd에서 FrontEnd로부터 받은 API의 request에 대해 엔드포인트 목적에 맞는 response 돌려주기 위해 데이터를 컨트롤하는 툴(Tool)이라고 정의할 수 있습니다. 이 QuerySet은 SQL 쿼리문과 100% 상응합니다. 이 쿼리셋을 쿼리로 보는 방법은 하단에서도 설명하겠습니다. 그리고 본 포스트 목적은 제목과 같이 QuerySet중에 selected_related와 prefetch_related를 활..

Dev/Django 2020.07.26
반응형