전체 글 85

역할(Role) 없이 움직이던 EC2인스턴스에 새로 만든 역할 연계하기 (aws cli 사용)

전제조건: 기존에 사용하던 EC2인스턴스는 CDK로 만들어져 있지 않음. AWS console에서 직접 버튼 누르면서 만들 수도 있으나 권한이 없는 경우 상사(들이 권한을 갖기 때문)에게 부탁할 일이 생긴다. 마냥 알아서 만들어 주세요 하면 시간 없는 상사들은 굉장히 귀찮아할 수도 있기 때문에 가급적이면 스크립트를 작성해서 넘기는 편이다. 때문에 이번에는 aws cli만을 이용했다. 참고 document: https://aws.amazon.com/jp/blogs/news/new-attach-an-aws-iam-role-to-an-existing-amazon-ec2-instance-by-using-the-aws-cli/ 예를 들어, 기존에 사용하던 EC2가 S3에 파일을 생성/수정/삭제/읽어오기 등의 처리..

AWS 노트 2022.03.16

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

SQL Antipattern -Avoiding the Pitfalls of Database Programming- 을 읽고

읽게 된 경위 SQL을 다뤄본 지 얼마 되지 않았고 체계적으로 배워본 적도 없는지라 평소에 비효율적인 쿼리를 실행하는 일이 많던 차에 상사에게 추천받아 읽게 되었다. 사실 회사 생활 하면서 DB를 관리하는 엔지니어가 아니더라도 A/B 테스트 결과 분석, 유저 경향 분석 등 시스템 개선을 위한 의사결정에 꼭 필요한 데이터를 다루기 위해서는 SQL에 능숙한 편이 좋다는 것을 깨닫고 있다. 우리 회사에는 SQL에 굉장히 능숙한 마케팅 팀장님(엔지니어도 아니고 다른 프로그래밍 언어도 사용할 줄 모름)이 계시는데 이 분은 본인이 데이터를 만지면서 여러 분석을 통해 다음 마케팅 방향을 잡는다. 이걸 보면서 나는 엔지니어인데 이 분만큼도 SQL을 다루지 못하는 것에 부끄러움도 느꼈지만 다른 비 엔지니어 팀원이 데이터..

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

pipenv로 libmf나 implicit을 install할 때 cmath관련 에러가 난다면

에러 먼저, 이게 어떤 에러인가 하면 libmf나 implicit에서 사용하는 C언어를 컴파일 할 때 나는 에러인데 사실은 path가 꼬여서 발생한 것이다. 다른 블로그 글을 읽어보니 cmath와 math.c 패스가 들어간 곳이 달라 어딜 읽어야 하는지 몰라 그런것이라고 했다. ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 198 warnings and 20 errors generated. error: command 'clang' failed with exit status 1 ---------------------------------------- ERROR: Command errored out with exit..

파이썬3 노트 2021.01.12