반응형

전체 글 67

MySQL Total Row Count를 한 줄에 만드는 FOUND_ROWS

안녕하세요. 이번 포스트는 mysql에 대해 다뤄보겠습니다. mysql 주제로는 처음 다뤄보네요. 제 첫 mysql 포스트의 주제는 FOUND_ROWS() 입니다. 1. SQL_CALC_FOUND_ROWS(FOUND_ROWS)의 역할 아마 FOUND_ROWS() 자체도 처음 들어보시는 분도 많을 것이라 생각합니다. FOUND_ROWS의 역할을 간단하게 정의하면 Limit을 제외하고 count를 저장할 수 있는 역할을 합니다. 다르게 얘기하자면, LIMIT과 상관 없이 조건에 해당하는 ROW를 전체 스캔한다는 것이죠. 특히 page nation(페이지 정보로 나눠서 정보 전달하는 기술)을 사용할 때, WHERE 절로 걸리는 filtering(필터링)이 같이 적용됩니다. 이 때문에 백엔드에서 API의 tot..

Data Base 2020.09.06

유용한 Git 명령어 - stash

이번 포스트는 git 명령어 중 하나인 stash에 대해 다뤄 보겠습니다. 저의 경우에 단순 빈도만 놓고 본다면 가장 많이 그리고 유용하게 사용하는 것 같습니다. 적어도 제 Local 환경에서 말이죠. 1. git stash 살펴보기 사실 stash를 사용만 했지 정확히 어떤 단어인지는 모르고 있었습니다. 사전적 의미는 다음과 같습니다.(google 검색) 사전적 의미로는 '어떤 것을 안전하고 비밀스럽게 특정 장소에 숨기다.' 라는 뜻을 가지고 있습니다. stash 명령어도 실제로 특정장소인 로컬(Local) 환경에 잘 보관하는 역할을 합니다. 비밀스럽게(?)는 잘 모르겠네요. 어쨌든 remote 환경에 있지는 않으니까요! 사용의 목적을 정말 간단하게 소개하자면, 로컬에서의 임시저장과 동일한 역할을 합니..

TIL 2020.09.06

Flask(python) - Image 사이즈 별 S3 저장 및 URL Link 저장하기

안녕하세요. 이번 포스트는 Flask(Python)에서 Image(이미지)를 사이즈 별로 AWS S3에 저장하고 각 URL Link를 MYSQL(RDB)에 저장하는 과정 및 코드를 포스팅 해보겠습니다. 1. 프로젝트 및 구조 소개 1-1. 프로젝트 소개 지난번 포스트에서도 비슷한 글을 올렸지만 변경된 부분도 있고 조금 더 자세히 설명 드리고자 합니다. 본 프로젝트는 Brandi라는 다양한 브랜드를 모아 놓은 여성 쇼핑몰 브랜디의 사용자 및 관리자 페이지를 클론하는 프로젝트 입니다. 1-2. Layered Architecture 프로젝트의 Layered Atchitecture는 아래 Tree 구조와 다음과 같습니다.(Layered Architecture에 대한 자세한 설명은 위의 링크 포스트에 기술되어 있..

Dev/Flask 2020.08.31

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

Flask - Basic + Layered Architecture

안녕하세요. 이번 포스트는 Flask(플라스크)에 대해서 다뤄보겠습니다. Flask가 어떤 역할을 하는지에 대한 기본적인 이해와 특별히 Layered Architecture에 대해 이해 해보겠습니다. 1. Flask와 특징들 Flask는 Python으로 만들어진 Web Application 구현에 사용되는 Frame Work 입니다. 특징 될 만한 것으로 다음과 같은 것이 있습니다. 1.1 micro web framework 말 그대로 아주 가벼운 web framework 입니다. 제 블로그의 카테고리 중 하나인 Django도 Flask와 동일하게 Python 기반의 web freame work 이지만, Django는 다양한 기능 등을 제공하기에 상대적으로 무겁습니다. 하지만 이에 반해 Flask는 상대..

Dev/Flask 2020.08.23

WebSite(Class101) Clone Project - Part4.React 체험기 + 후기

안녕하세요. 이 포스트는 시리즈로 구성되어있습니다. Django의 내용은 거의 포함 될 것 같지 않아 카테고리를 TIL로 작성하였습니다. 클론 프로젝트 후기의 마지막으로 갑작스런(?) React 체험기와 프로젝트 후기를 작성해보겠습니다. 1. React로 Django로 만들었던 API 구현 해보기 Part3에서 소개한 elasticsearch의 API 생성이 마무리 되었지만, Front End 팀원 분들께서 검색 API의 구현이 어려울 것 같았습니다. 그래서 React를 맛 보는 겸 직접 검색 API에 대한 구성을 해보기로 했습니다. 참고로 javascript는 제대로는 아니지만 단순한 정도의 구현이 가능한 정도이고, React는 전혀 공부 해보지 못 했습니다. 검색 화면에 대한 간략한 소개 입니다. 운..

TIL 2020.08.17

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

유용한 Git 명령어 - rebase

이번 포스트는 git에 대해 다뤄 보겠습니다. git은 정말 장점이 많은 협업툴입니다. 저의 경우는 운영업무를 하면서는 git을 한 번도 사용해보지 않다가 개발을 배우면서 다시 사용중에 있습니다. 한 가지 아쉬운 것은 처음 사용할 때, 다소 어렵게 느껴질 수도 있다는 점입니다. 그리고 혹여나 실수를 할 때... 가 어려운것 같습니다. 혹여나 남의 코드나 작업하는 repository를 망치지 않을까 하기 때문입니다. 다른 git 명령어는 많이 어렵지는 않아서 포스팅을 작성하지는 않았는데 rebase의 경우는 생소하고 다소 새롭기 때문에 작성하고자 합니다. 1. git Rebase 살펴보기 단어 그대로 기점을 다시 잡는 명령어 입니다. 한 마디 말보다 좋은 예제 그림이 더 명확하기 때문에 업로드 해보겠습니다..

TIL 2020.08.09

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
반응형