목록분류 전체보기 (67)
The Boxer
druid에서 query에 어떤 데이터가 포함되어야 하는지 명시 SQL에서 row단위의 제약을 거는 where 절과 동일하게 볼 수 있음 일반적으로 dimension 에 적용되는 조건이나, metric 에도 적용될 수 있음 query filter 종류 selector 가장 기본적인 filter 특정 dimension의 지정한 값에 해당하는 데이터 추출 extraction function 적용 가능 { "filter": { "type": "selector", "dimension": "d1" , "value": "test" } } column comparison 특정 dimension이 같은 조건에 해당하는 데이터 추출 예시에서 dimension1 = dimension2 와 같은 기능 { "filter": ..
드루이드는 2가지 방식의 쿼리를 통해 데이터를 질의할 수 있다. Druid SQL: 일반적인 SQL로 으로 질의 native queries: JSON 오브젝트 형식이며 http 통신을 통해 post의 body로 담아 질의 여기서 native queries 방식에 대해 알아본다. native queries 드루이드에 데이터를 질의하기 위한 쿼리 http 통신으로 전달되는 JSON 형식이며, post의 body로 전달한다. curl로 질의하는 예시 curl -X POST '{host}:{port}/druid/v2/?pretty' -H 'Content-Type:application/json' -H 'Accept:application/json' -d @{query_json_file} 경량화 되게 설계되어 있으며..
python에서 사용하는 data parsing and validation 라이브러리 parsing과 validation을 담당한다고 적었는데 pydantic이 data를 어떻게 parsing하고 validation 하는지 확인해보자. 작동 순서 정상 파싱이 가능한 경우 from datetime import datetime from typing import List, Tuple from pydantic import BaseModel class Bar(BaseModel): id: int name: str class Foo(BaseModel): id: int name: str numbers: List[int] tup: Tuple[str, int] bar: Bar template = { ..
google cloud functions, azure functions, aws lambda... 이 서비스들은 serverless 컴퓨팅 서비스이다. serverless: 직역하자면 서버가 없다는 의미가 된다. 실제로는 서버가 없다는 의미보다는 개발자가 실질적으로 관리할 서버가 없는 개발 모델을 의미한다. 실제로 서버는 존재하지만 추상화 되어있고, 개발자는 서버에 대한 관리, 프로비저닝, 스케일링 등의 작업을 신경쓰지 않아도 된다. Serverless Framework 위 serverless 서비스를 구성하고 운영하다 보면 배포한 함수에 대한 관리, 환경 설정을 매번 해줄 필요가 있다. 이를 좀 더 편하게 사용하기 위해서 만든 것이 serverless framework며, 단순한 yaml파일 만으로도 ..
python test를 공부하는 과정에서 용어에 대한 정리가 필요하다고 생각하여 정리한다. fixture A software test fixture sets up a system for the software testing process by initializing it, thereby satisfying any preconditions the system may have ref: https://en.wikipedia.org/wiki/Test_fixture#Software 번역하자면 소프트웨어에서 테스트를 진행하기 전에 설정되어야 하는 고정값으로 이해할 수 있다. 테스트를 진행하기 전에 테스트에 대한 환경설정 혹은 테스트 케이스에 대한 값들이 있을 수 있겠다. 예시로 데이터 베이스 설정, 테스트에대한 y..
instanceof checks if the constructors are the same. The thing is that your code gets its own copy of the constructor from the code in the library (because that's how it is, it's not your fault), so they are not the same instance anymore. The constructors still share the same name though: from: https://stackoverflow.com/questions/59265098/instanceof-not-work-correctly-in-typescript-library-project
django가 기본적으로 제공하는 계정정보 수정 form 클래스와 비밀번호 변경 form 클래스를 사용하여 기능 구현 I. 계정정보 수정 - django가 제공하는 UserChangeForm을 사용하여 계정정보 변경 계정정보 변경 과정 사용자에게 계정 수정 form 태그 제공 사용자가 작성한 정보를 사용하여 User를 저장할 form객체 생성 유효성을 검사한 후 User 정보 수정 (1) UserChangeForm - django가 제공하는 User정보 변경 form객체 - 변경할 대상(User객체)을 instance인자로 넘겨 form태그 생성 - 변경할 대상(User객체)을 instance인자로 넘기고, 사용자가 작성한 정보를 data인자로 넘겨 저장할 User객체를 생성 instance, data ..
django를 사용해 M : N 관계를 구현하고, 간단한 조회, 삽입 기능을 구현해봅니다 I. M : N 관계 M쪽의 하나의 레코드가 N쪽의 다수의 레코드와 관계를 맺고, N쪽의 하나의 레코드도 M쪽의 다수의 레코드와 관계를 맺는 관계 (1) 1 : N 관계와 비교 - 반드시 N쪽의 레코드가 1쪽의 레코드에 속함 - 1 has many N - N belongs to 1 (2) 구현 방법 - 1 : N 관계를 사용하는 방법 1 : N 테이블 2개를 구성 2개 테이블의 pk를 데이터로 갖는 또 다른 테이블 구성 결국 1 : N 2개를 사용하여 해결하는 방법 - django-ORM을 통해 해결하는 방법 django가 제공하는 기능을 사용하여 해결 (3) 1 : N 관계 사용 구현 예시 class Student..
I. 계정 생성 django는 생성 당시부터 User라는 객체를 관리한다. User객체에는 계정에 필요한 id, pw등의 속성이 담겨있고, django가 이를 관리하고 있다. django는 이를 활용해서 계정생성, 로그인, 계정정보 변경 등의 form을 제공하고, 이를 활용하여 각 기능을 구현한다. (1) UserCreationForm - django가 생성해주는 User 생성용 form - view단에서 form을 생성하고, template단으로 넘겨주어서 form 태그 안에서 사용할 수 있다. - form객체 생성시 입력값으로 자료를 넘겨 User객체로 저장가능한 form객체를 생성할 수 있다. - form태그 생성, User객체 생성을 담당 (2) 계정 생성 과정 사용자에게 계정생성 form 제공 ..
소통(팀원과의 소통, github와의 소통)을 중요시하기 팀장을 믿어라 (1) 선형적 작업구조(single branch) - 문제점: 업무의 병행성이 없다. - 동시에 작업 불가 I. multiple branch - 팀원별로 각각의 branch 지정 - 각자 branch에서 작성 후, 각자의 branch로 push까지 진행 - github에서 pull request를 사용해 병합 - pull request시 github가 conflict 검사 후 병합 진행 (1) 명령어 해당 branch로 이동 git checkout "브랜치 이름" 모든 branch 출력 git branch branch 생성 후 바로 이동 git branch -b "브랜치 이름" branch 제거 git branch -d "브랜치 이름..