전체 글

작년에 힘든일이 겹치면서 좋은 취미가 생겼습니다. 헬스입니다. 친구야, 네가 생각이 너무 많다면 네가 슈퍼맨이라서 그래 제목이 참 웃기다. 친구는 누구인지, 어떤 생각이 그리 많은지. 왜 갑자기 슈퍼맨이라고 하는지. 나에겐 내가 컴플렉스였다 어렸을 때부터 나는 참 생각이 많은 사람이었다. 사소한 일들에 많은 code-yeongyu.tistory.com 그리고 코드 작성하는게 참 싫었습니다.. 하긴 그럴만도 한게 그동안은 오 나 쫌 하는거 같은데?! 이 기분을 느끼면서 일했었는데, 집중력도 떨어지고 힘도 없으니 일도 개판으로 했을 터. 잘하는걸 갑자기 못하게 된 기분은 매우 좋지 않았습니다. 그때는 스스로가 참 웃겼습니다. ‘운동은 다 에너지 낭비고, 머리쓰는 코딩만 하고 살아야지’ 생각했던 고등학생때의 ..
터미널에서 ChatGPT 를 쓸 수 있도록 하는 도구인 YGK-a 라는 도구를 만들었었다. 이곳 저곳 퍼지면서 반응도 꽤 좋았고, 깃허브에서 스타 개수도 많이 생기고 해서 참 뿌듯하던 와중에, 메일을 받았다. 그냥 막연히 ‘사람들이 좋아해주는구나~’ 생각했는데 이렇게 메일 받아보기는 처음이어서 너무 기대가 됐다. 그리고 오늘 그 분을 처음 뵙고서 맛있는 아이스 카페라떼 한잔을 대접 받았다. 사진 찍어둘걸. 나름 처음으로 내 프로젝트를 통해 대접받은 커피인데. 개발자로 인생을 살면서 느낄 수 있는 가장 큰 행복중 하나는, 내가 창작자가 된다는 점이다. 13인치의 1kg 가 조금 넘는 이 신기한 도구만 있으면, 어디서든 창작 활동을 해서 사람들을 편하게 할 수 있다. 별 것 아니더라도 누군가를 도왔음에, 또..
제목이 참 웃기다. 친구는 누구인지, 어떤 생각이 그리 많은지. 왜 갑자기 슈퍼맨이라고 하는지. 나에겐 내가 컴플렉스였다 어렸을 때부터 나는 참 생각이 많은 사람이었다. 사소한 일들에 많은 의미를 부여했고, 많은 생각들로 이어졌었다. 자연스레 내 감정에도 많은 영향을 줬다. 다른 사람들의 작은 거절도 큰 실망으로 이어졌고, 그 실망은 또 다른 생각을 낳아 나를 아프게 했다. 부탁받을 때면 나에게 부탁하러 오는 사람이 어떤 마음일까 생각하다 거절해야 할 것도 거절하지 못하곤 했었다. 억울한 상황에서 말싸움할 때에도 상대의 입장에 이입이 되어서, 상대방 말도 맞고 내 말도 맞는 말이라고 느껴질 때가 많았다. 그런데 보통 싸움에서 상대방은 자기 말이 옳다고 하는 입장이니까, 나는 질 수밖에 없었다. 나는 내가..
최근 트위터에서 코드 주석에 대한 떡밥이 돌고있다. 솔직히 막 엄청 중요한 내용은 아니라고 생각하고, 다들 알잘딱깔센이 될거라고 생각한다. 그치만 나는 개발자니까 이런 떡밥 또 물어버리겠다. 실제로 돈을 받고 일하는 코드를 작성하기 전까지는 나도 잘 몰랐던 내용이었다. 그래서 새로 프로젝트를 막 시작해보려는 분들이 참고하셔도 좋다. 좋은 PR 에 대한 이야기도 있다. 트위터에서 다양한 의견들을 봤는데 일단 써서 나쁠건 없다: 주석이 있어서 발생하는 문제보다는 없어서 발생하는 문제가 천배쯤 더 많을 거. 주석의 문제(?)로 종종 지적되는 “주석과 코드가 맞지않는 경우”는 저장소 히스토리 뒤지면 답이 나오기나 하지 그냥 주석 없고 짠놈이 뭔 생각인지도 모르겠는 코드는 다 엎고 다시 짜는거 말고 답이 있나. ..
원래 런업님의 영상을 좋아하기도 했는데, 영상 보면서 내용구성에 감탄할 수 밖에 없었다. 영상의 내용은 런업님이 새로 시작하는 브랜드의 티 소개인데, 대놓고 옷에 대한 이야기는 별로 안한다. 자기 이야기랑 생각들만을 풀어내는데, 이게 재밌어서 몰입하게 된다. 영상의 흐름은 이렇다. (공사장을 보며)이 날씨에 고생이 많으시네 -> 밖에 비가 온다 -> 일하기 싫다 -> 영상을 찍기로 했어요 -> 일하기싫다!! -> 예전에 교수님한테 '일 안하고 날로 먹을수 없을까요?' 라고 물었던 일화 -> 코인 관련 뉴스 영상 -> 일하다가 공황장애에 걸렸던 자기 이야기 -> 그동안 돈이 많은 사람들을 대했던 자기의 시선 -> 실제로 보니 다들 열심히 살더라 -> 근데 이들은 조명받고 있지 못하고 있다. -> 그래서 나..
본 이야기는 나의 이야기 시리즈 중 일부입니다. 글을 읽기 전 이 글에는 암호화폐라는 용어와 크립토(Crypto, Crypto Currency) 라는 용어가 혼재되어있고, ‘루나코인' 이라는 명칭으로 부르기보다는 ‘테라 생태계' 라는 정확한 이름으로 부르고 있습니다. 테라 생태계에 대해서 자세히 설명하진 않지만, 글의 전개를 위해 테라가 무엇이 되고 싶었는지 이야기 하고 있어요. 테라와 루나에 대해서 잘 모르시는 분들이라도 글을 이해하는데 문제가 없습니다. 테라에 대한 글이 아닙니다. 저에 대한 글이고, 테라에 관한 일을 겪으며 제가 어떤 생각을 하게되었는지에 관한 이야기입니다. 입동 입동 (立冬, 문화어: 립동)은 24절기의 19번째로 태양 황경이 225도가 될 때이다. 겨울이 시작하는 날이다. 위키백..
서론 최근 trackpurchase 라는 프로젝트를 진행 중이다. 다양한 쇼핑 플랫폼에서 결제기록을 한번에 조회 할 수 있고, 또 쉽게 확장해서 원하는 플랫폼의 크롤러를 구현 할 수 있도록 돕는 npm 라이브러리이다. 기술 스택은 다음과 같다. puppeteer jest jest-puppeteer 사실 JS / TS 를 사용해 프로젝트를 진행한 경험이 거의 없어서, 각 기술스택을 고를 때는 가장 많이 사용되고 있는 라이브러리들을 골랐다. 그런데.. 아래와 같은 문제가 발생했다. [cov 사진] 나는 공식 문서를 제대로 읽지 않은 죄로 이틀을 날리게 되었다.. 본론 공식 문서만 봐도 한번에 알 수 있는 내용이긴하다. 그런데 그 공식 문서를 꼼꼼히 못본 탓에 놓쳤어서 이렇게 기록해둔다. 공식 문서의 맨 위를..
Tiangolo, the FastAPI Tiangolo 는 FastAPI 를 비롯해 유명한 여러 오픈소스 도구들을 만든 프로그래머다. FastAPI 가 cool 하다고 생각해서, 문득 그걸 만든 사람은 어떤 사람일지 궁금해졌다. 그에 대해서 먼저 그의 웹페이지를 들어가면 다음과 같은 내용을 볼 수 있다. Hey! I'm @tiangolo (Sebastián Ramírez) 👋 I'm a software developer from Colombia. 🇨🇴 I currently live in Berlin, Germany. 🇩🇪 I have been building APIs and tools for Machine Learning and data systems, in Latin America, the Middle..
최근 회사를 다니며 좋은 사수분 덕에 많은 Django 를 많이 배우고있다. 우리 회사에서는 Django 와 Graphene 을 사용하는데, 그 덕분에 Django 와 DRF 를 동일시 하던 사고 방식이 많이 깨진것같다. 원래도 할 줄은 알았지만, advanced 하게 사용하지는 못했던 것 같아서 반성하는 한편, 많이 배우고 있던 참이다. 개인 프로젝트를 진행하다보니 Django 와 DRF 의 경계가 더욱 명확하게 보였고, 그래서 더 명확히 코드를 작성하고 분리 할 수 있게 되었던것 같았다. 오늘은 그 내용들을 정리해 적어보려한다. Signal Django ORM 으로 DB 에 데이터를 저장하려고 한다. 그런데, 다음과 같은 상황이라면? 좋아요를 누를 때 그 좋아요 수를 올리는것과 같이 저장하려는 데이터..
최근 회사에서 테스트 관련 최적화 작업을 진행하고 삽질하면서 몇 가지 소소한, 그리고 소중한 팁들을 얻게되었다..! 그 내용들을 정리해볼까 한다. 먼저 엄청 쉬운 팁부터. 테스트하는데 pdb를 써보고 싶어.. VSCode 는 불편해.. vscode 의 기본 테스트 기능에는 pytest 와 통합되어 작동하는 기능이 있다. 테스트의 실행결과를 콘솔 비슷하게 볼 수는 있는데 그 안에서 입력은 불가능 하다. 그래서 만약 pdb 같은걸로 set_trace 를 해서 테스트를 하려면 pytest 명령어를 셸에서 직접 입력해야 한다. 그렇다면 보통 시도하는 접근이 파일명을 옵션으로 줘서 해당 파일을 실행하는것인데, 그 안의 하나의 테스트만을 실행하고 싶다면 -k 옵션을 활용해 볼 수 있겠다. pytest -vv "파일..
요즘 즐겁게 TDD 를 하며 Django 개발을 하는 중이다. 코드짜는게 너무 편하고 즐거워졌다! 그런데 mocking 을 하려는데 몇가지 문제가 생겨서 정리해보고자 한다. 결론부터 말하자면, 파이썬에서 namespace 로 import 해야하는 함수에 대한 mocking 은 불가능하다고 보는것이 맞아보인다..! 다음과 같은 구조로 프로젝트가 되어있다고 해보자. 프로젝트 루트에는 hello.py 가, hello/world/ 에는 amazing.py 가 있다. 다음은 hello/world/amazing.py 의 내용이다. def printer(): print("hello world") 그리고 다음은 hello.py 의 내용이다. from hello.world.amazing import printer pri..
김연규라는 사람 기억은 흐릿하지만 유치원때, 초등학교때의 저는 참 이상한 사람이었을거에요. 컴퓨터 게임하길 좋아하는 평범한 잼민이 학생의 면도 있었지만, 뭔가 항상 어색하게 행동한다거나, 친하게 어울려 지내지 못한다거나, 혼자 무언가에 빠져서 자기 하고픈 이야기만하는 그런 사람이었어요. 아마 그때는 크레이지아케이드, 마이크로소프트, 빌게이츠 같은것들에 빠져있었을거에요. 그리고 처음으로 여자친구가 생긴 그때에는 여자친구한테 엄청 빠져있었던 기억도 나요. 그때의 친구들에게 물어보면, 정말 많이 좋아하는걸로 보였대요. 그때는 페이스북보다는 카카오스토리를 썼는데, 제 스토리에는 여자친구 얘기가 주를 이뤘던거같아요. 누군가는 오글거린다고도 하고, 누군가는 저를 이상한 눈으로 쳐다보면서 멀리하기도 했었던 기억이나요..
Github Action이 털렸다 Github Action이 뭔데? 깃허브에는 Github Action 이라는 기능이 있습니다. Test, 빌드, CI/CD 구축, 작업 실행 예약 등 다용도로 사용 할 수 있는 좋은 도구입니다. Features • GitHub Actions Easily build, package, release, update, and deploy your project in any language—on GitHub or any external system—without having to run code yourself. github.com 저장소의 .github/workflows 에 yaml 로 된 파일을 업로드하면, 해당 파일의 규칙에 따라 그 안에서 정의된 작업들을 실행시켜주는 고마..
서론 최근 저는 MSA를 공부중입니다. 각 마이크로서비스에 go, 특히 gin을 사용해서 개발하는것을 선호합니다. 그 이유는 다음과 같습니다. golang 너무 재밌음 컴파일 언어여서 바이너리 하나만 배포하면 됨 grpc 를 활용하기 용이함 최근 자주 사용하는 DB인 PostgreSQL과 gin을 활용하는 템플릿을 구성했습니다. 이 템플릿을 구성하며 Docker 이미지 최적화를 했습니다. 그 과정에서 Docker 이미지 크기를 99.2%나 줄이게 되었습니다. 다시 원래의 사이즈로 돌리면 무려 12921%가 증가합니다. (떡상) Docker 이미지의 사이즈를 줄이면 다음의 장점이 있습니다. 컨테이너 레지스트리(컨테이너 이미지 저장소)의 용량 절감 배포 프로세스의 소요시간 감소 실제 예제를 보시려면 http..
배포를 하자..! 지난 게시글에서 스위스 장인의 시계 처럼, 장인 정신으로 한땀 한땀 배포를 해야하는 프로세스를 만들었다고 말씀드렸습니다. inssa.club 을 사용하시면, 제 손땀 하나하나가 묻어나오는 패킷을 받으실 수 있었던 거죠... Watchfinder & Co./YouTube 개소리는 그만! 말도 안되는 소리는 여기까지만 하고, 지금 구축된 CI/CD 상황을 정리하자면 다음과 같습니다. 현재 상황 docker-stack을 활용해서, ec2위의 docker service들은 정의 / 실행 되고 있어요 각각의 서비스 (waitlist / clubhouse-profile)의 master에 push가 진행되면 다음의 작업들이 진행됩니다 테스트 코드 실행 도커 이미지 빌드 ghcr.io 에 업로드 de..
mengmotaYeonGyu
Superman's Somewhere