본문 바로가기

분류 전체보기

[pytest] PyCharm 기본 테스트 라이브러리를 pytest으로 변경하기 PyCharm의 기본 테스트 코드 runner는 unittest로 되어있다. 그래서 pytest으로 테스트코드 돌릴 때에는 설정값들을 변경해줘야한다. 1. Pycharm Preferences > Django > Do not use Django test runner 체크해주기 2. Preference > Default test runner를 pytest으로 변경해준다 끝 :)
(django) get_XXX_display 함수 : 모델의 속성 값을 사람이 읽을 수 있는 문장으로 변환하기 Django Model Field에 choices 속성이 걸려있는 경우, 코드에 맞는 display용 텍스트를 볼 수 있게 하는 함수가 있다.음.. 말로하면 어려운데, 아무튼 이런거다. from django.db import models class Book(models.Model): CONDITIONS = ( (1, '새책'), (2, '중고책'), ) name = models.CharField(max_length=60) condition = models.CharField(max_length=2, choices=CONDITIONS)이 경우, Book의 상태값은 1과 2로 저장된다. 그런데 책 정보를 웹페이지에 보여줄 때는 '새책', '중고책'처럼 사람이 읽을 수 있는 문장으로 보여주고 싶을 때는 get_..
(django) 자주 사용되는 queryset 모아서 관리하기 자주 사용되는 query set들을 한군데 모아서 관리하는 방법을 설명해보고자 합니다 :) 1. manager.py 를 만들어서, query set을 추가합니다 class LessonQuerySet(models.QuerySet): def jazz(self): return self.filter(subject='jazz') 2. model에 queryset을 manager으로 등록합니다 class Lesson(models.Model): from_time = models.CharField() to_time = models.CharField() subject = models.CharField() objects = LessonQuerySet.as_manager() 3. custom queryset은 다음과 같이 ..
[pytest] 함수의 매개변수로 기대한 값이 전달되었는지 확인하는 테스트코드 작성하기 pytest에서 테스트 코드를 작성할 때, 특정 함수의 매개변수로 기대한 값이 잘 넘어갔는지 확인하고 싶을 때가 있습니다. 예를 들면, 외부 API와 연동하는 함수를 테스트해보고 싶을 때, 이 함수에 특정 값이 매개변수로 잘 전달되었는지 확인하고 싶어지죠. 이럴 때는 mocker 클래스와 assert_called_with 함수를 사용하면 됩니다. 예시아래의 예시는 viewset에서 내부 함수를 호출했을 때, 기대한 매개변수를 잘 전달했는지 확인하는 테스트코드입니다.class TestCommerceViewSet: def test_purchase_구매_이벤트가_로그에_남는다(self, rf, mocker): purchase_event = {'product_id': 1, 'created_time': datet..
<사이트 신뢰성 엔지니어링> - 1부 요약 본문 중에서...서비스 관리를 위해 시스템 관리자를 활용하는 방법시스템 관리자를 두면 몇 가지 장점을 얻을 수 있다. 서비스를 운영하고 지탱하는 방법을 직접 결정하는 회사라면 시스템 관리자를 통해 쉽게 서비스를 운영할 수 있다. 시스템 관리자 역할을 소화할 수 있는 전문 인력도 풍부하다. 그런데 시스템 관리팀과 개발팀을 별개로 나누어 운영하면 단점도 존재한다. 변경이력관리와 이벤트 처리를 모두 수작업에 의존하는 팀을 통해 서비스를 운영하게 되면 서비스와 트래픽이 증가하면 업무량 역시 늘어나서 팀의 규모가 커져서 결국 큰 비용이 들게 된다. 그리고 이러한 직접비용보다 간접비용이 더 큰 비용을 발생시키기도 한다. 두 팀의 배경 지식, 스킬, 동기 유발 조건 등이 각각 다르기 때문이다. 그래서 서로 다른 용어..
앤젤라 더크워스 <그릿> 7/9/12장 요약 본문 중에서.. 제 7장. 질적으로 다른 연습을 하라 나이, 직업을 불문하고 투지가 강한 성인은 몰입을 경험한 적이 더 많다. 의식적 연습을 하게 만드는 주요 동기는 자신의 기술을 향상시키겠다는 의지다. 의식적인 연습에서는 100퍼센트 집중하며 현재 기술 수준을 넘어서는 난도의 과제를 의도적으로 설정한다. 연습을 시작하면서 설정한 이상적인 목포에 다가가기 위해 문제 해결의 자세로 실행하어 할 모든 요소들을 분석한다. 그리고 피드백을 받는데, 잘못 수행한 부분을 지적한 다수의 피드백을 활용해 수정하고 다시 시도한다. 몰입 상태는 본질족으로 즐겁다. 사소한 기술의 일부가 향상됐는지 여부는 신경 쓰지 않는다. 100퍼센트 집중하고 있지만 전허 문제해결의 자세로 임하는 것도 아니다. 무엇을 하고 있는지 분석하지..
(넷플릭스) Growth Engineering at Netflix — Accelerating Innovation ( 작성중 ) 해당 글은 Growth Engineering at Netflix — Accelerating Innovation을 정리한 글입니다. 수백만명의 사람들이 매일 넷플릭스를 사용하고 있다. 이 중 많은 사람들은 이미 넷플릭스 유저여서, 좋아하는 영화와 티비쇼를 찾기 위해 넷플릭스에 접속한다. 그래서 넷플릭스 팀은 사람들이 좀더 좋은 경험을 할 수 있게 노력한다.반면, 비회원에게는 회원가입을 하기 전에 좀더 서비스를 잘 이해할 수 있게 만들려고 노력한다. 서로 다른 관심을 가진 비회원들이, 190개가 넘는 국가에서 넷플릭스에 접속한다. 이들은 그냥 들어와서 이것저것 눌러보는 사람일 수도 있고, 넷플릭스가 뭔지 좀 알아보려고 들어온 사람일 수도 있다. 아니면 이미 넷플릭스 서비스를 이용해본 적이 있는 사람일 수도 ..
(데이터 시각화)Redash란? Redash는 데이터 조회 / 시각화를 편하게 해주는 툴입니다. (이런 느낌? ) 특징 - SQL문을 날리면, 반환된 값으로 그래프를 만들 수 있습니다. - 당연히, CSV 다운로드 기능도 있습니다. - RDB / ElasticSearch / NoSQL / Athena / BigQuery 등의 여러 데이터 소스를 연결해서 사용할 수 있습니다. API를 호출해서 얻은 JSON 결과값, CSV, 구글스프레드 시트, JIRA도 지원합니다. - 여러 데이터 소스에서 얻은 쿼리 결과를 JOIN해서 사용할 수 있습니다. 예를 들면, ElaticSearch에서 나온 결과값과 Postgre SQL에서 나온 결과값을 JOIN 할 수 있습니다. Redash에는 하나의 Query로 여러 데이터 소스를 JOIN하는 기능은 없..