기타 메모 13

이미 push한 commit 메시지를 수정하기

요즘 commit 메시지를 영어로 쓰려고 하는데 push 해놓고 보니까 문법이 틀렸다. 이럴 때 어떻게 메시지를 어떻게 수정하는지 찾아봤으니 메모를 남겨놓는다. 먼저 몇 번째 commit 메시지를 수정해야 하는지 확인한다. # 이미 작업 중인 브런치라고 가정하고 $ git log commit {commit_id1} (HEAD -> feature/some-branch, origin/feature/some-branch) Author: github_id Date: Tue Oct 17 15:02:20 2023 +0900 correct message 1 commit {commit_id2} Author: github_id Date: Tue Oct 17 15:00:48 2023 +0900 correct message..

기타 메모 2023.10.17

Google Guice는 언제 쓸까

회사에서 내가 주로 맡고 있는 시스템이 Kotlin으로 만든 웹 어플리케이션의 일부인데 Google Guice 프레임워크를 사용하고 있었다. 이제까지 굳이 다 파악할 필요가 없어서 읽지 않았는데 컨테이너화를 하려고 보니 알아야겠어서 이것저것 찾아봤다. 먼저, Google이 DI용으로 만든 프레임워크다. 주스라고 읽는다. 2007년인가에 만들어진 꽤 오래된 프레임워크다. DI가 무엇이냐 하면 Dependency Injection이라 해서 의존관계를 줄여주는 소프트웨어 패턴이다. 예를 들어 아래와 같은 구현은 Client가 Service에게 의존하고 있다. 내부에서 초기화하기 때문에 Service의 변화에 맞춰 Client를 수정해야 할 것이다. class Service: def do(self) -> Non..

기타 메모 2023.09.15

Kibana 웹페이지에 접속이 안될 때

제대로 Kibana를 서버에 설치했는데 웹페이지에 접속이 안될 때는 경험상 거의 아래 두 경우였다. 502 Kibana service is not ready yet. Kibana가 출력하는 로그( /var/log/kibana/kibana.stdout 라든가 /var/log/kibana/kibana.stderr 라든가)를 확인하는게 순서상 맞지만, 사실 아래가 원인일 가능성이 크다. 502에러일 경우: Kibana자체가 기동하지 않음 # 프로세스 확인했을 때 kibana.yml가 있으면 됨 $ ps aufx | grep kibana # 혹은 service status를 확인 $ service kibana status # 만약 kibana.yml가 없거나 stopped일 경우 $ service kibana ..

기타 메모 2022.03.24

Kotlin이어도 null에러는 발생한다고..

java에 org.jsoup.Connection.Response라고 HTML response를 받는 오브젝트가 있다. 이 Response오브젝트에는 String형 body를 꺼낼 수 있는 body()나 Content-Type에서 String형 charset을 꺼내는 charset()이 있다. 그런데 이 charset()은 nullable한 String?이라는 건데. 언제 그러냐하면 UTF-8이 명시되어있지 않을 때 그렇다. 참고로 ?가 붙으면 nullable하다는 것이고 !가 붙으면 절대로 null일 가능성은 없다는 뜻이다. 이걸 모르고 아래와 같은 코드를 적었다. import org.jsoup.Connection private fun isValid(res: Connection.Response): Boo..

기타 메모 2021.12.09

아무 생각 없이 git access token지웠다가 fatal에러 나서 다시 인증해야 할 때 github cli 쓰면 편함

제목 그대로 access token만기 됐다고 해서 아무 생각 없이 안쓰는건가 하고 지웠는데 사실은 회사 컴에서 사용하는 애였다. 근데 어쨌든 만기는 됐으니까 새로 갱긴할 필요는 있었으니 큰 문제는 아니다. 참고로 에러는 이런식이다. $ git pull origin master hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # ..

기타 메모 2021.11.29

java로 만들어진 툴을 사용하려는데 Unrecognized VM option 'AggressiveOpts' 에러가 날 때 (feat.jEnv)

digdag (job 의존 관리를 위한 워크플로우 엔진) 을 사용해야 해서 로컬 환경에 install 했으나 $ curl -o ~/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest" $ chmod +x ~/bin/digdag # bash 사용 $ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc $ source ~/.bashrc # zsh 사용 $ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc $ source ~/.zshrc command를 입력하면 아래 에러가 뜨면면서 exit해버렸다. $ digdag --version Unreco..

기타 메모 2021.10.11

node 버전을 nodebrew로 관리하기

먼저 nodebrew 를 install 한다. $ brew install nodebrew $ nodebrew setup Fetching nodebrew... Installed nodebrew in $HOME/.nodebrew ======================================== Export a path to nodebrew: export PATH=$HOME/.nodebrew/current/bin:$PATH ======================================== 개발환경에서 사용할 node 버전을 지정한다. $ nodebrew install-binary v6.5.0 $ nodebrew use v6.5.0 node 버전을 확인해봤지만 nodebrew 로 지정해준 버전으로..

기타 메모 2021.09.14

master에 merge한 수정사항을 다시 돌릴 때: revert

PR도 approve받아서 master에 merge 후 릴리스 했는데 에러가 나서 revert를 해야 했다. revert는 딱 되돌리고 싶은 특정 commit만 들어낼 수 있다. merge한 master의 log를 보면 아래와 같이 merge commit과 개발 branch에서 commit했던 기록들이 나온다. $ cd /git_repositories/repository $ git checkout master | git pull $ git log commit {revert target merge commit} (HEAD -> master, tag: {tag}, origin/master, origin/HEAD) Merge: {직전 merge commit} {직전 commit} Author: {author}..

기타 메모 2021.06.04

VSCode에서 git worktree로 같은 리포지토리 다른 브랜치 작업 병행하기

자세한 설명은 Git Worktree 도큐멘트를 보는 것이 좋다. git worktree란 제목에서도 알 수 있듯이 같은 리포지토리를 여러 개 clone하지 않고도 여러 브랜치에서 병행 작업할 수 있게 하는 기능이다. 주 커맨드는 아래와 같다. $ git worktree add [-f] [--detach] [--checkout] [--lock] [-b ] [] $ git worktree list [--porcelain] $ git worktree lock [--reason ] $ git worktree move $ git worktree prune [-n] [-v] [--expire ] $ git worktree remove [-f] $ git worktree repair [...] $ git workt..

기타 메모 2021.05.27

A/B테스트 결과 분석에 앞서 확통 개념 정리

내일쯤 다시 정리할 것임 참고한 글 확률변수, 확률분포, 이항분포 베르누이분포와 이항분포 Be Geeky - Bayesian AB Test 확통 개념 확률 변수 어떠한 확률이 일어날 경우 e.g. 주사위에서 1이 나올 확률에서 1은 확률 변수이다 확률 분포 확률 변수와 확률을 짝지어 나타낸 것(함수) 이산 확률 분포 각 확률 변수가 특정 실수로 연속되지 않은 확률 분포 e.g. X = {x1, x2, x3, …, xi, …, xn} Pr = {p1, p2, p3, …, pi, …, pn} 이항 분포 이산 확률 분포의 대표적인 예. e.g. 어떤 기사를 탭하는 행위를 t라고 하자. 총 n회 시행 중에서 t가 일어날 확률을 나타낸 분포 X = { x0, x1, x2, …, xi, …, xn } Pr = {n..

기타 메모 2021.02.04