목록2022/04 (18)
규도자 개발 블로그
github actions의 자세한 실행환경 + 요청 IP 알아보기 업무 중 이런 일이 있었다. 온프레미스로 운용되고 있는 서버에 gitOps를 도입해야 했지만 k8s상에서 노드로 잡혀 있는 서버가 아니었으므로 argoCD같은 걸로 디플로이먼트가 참조하여 서비스를 갱신할 수 있을만 한 manifest파일도 없었다. 결국 github actions상에서 ssh 접속을 통해 이미지를 pull 받는 스크립트를 실행하는 형태로 구현하는 것으로 가닥이 잡혔는데 이상하게 접속이 안되는 것이다. 내가 이럴 때마다 자주 표현하는 방식이 있는데 진짜 때려 죽여도 접속이 안됐다. 그때 사용했던 건 https://github.com/appleboy/ssh-action 여기서 제공하는 action이었다. 그래서 혹시 이 프로..
저번 포스팅(https://this-programmer.tistory.com/495)에서 계획했던 오픈소스 프로젝트의 가장 기본적인 기능을 제공하는 버전의 릴리즈를 마쳤다. 저장소는 https://github.com/jujumilk3/yamlier이다. yamlier가 무엇이냐. 저장소 description에 써있듯 Super Simple Cli yaml Editor 이다. 필요하다고 느낀 계기는 CI/CD과정에서였는데 외부로 노출되어선 안되는 값을 yaml로된 config파일에 집어넣어야 했고 그 과정에서 나는 당연히 cli단에서 yaml파일을 에디팅해주는 tool이 있을 거라 생각했다. 왜냐, 나만 해도 kustomize로 k8s에서 사용하는 yaml파일을 마음껏 주무르고 있었기 때문이다. 하지만 이..
1. 회사 업무로 인해 datadog integration이 필요한 부분이 생겼다. 기존 dd(datadog)에서 지원하는 APM integration형태가 아닌 직접 custom metric + log를 보내야하는 서비스가 있었는데 이부분에 있어서 과연 어떤 방법이 좀 더 효율적일까 하는 고민이 개발팀 내부에 있었는데 간단하게 그냥 datadog-agent의 코드를 까보기로 했다. 정말 놀랍게도 saas형태로 제공되고 있는 서비스의 agent임에도 불구하고 오픈소스로 운용되고 있다. https://github.com/DataDog/datadog-agent 이곳이 바로 그 저장소이다. 2. 마찬가지로 회사에서 배포스크립트를 짜는데 shell에서 yaml파일을 변경하는 게 가장 깔끔한 해결책이었다. kus..
Docker container가 localhost를 볼 수 있게 하는 방법 IT산업이 점점 고도화, 전문화되면서 거대해지는 규모에 맞게 MSA architecture의 도입은 이제 고려의 대상이 아닌 필수가 됐다. 그만큼 기존에 개발하던 환경과도 달라져야 하는 부분이 있는데 그 중 하나가 바로 어플리케이션의 컨테이너화이다. 하지만 이 컨테이너가 참조하는 엔드포인트가 public network이 아닌, Docker engine을 실행하고 있는 localhost의 어플리케이션을 참조해야 한다면? 먼저 localhost에서 실행할 간단한 fastAPI의 sample을 만들어보자. from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(..
맥의 시스템 환결성정 -> 키보드 -> 텍스트 란에 가보면 이렇게 모두 체크돼있는 걸 확인할 수 있다. 과감하게 전부 해제하면 된다. 맞춤법 자동수정은 일반명사가 아닌 축약어 + 고유명사를 많이 쓰는 개발분야에 오히려 방해된다. 필자의 경우 ecr을 입력하는데 계속 ear로 바꿔주는 쓸데없는 친절로 인해서 방해를 받았다. 자동으로 문장을 대문자로 시작은 굳이 말하지 않겠다. 스페이스---와 Touch Bar---는 취향것 체크 or 해제하면 되겠지만 특히 무조건 해제해야하는 옵션이 바로 맨 밑이다. 가끔씩 stackoverflow나 기타 blog에 작성돼있는 코드를 복사 붙여넣기 할 때 키보드로 입력할 수 있는 따옴표가 아닌 뭔가 요상한 따옴표가 물려오는 경우가 있다. 바로 이 옵션을 킨 채 작성한 문서..
무슨 값들을 상수(constant)로 지정해야할까? 정답은 간단하다. 바로 프로그램 시작부터 종료때까지 바뀌지 않아야 하는 값들을 상수로 지정해야 한다. 보조기억장치에 있는 프로그램을 실행시켜 주기억장치인 메모리에 올라가면 그것은 프로세스가 된다. 이런 프로그램의 생애주기에 있어서 프로세스가 종료되기 전까지 같은 값을 갖고 있어야만 하는 것들, 그것을 곧 상수(constant)로 지정해야 한다. 어쩌면 같은 어플리케이션이라 할지라도 실행환경이나 작동환경, 그리고 작동 조건에 따라 값들이 달라질 수는 있다. 하지만 값이 달라질 수 있을 지언정 그 프로그램이 프로세스가 되어 종료되기 직전까지 같은 값을 갖고 있어야 하는 것이라면 상수로 지정해야 한다.
금융수학 그릭스(Greeks) 1. 알파(alpha) 금융권에서 쓰이는 그릭스(Greeeks)란 옵션 가격결정 함수의 변수 중 하나를 가리키는 문자이다. 옵션의 가격 결정함수는 S, K, r, T, t, σ라는 모수와 변수들로 이루어진 함수이다. 포트폴리오의 가치나 옵션 가격을 이 모수들과 변수들로 미분한 것을 그릭스라고 한다. Greeks라 불리우는 이유는 이 미분함수들이 △, Γ, Θ, ν, ρ의 그리스 문자로 이루어져 있기 때문이다. 이와 더불어 알파는 위에서 말하는 옵션가격 결정함수의 그릭스에 포함되지 않는다. 그렇다면 알파가 의미하는 것은 무엇인가. 알파는 평균시장성장률 대비 초과수익률을 의미한다. 특정 PB나 펀드매니저, 혹은 포트폴리오가 운용되는 주 필드가 있고 그 필드의 성장률보다 그 자산..
github actions로 자동 1일 1커밋 봇 만들기 그냥 재미있는 생각이 들었다. 1일 1커밋을 생활화하려는 개발자들이 있지만 그게 또 힘드니 이걸 github actions로 해결하면어떨까(?)하는 그런 생각 말이다. 알다시피 github actions에는 PR이나 push등의 이벤트에만 작동하는 것이 아닌, 일정 시간마다 작동하는 workflow또한 작성할 수 있다. 진짜 간단한 scheduled.yml을 작성해보자. 아, 모든 과정은 내가 인프라 공부할 때 사용하는 https://github.com/jujumilk3/infra-study 이 레포지토리에서 진행할 것이니 행여 나중에 진행과정을 참고할 사람이 있다면 해당 저장소의 커밋 내역을 따라가보면 될 것이다. 그리고 Actions칸에 있는 ..
[프로그래머스/Level2/파이썬3(python3)] 카펫 문제 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카..