목록2022/02 (14)
규도자 개발 블로그
macOS에서 ELK stack 구성하기 (elasticsearch) 그냥 brew install로 무지성 설치를 하려니 안되더라. 해서 내가 삽질한 내용과 더불어 다른 사람들은 헤매지 않길 바라며 기록해둘 요량이다. 먼저 현재(2022년 2월 27일) brew search elasticsearch 하면 나오는 내용이다. $ brew search elasticsearch ==> Formulae elasticsearch elasticsearch@6 ShellCopy 깔아보자. $ elasticsearch -V warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release W..
과연 여기서 말하는 강한 온도는 높은 온도를 의미하는 것인가, 낮은 온도를 의미하는 것인가. 숫자가 온도를 의미하는 것인가 아니면 강도를 의미하는 것인가. 여기서 강도를 의미하는 것이라면 높은게 강도가 높은 것인가 낮은게 강도가 높은 것인가. 또 이 강도가 높은 게 온도가 높은 것인가, 강도가 낮은 게 온도가 높은 것인가. 온도를 강하게 하려면 저 화살표 방향으로 돌리라는 것인가 아니면 상단의 화살표가 거기에 존재할 때 온도가 강하게 설정돼있다는 것인가. 진짜 그 어떤 정보도 도움이 되지 않는 최악의 UI가 아닐까. 결국엔 UX로 해결해야한다. 성에제거가 곧 높은 온도를 의미하는 것이니 온도를 낮추려면 성에제거로 갈 수 있는 방향의 반댓방향으로 돌리면 되고, 온도를 높이려면 성에제거방향으로 가면 된다.
django로 github actions찍먹해보기 github actions라고 요즘 핫한 친구가 있다. 간단하게 말하자면 github actions를 설정한 저장소에 특정 이벤트가 일어나면(push를 했을 때나 정해진 시간 등) 정해놓은 워크플로우를 자동으로 실행하게 해주는 기능이다. 일종의 CI/CD작업을 깃허브에서 실행하게 만들 수도 있는 셈이다. 그래서 보통 jenkins에서 수행하던 CI작업을 github actions로 많이 옮기는 추세이다. 허나 완전한 무료는 아니라는 걸(2,000 Actions minute/month FREE) 알아둬야 한다. github에서 직접 지원하는 기능일 뿐더러 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 ..
[macOS] kubectl, kustomize, minukube설치하기 $ brew install kubectl kustomize minikube $ kubectl version Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5", GitCommit:"5c99e2ac2ff9a3c549d9ca665e7bc05a3e18f07e", GitTreeState:"clean", BuildDate:"2021-12-16T08:38:33Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"22"..
gmail에는 여러 용도로 사용할 수 있게 아이디 뒤에 +{something}을 붙여서도 사용할 수 있는 기능이 있다. 예를 들어 내 이메일주소가 jujumilk3@gmail.com인데 여기에 jujumilk3+2022@gmail.com을 붙여도 내 원래 계정으로 온다. 이렇게 말이다. 물론 숫자뿐만이 아니라 영어도 되므로 특정 메일을 리스팅하거나 라벨링할 때 쓰기 좋은 기능이지만 이 기능을 aws계정가입과 함께 활용하면 같은 gmail계정으로 여러개의 프리티어계정을 계속 생성할 수 있다. 프리티어계정은 1년 후에 종료되기 때문에 나 같은 경우에는 뒤에 해당년도를 붙여 새로운 계정을 만들어 사용하고 있다. 이렇게 가입시도를 하면 멀쩡히 잘 진행된다. 프리티어 기능을 정상적으로 사용할 수 있다는 확인메일이..
FastAPI Schema를 제대로 다루는 방법 FastAPI에는 Schema라는 개념이 존재한다. 만약에 스프링이나 nestJS로 개발을 해봤던 사람이라면 DTO라는 이름이 더 익숙할 것이다. 간단하게 말하자면 DTO란 Data Transfer Object의 약자로서 어떤 메소드나 클래스간 객체정보를 주고 받을 때 특정 모양으로 주고 받겠다는 일종의 약속이다. FastAPI의 스키마는 pydantic model에 종속돼있다. 말이 종속이지 그냥 pydantic 패키지를 그대로 갖다 쓴다고 해도 무리가 아닐 정도다. FastAPI의 스키마는 아래처럼 생겼다. from pydantic import BaseModel class Item(BaseModel): name: str model: str manufac..
오늘 깃허브 계정을 점검해봤는데 아직도 전직장의 github repository에 내가 등록이 돼있었다. 원래는 그냥 로컬에서만 개인적으로 공부하고 있는 걸 push하는 용도로 썼는데 요즘 fastapi 기여때문에 자주 들어가보게 돼서 발견했다. 보안문제도 있고 할 텐데 왜 내가 아직도 등록이 돼있을까. 아마 발견하기 힘들어서 잊은 게 아닐까 하는 추측 뿐이다. 그리고 당연스레 나 스스로 collaborator를 끊어서 해당 repo를 안볼 수 있지 않을까 싶었는데 아니었다. 레포 세팅에 접근할 권한이 없기 때문에 내가 날 없앨 수 없었다. 방법은 다음과 같다. 그냥 그 유저를 block했다가 다시 풀면 된다. 저 버튼을 눌러서 계정을 Block하고 다시 settings에서 풀면 된다. 그럼 해당 계정과..
FastAPI 기여하기 저번에도 썼던 게시물의 2편이라 봐도 무방하다. 일단 Contribute에 대한 공식 안내는 이 링크를 찾아가보면 된다. 근데 이게 한사람이 관리하는 프로젝트라 언제 PR이 될지 모른다. 하지만 그냥 하는 거다. 구멍이 숭숭 뚫린 프레임워크니까.. 먼저 fastapi 공식 repository에 간다. 그리고 fork를 딴다. 요기따. 그리고 local에 project를 클론해서 연다. 그럼 이런 모양이 된다. 그럼 fastapi를 실행해보자 당연히안된다. Fastapi는 다른 의존패키지가 꽤나 많기 때문이다. poetry에서 사용되는 pyproject.toml파일을 살펴보면 FastAPI의 프로젝트 의존성이 어떻게 구성돼있는지 알 수 있는데 각설하고 이걸 실행하고 싶으면 pypro..
리눅스, 유닉스 백그라운드프로세스 방법 정리 (&, bg, nohup, screen) 서버는 왜 필요할가. 당연히 내가 보고 있지 않아도 서비스를 안전하게 제공하기 위해서다. 백그라운드 프로세스는 왜 필요할까. 당연히 내가 보고 있지 않는 상태에서도 돌아가고 있는 프로세스를 실행하고 싶거나 혹은 여러개의 프로세스를 돌리고 싶기 때문일 것이다. 하지만 백그라운드 프로세스를 돌리는 방법은 많고 각각의 방법은 어떤 특성이 있는지 여기저기 파편화돼있는 정보들을 스스로 취합하지 않으면 언제 어떤 방법을 선택해야할지 알기 힘들다. 그래서 여기에 정리해본다. 1. &(ampersand) 리눅스기반 os의 명령어에서 흔히 쓰이는 Semicolon(;)과 Pipe(|)의 형제라고 할 수 있다. &연산자 자체는 "앞의 명..
파이썬 프로세스 킬러 import os def kill_process(process_name): process_read = os.popen(f"ps -ef | grep {process_name} | grep -v 'grep'").readlines() terminate_result = None for process in process_read: process_id = process.split()[1] terminate_result = os.popen(f"kill {process_id}") return terminate_result 프로세스단위에서 프로세스를 죽이는 스크립트이다. 내가 개인적인 용도로 사용했을 땐 내가 돌리고 있는 퀀트프로그램에서 웹소켓이 깨졌을 때 해당 프로세스를 전부 종료하..