목록분류 전체보기 (493)
규도자 개발 블로그
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 이하인 자연수입니다. 카..
docker, cronjob 하는 container 만들기 + supervisor, 환경변수 적용하기 일단은 간단한 cronjob을 수행하는 container를 만드는 Dockerfile을 작성해보자. 과정은 내가 자주 사용하는 python을 base image로 진행하겠다. # Dockerfile FROM python:3.9 WORKDIR /home/docker/code RUN apt-get -qq update \ && apt-get -qq install -y --no-install-recommends \ cron \ && apt-get -qq autoremove \ && apt-get -qq clean COPY . /home/docker/code RUN cp /home/docker/code/cronj..
[프로그래머스/Level2/파이썬3(python3)] n^2 배열 자르기 문제 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다. 정수 n, left, right가 매개변수로 주어집니다. 주어진 과정대로 만들어진 1차원 배열을 return..
[프로그래머스/Level2/파이썬3(python3)] 영어 끝말잇기 문제 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차..