보통 웹훅을 사용하기 위한 코드를 구현하고 웹훅을 받는 부분에 대해 생각을 해본적이 없을 것이다. 현재 회사에서 메신저를 담당하고 있고 웹훅 수신(webhook receiver)를 구현 할 수 있는 기회가 생겨서 얼마 전 (2022년 2월) 에 배포를 했고, 약 4개월 정도 하루에 1000개 정도의 웹훅을 수신 하고 있다. Django 로 웹훅 수신 (webhook receiver) 부분을 구현했고 고민 했던 부분들을 기록에 남기려고 한다. 누군가에게 도움을 받거나, 방향성을 제시 받은 부분이 아니라 옳지 않은 방법 일 수도 있지만 나중에 다시 보았을 때 무엇을 고려하지 못했는지 깨달으면 더 좋을 것 같아서 남기는 것이 기록에 좋다고 생각했다. 1. 토큰 웹훅을 사용하면 보통 각자 고유의 토큰이 발급 된..
보통 directory 안에 있는 파일들을 볼때 하나씩 들어가서 ls, 또는 ls -al 이런식으로 보지만, directory 단계적으로 하위 계층까지 보기 좋게 표시하는 명령어로 tree 가 있다. [설치] ubuntu sudo apt get install tree Mac brew install tree [명령어] 1. tree jira-automation 라는 directory 에서 tree 명령어를 통해 확인해보면 아래와 같이 하위 계층이 나온다. limjian@Jians-MacBook-Pro-13 jira-automation % tree . ├── README.md ├── go.mod ├── go.sum ├── jira.go └── utils └── utils.go 2. tree -L [depth..
go 1.18 부터 generic 이 지원된다고 해서 경험도 해볼겸 최신 버전으로 업그레이드를 위한 작성 (업그레이드 하려면 삭제 먼저 해야 됨) 1. 현재 설치 되어있는 go version 확인 limjian@Jians-MacBook-Pro-13 ~ % go version go version go1.16.4 darwin/amd64 2. 설치 되어있는 go 경로 확인 limjian@Jians-MacBook-Pro-13 ~ % which go /usr/local/go/bin/go 3. 삭제 limjian@Jians-MacBook-Pro-13 ~ % sudo rm -rf /usr/local/go Password: limjian@Jians-MacBook-Pro-13 ~ % which go go not foun..
docker build 를 하려고 limjian@Jians-MacBook-Pro-13 drf-practice % docker build . Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? # docker build . 명령어를 사용했더니 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 이유는 현재 docker가 실행되고 있지 않아서.. docker 실행시키면 된다.. Linux 의 경우 $ sudo systemctl status docker # docke..
local pc 에 무언가를 계속 설치 하는게 불편하다고 느껴서 docker Compose 를 통해 토이 프로젝트를 진행해 보려고 한다. 도커 컴포즈 (Docker Compose) 여러 개의 컨테이너가 하나의 애플리케이션으로 동작할 때, 이를 테스트하려면 각 컨테이너를 하나씩 생성해야 한다. 여러 개의 컨테이너로 구성된 애플리케이션을 구축하기 위해서 run 명령어를 여러 번 사용할 수 있지만, 테스트 단계에서는 매번 run 명령어에 옵션을 설정해서 진행하기에 번거로움이 있다. 이를 위해 도커 컴포즈는 YAML 파일을 통해 여러 개의 컨테이너의 실행을 한 번에 관리하여 하나의 프로젝트처럼 다룰 수 있는 환경을 제공한다. 설치 (install) windows Mac (현재 pc가 mac 이라서 mac 기준으..
타입 어노테이션(type annotation) 또는 타입 힌트(type hint)가 점점 많은 파이썬 프로젝트에서 사용되고 있는 추세 파이썬 버전 3.5에 추가 Type Annotation def greet(greeting: str, name: str) -> str: return greeting + name greet 라는 함수의 파라미터 greeting, name 이 문자열 이라는 것을 알 수 있고, 리턴 값이 문자열이라는것을 알 수 있다. 그러면 만약에.. print(greet(1, 2)) (venv) limjian@Jians-MacBook-Pro-13 python % python3 type_annotation.py 3 greet 라는 함수에 파라미터를 정수를 넣었을 때.. 그래도 잘 출력 되는 것을..
reset 옵션은 이전 돌아가고 싶은 커밋으로 가고 싶을 때 사용한다. # git reset git reset --soft "commit hash" git reset --mixed "commit hash" git reset --hard "commit hash" git reset HEAD~10 git reset HEAD^ 1. git reset --soft "commit hash" soft -> commit 된 파일들을 staging area로 돌려 놓는다. git log 확인을 해보고 2번째 커밋목록으로 이동을 한 상태이다. git status 를 확인 해보면 add 까지 된 상태이다. limjian@Jians-MacBook-Pro-13 test-repository % git log commit 7604..
@cached_property 를 사용한 경험을 이야기 하려고 한다. Django github cached_property class cached_property(object): """ Decorator that converts a method with a single self argument into a property cached on the instance. Optional ``name`` argument allows you to make cached properties of other methods. (e.g. url = cached_property(get_absolute_url, name='url') ) """ def __init__(self, func, name=None): self.func ..