패스트캠퍼스 31

패스트캠퍼스 챌린지 21일차 [로드밸런서 L4,L7의 개념]

오늘 배울 내용은 로드밸런싱에 대한 부분이다. 로드밸런싱이란? 로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭합니다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 합니다. 쉽게말해서 내가 서비스를 만들었는데 처음에는 100명정도를 생각하다가 이게 히트를 치면서 만명이 들어오는 서비스가 되었다면 그럼 당장 생각나는건 서버의 성능을 올리는 것이다. 하지만 이경우는 비용적인 금액이 기하급수적으로 증가를 하기때문에 서버를 여러개를 두고 로드밸런싱이라는 교통정리자가 1번 사용자는 1번 서버로가 2번은 3번 서버로가..

DEVOPS 2021.11.21

패스트캠퍼스 챌린지 2O일차[EC2에 Django업로드 하기]

어느덧 앞자리가 2까지 올라왔네요 그만큼 날씨는 더 내려가는거 같습니다. 오늘의 미세먼지가 매우 심하므로 집에서 강의나 듣고 코딩테스트 준비를 하고 있습니다. 나름 시간이 잘갑니다. 문제를 풀면 뭔가 성취감도 생기고 나중에 취미로도 좋을거 같습니다.... 오늘은 EC2를 활용하여 지금까지 만들었던 Django파일을 깃에 업로드를 한후 생성한 인스턴트에 깃 clone을 통하여서 배포를 해보는 시간입니다. 깃을 활용한 배포를 평소에 어떤식으로 작동하는지 몰랐는데 그 개념도 살짝 배웠고, 나름 서비스를 하는 방식이라 재미있었던 강의 였던거 같습니다. 먼저 ec2에 들어가서 리눅스 인스턴트를 만들어줍니다. 그다음 pip update를 해주고 VScode 에서 다음 명령어를 쳐줍니다. pip freeze >> r..

DEVOPS 2021.11.20

패스트캠퍼스 챌린지 19일차 [AWS RDS생성후 연결하기]

현재 지금까지 한것중에서 데이터베이스를 AWS에서 제공하는 RDS를 활용하여 데이터베이스를 교체해보도록하겠습니다. RDS란? AWS RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스입니다. Amazon RDS는 현재 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Aurora(MySQL과 호환)을 비롯한 총 6가지 데이터베이스 엔진을 지원하고 있습니다. 데이터베이스의 크기는 기본(m4), 메모리 최적화(r3), 마이크로(t2), 총 3가지 카테고리로 나뉩니다. 최적화 된 I/O을 실현할 수 있도록 각 그룹마다 특성에 맞게 vCPUs, GiBs 메모리, 네트워크 성능 수준이 설..

DEVOPS 2021.11.19

패스트캠퍼스 챌린지 18일차[주문배달 서비스완성]

오늘 들은 강의로 그디어 아주 기초적인 Django의 개념을 배운거 같다. 배달의 민족같은 서비스는 아니지만 기본 뼈대는 얼추 비슷한 개념같아 보인다. 이제 이걸 도메인을 사서 서비스를 해보고 과부하가될때 어떤식으로 트래픽을 조절하는지에 대해서는 이제부터 배워간다. 먼저 모놀리식한 설계이기 떄문에 개발적은 속도면에서는 아주빠르다 이제 마이크로 설계부분으로 넘어가는 단계도 배운다고 한다. 오늘 구현한 부분이다. 사장님의 페이지로 들어가면 이렇게 주문한 내역이 올라오고 예상 시간을 입력하는 폼을 만들어주어서 예상 시간을 입력하면 데이터 베이스에 저장이 되게 만들었다. 사용자의 화면에서도 잘보여진다. 그다음으로 배달기사가 보여줄 페이지를 만들었다. 배달을 완료하면 버튼을 누르면 배달완료라고 뜨게한다. 사용자와..

DEVOPS 2021.11.18

패스트캠퍼스 챌린지 17일차[배달시스템 메뉴부분과 배달 성공화면]

오늘의 실습 내용은 사용자가 원하는 가게를 선택하고 그 가게의 메뉴를 고른다음 주소를 입력을 하면 주문이 되고 주문 내역을 보여주는 과정을 실습을 하게되었습니다. 이런식으로 식당의 메뉴가 보여주면 클릭을 하게되면 다음 페이지로 넘어가게 됩니다. 현재 페이지는 식당의 메뉴부분에 체크 박스를 설정을 하여 체크를 한뒤에 주소를 입력하고 주문완료하기 버튼을 누르면 주문 완료가 완료됩니다. 여기 부분을 누르게 되면 주문한 내역을 볼수 있는 페이지로 넘어가게 됩니다. 마지막 사진을 보면 현재 시간대와 안맞는걸 확인했다. 강의 에는 없지만 뭔가 껄끄러워서 시간을 바꾸는 법을 구글링을 해보았다. 먼저 setting.py에 들어가서 Time_zone부분을 Asia/Seoul로 바꿔준다음 아래에 있는 USE_TZ부븐을 F..

DEVOPS 2021.11.17

패스트캠퍼스 챌린지 16일차[menu모델과 html로 보여주기]

