본문 바로가기

분류 전체보기

(91)
Python으로 Azure에 Serverless Telegram bot 만들기(2) 지난 글 (https://uaremine.tistory.com/69)에서 1) 텔레그램 봇 생성 2) 로컬 개발에 필요한 환경 설정 (Visual Studio Code, Python with pyenv, azure-functions-core-tools 설치 3) 로컬 프로젝트 생성 까지 해봤다. 이번에는 로컬에서 프로젝트를 Azure에 deploy 하는 것까지 해보자. (텔레그램은 언제...) 로컬 프로젝트폴더에서 pyenv which python 해보면 ~/.pyenv/versions/3.9.11/bin/python (pyenv로 설치한 3.9.11) 으로 할당되어 있다. (pyenv global 3.9.11 로 설정해놓아서) > mkdir agent46 > cd agent46 > pyenv which..
Python으로 Azure에 Serverless Telegram bot 만들기(1) 오랜만에 python 으로 텔레그램 봇 만들어서 Azure 에 돌려보기. 1. 텔레그램 봇 등록 오 이거 예전에 했던 것 기억 난다. 텔레그램 앱에서 @BotFather 에게 말 걸어서 봇 만들기 하단 Menu 눌러보면 할 수 있는 일들이 아주 친절하게 주루룩 나온다. 새 bot의 이름은 agent46, 사용자명은 agent46_bot으로 설정했다. 봇 설정을 이런 식으로 하게 해주다니. 예전에도 감탄했던 기억이 나는데, 다시 한번 오오... 감탄하면서 넘어간다. 2. 프로젝트 생성 노트북 바꾼지 한참 된 것 같은데 Python이 안 깔려 있어서 깜짝 놀랐다. 일단 설치 > brew install pyenv > brew install pyenv-virtualenv VSCode 에서 Azure Tools ..
Flutter: Firebase Analytics에서 custom parameter 로 조회하기 특정한 video를 플레이할 때 play 라는 커스텀 이벤트를 만들어서 video id와 함께 Firebase Analytics에 전달한다. 이렇게 기록한 video 재생 결과를 가지고 Analytics에서 어떤 영상이 가장 많이 재생되었는지 알고 싶다. 당연히 될 것 같고, 되어야 하는 기능인데 FIrebase Analytics(나 연결된 Google Analytics)에 들어가보면 찾기가 어렵다. 방법을 찾아보자. 1. 이벤트 발생 FirebaseAnalytics analytics = FirebaseAnalytics.instance; analytics.logEvent(name: 'play', parameters: { 'id': video.id, 'title': video.title, }); 'id',..
오랜만의 11월 점심로그: 상암동 오늘은 MBC 지하 로봇김밥. 김밥집인데 김밥 보다 다른 것 먹는 사람이 많아서 신기하다 했는데, 어제 김밥도 먹었고 해서 포케를 시도해보기로 함 괜찮다는 포케집을 몇군데 가 봤는데, 하와이에서 먹어본 포케와는 매우 다르더라. 그냥 이것저것 있어보이는 재료들 넣고 만든 비빕밥 같은 느낌? 하지만 또 그게 마냥 나쁘지는 않아서 그냥 이름만 같은 다른 음식이라고 생각하기로 함. 메뉴판이 가독성이 굉장히 낮아서 메뉴 선택이 원활하지 않다. 그냥 키오스크에서 주문하는게 편할 정도. 선택한 메뉴는 페스토쉬림프 포케/ 현미/ 스시라차핫칠리소스/ 김부각 추가 자세히 안 보고 김부각 추가를 선택했더니 원래 나오는 김부각을 '많이' 올려줬다. 오. 이 집 김부각 맛집이네. 안주로 좀 사갔으면 생각날 정도로 김부각은 맛있..
Flutter: .svg 파일에서 gradient 가 동작하지 않을 때 (with flutter_svg) 가능하면 png 보다는 svg 파일을 이용하려고 하는 편인데, 가끔씩 의도한 대로 동작하지 않을 때가 있어서 골치아프다. 이번 케이스는 path 가 gradient 로 fill 되어 있는 svg 이미지에서 gradient 가 제대로 표현되지 않고 배경색으로 나오는 문제였다. 예를 들면 이렇게 나와야 하는데 실제로는 전체 글자가 흰색으로 나와서 아무 것도 보이지 않는 문제가 생긴 것이다. chrome 이나 다른 편집툴에서 보면 다 제대로 보이는데, flutter_svg로 올리면 gradient 가 제대로 표현되지 않는 문제였다. 문제의 svg 파일은 이런 것이었는데, 좀 귀찮지만, 아래와 같이 ~ 부분을 전으로 옮겨주면 잘 동작한다. path 에서 fill="url(#paint1_linear)" 과 같이 ..
Flutter: BottomNavigationBar 색 설정하기 BottomNavigationBar 의 Icon, Label 색 설정하는 것이 간단한 것 같으면서도 복잡하다. Light Mode, Dark Mode 생각하면 각각의 color scheme 만들어서 Theme에서 설정하고 위젯 단에서는 색을 지정하지 않고 싶은데, 이게 잘 안 된다. BottomNavigationBar의 Icon, Label 색은 어떻게 결정되는지 파보면 될 것 같다. 일단 BottomNavigationBar의 구성부터 보면 BottomNavigationBar + Row + [_BottomNavigationTile] + _Tile 잡스러운 것들 빼고 나면 대략 이렇게 구성되어 있다. Icon 과 Label 로 구성된 Column 이 _Tile 이고 _Tile의 스타일과 터치 효과 같은 것..
Flutter: 배경에 패턴 구멍내기. Masking Widgets 아래과 같은 디자인을 구현하는 과정에 대한 글이다. 이 디자인을 보고 어떻게 해야할 지 좀 막막했는데, 다행히 대략 비슷하게 나온 것 같아서 정리 차원에서 남겨놓는다. 일단 화면에서 보라색 레이어를 만드는 것이 가장 큰 과제가 되겠다. 특정 부분이 투명처리 된 위젯을 만들어서 하단 (얼굴 애니메이션 --> 로고 및 로그인 화면) 페이지 위에 Stack으로 얹으면 될 것 같다. 일단 두개의 Container를 가진 Stack을 만들어 보자. class SplashPage extends StatefulWidget { const SplashPage({super.key}); @override State createState() => _SplashPageState(); } class _SplashPageState..
Flutter: Attach Debugger. 앱 실행 시 디버거 붙이기 (with Visual Studio Code) 디버거를 통해 실행되지 않고 직접 혹은 다른 경로로 앱이 실행되는 경우에 디버거를 붙이는 방법이다. Visual Studio Code를 사용하는 경우에는 이렇게 하는게 가장 간편했다. 단, 디버거가 붙는데 시간이 약간 걸리기 때문에 앱이 실행되자 마자 디버거가 붙어야 하는 경우에는 (예. 앱 실행 시 바로 실행되는 초기화 코드) 안드로이드의 개발자 설정에서 특정 앱을 선택해서 실행될 때 디버거가 붙는 것을 기다리게 하는 방법을 사용하는게 좋겠다. 이 방법은 다음에 포스트. 실제 폰으로 테스트할 때 잘 동작한다. 1) 일단 Visual Studio Code에서 앱을 디버그모드로 실행해서 폰에 설치한 후에 디버그모드 종료하고 앱도 terminate 해준다. 2) Command Mode (Shift - Com..