일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹
- db
- HTTP
- 디자인 패턴
- node.js
- python3
- ORM
- 스프링부트
- 파이썬3
- 자바
- 개발
- 데이터베이스
- 장고
- Python
- mysql
- rabbitmq
- 보안
- 웹 개발
- java
- Spring
- Spring Boot
- 스프링 부트
- bytecode
- 스프링
- 파이썬
- django
- 안드로이드
- 자료구조
- JPA
- BCI
- Today
- Total
목록개발/Python (19)
semtax의 개발 일지
소개 이번 포스팅에서는, 우리가 작성한 sudoku api를 pytest를 이용해서 테스트를 해보도록 하겠다. 아래글을 먼저 읽기 전에, pytest에 대한 기본 지식이 필요하므로 아래의 포스팅을 읽고 오도록 하자. https://semtax.tistory.com/37 pytest로 파이썬 유닛테스팅 수행하기 개요 이번 포스팅에서는 파이썬 테스팅 도구인 pytest에 대해서 알아보도록 하겠습니다. 테스트 코드의 중요성 맨 처음 프로그램을 짜는 사람의 입장이나, 크기가 그렇게 크지 않은 서비스를 제작할때에는, 테스트.. semtax.tistory.com 왜 테스트 코드를 작성하는가? 사실, 테스트 코드를 작성하지 않아도 프로그램을 개발 할 수 있다. 오히려 규모가 엄청 작은 프로젝트이거나, 한번 만들고 계..
소개 이번 포스팅에서는, 실제로 sudoku 퍼즐을 생성하고 검증하는 api를 작성 해보도록 하겠다. Sudoku & 필요한 기능 명세 스도쿠는, 9*9 격자에 숫자를 채워넣는 게임이다. 단 조건이 있는데, 각 칸에 해당하는 행/열/3*3 사각형에 1~9 까지의 숫자가 단 1개씩만 들어가 있어야 한다는 조건이다. 보통 이러한 스도쿠는 백트래킹 알고리즘을 이용해서 풀 수 있다. 백트래킹 알고리즘에 대한 자세한 내용은 아래 글을 참조해주기를 바란다. https://semtax.tistory.com/50 파이썬과 백트래킹 알고리즘을 이용한 스도쿠 구현 개요 이번 시간에는 백 트래킹 알고리즘에 대해서 알아보도록 하겠습니다. 또한, 백 트래킹 알고리즘을 이용해..
소개 이번 포스팅에서는, django의 뷰를 작성하고, URL 라우팅을 설정하는 것에 대해서 다루도록 하겠다. MVT 모델 장고(Django)의 모델은 MVT(Model-View-Template) 모델을 따른다. 대략적인 MVT의 동작구조는 아래 그림과 같다. 대략적으로 아래와 같은 과정을 따른다. 사용자가 django로 만든 웹 서비스에 서비스를 요청 요청한 URL에 따라서 해당 URL에 매칭되는 view에 매핑된 함수를 호출 호출된 View에 있는 함수가 Web Request를 받아서, 적절하게 비즈니스 로직을 실행 이때, 모델에 있는 데이터를 가져오거나, 모델에 있는 데이터를 수정/삭제/생성 수행 비즈니스 로직이 다 실행되고, 이에 따른 적절한 web response를 반환 반환된 web respo..
소개 이번 포스팅에서는, 파이썬과 장고(Django) 프레임워크를 이용해서 웹 기반의 스도쿠 게임을 만들기 위해서 Django 설치 및 세팅을 하는법에 대해서 다루도록 하겠습니다. 장고(Django)? 장고(django)는, 파이썬을 기반으로 한 오픈소스 웹 프레임워크 이다. 일반적인 웹 프레임워크와 다르다고 할 수 있는 점은, 기존의 다른 웹 프레임워크들(Spring MVC, code ignitor, laravel 등)과는 다르게, MTV 라는 구조를 가진다는 것이 특징이다. 또한, 웹 프로젝트를 작성 할때, 각 기능들을 app이라는 단위로 각각 분리해서 개발 할 수 있다는 특징이 있다. 마지막으로, django는 플러그인 기반의 아키텍처를 지원 하기 때문에, 비록 다른 django 프로젝트에서 만든 ..
개요 파이썬으로 함수형 프로그래밍을 하다보니, 두 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를 메시지 브로커로 사용하는것을 권장합니다..
개요 이번 시리즈에서는 사용자가 등록한 메가박스 영화의 잔여좌석을 조회해서 알려주는 프로젝트를 진행할 예정입니다. 이번 포스팅에서는, 메가박스 영화 잔여좌석 목록을 크롤링하는 크롤링 함수를 제작할 예정입니다. 메가박스 데이터 수집 일단, 메가박스에서, 영화목록 및 영화 잔여좌석 목록을 어떻게 가져오는지 분석을 해봅시다. 먼저, 아래와 같이 크롬 브라우저로 메가박스에 접속을 해줍시다. 그런 뒤, F12로 개발자 도구를 켜서 네트워크 탭을 클릭한 상태로 예매버튼을 눌러줍시다. 그리고, XHR 탭을 클릭해 줍시다. 그러면은 위 그림과 같이 메가박스 예매버튼을 클릭했을때, 크롬 개발자 도구를 통해 HTTP를 이용해서 서버와 브라우저간에 어떤 데이터가 왔다갔다 하는지 확인할 수 있습니다. 계속해서 개발자 도구를 ..