분류 전체보기 23

Python 다중 상속, super()

1. 다중 상속다중상속은 하나의 클래스가 2개 이상의 클래스를 상속받아 자식 클래스를 작성하는것을 말한다.클래스를 생성할때 ()에 클래스 이름을 넣어서 다중상속 클래스를 만든다.>>> class A:... def hello():... print('hello')...>>> class B:... def bye():... print('bye')...>>> class C(A, B):... pass...>>>>>> C.hello()hello>>> C.bye()bye클래스 C는 클래스 A, B의 메서드인 hello, bye 메서드 모두를 갖고 호출할 수 있다.이걸 그림을 간단하게 표현하면 이렇게 볼 수 있다. 2. 다이아몬드 상속>>> class A:..

python 2024.09.02

Django ORM - Transaction

1. Transaction이란트랜잭션이란 db의 상태를 변경하기 위해 create, update, insert, delete같은 작업의 단위를 말한다.트랜잭션은 여러개의 상태가 변경되는 작업들을 하나로 실행하는 것 처럼 하나의 unit으로 실행해 성공, 실패의 두가지 상태만을 갖는다. 트랜잭션은 ACID의 4가지 성질이 있다.1. Atomicity 원자성트랜잭션의 작업이 중간에 실행되다 멈추지 않는걸 보장해주는 것이다.2. Consistency 일관성트랜잭션이 정상적으로 실행되면 db의 상태를 일관성 있게 유지하는것이다. 제약조건이 있다면 그에 위반되는 트랜잭션은 중단되는 것이다.3. Isolation 독립성하나의 트랙잭션 작업시 다른 트랜잭션이 중간에 끼어들지 못하는것을 말합니다. 하나의 트랜잭션이 끝..

django 2024.08.06

Django - Nginx + Gunicorn으로 배포하기

Django 를 개발할때에는 python3 ./manage.py runserver 명령어를 통해 장고의 내장 서버를 작동시켜 쉽게 배포했다.하지만 실제 prod 환경에서는 runserver로 배포하면 안된다. 그 이유는 테스트하거나 디버깅할때 사용되는 간단한 서버이다. 그리고 단일스레드여서 속도도 느리고 HTTPS도 사용하지 못한다.그래서 wsgi(Web Server Gateway Interface) 서버를 사용해야한다.wsgi에는 uwgi와 gunicorn이 있는데 더 간단하고 서버의 리소스를 적게쓰면서 빠른 gunicorn으로 서버를 구성했다.nginx와 gunicorn으로 서버를 구상하면 이런 모습이 나온다.1. GunicornAWS ec2에 ssh로 접속한다.pip install gunicorng..

django 2024.06.21