전체 글 32

SOLID Principles

SOLID는 2000년대 초반에 로버트 마틴이 OOP 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것. SOLID 원칙을 지켜냄으로써 유지 보수와 확장이 쉬운 시스템을 구현할 수 있다. S : Single Responsibility Principle (단일 책임 원칙) - 하나의 클래스는 하나의 책임만 가져야 한다. => Book에 대한 내용을 저장하는 클래스(BookSaver)가 있다고 할 때, BookSaver는 저장하는 역할 한 가지만 수행하는 클래스이어야 한다. BookSaver에 출력하는 기능이 추가가 된다면 SRP에 위배된다. public class Book { ArrayList al; Book(){ al = new ArrayList(); } void ..

Django Model 동적 Filtering

장고의 ORM으로 개발을 하다보면 동적으로 모델을 필터링 해야 하는 경우가 생길 수 있습니다. 예를 들어, 데이터 필드가 성별, 연령대(10대, 20대··)가 있다고 가정할 때 각각 필드에 대해서 한 가지의 조건만 준다면 사실상 Q나 동적인 필터링을 사용할 이유가 없습니다. 단순히 Model.objects.filter(성별='남자')와 같이 처리할 수 있기 때문입니다. 그러나, 만약에 연령대가 10대, 30대이고, 성별이 여자인 사람을 뽑아내고 싶다면 위의 방법으로는 불가능합니다. 따라서 이때 사용하는 함수가 Q입니다. Model.objects.filter((Q(연령대='10대')|Q(연령대='30대')), 성별="여자")와 같이 처리할 수 있습니다. 여기서 만족하지 않고, 클라이언트로부터 받아온 데이터..

Development/Django 2019.08.07