일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- bytecode
- 안드로이드
- db
- node.js
- ORM
- 보안
- python3
- HTTP
- 스프링
- 자바
- django
- Spring
- Spring Boot
- rabbitmq
- 데이터베이스
- BCI
- 디자인 패턴
- 웹
- 파이썬
- 파이썬3
- java
- 장고
- 웹 개발
- 스프링부트
- 자료구조
- 스프링 부트
- JPA
- 개발
- Python
- mysql
- Today
- Total
목록Python (9)
semtax의 개발 일지
개요 이번 포스팅에서는 실제로 Channel 라이브러리를 이용해서 웹 소켓 요청을 처리하는 부분을 작성하도록 하겠습니다. 웹 소켓? 웹 소켓은 말 그대로, 웹 브라우저에서 서버와 계속 연결을 유지하면서 소켓 통신을 할 수 있게 해주는 프로토콜을 의미한다. 주로 채팅 서버나, 연결을 계속 유지하면서 메시지를 받거나 전송해야 하는 곳(Ex : 푸시 알림, 게임)에 많이 쓰인다. 보통, HTTP/S 등으로, 웹소켓을 연결한다는 메시지와 기본적인 세션정보들을 전송하고, 그 이후에 실제 웹소켓으로 통신하는 방식으로 이루어져 있다. 사실, 기존의 http나 ajax 같은것들이 있는데 굳이 웹소켓 같은 것을 써야하나? 라고 생각하는 사람들이 있을 수 도 있다. 하지만, 푸시 알림이나 서버와 계속 연결을 유지하면서 데..
개요 이번 시리즈 에서는, Django에서 웹 소켓을 쓸 수 있게 해주는 라이브러리인 Channels을 이용해서 채팅서버를 만들어보는 예제를 만들어보도록 하겠습니다. Channels? Channels 공식 홈페이지에 들어가면 아래와 같은 설명이 나와있습니다. Channels is a project that takes Django and extends its abilities beyond HTTP - to handle WebSockets, chat protocols, IoT protocols, and more. It’s built on a Python specification called ASGI. It does this by taking the core of Django and layering a ful..
개요 이번 시간에는 백 트래킹 알고리즘에 대해서 알아보도록 하겠습니다. 또한, 백 트래킹 알고리즘을 이용해서 스도쿠 퍼즐을 만드는 프로그램을 작성 해보도록 하겠습니다. 백 트래킹(Back Tracking)? 백 트래킹(Back Tracking)은 단어 뜻 그대로, 되 추적이라는 다시 되돌아가서 되돌아간 자리에서 시작한다는 말입니다. 어릴 적에 "경우의 수" 문제나, "확률과 통계" 문제를 풀 때를 떠올려 봅시다. 문제를 맨 처음 풀 때, 우리는 종이에 수형도 라고 부르는 나뭇가지를 처음부터 하나씩 그려서 갯수를 전부 세었습니다. 아니면, 길 찾기 문제를 풀 때 에도, 종이에 거의 모든 경우의 수를 그려서 직접 세서 풀었던 것을 기억 하실겁니다. 사실은 모든 경우의 수를 전부 세서 그렸다고 생각을 하고는 ..
개요 파이썬으로 함수형 프로그래밍을 하다보니, 두 dict 자료형을 합쳐서 합쳐진 결과를 반환하는 함수가 없나 찾아보았다. 다행히도 파이썬 3.5 이상부터 이러한 연산을 지원해주는 내장 연산자가 있어서 소개를 해보려고 한다. 사용법 해당 연산자의 사용법은 아래 코드 와 같다. d1 = {'a' : 1, 'b' : 2} d2 = {'c' : 3, 'd' : 4} result = {**d1, **d2} print(result) # {'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4} 활용 파이썬으로 함수형 프로그래밍 수행시에, dictionary의 리스트를 인자로 받아서 해당 리스트..
개요 이번 시간에는, 메가박스 알리미 서비스 제작을 위한, django 설치 및 기본 설정을 다루려고 합니다. 설치 python pip 를 이용해서 아래와 같이 설치를 해줍니다. $ pip3 install django 아래와 같이 명령어를 실행했을시, 버전이 출력되면 정상적으로 설치된 것입니다. $ python -m django --version 프로젝트 생성 아래 명령어를 이용해서 django 프로젝트를 생성 해줍니다. $ django-admin startproject megabox_alarm 위 명령어를 실행하면 megabox_alarm 이라는 폴더가 생성되고, 해당 폴더에 들어가면 아래와 같은 파일과 폴더가 생성되어있습니다. manage.py megabox_alarm 각 파일 및 폴더 설명은 아래와..
개요 이번 포스팅에서는 python의 메시지 큐 라이브러리인 celery에 대해서 소개하고 간단한 예제를 돌려보도록 하겠습니다. Celery? Celery는, 분산 메시지 패싱을 이용해서 비동기적으로 작동하는 작업 큐 입니다. Celery를 통해서 동기 방식(Synchronous)의 작업을 비동기 방식(Asynchronus)의 코드로 바꿔 줄 수 있습니다. Celery의 장점 중 하나는, python에서 가장 많이 쓰이는 웹 프레임워크인 Django과 연동하는 기능을 공식적으로 지원한다는것입니다. Celery 공식 홈페이지에서 Django 연동 가이드도 소개해주고 있어서 상대적으로 다른 프레임워크에 비해서 연동이 쉽습니다. Celery는 기본적으로 rabbitMQ를 메시지 브로커로 사용하는것을 권장합니다..
개요 이번 포스팅에서는 파이썬 테스팅 도구인 pytest에 대해서 알아보도록 하겠습니다. 테스트 코드의 중요성 맨 처음 프로그램을 짜는 사람의 입장이나, 크기가 그렇게 크지 않은 서비스를 제작할때에는, 테스트의 중요성이 크게 중요하지 않다고 느껴진다. 사실, 코드의 크기가 별로 크지 않은 경우에는 그냥 직접 돌려보면서 테스트하는게 더 빠를 수도 있다. 하지만, 프로젝트의 크기가 점점 커지고 요구사항들이 추가되어 기능이 고도화가 되는 경우, 코드의 크기도 그에 맞춰서 증가하게 되고 각 모듈간 참조하는 경우의 수가 늘어나게 되어, 특정부분에서 에러가 났을때 버그를 해결하기가 정말로 힘들어지게 된다. 특히, 한 부분을 고쳤는데 그 고친 부분때문에 다른 부분에서 에러가 나는 일도 프로그램의 크기가 큰 경우 매우..
개요 이번 포스팅에서는 파이썬에서 쉽고 편하게 HTTP(S) 요청을 보내고 받을 수 있는 Requests 라이브러리에 대해 알아보도록 하겠다. Why Requests? 사실 파이썬에는, http(s) 요청을 보내고 받을 수 있는 urllib이나 httplib과 같은 내장 라이브러리들이 존재한다. 하지만, 파이썬 내장 라이브러리들은 사용하는게 불편하다는 단점이 존재한다. 그래서 파이썬 HTTP 라이브러리로 여러가지가 나왔는데, 그 중에서 가장 많이 쓰고있는것이 바로 이 Requests 라이브러리이다. 설치 아래 명령어를 이용해서 설치를 수행하면 된다. $ pip3 install requests 일단 사용은 아래와 같이 하면 된다. import requests r = requests.post('https:/..