분류 전체보기 118

카카오톡 플러스친구를 이용한 email 간편 전송 서비스 만들기(feat, DJANGO, groomide) 5

이번 포스팅에서는 앞에서 만든 django 서비스를 발전시켜 플러스친구에서 '전송' 이라는 단어가 입력되면 정해진 이메일 주소로 지금까지 플러스친구를 통해 전송된 메시지들을 이메일로 만들어 발송하는 서비스를 구현 해보겠습니다. 서비스 정의는 아래와 같이 동작 합니다. 플러스친구에서 전송한 메시지를 django 서버에 사용자 별로 저장 하였다가 '전송'이라는 메시지가 입력되면 gmail smtp 서버를 이용하여 django 서버에 미리 등록해둔 email 주소들로 전송한다. django 에서 이메일을 전송하는 방법은 여러가지가 있겠지만, 간단한 설정만으로 사용 가능한 gmail을 연동하여 사용 해보도록 하겠습니다. 1. 구글 Gmail SMTP 서버 사용 설정 Gmail 에서는 간단한 인증설정을 통해 외부..

Technique 2018.09.10

카카오톡 플러스친구를 이용한 email 간편 전송 서비스 만들기(feat, DJANGO, groomide) 4

이전 포스팅에서 플러스친구와 goormide에 동작중인 django 서비스 간 통신이 가능함을 확인 하였습니다. 하지만 아직 플러스친구 API와 연동하여 유의미한 동작을 보지는 못하였습니다. 이제 django 서비스를 플러스친구 API에 맞게 작성하여 전송한 메시지가 정상적으로 전송 되어 django 서비스에 도달 하였는지를 확인할 수 있는 간단한 서비스를 만들어보겠습니다. 이번 포스팅에서 만들고자 하는 서비스는 아래와 같습니다. 사용자가 플러스친구 채팅방을 통하여 메시지를 전송하면, django 서비스에서 이를 수신하여 user_key와 함께 그대로 사용자의 채팅방에 전송한다. 이를 통하여 플러스친구 API의 외부 서버로의 message 전달 및 서버에서의 호출 처리 및 응답을 알아볼 수 있습니다. 1..

Technique 2018.09.09

카카오톡 플러스친구를 이용한 email 간편 전송 서비스 만들기(feat, DJANGO, groomide) 3

이번 포스팅에서는 앞에서 생성한 카카오 플러스 친구와 goormide를 이용해 실행중인 django 테스트 서버를 연동시켜 보겠습니다. 1. 카카오 플러스친구 API 요구사항 확인 카카오 플러스 친구를 외부 서버의 서비스와 연동하여 사용하기 위해서는 스마트채팅의 API형 서비스를 활용해야 합니다. API형 서비스를 설정하면 카카오플러스친구 스마트채팅과 연결 가능한 앱(외부서버의 서비스)와의 연결 설정을 할 수 있습니다. API Document에 API의 상세 설명이 나와 있습니다. API Document 중 핵심적인 문구들을 추리자면 - http(s) restful api를 통하여 카카오 API 서버 -> 파트너 서버를 호출합니다. - 카카오톡 이용자를 구분하기 위해서는 카카오로부터 API를 통해 use..

Technique 2018.09.09

카카오톡 플러스친구를 이용한 email 간편 전송 서비스 만들기(feat, DJANGO, groomide) 2

이번 포스팅에서는 카카오 플러스 친구의 스마트 채팅에 대하여 소개하고, 이와 통신하기 위한 서버의 조건들에 대하여 이야기 해보려 합니다. 1. 카카오 플러스 친구 기본설정 카카오 플러스 친구에 대한 설명은 플러스친구 관리자 센터에 자세히 설명 되어 있습니다. 기존 카카오톡 계정 또는 새로 가입하여 로그인 하시면 플러스 친구를 만들 수 있으며, 이 플러스 친구의 스마트 채팅 기능을 활용 할 것입니다. 우선 플러스 친구를 만듭시다. ㅇ 새 친구 만들기 ㅇ 개설하기 화면 예시 ㅇ 공개설정 조정 - 해당 플러스 친구에 접근하기 위해서는 공개설정을 해야 합니다. 홈 공개를 해야만 플러스 친구 서비스가 가능하며, 검색 허용을 통해 쉽게 접근이 가능합니다. ㅇ 개설 확인 - 검색을 통해 방금 만든 플러스 친구가 활성..

Technique 2018.09.04

카카오톡 플러스친구를 이용한 email 간편 전송 서비스 만들기(feat, DJANGO, groomide) 1

