만약 아래와 캐릭터가 존재한다고 하자 캐릭터는 일을 100만번하면 0.3초씩 쉬어야하는 특성을 가지고있다.만약 단순하게 한곳에서 1000만번 일을한다고 했을때는위와같이 시간이걸리고 임금(?)도 정상적으로 들어온것을 확인할 수 있다.만약 이 캐릭터가 본업과 부업을 동시에
그런데 지난편처럼 lock을 사용할때는 조심해야하는 점이 존재한다.바로 교착상태인데 서로의 락이 풀리길 기다리느라 이도저도 못한 상태가 발생할 수 있다는 점이다.이전 편의 캐릭터가 이제 던전에 사냥을 간다고 생각하자던전이 생겼고 한 던전에는 한 캐릭터
python을 통해서 프로그래밍을 하다보면 수많은 데코레이터를 사용하게 된다.간단한 예를 들면django에서의flask에서는fast api에서는등 웹프레임워크에서도 많이 사용하고 그냥 파이썬으로도등 프로그래밍을 할 때나 다른 사람들이 짠 코드를 볼때 수없이 많은 데코레
지난 글에서 데코레이터 관련해서 클로저 이야기가 나왔다.컴퓨터 언어에서 클로저(Closure)는 일급 객체 함수(first-class functions)의 개념을 이용하여 스코프(scope)에 묶인 변수를 바인딩 하기 위한 일종의 기술이다. 기능상으로, 클로저는 함수를
저번 편에서는 파이썬의 데코레이터, 클로저의 동작 방식에 대해서 알게 되었다.그와 같이 스코프에 관련된 이야기도 나왔는데 뭔가 이상한 점을 느끼지 못했는가? LEGB 스코프에서 Local에 있는 것에대해서는 값을 읽거나 수정하는 것이 당연히 가능하다는 것은 모두 알고
이전 포스트에서는 id라는 내장함수를 통해 해당 변수가 가리키는 객체가 어디에 저장된건지 알아 낼 수 있었다.그런데 우리가 컴퓨터 공학 혹은 파이썬을 배울때는 지역 변수, 전역 변수, 함수, 코드등은 각각 특정한 영역에 저장된다고 했다.간단하게 파이썬에서 보면코드는 실
파이썬에서 iterable은 사용안하는 곳이 없을 정도로 중요하고 많이 사용되는 개념이다.평소에 사용하는 list, dict, set 등의 객체를 보자. 우리는 이 객체를 사용할때 for문에 넣어서 쓰거나 map의 인자로 넣어서 사용하기도 한다.map 내장 함수를 한번
파이썬이나 장고 등에서 파일을 입력받다보면 파일명의 자모음이 다 분리되는 현상을 겪어봤을 것이다.개발하다보면 대체 왜이렇게 괴상하게 문자열이 깨질까 하는 생각이 든다. 콘솔에서만 이렇게 출력되고 실제 웹상에서는 정상적으로 보이게 된다. 그럼 어떤 부분이 문제일까? 이것
코루틴이란? 저번에 Iterable 편에서는 제너레이터까지 알아봤다. 그런데 제너레이터에서 몇몇 키워드를 이용해서 코루틴처럼 사용이 가능하다고 한다. 그런데 코루틴이 정확히 뭐를 의미하는 걸까? 루틴은? 한번 정리를 해보자 루틴은 함수, 프로시저, 메소드라고 생각
:= 연산자 사용법위와같이 값의 재사용이 가능하다.비공식적(informal)인 표현으로 사람이 읽을 수 있는 표현이 권장된다.str은 보통 유저가 해당 객체를 인식할때 사용되며 print(a) 를했을때 a.str() or str(a)의 값을 우선적으로 사용한다. 없을시
디스크립터
디스크립터 편에서 이어진다.그러면 어떻게 장고 모델에 필드로 작성했을때만 models.CharField(blank=True, max_length=31) 이 코드가 <django.db.models.fields.CharField>가 아니라 <django.db.m