목록개발 (99)
semtax의 개발 일지
소개 이번 포스팅에서는, 지난 포스팅에서 작성한 sudoku api와 django view를 연동해보는 시간을 갖도록 하겠습니다. 코드 작성 먼저 sudoku 폴더의 views.py를 열어서, 아래와 같이 코드를 작성 하도록 하겠습니다. 첫번째로, views.py 의 make_sudoku 함수 입니다. from django.http import HttpResponse, JsonResponse from .models import Ranking import json def index(request): return HttpResponse("index page") def ranking(request): return HttpResponse("ranking view page") def get_ranking_list..
소개 이번 포스팅에서는, 우리가 작성한 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 프로젝트에서 만든 ..
개요 이번 시간에는 백 트래킹 알고리즘에 대해서 알아보도록 하겠습니다. 또한, 백 트래킹 알고리즘을 이용해서 스도쿠 퍼즐을 만드는 프로그램을 작성 해보도록 하겠습니다. 백 트래킹(Back Tracking)? 백 트래킹(Back Tracking)은 단어 뜻 그대로, 되 추적이라는 다시 되돌아가서 되돌아간 자리에서 시작한다는 말입니다. 어릴 적에 "경우의 수" 문제나, "확률과 통계" 문제를 풀 때를 떠올려 봅시다. 문제를 맨 처음 풀 때, 우리는 종이에 수형도 라고 부르는 나뭇가지를 처음부터 하나씩 그려서 갯수를 전부 세었습니다. 아니면, 길 찾기 문제를 풀 때 에도, 종이에 거의 모든 경우의 수를 그려서 직접 세서 풀었던 것을 기억 하실겁니다. 사실은 모든 경우의 수를 전부 세서 그렸다고 생각을 하고는 ..
개요 이번 시간에는 RabbitMQ의 topic 기능 에 대해 알아보고, node.js를 이용해서 예제를 작성해보도록 하겠습니다. 토픽? 한 가지 가정을 해봅시다. 여러분이 신문이나 잡지를 구독하고 있다는 가정 말이죠. 잡지를 구독하면, 보통 구독자는 구독자가 원하는 주제(토픽)를 골라서 구독하고, 구독 서비스를 제공하는 회사는 구독자가 원하는 주제(토픽)에 맞춰서 그에 알맞은 잡지를 제공하게 됩니다. 이와 같이, 구독 서비스를 제공하는 회사는 구독자에게, 주제(토픽)에 맞춰서 원하는것을 제공하는 기능을 가지고 있습니다. RabbitMQ도 마찬가지 입니다. RabbitMQ도 구독자에 해당하는 각 수신자에게, 각 수신자가 원하는 정보만을 골라서 가져갈 수 있게 토픽(TOPIC) 이라는 기능을 제공합니다. ..
개요 이번 포스팅에서는, JPA를 이용해서 기존 예제에 댓글기능을 추가하는것을 다루려고 한다. 먼저, JPA를 이용해서 댓글 기능을 추가하기전에 기본적으로 알아야 할 내용들을 짚어보고 가도록 하자. 데이터 베이스 Relationship 보통 프로젝트를 수행하면서, 데이터를 DB에 넣기 좋게 모델링을 할때 E-R 다이어그램을 사용해서 모델링을 해보았을 것이다. 혹은 학교 데이터 베이스 수업때, E-R 다이어 그램을 이용해서 모델링을 해 보았을 것이다. 모델링을 하다 보면 아래와 같은 형태의 다이어그램을 많이 그리거나 보았을 것이다. 위의 그림에서, Course나 Instructor와 같은 사각형을 보고 엔티티(Entity)라고 부르고, 마름모 모양 과 닭발 같이 생긴 선을 보고 관계(Relationship..