サーバー(Go) GolangでデータベースマイグレーションのDirty状態を解決する方法 Golangとgolang-migrateを使ったサーバー開発で、マイグレーションがDirty状態になった場合の対処法をまとめる。Dirty状態とは、マイグレーションが中断し、データベースが不整合な状態になったことを指す。以下に、その解決手順を備忘録的に記載する。 2024.11.15 サーバー(Go)開発・デザイン
アプリ(Flutter) 【flutter_sound × Go】音声ファイルをAPI経由でAWS S3にアップロード 今回は、アプリでflutter_soundパッケージで録音した音声ファイルをAPI通信でアプリからサーバー(AWS S3)にアップロードする部分を実装したいと思う。アップロードされた音声ファイルのS3パスをデータベース内のフレーズに関連付け、voice_pathフィールドを更新する。 2024.08.04 アプリ(Flutter)サーバー(Go)開発・デザイン
アプリ(Flutter) 【開発】大きい機能を開発してみての振り返り:機能開発とテストの優先順位 当初は、1ヶ月くらいかかるだろうと想定していたものの、結果的には半分くらいの日数で開発を終えることができ(現在PRレビュー待ち)、それ自体は良かったのだが、今回大きい機能を開発してみての振り返り(マインドセットと、どう開発を進めていくのが効率的か)を備忘録として記載しておこうと思う。 2024.07.29 アプリ(Flutter)サーバー(Go)開発・デザイン
サーバー(Go) 【AWS】S3署名付き(presigned)URLを使用して、音声合成ファイルのアクセス制限を管理する方法 プリサインURLは、クラウドストレージサービス(例:Amazon S3)内のオブジェクトへの一時的なアクセスを提供するURL。このURLは特定の権限と有効期限で署名され、クラウドストレージの資格情報に直接アクセスすることなく、安全にファイルをダウンロードまたはアップロードすることができる。 2024.07.24 サーバー(Go)開発・デザイン
サーバー(Go) 【Go言語】におけるテスト駆動開発の実践:マイグレーションファイル作成からSQLインジェクション対策まで Go言語のテスト駆動開発をマイグレーションファイル作成、SQLインジェクション対策、dockertestを使った実際のテスト方法を含めて記載。testutils.RunMySQLContainer 関数を呼び出して、MySQLコンテナを起動し、データベースに接続する。 2024.07.14 サーバー(Go)開発・デザイン
Web(React / Python) 【オブジェクト指向でなぜつくるのか?】OOP, クラス, 型付け, 継承, ポリモーフィズム, パッケージ, 例外, ガベージコレクション, コンパイラ, インタプリタ, 中間コード, メモリ領域 2022年に購入して積読だった「オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識」を最近読んだので、まとめ記載。プログラミング言語の歴史の部分が、とてもわかりやすかった。OOPでは新しく3つの要素(クラス・ポリモーフィズム・継承)を導入した。 2024.03.06 2024.07.01 Web(React / Python)アプリ(Flutter)サーバー(Go)組み込み(C++ / ESP32)開発・デザイン
サーバー(Go) 【Go】タスクキューとクーロンを使った並列処理の実装 今回は、本日の天気情報を音声でお知らせするという機能に関して、ユーザーがアプリで設定した天気お知らせ時刻の1時間前に、該当の天気情報の音声ファイルを生成してAWS S3に保存するという機能を作成。go言語でタスクキューを使った並列処理で実装を進める。 2024.01.18 2024.07.01 サーバー(Go)開発・デザイン
サーバー(Go) 【Flask】アプリをDocker化して、Artifact RegistryにPushしてCloud Runにデプロイする方法 Google CloudにCLIでログインし、Dockerイメージをローカルにビルドし、DockerでArtifact RegistryにPushする。ちなみに、Container Registryは非推奨になった。Google Cloud でコンテナの管理を始めるには、Artifact Registry を使用する。 2023.12.09 2024.07.01 サーバー(Go)開発・デザイン
アプリ(Flutter) 【Go × Echo】バックエンドで天気予報情報を取得し、Flutterアプリに表示する 今までは、アプリ側のみでOpenWeatherMapのAPIを使用して、指定された緯度と経度を使用して天気情報を取得しアプリ画面に表示していたが、今回はGo言語のEchoフレームワークによるバックエンド経由に変更する。 2023.08.28 2024.07.01 アプリ(Flutter)サーバー(Go)開発・デザイン
AI 【ChatGPT × Cloud Functions × Firestore】会話記憶するLINE Bot開発:環境設定編 ユーザーがLINEにメッセージを送信すると、その内容はLINEのWebhookによってCloud Functionsに転送され、Cloud Functionsで設定した関数でOpenAI APIを通じてChatGPTを利用してユーザーのメッセージに対する応答が生成される。 2023.12.07 2024.07.01 AIサーバー(Go)開発・デザイン