개발 노트/개발 삽질 (16) 썸네일형 리스트형 Python으로 푸쉬 알람 전송과 시행착오 개요최근 푸시 알람 기능을 만들어야 하는 일이 생겼다. 이것저것 주워들은 게 있어서 푸시 알람 자체에 대해서 어렵게 생각하진 않고 있었지만 테스트를 위해 device token을 얻어내는 과정이 다소 까다로운 지점이었다. 아무래도 특정 기기에 푸쉬 알람을 보내려면 device token이 필요했는데 이를 얻기 위해 내가 사용중인 기기의 device toke을 얻어내는 과정에서 JavaScript를 다뤄야하는 부분이 그러했다. 우여곡절끝에 JavaScript 코드를 만들어 Web/Android 환경에서 device token을 얻어내는데 성공했지만 IOS에서 기기 예를 들어 아이폰이나 아이패드에서는 device token이 얻어지지 않는 현상을 겪었다. 여러 아이디어를 떠올려보고 결국 해결은 했다. 이 .. Commit Message 자동화하기, 근데 AI를 곁들인 개요 최근 회사의 Git Commit Message를 살펴보다 문득 “Commit Type에 대한 특성을 잘 드러내는 Emoji네!”라는 생각이 들었다. 명시적인 것을 좋아하는 나로서는 흥미로웠던 부분인데 그럼에도 불구하고 작업을 마치고 커밋 메시지 작성 시 해당 특성의 Emoji를 매번 수동으로 입력해야 하는 귀찮음이 생겼다. “회사에서 정립한 특정 Commit Message의 성격에 해당하는 Emoji를 수기로 작성”해야 하는 불편함을 해소하기 위해 이것저것 알아보던 중 “AI와 Git Commit Message Template”를 활용해서 해결할 수 있었다. 하지만 Git Commit Message Template를 작성하면서 추가적인 부분을 또 고민하게 됐는데 Commit Message 특성에 맞.. makefile에서 .env 사용 시 특수문자 처리하기 개요“.env”와 같은 파일에는 외부 접속 정보나 노출되지 않아야하는 변수들을 정의하곤 한다. 그러나 데이터베이스의 비밀번호를 다루는 경우 특수문자들이 들어가곤하는데 이 정보를 읽어들여 사용할 때 문제가 발생한다. 무엇이 문제인가 ?필자는 주로 파이썬과 관련된 백엔드 프레임워크를 다루면서 makefile을 애용하곤한다. makefile을 통해 프로젝트에서 자주 사용하는 명령어를 등록해서 활용하는 방식이다. 그렇다보니 미리 정의된 환경변수 파일(”.env”)를 읽어들이는 과정이 필요하다. 물론 makefile 안에 직접 환경변수를 미리 선언하는 방식으로도 활용할 수 있지만 번거로운 방식이다. makefile에서 “.env” 파일을 사용하는 코드는 다음과 같다.# makefileinclude .envexpo.. 토스 채용공고는 어떻게 크롤링 할 수 있을까? 개요최근 사이드프로젝트를 통해 토스 채용공고에 대한 크롤러를 개발했다. 그간 여러 사이트를 분석하고 크롤러를 만들었던 경험을 가졌기에 이번에도 어렵지 않게 크롤러 개발이 가능했지만 토스 채용공고 크롤러 개발은 생각보다 까다로웠기에 해당 경험을 정리해보고자 한다. 이 글에서는 실제 토스의 채용공고 크롤링에 관련된 코드는 다루지 않을 생각이다. 쓸데없는 걱정이겠지만 이 글을 통해 드러난 방법으로 토스 측의 시스템이 변경하게 되는 것을 염려해서다. 토스 채용공고에 대한 분석토스의 채용공고 페이지에 접속하면 “계열사”가 아닌 “직군”을 중심으로 구성한 채용공고 페이지가 눈에 띈다.큰 회사답게 여러 직군들에 대한 채용공고가 눈에 들어온다. 하지만 토스 채용공고 크롤러는 “직군” 중심이 아니라 토스의 “계열사”별로.. Github Action에서 Selenium 실행시키기 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스1. 개요Oauth 재연을 실행시키는 시점은 아마 Github를 통해서 가능해야 할 것입니다. 결론적으로는 Oauth를 재연하려면 Redirect 서버가 필요한데 이를 Github에서 처리할 수 있는 방법은 찾지 못했습니다.https://jakpentest.tistory.com/entry/Obsidian-Github-Github-action을-활용한-티스토리-업로드-자동화 근래에 Obsidian으로 MarkDown을 편집하면 Tistory에 자동으로 포스팅 할 수 있는 시스템을 간략히 만들었습니다. 이 과정에서 Tistory에 글을 업로드 하려면 “Oauth 인증”을 거쳐야헀고 이를 Github Action을 통해 해결할 .. Obsidian 노트를 Tistory에 업로드 시키는 방법 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요그 동안 Notion을 쭉 사용하면서의 생긴 불편함은 인터넷에 접속 가능한 환경에서만 이전 기록물에 접근할 수 있단 점이었습니다. 버스를 타고 여행을 갈 때 기차를 타고 본가에 내려갈 때는 인터넷 환경이 불안정하여 Notion을 통해서는 이전 기록물에 접근할 수 없는게 아쉬운 점으로 작용했네요. 이러한 아쉬운 점을 안고 가다 문득 기록물을 Notion으로 통합 관리하지 말고 개인 저장장치내에 MarkDown 파일로 글에 대한 원본을 저장해보자라는 아이디어를 떠올리게 됬습니다. 한 가지 문제점은 MarkDown 편집기를 무엇으로 이용할 것이냐에 대한 문제 입니다. Markdown은 조금만 학습하면 사용할 수 있는 편리한.. 마비노기 패킷 송수신 데이터 관찰기 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요 근래에 들어 마비노기(영웅전 아님)를 하고 있다. 초등학교때부터 해오던 게임이라 특정 기간에는 몰두해서 즐긴다. 이것저것 참고할게 많은 게임이기도 하기에 플레이에 도움을 주는 외부 사이트를 자주 보곤한다. 그러면서 신기한 점은 이러한 외부 사이트 중 몇 가지는 인게임 정보를 어느정도 반영한다는 것이다. 아무래도 코딩이라는 것을 하고 살다보니 그 동작 원리를 무의식적으로 유추해 보곤 하는데 추측하기로서니 인게임 정보 반영은 "공개된 API를 사용하는 것이지 않을까" 싶었다. 하지만 이 글을 작성하는 시점을 기준으로는 마비노기는 공개된 API가 없다. 그렇다면 인게임 정보를 어떻게 반영하는 것일까? 만약 인게임 정보를 .. ProxySQL을 사용하면 DB Connection을 줄일 수 있다고 ? 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요 FastAPI를 사용해 API를 만든 뒤 locust를 통해 성능 테스트를 진행했다. “대략 이 정도 TPS가 나오는구나”라고 확인한 뒤 MySQL의 Connection도 이상은 없는지 관심이 갔다. SQLAlchemy에 pool_size를 2로 설정하고 uvicorn worker를 4개로 설정한 상황이다. MySQL 커넥션이 최대 8개(2*4)까지 늘어나는 현상을 보고 “무난하네”라고 생각할 때쯤 의문이 생겼다.서버(FastAPI)를 증가시킨다면 MySQL 커넥션 자체는 계속 늘어나는거 아닌가? 즉, Application Server의 수가 증가할 수록 MySQL 서버와 맺게 되는 커넥션 수가 늘어난다는 문제가 존.. 이전 1 2 다음