이번 강의 에서는 저번강의에서 만든 shop메뉴와 비슷한 가게내에 있는 음식 메뉴의 모델을 만들어 보는 시간이 었습니다. shop과 같이 복사를 해준뒤에 menu로 바꾼후 메뉴 모델을 만들어줍니다. 그다음 테스트를 해봅시다 값이 잘들어가나 받을수 있나를 확인해주기 위해서 인소미아에서 테스트를 해줍니다. 보시는거와 같이 제가 입력한 값들이 잘 출력이 되는것을 확인할수 있습니다. 여기서 처음에 2번째 가게의 메뉴를 넣을려고 하다가 오류가 발생해서 눈이 빠지게 코드가 뭐가 다른지 30분 동안 확인을 하다가 제가 2번쨰 가게를 안만드는 상태에서 2번쨰 가게 메뉴를 집어넣을려고 하다보니 안들어가는 이유로 너무 허무하게 해결을 하였습니다. 따라치는것만이 끝이 아니라 기초적인 생각을 해야할거 같습니다... 이제 이것..

DEVOPS 2021.11.16

패스트캠퍼스 챌린지 15일차[(배달서비스)Shop 모델 만들기]

저번 시간까지는 Django의 기초를 배웠으니 이를 활용하여 배달시스템을 간단하게 구현을 시작한다. 먼저 새로운 프로젝트를 만들어준다. fastcampus아래에 order와 fastcampus프로젝트를 만들어준다음에 Shop에 필요한 데이터베이스 모델을 만들어줍니다. 모델을 만들어주고 python manage.py makemigrations 와 python manage.py migrate 쳐주면서 데이터베이스를 만들어줍니다. 그다음 https://www.django-rest-framework.org/tutorial/quickstart/ rest api 공식 문서를 보면서 url에 대한 설정을 해줍니다. order/view페이지 에서는 반환되는 값들에 대해서 역활을 해주는 함수들을 만들어 줍니다. GET이..

DEVOPS 2021.11.15

패스트캠퍼스 챌린지 14일차[Django 기초]

이번 수업에서는 저번에 만든 페이지에서 좀더 추가해보는 과정이다. 관리자 생성하기 $ python manage.py createsuperuser 이 명령어를 치면 아이디와 비밀번호를 적으라는 명령을 다 실행해주면 관리자 계정이 생성이 된다. http://127.0.0.1:8000/admin/ 위와 같은 예시로 admin으로 들어가면 아이디와 비밀번호를 적는 페이지가 보입니다. 장고에서의 admin기능은 편집 가능한 그룹과 사용자와 같은 몇 종류의 컨텐츠를 볼 수 있습니다. 이와 같이 손쉽게 코드가 아닌 페이지에서 직접 관리를 해줄수 있는 기능도 제공을 해줍니다. 정말 편해보입니다~~ 이제, polls/views.py 에 뷰를 추가해 봅시다 def detail(request, question_id): re..

DEVOPS 2021.11.14

패스트캠퍼스 챌린지 13일차[Django 기초]

오늘은 Django에 대해서 공식 문서를 보면서 실습해보는 시간이다. 총 3번의 기초 강의가 있지만 이걸 다듣는다고해서는 고급적인 백엔드 스킬을 습득하는것이 아닌 아주 최소한의 기술을 배우는 시간 이다. 먼저 장고 개발환경이란 장고 개발 환경이란, 장고를 로컬 컴퓨터에 설치하여 장고 어플리케이션을 개발, 실행, 테스트할 수 있는 환경을 말합니다. 로컬 컴퓨터는 자신이 어플리케이션을 개발하는데 사용하는 컴퓨터입니다. 어플리케이션을 실제 배포하기 전에 로컬 컴퓨터 위에서 어플리케이션을 실행 및 테스트할 수 있습니다. 먼저 파이썬을 깔았다고 하고 django를 설치해준다. pip install django 그다음 프로젝트를 만들어 줄것이다. 프로젝트란 내가 만든 웹서비스를 말하는 것이다. django-admi..

DEVOPS 2021.11.13

패스트캠퍼스 챌린지 12일차[소규모 아키텍트 설계]

오늘은 ch2의2번째 부분인 소규모 아키텍트를 만들기 전에 간단한 설계를 하는 방법에 대한 수업을 들었다. 개발에는 크게 모놀리식 아키텍처 와 마이크로 아키텍처로 나눌수 있다. 모놀리식 아키텍처는 end to end테스트가 용이하여 간단한 서비스를 빠르게 만들수 있는 장점이 있고 단점으로는 하나의 언어로 개발을 하다보니 다른 언어를 추가하는 것은 불가능 하다. 유지보수도 힘들고 수정사항을 변경을 하려면 빌드를 전체적으로 다시 해야하는 단점이 있다. 그다음 마이크로 아키텍처는 기능들을 마이크로 단위로 쪼개버린다 쪼개면 유지보수가 쉬워지고 서비스를 추가하는것도 쉽다. 각각의 기능에대한 언어도 다르게 선택을 할수 있지만 단점으로는 모니터링이 힘들고 테스트하기가 불편하다. 먼저 모놀리식으로 간을 본다음에 시장성..

DEVOPS 2021.11.12