최근에 aws 요금 문제로 ALB를 삭제하게 되면서함께 연결되어 있던 ACM 또한 만료 되어 https로 접속이 되지 않았다.이에 따라 certbot으로 해당 문제를 대체하기로 하였다.certbot으로 https를 적용하는데는 5분도 채 걸리지 않았다. 우선 해당 게시물은 이미 도메인은 구매했다는 가정 하에 진행하겠다.1. nginx 사전 설정우선 nginx 설정 파일로 이동 후 도메인을 server_name에 명시해주어야 한다.# nginx 설정 파일sudo vim /etc/nginx/sites-available/{프로젝트명}설정 파일로 이동 한 후 아래와 같이 server_name에 도메인을 작성한다. 2. certbot 설치이제 certbot을 설치한다.# 패키지 업데이트sudo apt update..
최근에 개발부터 배포까지 모든 과정을 혼자 담당한 프로젝트가 있었다.배포한지 약 한달 정도 되었을 때 쯤 aws에서 부터 비용 관련 메일을 받았다.프리티어라서 당연히 요금이 발생하지 않을 줄만 알았지만 충격적이게도 약 8달러 정도가 청구되었다.사실 금액 자체는 그렇게 크지는 않지만,혹시나 본인이 잘못 설정한게 있어서 앞으로 요금이 커지지는 않을지 걱정이 되었다.그래서 요금이 발생하는 원인을 확인하고 문제를 해결했으나 그 과정에서 수많은 삽질이 있었다.오늘은 aws 요금 발생 해결기를 공유하도록 하겠다.우선 요금 청구서는 아래와 같은 과정을 통해 확인할 수 있다.우측 상단 닉네임 클릭 > 결제 및 비용 관리 > 왼쪽 사이드에 청구서 이렇게 기본적인 청구 정보가 나오고 하단을 통해 서비스별 요금 상세 정보를..
Django를 통해 개발을 하다 보면 수많은 Model을 정의한다.Model을 정의하다 보면 매번 같은 필드가 반복된다.예를 들어 object가 생성될 경우 auto_now_add 되는 필드 등은 보통 모든 모델에 존재한다.그렇다면 반복되는 코드들을 줄일 수 있는 방법이 있을까?정답은 있다. 바로 상속을 통해 Model을 구현 가능하다.아래 예제를 보겠다. 아래는 예시 모델이다.class Model1(models.Model): field_1 = models.CharField(max_length=10) field_2 = models.BooleanField(default=True) created_at = models.DateTimeField(auto_now_add=True) update..
오늘은 Django 하나 만으로 프론트엔드와 백엔드를 구현하고자 하는 사람들을 위해Django에서 어떻게 html을 렌더링하고 static 파일을 불러오는지 알아보고 실습을 해보기로 하겠다.우선 기본 프로젝트 구조는 이러하다. django_project/├── django_project/├── app1/├── app2/└── manage.py1. templates 디렉토리, static 디렉토리 생성우선 html 파일과 static 파일을 모아놓기 위해 각 디렉토리를 생성하도록 하겠다.root 폴더 아래에 만들면 되고, 위치는 manage.py, 앱과 같은 위치이다.앱을 만들 때 createapp을 하는 것 처럼 명령어로 만들 필요는 없고 그냥 만들어줘도 된다.django_project/├── djang..
요즘 DFS와 BFS 알고리즘에 대하여 공부하고 있는데 이러한 알고리즘을 이해하기 앞서 선행으로 알고있어야 하는 자료구조가 있는데 바로 스택(Stack)과 큐(Queue)이다. 스택과 큐는 파이썬뿐만 아니라 모든 프로그래밍 언어에서 기본적이고 중요한 자료구조 중 하나이고,알고리즘을 위해서만이 아니라 여러가지 상황에서 효율적인 해결책을 제공한다. 스택과 큐는 기본적으로 데이터를 쌓는 구조에 대한 자료구조이고,이 두 자료구조는 데이터를 삽입(Push)하는 과정과 삭제(Pop)하는 과정이 핵심이다.때문에 오늘은 스택과 큐에 대해서 알아보겠다.1. 스택 (Stack)스택은 쌓다라는 말로 표현이 가능한데, 실제로 스택 자료구조는 박스를 쌓는것과 상당히 유사하다.박스를 위로 쌓고 다시 내려놓는다고 가정하면 제일 마..
문제N x M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다.구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다.이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오.다음의 4 x 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다.▶️ 입력 조건 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어진다. (1 두 번째 줄부터 N + 1번째 줄까지 얼음 틀의 형태가 주어진다.이때 구멍이 뚫려있는 부분은 0 그렇지 않은 부분은 1이다.▶️ 출력 조건한 번에 만들 수 있는 아이스크림의 개수를 출력한다.풀이개인적으로 정말 애먹었던 문제이다. 그렇지만 결과적으로는..
문제하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있다. 무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양의 정수 무게 중 최솟값을 구하는 프로그램을 작성하시오. 예를 들어, 무게가 각각 3, 1, 6, 2, 7, 30, 1인 7개의 저울추가 주어졌을 때, 이 추들로 측정할 수 없는 양의 정수 무게 중 최솟값은 21이다. ▶️ 입력 조건 첫 째 줄에는 저울추의 개수를 나타내는 양의 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 둘째 줄에는 저울추의 무게..
문제행복 왕국의 왕실 정원은 체스판과 같은 8 x 8 좌표 평면이다. 왕실 정원의 특정한 한 칸에 나이트가 서 있다.나이트는 매우 충성스러운 신하로서 매일 무술을 연마한다. 나이트는 말을 타고 있기 때문에 이동을 할 때는 L자 형태로만 이동할 수 있으며 정원 밖으로는 나갈 수 없다.나이트는 특정한 위치에서 다음과 같은 2가지 경우로 이동할 수 있다. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 이처럼 8 x 8 좌표 평면상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하시오.이 때 황실의 정원에서 행 위치를 표현할 때는 1 ~ 8로 표현하며, 열 위치를 표현할 때는 a ~ h로 표현한다. ▶️ 입..