include base.html에서 layout.html 파일로 해당 코드를 분리합니다 메인페이지 로그인 body 사이에 해당 코드를 삽입합니다. {% include "layout.html" %} 해당 코드는 Django 템플릿 문법 중 하나인 include 태그를 사용한 것입니다. include 태그는 지정된 템플릿 파일을 현재 템플릿에 포함시켜주는 역할을 합니다. 위 코드에서는 "form_errors.html" 템플릿 파일을 현재 템플릿에 포함시켰습니다. 이 기능을 이용하면 반복적으로 사용되는 템플릿 코드를 별도의 파일로 분리하여 관리할 수 있으며, 코드의 재사용성과 유지보수성을 높일 수 있습니다. 이 방법을 응용해서 question_form.html, question_detail.html의 중복된 ..
트랜잭션 Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 BEGIN과 END 혹은 BEGIN과 COMMIT 사이에 해당 SQL들을 사용 ROLLBACK 두 가지 종류의 트랜잭션이 존재 AutoCommit False를 쓰면 트랜잭션을 사용할 필요 없으나, AutoCommit True일 때는 정합성 문제를 일으킬 수 있는 SQL을 묶어줘야한다. 레코드 변경을 바로 반영하는지 여부. autocommit이라는 파라미터로 조절가능 autocommit=True 기본적으로 모든 SQL statement가 바로 커밋됨 이를 바꾸고 싶다면 BEGIN;END; 혹은 BEGIN;COMMIT을 사용 (혹은 ROLLBACK) autocommit=False 기본적으로 모든 SQL statement..
1. SESSION 클릭 2. 정보 입력 AWS EIP : AWS 콘솔 - EC2 - 인스턴스 메뉴 들어가서 접속하고자 하는 탄력적 IP 주소 작성하시면 됩니다. USERNAME : 보통 ubuntu 혹은 ec2-user입니다. 확인 후 작성하시면 됩니다. pem 파일 경로 : pem 파일 경로를 붙여줍니다. 가끔 권한 문제가 발생하면 pem 파일의 권한을 600으로 맞추면 해결됩니다. 3. 접속 확인
1. VSCode Remote-ssh 설정 VSCODE의 EXTENSION에서 Remote Development를 설치합니다. Remote Development 기능은 각각 SSH, Containers, WSL 3가지 옵션이 있는데, 이번에는 SSH를 사용해서 EC2 인스턴스에 VSCODE를 연결해보겠습니다. 2. Remote-SSH Configuration 설정 Vscode에서 F1키를 누른 뒤, configuration을 검색하고, Remote-SSH:Open Configuration File을 선택합니다. 이후 ssh configuration 파일을 이렇게 수정하면 됩니다. HOST : 원격 서버 접속 시, VSCODE에서 보일 이름입니다. 아무렇게나 지으셔도 됩니다. HOSTNAME : EIP(E..
관리자 계정 생성 터미널에서 유저 생성 후, 정보 입력 python manage.py createsuperuser 사용자 이름 : admin 이메일 주소 : admin@mysite.com password : qwer1234 password : qwer1234 y 선택(너무 일상적인 비밀번호입니다) 로그인해보기 : localhost:8000/admin/ admin.py 모델에 Question Class를 등록합니다. from django.contrib import admin from .models import Question # Register your models here. admin.site.register(Question) # Question을 등록해줌 3 view.py / 컬럼리스트 받는 함수 생성..
config 보안, 세팅 값들 urls.py : 주소에 접근하는 것을 만들 수 있다. settings.py : 한국어 설정 등 앱 만들기 django-admin startapp pybo localhost:8000/pybo로 접속 404 에러 발생, urls에서 코드 조정 from pybo import views # pybo 디렉토리에 있는 views를 가져오기 urlpatterns = [ path('admin/', admin.site.urls), path('pybo/', views.index) # views의 index를 만들기 ] views.py from django.http import HttpResponse # Create your views here. # request를 반드시 써줘야함(사용하지 ..
가상환경 생성하기(With VS코드) 장고 전용 가상환경을 생성합니다. Conda를 활용하면, 가상환경에 다른 파이썬 버전을 적용할 수 있어 쉽게 활용할 수 있습니다. (1) 빈 폴더를 생성합니다. (2) VS 코드로 해당 폴더를 엽니다. (3) 터미널을 실행하여 순차적으로 터미널에 입력합니다 먼저 cmd 내에서 conda 명령어가 실행될 수 있는 환경이어야합니다. 아래 블로그에 정리가 잘 되어있습니다. https://chunggaeguri.tistory.com/entry/Anaconda-cmd%EC%B0%BD%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 conda로 django_py3811 이라는 가상환경을 만듭니다. 파이썬 버전은 3.8.11 입니..
1. 장고 개발환경 준비 1_1. 파이썬 가상환경 파이썬 가상환경을 활용하면, 하나의 데스크톱 안에 독립된 가상환경을 여러개 만들 수 있습니다. (1) 가상환경 디렉토리 생성(C;/venvs) mkdir venvs cd venvs (2) 가상환경 만들기 python -m venv mysite venv 모듈을 활용하여, mysite라는 이름의 가상환경을 만듭니다. 작업을 venvs 폴더 아래서 했으면, venvs 디렉토리 아래에 mysite라는 디렉토리가 생성됩니다. (3) 가상환경 진입하기 cd c:\venvs\mysite\Scripts activate mysite의 Scripts에서 activate 명령을 수행합니다. 그러면 cmd 창에서 (mysite)라는 가상환경이 잡힙니다. (4) 가상환경에서 벗..
AIRFLOW 에어플로우는 스케줄러, 데이터 파이프라인을 위한 PYTHOON 프레임워크 PYTHON3에서 프로그래밍 방식으로, 파이프라인 설계, 예약 및 모니터링 가능 웹 UI 제공 에어플로우에서의 데이터 파이프라인(ETL)을 "DIRECTED ACYLIC GRAPH(방향 비순환 그래프)", DAG라고 합니다. DAG는 TASK로 구성됩니다. 에어플로우는 하나 이상의 서버로 구성된 클러스터이고, WORKERS와 SCHEDULER로 구성됩니다. 스케줄러는 작업을 여러 WORKERS에게 분산 시킵니다. DAG 와 스케줄링 정보는 기본적으로 DB에 저장됩니다(SQLITE가 기본적으로 운영) 하지만 실제 운영환경에서는 MYSQL 또는 POSTGRESQL을 사용하는 것이 좋습니다(성능, 기능 상의 문제) AIRF..
비구조화된 데이터 처리하기 LOG 대표적으로 데이터레이크에 저장하는 데이터. 원본 상태로 데이터레이크에 넣어둔 상태에서, 이걸 정제하고 가공해서 데이터웨어하우스에 적재한다. AMZONE S3(STROAGE) 클라우드 판 하드디스크라고 생각하면 좋다. 1테라 바이트당 한달에 만원 꼴. 온갖 종료의 데이터를 별다른 비용 걱정 없이 저장할 수 있다. 이 아마존 S3 같은 것을 데이터레이크(DATA LAKE)라고 한다. 데이터레이크 보존기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지, 보통은 데이터 웨어하우스에 비해 몇 배 더 크다 APACHE SPARK, AMAZON ATHENA ATHENA는 BIG DATA SQL로 생각하면 좋다 SPARK도 SPARK SQL 혹은 DATAFRAME으로 판다스처럼..
소프트웨어 패키징 모듈별로 생성한 실행 파일들을 묶어 배포용 설치파일을 만드는 것을 말한다 개발자가 아니라 사용자 중심 작업 순서 기능 식별 모듈화 빌드 진행 사용자 환경 분석 패키징 및 적용 시험 패키징 변경 개선 배포 릴리즈 노트 작성 항목 HEADER(머릿말) : 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 버전 개요 : 해당 릴리즈 버전에서 변경 사항 전체에 대한 간략한 내용 목적 : 해당 릴리즈 버전에서의 새로운 기능이나 수정된 기능의 목록과 릴리즈 노트의 목적에 대한 간략한 개요 문제 요약 : 수정된 버그에 대한 간략한 설명 또는 릴리즈 추가 항목에 대한 요약 재현 항목 : 버그 발견에 대한 과정 설명 수정/개선 내용 : 버그를 수정/개선한 내용을 간단히 설명..