본문 바로가기
반응형

전체글589

Giscus 댓글, 텔레그램 (Telegram) 으로 알람 받기 최근에 Giscus로 댓글 시스템을 이관하면서 새 댓글이 생성될때 알람을 받을 방법이 없었다. 그래서 간단하게 Github Action과 Telegram을 통해 알람을 받도록 구성했다. 1. 텔레그램 Bot 생성 BotFather 에서 새로운 봇을 생성한다. /newbot 을 입력해서 새로운 봇 생성을 시작 blog-comment 라는 이름으로 봇 생성 방금전에 생성한 blog-comment 봇의 username을 지어야한다. 여기서는 MyBlogCommentBot 으로 지었다. 마지막엔 꼭 bot이 붙어야 한다. 마지막 메세지에 포함된 token 값이 앞으로 사용할 Token이라 별도로 관리를 한다. 해당 Bot의 채널ID를 알아야 API를 사용할 수 있다. chatId를 확인해보기 위해 생성된 Bot.. 2023. 3. 6.
Utterances 에서 Giscus 로 마이그레이션하기 블로그의 댓글을 Utterances 에서 Giscus 로 마이그레이션 했다. 기존 댓글을 잘 사용하고 있었지만, 장점이 훨씬 많은 Giscus로 이관하게 되었다. 1. Giscus 장점 Giscus 는 Utterances에 비해 많은 장점들이 있다. 대댓글 댓글 수, 댓글 정렬, 게시물에 대한 반응 다양한 테마 생각보다 많은 테마와 사용자가 직접 생성한 테마를 적용할 수 있다. 블로그에 적용된 테마는 Github Light High Contrast 테마이다. (High Contrast 테마는 JetBrains IDE에서도 사용하는 애정하는 테마이다.) 그 외 장점 지연 로딩 댓글 다국어 (한국어 포함) 봇 자체 호스팅 기타 등등 여러 다양한 옵션들이 존재 가장 중요한건 실제로 계속해서 관리가 되고 있는 .. 2023. 3. 5.
2. 좋은 함수 만들기 - 암묵적 입력/출력 지난 시간에 부작용 (부수효과) 함수에서 어떻게 최대한 부작용과 거리두기를 해서 좋은 함수를 만드는지 간단한 예제로 연습해봤다. 이번 시간에는 좋은 함수가 되기 위해 관리해야할 부작용이란 어떤 것들이 있는지 알아보자. 1. 암묵적 입력/출력 좋은 함수는 "부작용 (부수효과) 이 없으며, 멱등성을 유지할 수 있는 함수" 라고 했다. 이 부작용 (부수효과) 함수에는 크게 2가지 특징이 있다. 암묵적 입력 (implicit input) 암묵적 출력 (implicit output) 1-1. 암묵적 입력 (implicit input) 암묵적 입력이란 함수의 입력값으로 명시적으로 전달되지 않는 파라미터를 의미한다. 예를 들자면 다음과 같은 경우 암묵적 입력이다. 함수의 인자는 없는데 함수 내부에서 쿠키에서 값을 가.. 2023. 3. 1.
다른 관점에서 보기 최근에 읽었던 전국이라는 춘추+전국시대 배경의 소설책에서 나온 이야기인데 꽤 와닿는게 많았다. 지리소라는 꼽추가 있었다. 그는 흉측하고 장애도 있어 남들이 멸시했으나 바느질과 키질로 곡식을 불려 10명이나 되는 식구를 먹여 살렸다. 나라에서 전쟁이 터지자 멀쩡한 장정들을 징집했는데 지리소는 팔팔하게 다녀도 징집되지 않았다. 나라에서 성을 쌓는다며 부역을 시켜도 그는 제외였다. 기근이 들어 나라에서 구휼미를 풀 때는 불구라는 이유로 일반인보다 많이 받았다. 그는 많은 식구를 건사하고도 벌이가 남아 주변 사람을 챙겼고 일반인보다 장수했다. 남들이 쓸모없다고 여기는 게 오히려 장점이 된 경우로 무용지용(無用之用) 의 다른 예화라고 할 수 있다. 전국 17권 중 (장자에서 나오는 일화와 같다) 쓸모없는 것도 관.. 2023. 2. 26.
일의 난이도 높이기 요즘 여러 채널을 통해 고민 상담을 받다보면 빈번한 사례가 "더이상 성장한다는 느낌을 받지 못해서 이직을 고민중이다" 라는 것이다. 그래서 성장한다는 느낌은 어떤 것인지 물어보면 사람마다 답변이 다양하다. 다만, 많은 경우 "새로운 경험을 할 때" 성장한다고 느낀다는 답변을 받는다. 그 부분에 대해서는 100% 동의하진 않는다. 요즘은 "성장" 이란 단어를 쓰는 것이 조심스럽다. "성장라이팅" 이란 이야기를 많이 들었기 때문인데, 그렇기 때문에 이 글은 어디까지나 "성장에 대한 갈망"이 있는 분들에게만 해당한다. "모든 개발자가 이렇게 되어야만 한다" 를 의미하진 않는다. 마침 최근에 본 재미난 글이 있다. 단축키 표현이 과격(?) 해서 조심스럽지만 IDE의 단축키를 익히는 것의 유용함을 이야기해주셔서 .. 2023. 2. 14.
PostgreSQL14 Memoize 성능 비교 (feat. 13 vs 14 Nested Loop) PostgreSQL에서는 3가지의 Join 알고리즘을 지원한다. Nested loop join Hash join Merge join 이 중 Nested loop join 은 가장 보편적인 Join 방식으로 그 작동 방식에는 결국 반복적인 스캔이 있다. 만약 반복적인 스캔의 하위 결과가 매번 같다면 이를 캐시해두고 반복적인 스캔에서 계속 사용한다면 어떨까? 아마도 JavaScript의 메모이제이션 을 알고 있다면 이해하기 쉬울것 같다. PostgreSQL 14에서 memoize 이 도입되었다. 그리고 AWS의 Aurora PostgreSQL 역시 PostgreSQL 14.x를 지원하고 있어 해당 옵션을 사용할 수 있다. Memoize 로 성능 개선을 얼마나 얻을 수 있을지 한번 알아보자. 1. 성능 테스트.. 2023. 1. 30.

728x90
반응형