전체 글

전체 글

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 3

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 3

    이제 간단히 UI를 보기 좋게 만들고 Order 백엔드는 마무리 하겠습니다. /fastcampus/templates/order/order_list.html 주문 시간 음식 배달 예상 시간 배달 완료 여부 {% for order in order_list %} {{ order.order_date }} {% for food in order.orderfood_set.all %} {{ food.food_name }} {% endfor %} {% if order.estimated_time == -1 %} 미정 {% else %} {{ order.estimated_time }} {% endif %} {% if order.deliver_finish == 0 %} 배송중 {% else %} 완료 {% endif %} {..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 2

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 2

    이제 각 음식점에서 메뉴를 확인하는 창을 form으로 바꾸고 메뉴를 선택하고, 주소를 입력받으면 Order, Orderfood테이블의 값을 추가해주는 코드를 작성해 보도록 하겠습니다. 우선 menu_list.html을 바꾸어 주도록 하겠습니다. /fastcampus/order/templates/order/menu_list.html 1. 주문하실 음식을 골라주세요. {% for menu in menu_list %} {{ menu.food_name }} {% endfor %} 2. 집 주소를 알려주세요. 여기에서 우선 checkbox 형식으로 menu라는 이름으로 음식 목록을 전달하고, address를 받고 shop이 몇번인지 정보를 hidden으로서 안보이게 해주고 백단으로 전달하였습니다. /fastcam..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 1

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Order백엔드 개발 1

    우선 바로 menu를 위한 rest API셋업을 시작하고 데이터 값을 임의로 집어 넣도록 하겠습니다. /fastcampus/order/views.py from django.shortcuts import render from order.models import Shop, Menu, Order, Orderfood from order.serializer import ShopSerializer, MenuSerializer from django.http import HttpResponse, JsonResponse from django.views.decorators.csrf import csrf_exempt from rest_framework.parsers import JSONParser # Shop객체들을 다 s..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Models 제작

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Models 제작

    우선 배달 애플리케이션을 만들기 위한 django프로젝트를 만들어 보겠습니다. $django-admin startproject fastcampus 으로 프로젝트를 만들고 바로 주문을 위한 order앱을 그 안에 만들어 보겠습니다. $python manage.py startapp order 그리고 order에서 models.py를 수정하겠습니다. /fastcampus/order/models.py from django.db import models # pk는 자동으로 생성된다. class Shop(models.Model): shop_name = models.CharField(max_length=20) shop_address = models.CharField(max_length=40) # 이렇게 하면 Menu..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Django 기초 - 3

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Django 기초 - 3

    이제 하드코딩된 태그의 url을 바꾸어 보도록 하겠습니다. /mysite/polls/templates/polls/index.html {% if latest_question_list %} {% for question in latest_question_list %} {{ question.question_text }} {% endfor %} {% else %} No polls are available. {% endif %} 그냥 detail의 url에 question.id를 삽입해라 는 코드입니다. detail의 url이 바뀌더라도 상관이 없는 코드가 됩니다. 그리고 views.py에 app_name을 지정해 줄 수도 있습니다. /mysite/polls/urls.py from django.urls import..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Django 기초 - 2

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Django 기초 - 2

    일단 먼저 admin패널을 이용하기 위해 admin을 만들어 보도록 하겠습니다. $python manage.py createsuperuser 를 치시고 기본적인 정보를 쳐주시고 $ python manage.py runserver 을 통해 서버를 시작하고, http://localhost:8000/admin에서 아까 만든 admin정보로 로그인하게 되면 아래와 같은 창이 뜨게 됩니다. 그리고 이 Admin패널에서 DB에 접근 권한을 설정해 주도록 하겠습니다. /mysite/polls/admin.py from django.contrib import admin from .models import Question, Choice admin.site.register(Question) admin.site.registe..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Django 기초 - 1

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Django 기초 - 1

    Django 시작 우선 anaconda의 가상환경에 django의존성을 설치하고 관련 cli를 이용해서 프로젝트를 생성해 보도록 하겠습니다. $conda activate Machine_learning $conda install django $django-admin startproject mysite 으로 프로젝트를 만들면 아래와 같은 파일 구조가 나오게 됩니다. 그리고 기본적으로 manage.py에 있는 설정옵션을 바탕으로 서버를 아래 코드를 통해 시작하면 다음과 같게 됩니다. $python manage.py runserver 그리고 mysite라는 프로젝트 내에서 설문조사 하는 앱을 하나 더 구동시킬 것이므로 아래의 명령어를 쳐줍니다. $python manage.py startapp polls 첫 번쨰..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 어플리케이션 이벤트 스토밍

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 어플리케이션 이벤트 스토밍

    이제 이를 하기 위해서 이벤트 스토밍을 할 차례입니다. 이벤트는 사용자가 행동을 해서 발생한 결과입니다. 이 때 각자 생각나는 event 즉 저희의 경우면 음식 주문, 음식 조회, 주문완료, 주문 취소,... 등등이 있겠습니다.를 다 일단 붙입니다. 그리고 상이하거나 중복된건 다 지우고, 이벤트가 발생하는 시간순서대로 붙입니다. 그리고 동시에 수행되는 작업은 수직으로 붙입니다. 그리고 이 떄 중요한 점은 비지니스 용어를 사용하면 안됩니다. 모든 파트의 사람이 참여하는 행위이기 때문에, 데이터베이스... 등등 시스템 내에서 발생되는것을 찾는게 아니기 때문입니다. 이런 것을 제외하고 적어야 합니다. 이는 이벤트 스토밍을 한 예시입니다. 그리고 프로세스를 그룹핑 하는 과정을 거칩니다. 맨 위의 경우는 주문을 ..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 도메인 주도 설계 (DDD)

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 도메인 주도 설계 (DDD)

    기존 프로세스 각 프로세스에는 크게 5가지 역할이 존재하게 됩니다. 그리고 이 과정에서 관점 차이가 존재할 수 밖에 없는데, 이 과정에서 싸울 수가 있습니다. 이러한 감정소모를 해결하고, 일정을 관리하고, 프로젝트가 원만히 진행되도록 해주는 역할이 PM이 하는 역할입니다. 기획자의 입장에서 자기가 구상한 기능들이 있는데, 개발자는 이게 다 불가능 하다고 합니다. 그리고 개발자도 계속 해야할 일이 쌓입니다. 기획자의 애로사항이 점차 하나씩 늘어가기 때문입니다. 뭐도 더 추가해달라 뭐도... 등등으로요. 디자이너도 마찬가지 입니다. 개발자가 개발하는 것에 따라서 디자인도 다 변경해야 하기 때문입니다. 그리고 기획자가 구체적인 기획을 세우지 않으면 이 구체적인 디자인을 디자이너가 다 생각해야 하므로 디자이너도..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 프로젝트 개요 ( 온라인 주문 어플리케이션 )

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 프로젝트 개요 ( 온라인 주문 어플리케이션 )

    온라인 음식 주문 어플리케이션 이에는 크게 3가지 종류의 사람이 있다고 가정합니다. 우선 음식을 시키는 사용자가 음식을 선택하고, 배송지를 누르고 주문을 접수합니다. 그럼 배달가게 사장님은 주문내역을 확인하고 예상 소요시간을 입력하게 됩니다. 그리고 배달기사님이 배송을 하고 배송 완료버튼을 누르면 끝입니다. 그리고 가게 사장님이 주문을 취소 하거나, 사용자가 주문을 취소 할 수도 있는 그러한 상황입니다. 일단 크게 9가지 서비스를 사용하도록 하겠습니다. 정말 기본적인 모놀리식, 고전적으로 작성해 보도록 하겠습니다.