분류 전체보기

    [Javascript]if, else 문 최소화하기

    Javascript를 이용하여 개발을 하다보면 if, else문이 많아짐에 따라 가독성을 상당히 해치는 코드를 종종 볼 수 있습니다. 특히나 프론트 UI에서 조건에 따라 렌더링 및 데이터를 보여주는 로직이 존재하기때문에 이런 경우가 더 많은 것 같습니다. 저는 backends 언어로 Python을 사용하고 있는데 이때도 마찬가지로 if로 인한 indent가 많아지는 코드를 그다지 선호하지 않습니다. 가장 큰 이유는 가독성이 저하되어 정확히 어떤 기능을 하는 코드인지 파악하기가 힘들어지기 때문입니다. 이러던 도중 좋은 자료를 발견하게 되어 번역하면서 공부해보기로 하였습니다. https://betterprogramming.pub/stop-putting-so-many-if-statements-in-your-j..

    [Django]setUp() vs setUpTestData() 차이점

    Django에서 unittest를 진행할 때 초기 데이터들을 설정하기 위해서는 다음과 같은 메소드가 사용될 수 있다. setUp() setUpTestData() https://docs.djangoproject.com/en/3.1/topics/testing/tools/#testcase Testing tools | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 겉으로 보기에 두 함수는 동일한 역할을 한다. 하지만 동작하는 원..

    [Django]get_object() 란?

    get_object() 란? 간단하게 get_object()는 pk로 queryset을 필터링 하고, queryset 결과에서 object를 뽑아서 return 시켜주는 함수이다. 실제 코드는 class SingleObjectMixin(ContentMixin) 내에서 확인할 수 있다. https://docs.djangoproject.com/en/3.2/ref/class-based-views/mixins-single-object/#singleobjectmixin Single object mixins | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documen..

    [Python]isinstance() 란?

    isinstance(object, classinfo) 란? isinstance()는 주어진 인스턴스가 특정 클래스/데이터 타입인지 검사를 해주는 함수이다. 인스턴스가 특정 클래스/데이터 타입과 일치할 경우 True, 아닐 경우 False를 반환한다. print(isinstance(1, int)) # True, int 인지 검사 print(isinstance(1.123, float)) # True, float 인지 검사 print(isinstance({'a': 1}, dict) # True, dict 인지 검사 class Example: pass example = Example() print(isinstance(example, Example)) # True, Example 클래스 인지 검사

    [Django]GenericForeignKey, ContentType로 여러 모델과의 관계 맺기

    RDB를 사용하여 모델을 만들다 보면 한 모델이 여러 모델과의 관계를 맺어야 하는 순간이 생기기 마련입니다. 일반적으로 생각한다면 ForeignKey를 이용하여 모델링을 하는 방법이 떠오를 것입니다. 위의 설명으로는 부족하니 하나의 모델을 통해 예시를 들어 설명해보겠습니다. class Post(models.Model): title = models.CharField(max_length=100) # 여러 필드들 class Comment(models.Model): content = models.CharField(max_length=100) # 여러 필드들 class Recommend(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE)..

    [Python]hasattr(), getattr(), setattr() 함수란?

    파이썬에는 변수가 있는지 확인하는 함수로 3가지가 존재한다. 하나씩 차례대로 알아보자. hasattr(object, name) object에 name 속성 존재하는지 여부를 확인한다. class cls: a = 1 def b(self): pass # cls에 b가 존재할 경우 True 반환 print(hasattr(cls, 'b')) True getattr(object, name[, default]) object에 존재하는 name 속성의 값을 가져온다. class cls: a = 1 def b(self): pass # cls에서 a의 값을 가져오기 print(getattr(cls, 'a')) 1 setattr(object, name, value) object에 존재하는 name 속성의 값을 설정한다. ..

    [Django]Openstack Swift 401 Authentication failed 삽질기

    Django에서 Object storage 기술을 사용하기 위해 서드파티 라이브러리를 활용하여 개발한 도중 겪었던 401 Authentication 에러에 대해 포스팅 해보려고 합니다. 제가 사용했던 오픈소스는 다음과 같습니다. (python-swiftclient는 django-storage-swift에 의존하는 라이브러리) https://github.com/dennisv/django-storage-swift GitHub - dennisv/django-storage-swift: OpenStack Swift storage backend for Django OpenStack Swift storage backend for Django. Contribute to dennisv/django-storage-swif..

    [Python]property로 getter, setter 구현하기

    Python에서 getter, setter 구현하는 방법 Python 에서 getter와 setter 함수를 구현하는 방법은 2가지가 존재한다. property() 함수를 이용하는 방법 @property 속성을 이용하는 방법 하나씩 차례대로 알아보자. property() 함수 이용 class Person: def __init__(self): self._age = 0 def get_age(self): # getter return self._age def set_age(self, value): # setter self._age = value age = property(get_age, set_age) leffe = Person() leffe.age = 20 # 내부적으로 setter 호출 print(leffe..

    [Python]all(), any() 함수란?

    all() 함수란? all(iterable) 함수는 인자로 받은 반복 가능한 자료형(iterable)의 모든 요소가 참이면 True를 반환하는 함수이다. 간단한 예제를 통해 정리하고 넘어가자. a = [1, 2, 3, 4, 5] print(all(a)) # True b = [0, 1, 2, 3, 4] print(all(b)) # False, 0 이라는 값이 리스트에 존재해 False 반환 c = [] print(all(c)) # True, 빈 리스트에 대해서는 True 반환 print(all('test')) # True, 문자열은 True 반환 # 딕셔너리의 경우 key 값의 참, 거짓만을 반영함 print(all({1: 1, 2: 2})) # True print(all({True: 1, False: 2..

    [Django]Django REST Framework - Permissions

    아래의 포스팅은 DRF 공식 Documentation에 존재하는 permission에 대한 내용을 번역한 글입니다. 틀린 내용이 있을 수 있으니 헷갈리는 부분은 원문을 참고하여 주시면 감사하겠습니다. https://www.django-rest-framework.org/api-guide/permissions/#permissions Permissions - Django REST framework www.django-rest-framework.org Permissions 인증 또는 식별만으로는 일반적으로 정보 또는 코드에 엑세스하기에 충분하지 않다. 이를 위해서 접근을 요청하는 주체에 권한이 있어야 한다. — Apple Developer Documentation 인증 및 스로틀링과 함께 권한은 요청을 허용할지..