일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- DRF
- EC2
- DjangoCache
- CI
- aws
- CD
- Python
- Git
- nestedfunction
- docker
- Continuous Delivery
- Prefetch_related
- dry-yasg
- aggregate
- DjangoRestFramework
- QuerySet
- apitestcase
- racecondition
- database
- 백준
- F객체
- testcase
- Coroutine
- django
- 코루틴
- Transaction
- Continuous Deployment
- annotate
- to_attr
- 도커
- Today
- Total
목록전체 글 (68)
BackEnd King KY

Elastic Beanstalk에 Django 애플리케이션 배포 EC2 인스턴스도 생성되었고, Elastic Beanstalk 환경에 배포하는 과정을 해보려고 합니다. 이거 끝나면 Jenkins를 이용한 CI/CD 파이프라인 구축 -> 도커 해볼 생각입니다. 출처는 AWS Elastic Beanstalk 공식문서 입니다. 티스토리에서 보기 불편하실 경우, Github에서 보실 수 있습니다. Setting up your Python development environment EB로 배포하기 전에 로컬에서 애플리케이션을 테스트 하도록 Python 개발 환경을 설정합니다. EC2 인스턴스에 연결하여, virtualenv를 설치합니다. pip install virtualenv 그 다음, 설치한 virtualen..

EC2 인스턴스 Pull받기 EC2 생성도 했으니, 제 프로젝트를 서버로 띄어보겠습니다. 티스토리가 보기 불편할 경우, Github에서 보실 수 있습니다. 생성된 EC2에서 연결을 누르면 인스턴스의 연결이 모달로 나옵니다. 저는 독립 실행형 SSH 클라이언트를 선택했습니다. Continue Connecting 물음에는 yes 입력 후 연결합니다. 그러면 이렇게 화면이 전환되는데, 이걸 확인하셨으면 접속이 잘 된 것입니다. 제 프로젝트를 Clone 받기 위해 아래 명령어를 입력합니다. sudo yum update -y sudo yum install git -y -y는 update, install 과정에서 발생하는 모든 질문에 대해 yes라고 응답하겠다는 의미입니다. 그리고 clone을 받으면 이렇게 프로젝..

티스토리로 보기 불편하신 경우, Github에서 보실 수 있습니다. 문자열 검색 코루틴 만들기 다음 소스 코드를 완성하여 문자열에서 특정 단어가 있으면 True, 없으면 False가 출력되게 만드세요. f = find('Python') next(f) print(f.send('Hello, Python!')) print(f.send('Hello, world!')) print(f.send('Python Script')) f.close() ... True False True 우선, find()는 문자열을 받으므로 def find(word: str) 이렇게 시작합니다. 그리고 send()를 통해 문장을 보내므로 def find(word: str): resu..

티스토리로 보기 불편하실 경우, Github에서 보실 수 있습니다. yield from으로 값을 여러 번 바깥으로 전달하기 일반적으로 yield를 통해 값을 하나씩 전달했습니다. 대표적으로 __next__() 메소드를 이용하기도 했습니다. 예시 함수 하나 보겠습니다. def number_generator(): x = [1,2,3] for i in x: yield i for i in number_generator(): print(i) 이렇게 했을 때 1 2 3 이렇게 값이 출력 됩니다. 이러한 경우, 매번 반복문을 사용하지 않고 yield from을 사용하면 됩니다. yield from에는 반복 가능한 객체, 이터레이터, 제너레이터 객체를 지정합니다.(Python 3.3부터 사용 가능) 그러면 예시 하나 ..

혼자해보는 코루틴 작동 순서 이 부분은 파이썬 코딩도장엔 없고, 혼자 궁금해서 해보고 작성하게 되었습니다. 만약 여러 개의 yield가 들어가면 끊어져서 나올텐데 실제로는 어떻게 나올까? 하는 궁금증이 생겨서 직접 해봤습니다. 티스토리로 보기 불편하신 경우, Github에서 보실 수 있습니다. def sum_coroutine(): try: total = 0 while True: print("*"*10, "Not yield") x = (yield) print("*"*10, "X yield", x) total += x yield total print("*"*10, "total yield", total) except RuntimeError as e: yield total 위와 같이 계속 send()를 통해 값..

티스토리가 보기 불편하시면 Github에서 보실 수 있습니다. 보통 코루틴은 실행 상태 유지를 위해 while True를 사용합니다. 만약 코루틴을 종료하고 싶으면 close 메소드를 사용합니다. 코루틴에 숫자 20개를 보낸 후 종료해보겠습니다. def number_coroutine(): while True: x = (yield) print(x, end=' ') co = number_coroutine() next(co) for i in range(20): co.send(i) co.close() # 코루틴 종료 이렇게 하면 0~19까지 출력되고 종료됩니다. 만약 close()가 없다면 co.send() 를 계속 보낼 수 있으며, 종료 후 send()를 했을 떄 파이썬 스크립트가 끝나면 코루틴..

티스토리로 보기 불편하시면 Github에서 보실 수 있습니다 이전에 코루틴 안에서 값을 보냈는데, 밖으로 값을 전달해보겠습니다. 로직을 먼저 간단하게 이야기하면, yield 형식으로 yield에 변수를 지정한 뒤, 괄호를 묶어주면 바깥으로 값을 전달합니다. 그리고 yield를 사용하여 바깥으로 전달한 값은 next 함수와 send 메서드의 반환값으로 나옵니다. def sum_coroutine(): total = 0 while True: x = (yield total) # 코루틴 바깥에서 값을 받아오면서 바깥으로 값을 전달 total += x co = sum_coroutine() print(next(co)) # 0: 코루틴 안의 yield까지 코드를 실행하고 코루틴에서 나온 값 출력 print(co.sen..
코루틴(Coroutines) 회사에서 FastAPI 도입을 앞두고 있어, 코루틴을 시작으로 비동기 프로그래밍에 대해 공부하려고 합니다. 모든 출처는 파이썬 코딩도장 코루틴(Coroutine) 입니다. 티스토리로 보기 불편하시면 Github에서 보실 수 있습니다. Coroutine 우선, 코루틴을 설명하기에 앞서 이해를 돕기 위한 함수 하나를 만들어보겠습니다. def add(a, b): c = a + b # add 함수가 끝나면 변수와 계산식은 사라짐 print(c) print('add 함수') def calc(): add(1, 2) # add 함수가 끝나면 다시 calc 함수로 돌아옴 print('calc 함수') calc() calc() 함수를 실행하면 add(1,2)함수가..