8월, 2019의 게시물 표시

Regular expression 정리

1. <\s*[A-z]+[^>]*>|<\s*/\s*[A-z]+> : html 태그만 선택 2. <\s*a[^>]*>(.*?)<\s*/\s*a> : html 태그 + 태그 안 텍스트 선택 3. [~#%&*{}\\:<>?\/+| ] : 파일이름에 안 쓰면 좋은 문자

Vue/Nuxt 정리

* Vue component의 최상위 template 태그   Vue component의 최상위 template 태그 아래에는 반드시 하나의 root element만 있어야 한다. v-if를 사용했다면 반드시 v-else(v-else-if)를 사용해서 렌더링되는 root element는 하나만 있도록 해야 한다.

서버(Ubuntu)/AWS 정리

* Mongodb + python + django + uwsgi   mongodb 서비스는 uwsgi 서비스보다 먼저 시작해야 한다. * net.core.somaxconn   아마존 EC2 인스턴스를 재시작할 때마다 net.core.somaxconn의 값이 초기화된다(기본값은 128인듯). 이 값이 너무 낮으면 uwsgi나 redis가 시작이 안된다.

코드 조각모음

[Javascript] * n명의 사용자를 랜덤으로 m개의 팀으로 나누는 방법 1) 팀 번호를 셔플   teams = [1, 2, ..., m].shuffle() 2) 사용자를 셔플(선택사항)    users = users.suffle() 3) 팀 배정   for user, idx in users {     user.team_no = teams[idx % m]   } * n명의 사용자를 랜덤으로 m명씩 팀으로 나누는 방법 1) 사용자를 셔플    users = users.suffle() 2) 팀 배정   for user, idx in users {     user.team_no = idx / m   } * array shuffle [1,2,3,...].sort(() => Math.random() - 0.5) * object deep copy obj2 = JSON.parse(JSON.stringify(obj)) * object shallow copy obj2 = {...obj}

Graphene-django 정리

1. Model의 related_name으로 가져오려면   예를 들어 ItemModel과 SubItemModel 모델이 있고 SubItemModel에서 item = models.ForeignKey(ItemModel, related_name='SubItems')  처럼 정의했다면, schema에서 SubItem(이름은 상관없다. 모델을 Query 클래스에서 가져오기 위한 클래스)을 만들어야 Item 안에서 related_name으로 찾아올 수 있다. 실제로 SubItem을 Query 클래스에서 사용하지 않아도 만들어야 한다. 2. Self reference   schema의 어떤 클래스에서 같은 클래스를 리턴하는 쿼리는 사용할 수 없다. 같은 클래스를 리턴하고 싶다면 같은 모델을 참조하는 다른 클래스를 만들어야 한다. 예를 들면 이렇다. class Item(DjangoObjectType):   class Meta:     model = ItemModel   children = graphene.List(_Item)    # children = graphene.List(Item)은 안된다.      resolve_children(self, info, **kwargs):     return ... class _Item(DjangoObjectType):   class Meta:     model = ItemModel 3. graphene.JSONString 타입과 한글   리턴 타입이면 리턴 시 자동으로 json.dumps를 해주고 인자로 받을때는 자동으로 json.loads를 해준다. 인자로 받을 때는 잘 모르겠는데 리턴할 때 한글이 포함되어 있으면 깨진다. 따라서 리턴 타입을 graphene.String으로 하고 수동으로 json.dumps(결과, ensure_ascii=False)를 해주는게 낫다. 깨질만한 내용이 없다면 그냥 쓰면 된다. 4. debug query