학습을 하는데 있어 학습 이후 결과물을 확인하는 것은 매우 큰 동기가 됩니다. 기존에 제가 포스팅한 것들도 눈에 보이는 결과물을 제공하기는 하였으나, 그닥 흥미롭지 않은 원론적인 동작을 보여주는 페이지 정도에 그쳐 아쉬움이 항상 남았습니다. 이후 몇달간 완결시킨 결과물이 없어 포스팅을 못하다가 기존에 포스팅 했던 요소들(Google Cloud, Docker, Django)에 더하여 카카오플러스친구, gmail SMTP 서버 구성으로 어렵지 않으면서 흥미로운 결과물을 도출할 수 있는 간단한 익명 신고 체널을 만들게 되어 이를 공유 하고자 합니다. 본 포스팅에서는 Kakao 플러스 친구의 API 기능을 이용하여 Django로 구성된 서버와 통신하면서 Gmail SMTP 서버를 이용해 이메일을 전송하도록 하는..

Technique 2018.09.04

웹서비스 비동기(백그라운드) 프로세스 만들기 (feat. Django, Celery) 5

5. celery 구동시키기 celery가 서버에서 동작하기 위해서는 celery의 task를 받아 처리하는 broker가 필요합니다. 이를 위해 우리는 앞에서 rabbitmq를 설치 하였습니다. celery의 기본 broker가 rabbitmq 이기 때문에 별도의 broker셋팅을 하지 않았습니다. ㅇ celery 구동 docker의 컨테이너에서 앞에서 django에 셋팅 해 놓은 celery를 동작시킵니다.# celery -A mywebapp worker -l info/usr/local/lib/python3.6/dist-packages/celery/platforms.py:795: RuntimeWarning: You're running the worker with superuser privileges:..

Technique 2018.04.08

웹서비스 비동기(백그라운드) 프로세스 만들기 (feat. Django, Celery) 4

3. Celery 셋팅 이번 포스팅에서는 앞에서 작성해 놓은 django 앱에 비동기 프로세스를 위한 Celery를 적용해 보도록 하겠습니다. 이에 필요한 celery와 rabbitmq 패키지는 앞선 포스팅에서 이미 설치 하였습니다. ㅇ celery.py 생성 celery를 사용하기 위해서는 django프로젝트의 프로젝트 폴더에 celery.py를 추가해야 합니다.from __future__ import absolute_import, unicode_literals import os from celery import Celery # set the default Django settings module for the 'celery' program. os.environ.setdefault('DJANGO_SET..

Technique 2018.04.05

웹서비스 비동기(백그라운드) 프로세스 만들기 (feat. Django, Celery) 3

2. Django 어플리케이션 작성(계속) ㅇ url 연결하기 - 앞에서 작성한 view가 메인 페이지에서 수행됨으로 이를 정의합니다.from django.contrib import admin from django.urls import path from applycelery import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.app_core), ] ㅇ template 만들기 - 브라우져에서 보여지는 화면을 만들어 봅시다. html에 대하여는 여기서 설명하지는 않겠습니다. 화면 구성을 위해서 metarialize 프레임워크를 사용하였습니다. - 먼저 templates를 위치시킬 폴더를 만듭니다. django는 앱 내에 t..

Technique 2018.04.05

웹서비스 비동기(백그라운드) 프로세스 만들기 (feat. Django, Celery) 2

이번 포스팅에서는 앞에서 준비한 환경을 이용하여 Django 에서 Celery를 적용해 비동기 동작을 수행하는 웹어플리케이션을 만들어 보도록 하겠습니다. 만들어볼 웹 어플리케이션을 통해 구현하고자 하는 기능은 아래와 같습니다. 4개의 버튼에 각각 동기 , 동기-지연, 비동기, 비동기-지연 프로세스를 할당하고, 각가의 버튼의 프로세스 수행 결과를 표시한다. 위에서 정의한 웹 어플리케이션을 아래와 같은 모습으로 구현해보고자 합니다. 1. 필요한 패키지 설치 지금 docker로 실행중인 컨테이너에는 django를 nginx 서버로 구동하기 위한 최소한의 패키지만 깔려 있습니다. Celery 동작을 위해 필요한 Celery 및 rabbitmq를 설치 합니다. ㅇ Celery 설치# pip3 install cel..

Technique 2018.04.01

웹서비스 비동기(백그라운드) 프로세스 만들기 (feat. Django, Celery) 1

상업용 웹서비스들은 오랜 시간(사용자가 인지할 만한 시간)이 필요한 프로세스의 경우 사용자의 명령을 받아 백그라운드로 처리하고 그 시간동안 사용자는 가만히 기다릴 필요 없이 다른 작업을 진행할 수 있도록 다른 서비스로 전환한다. 웹에 공개하기 위한 서비스에서 사용자 경험을 향상시키기 위해서는 이와 같은 백그라운드 처리는 필수적이다. 본 포스팅에서는 Django의 프로세스를 Celery를 이용해 비동기(백그라운드)화 하는 방법을 소개하고자 한다. 진행을 위한 셋팅은 본 블로그의 포스팅 Google Cloud, Docker로 간단하게 웹서비스 구축하기(feat. Django) 3 [2. 이제 dockerfile을 빌드 합니다.] 에서부터 시작합니다. * 비동기를 위해 사용하는 Celery 패키지는 윈도우를 ..

Technique 2018.03.27
반응형