インゲージ開発者ブログ
https://blog.ingage.jp/
インゲージ開発者ブログ
フィード

CloudFront Saas Managerで実現するSaasアプリケーションのマルチテナント
インゲージ開発者ブログ
こんにちは、株式会社インゲージでSREを担当しているanecho108と申します。 2025年4月28日に CloudFront のマルチディストリビューションがリリースされました。呼び方としては、CloudFront SaaS Manager が全体を指し、その中の機能のひとつが CloudFront マルチディストリビューションという位置づけになりそうですね。 Amazon CloudFront 向け SaaS Manager の発表 aws.amazon.com AWSコンソールのCloudFront画面でいうと、下記の箇所です。 Amazon CloudFront 向け SaaS Ma…
2日前

【Vue】slotは共通基盤をシンプルに保ちつつ、親コンポーネントに柔軟性を委ねる設計を可能にする仕組み
インゲージ開発者ブログ
導入 株式会社インゲージにてPD部に所属しております、fujimmm331です。 最近また卓球熱が再燃してきています。 そんなことはさておき。 UIコンポーネントを設計する際、再利用性と柔軟性のバランスを取ることは非常に重要ですよね。 例えば、サイト全体で統一されたモーダルやカードコンポーネントを作成したい場合、デザインの共通部分(ヘッダー、フッター、背景など)は再利用しつつ、 その内部に表示するコンテンツは個々のケースに合わせて変えたい、というニーズが頻繁に発生するのではないでしょうか。 ここで活躍するのがslotです。 slotは、コンポーネントの内部に外部から任意のコンテンツを挿入するた…
9日前

【SQL】ウィンドウ関数で移動平均を簡単に計算する
インゲージ開発者ブログ
データ分析をしていると、「移動平均」を計算する場面がよくあります。たとえば、売上データのトレンドを把握したり、ノイズを減らしてスムーズなデータ傾向を見たいときに便利です。この記事では、SQLのウィンドウ関数を使って移動平均を計算する方法を、初心者にもわかりやすく解説します。
16日前

AIコーディングを活用したフロントエンドテスト推進の取り組み
インゲージ開発者ブログ
こんにちは、フロントエンドエンジニアの raraya です。 こちらの記事 でも触れておりますが、弊社では AIコーディング を活用しながら開発を進めています。 今回はその実践例として、フロントエンド領域におけるテストコード整備をAIで効率的に推進する取り組み をご紹介します。 補足:本記事では考え方・方針を中心に紹介します。 AIコーディングのプロンプトや、Vitest / ESLint / SonarJS の細かい設定方法など、具体的な手順には触れていません。 これらの詳細は公式ドキュメントや各種記事をご参照ください。 背景 これまで弊社では、開発者による STG 環境での検証やドッグフー…
23日前

本「科学的根拠に基づく最高の勉強法(安川康介)」
インゲージ開発者ブログ
id:kizashi1122 です。 お久しぶりです。 だいぶ前に牛尾剛さんの以下の記事を読みました。 note.com この記事を読んでああ僕も読まないとなと思いつつ、頭の片隅にそのことがひっかかりながらも月日が過ぎ去っていきました。 最近、子どもの勉強方法についても考えないとなあと思っていたところこの本を思い出しました。 読んでみるか。 著者の安川さんはアメリカで臨床医をされています。高校・慶應義塾大学でも好成績で卒業されて、日本の医師国家試験・アメリカの医師国家試験にも合格されているという大変優秀な方です。 この本では、その安川さんが当時ご自身が勉強していた方法と比べたりしながら、実際に…
1ヶ月前

Android - Audio Focus とは何か
インゲージ開発者ブログ
こんにちは、masm11 です。 私のスマホは Android です。これを使ってアプリを作ることもあります。 今回は Android で音楽アプリを作ろうと思ったらきっと避けては通れない "Audio Focus" について説明したいと思います。 Audio Focus とは どのアプリが音を鳴らしているかを、アプリたちの助けを借りながら、Android OS が管理する仕組みです。 例えば、音楽アプリを2つ起動して、両方のアプリで音楽を再生してもあまり嬉しくありませんね。 後から再生したら、前再生していたアプリが止まってくれると嬉しいです。 例えば、アプリがちょっとの間音を鳴らしたい時、音…
2ヶ月前

strip関数にご用心
インゲージ開発者ブログ
皆様こんにちはwasatingです。 今回はpythonのstrip関数を使った結果事故ったので共有していきたいと思います。 ご存じの方も多いかと思いますが、strip関数は以下のような動きをします。 sent = """ 技術ブログ記述中… """ print(sent) # # 技術ブログ記述中… # # print(sent.strip()) # 技術ブログ記述中… sent2 = "Now writing..." print(sent2.strip("N")) # ow writing... つまり、 引数なしの場合、元の文字列の前後から空白、改行、タブ等を削除 引数が含まれる場合、元…
2ヶ月前

フィードバックの質を変えるヒント
インゲージ開発者ブログ
こんにちは!UI/UXデザイナーのYOROです! 最近社内でレビューやフィードバックについて色々と悩みを相談したところ、『みんなではじめるデザイン批評』という本をおすすめしてもらいました✨ まだ最初の章を読んだだけですが、チームで共有したくなるような大切な気づきがいくつもあったので、ブログにまとめてみました! フィードバックは、ただの「リアクション」? フィードバックには3つのタイプがある 1️⃣ 反応型 2️⃣ 指示型 3️⃣ 批判的思考型 フィードバックがうまくいかない本当の原因 これから意識していきたいこと おわりに みんなではじめるデザイン批評―目的達成のためのコラボレーション&コミュ…
2ヶ月前

【SQL】NOT IN 句と NULL の注意点
インゲージ開発者ブログ
The moment you doubt whether you can fly, you cease for ever to be able to do it. (拙訳: 飛べるか否かを疑った瞬間に、永遠に飛べなくなってしまう) ジェームス・マシュー・バリー「ピーター・パンとウェンディ」より こんにちは!休みという概念がないくらい忙しい hikaru-kimi です! 弊社のような自社サービスを運営する会社で避けられないのがエラーや不具合の調査です。 調査の際は、ソースコードはもちろんのことデータベースの調査も不可欠である場合が往々にしてあります。 SQL を書く際、NOT IN 句を使って…
2ヶ月前

初めてRubyカンファレンスに参加しました!
インゲージ開発者ブログ
こんにちは!25卒のエンジニアLeeと申します!今回は初投稿です。 Ingageのブース出展を行いながら、関西Ruby会議08を参加しました。非常に充実な経験でした。 ブース内容の準備 Ruby会議当日 セッション After Party! 終わりに ブース内容の準備
2ヶ月前

関西Ruby会議08 ブース展示&参加レポート!
インゲージ開発者ブログ
はじめまして!25新卒のbit0です! 2025年6月28日に行われた関西Ruby会議08にイベントスポンサーとしてブース展示を行いましたので、その様子とカンファレンスに参加した感想をレポートします! ブース準備編 時は遡り5月初め、部内会議にて「そういえば関西Ruby会議スポンサー出展するからなんか考えて!」と渡されたのが始まりでした。 企画 先輩・同期と3人4脚で企画。 たくさんのRubyistが集まるイベント!これを活かさぬ機会はないと、弊社の技術顧問であるRubyの生みの親Matzさんを全面に押し出してインゲージを覚えてもらおう!となり、頭を捻りに捻ってでた案が「Matzさんをアスキー…
2ヶ月前

Cursorから始まったAIコーディング体験とClaude Codeとの使い分けで見えたコンテキストスイッチの最適化
インゲージ開発者ブログ
こんにちは。毎日10km走っても痩せなくなり、最近は遂に太り始めたymd2です。 概要 4月からCursorを業務で使い始めて、先週からClaude Codeの利用を開始しました。両方を併用してみて分かった、それぞれの特徴と効果的な使い分けについて書いてみます。 ざっくり結論としては、CursorとClaude Codeは/ideで連携もできるため、どちらか一方を選ぶよりも、適材適所で使い分けることで開発効率を最大化できると感じています。 Cursorでの4ヶ月間の体験 最初の感動と日常化 VS Codeライクな操作感で導入しやすかった リアルタイムコード補完がとても快適! Chat機能による…
3ヶ月前

どんな評価基準で、どこまで満たせばよいのか?を考える第一歩
インゲージ開発者ブログ
はじめに ソフトウェア開発において品質に関する議論を始めると、必ず話題になるのがこの問いです。 どんな評価基準で、どこまで満たせばよいのか? 品質を担保するうえで必ずあがるこの問いに、明確な答えを出すにはさまざまな要素を加味して検討する必要があります。 ビジネス戦略との整合性 製品のコンセプト 利用者の特性 実際の利用シーン 競合との差別化ポイント ステークホルダーからの期待 開発体制や技術的制約 など、検討事項が多岐にわたるため手間と時間がかかるのが現実です。 結果として定義されないまま、あいまいな状態になってしまっている開発現場も少なくありません。 そこで今回は、最初の第一歩として評価基準…
3ヶ月前

メタ思考はスキルであり、習慣だった
インゲージ開発者ブログ
はじめに こんにちは!インゲージに入社して、もうすぐ1年が経とうとしているPMのgorugo0516です。 今回は、最近読んだとても面白い本について感想を書いていこうと思います。 この本を読むきっかけ 先日、外部のPMコーチの方との1on1の機会がありました。 そこで私は、「自分が目指したいPM像」と「現在感じている悩み」について率直に相談しました。 私が目指しているPMは、ユーザー自身もまだ気づいていない課題を見つけ出し、それを“使いたい”と思える形で提示・解決できるPMです。 また、仮説を自ら立て、検証・学習・改善のサイクルを主体的に回せるようになりたいと考えています。 一方で、現状は顧客…
3ヶ月前

AWSのイベント「Coding Agent at Loft」に登壇してきました!
インゲージ開発者ブログ
どうも、さまざまなAIサービスのサブスクのおかげで財布が薄くなっている @hansprocs です!😇 毎日のように新しいAIサービスやモデルの新バージョンが出たりして、いったいどんなサービスをどう使いこなせばいいんだろ、という疑問が止まりません。 費用はかかるものの、ちゃんと使いこなさないとオモチャに過ぎないものになってしまいがちですよね。 参加したイベント この度はAWS ジャパン合同会社主催のCoding Agent at Loftに参加してきました! aws.amazon.com 生成AIツール3大将(と私が思っている)の一つであるClineと、AWSのAIサービスの主力であるBedr…
3ヶ月前

Rubyで楽しくアートコードを作ろう
インゲージ開発者ブログ
こんにちは。24年度新卒の ryoaio です。 1年が経ち、最近は興味のあったPdMとしても活動し始めております。 挑戦できる環境に感謝し、日々成長します🔥 弊社は 関西Ruby会議08 スポンサーです!! 今年6/28(土)開催される関西Ruby会議08。 弊社ingageも協賛し、今年はブースも開きます!🙌 regional.rubykaigi.org 今年の関西Ruby会議のテーマは「Rubyと作ろう」 さて、ブースはどんな内容にしようかな。 せっかくエンジニアが集まるカンファレンス。エンジニアの方に興味を持っていただけるようにしたい。 ...ここで松山Ruby会議で魅了されたTRIC…
3ヶ月前

PostgreSQLでベクトル検索を極める:pgvectorの実力検証しながら、pgvectorscaleも気になるから見てみた件について
インゲージ開発者ブログ
こんにちは!2024年新卒入社のJinyangです。 時の流れは本当に早いもので、気づけば株式会社インゲージに入社してから一年が経ちました。今回でこのブログも三度目の投稿となります。 さて、今回のテーマは何にしようかと悩んでいたのですが、やはり「RAG(Retrieval-Augmented Generation)」について書くことにしました。 RAGといえば一時期大きな注目を集めましたが、最近では当たり前の技術として定着しつつありますね。特に今回注目したいのは、RAGの「Retrieve」部分、つまりナレッジベースからの効率的なドキュメント取得です。 現在、ベクトル検索(文章の意味や文脈の類…
3ヶ月前

RuboCop に興味が出たので Ast を眺めてみた
インゲージ開発者ブログ
こんにちは kk8511 です。 最近ふとRuboCopに興味が出たのでCopの実装方法を調べていました。 Development :: RuboCop Docs Ast を眺めただけで力尽きましたが備忘録として記載します。 AST RuboCop では Abstract Syntax Tree (AST) が利用されるので、まずruby-parseコマンドでサクッと AST を確認してみました。 値 値には型がつく。 % ruby-parse -e '1' (int 1) % ruby-parse -e '"hello"' (str "hello") % ruby-parse -e '[1,…
4ヶ月前

ワンライナーでよく使うコマンドラインオプション
インゲージ開発者ブログ
こんにちは、tsuka05です。ワンライナー書いていますか? 今日はRubyでワンライナーを書くときによく使うコマンドラインオプションをいくつかご紹介します。 -e コマンドラインで直接スクリプトを指定します ruby -e 'puts "Hello, World."' Hello, World. -n ファイルや標準入力から1行ずつ読み込んで、与えられたスクリプトをループします。 読み込まれた内容は $_ に格納されます。 ruby -n -e 'puts $_' *.txt マッチしたファイルの内容を出力します -p -nに加えて、各ループの最後に $_ の内容を出力します。 ruby -…
4ヶ月前

未経験SRE大募集しています!!
インゲージ開発者ブログ
こんにちは、株式会社インゲージでSREを担当しているanecho108と申します。 この記事のタイトルだけを見ると信頼性に欠けるように感じるかもしれませんが、真面目に募集しています。 募集の背景 当社では、Re:lationというSaaSサービスのプロダクトを開発・運用しています。ありがたいことに、事業は順調に成長しており、それに伴ってインフラの複雑性や求められる品質も高まっています。これらのニーズに応えるため、SREチームの体制強化が急務となっています。 ingage.jp 将来的な拡張性や安定性を見据えた体制づくりの一環として、新たな仲間を募集しています。SRE未経験でも問題ありません。A…
4ヶ月前

星つきのメソッド?JavaScriptのGeneratorについて
インゲージ開発者ブログ
はじめに 普段はあまり見かけないですがたまにオープンソースのJavaScriptコードを読んでいると、以下のように*がついているものを見かけることがあります。 function *gen() { yield 1; yield 2; yield 3; } しかし、JSでは変数名に$と_以外の特殊文字は使用できません。 これは何をするものなのでしょう? Generatorとは 直訳すると「生成機」になるGeneratorは、メソッドを 途中で止めることができる という特性を持っています。 一般的にJSでのメソッドは一度実行されるとreturnするまでにはすべての処理が動きます。 しかし、Gener…
4ヶ月前

集計データで日付の抜けを埋めるSQLテクニック
インゲージ開発者ブログ
SQLで日別のイベントデータを集計するときに、もとのレコード自体がなかった日が出力結果から抜けてしまってわかりにくいときありますよね。そんなときに、抜けた日付を埋めて出力するテクニックをご紹介。
5ヶ月前

手動リリースノート作成からの解放:3つのGitHub Actionsで叶えた自動化
インゲージ開発者ブログ
はじめに こんにちは、フロントエンドエンジニアのraraya99です。 今回のブログは社内向けのリリースノート作りをGithub Actionsで自動化した話をまとめました🚀 🚀 弊社ではリリースごとに GitHub の「マイルストーン」(以下「Milestone」)をリリースノートとして運用してきました。 Milestone は PR(プルリクエスト)をまとめて管理でき、リリース予定の未マージ PR にも気づきやすく便利です。そのため、GitHub の正式なリリースノート機能(以下「Release」)は使わず、Milestone のみで完結させていました。 🛠 現状の問題点 下記のようにMi…
5ヶ月前

メールヘッダを分析する
インゲージ開発者ブログ
id:kizashi1122 です。 弊社はメールやチャットを一元的に管理し、チームで対応できるサービスである Re:lation を開発・提供しています。 メールは基本的には送ったらすぐに相手に届きます(正確には相手のサーバーに届く) 。 しかしなかなか届かない場合もあります。もともと非同期な仕組みではあるし、相手はメールを読み出して即時に返事を返すものでもないので、あまり気にならないと言えば気にならないです。 とは言え、サービスを提供する側としては、どこで遅延したのかは気になりますし、実際お客様からお問い合わせをいただくこともあります。 そこで、 Re:lation に届く前にすでに遅れて…
5ヶ月前

Windows ストレージセンサーが機能しない
インゲージ開発者ブログ
お久しぶりの masm11 です。 ディスクの整理、してますか? 不要なファイルをいつまでもデスクトップやダウンロードフォルダに置いたままになっていませんか? そんな手間な… そんな時には自動化です。 Windows は自動でダウンロードフォルダの古いファイルを削除することができます。 そう、ストレージセンサーですね。 しかし、これがまた、ちょっとした設定が必要でして… 今回はそんなお話です。 ストレージセンサーを設定する もちろん、ちゃんと設定画面が存在します。設定していきましょう。 設定を開き、システム → ストレージと遷移すると、ストレージセンサーがありますので、 スイッチを ON にし…
5ヶ月前

ステークホルダーからの理解できないフィードバックにどう向き合うか
インゲージ開発者ブログ
どうも @shutooike です。 スプリントレビューなどでステークホルダーがくれるフィードバックはとても有難いです。というか、これを貰うためにスクラムをやっています。 一方で、POやエンジニアから見ると筋が悪いように思えたり、意図が理解できないフィードバックをもらうこともあります。 理解できないフィードバックにどう向き合えば良いのかについて、実際に起きた出来事を交えて社内の数人とディスカッションしました。その時の結論をメモがてら残しておきます。 良い向き合い方 結論、弊社の3つバリュー「誠心誠意」「本質追求」「想像凌駕」に沿って行動すると良いのでは?となりました。それぞれ簡単にまとめます。…
6ヶ月前

iCloudカスタムメールドメインを設定する
インゲージ開発者ブログ
こんにちは。Tedです。 iCloudカスタムメールアドレスって知ってますか?自身で取得したドメインを用いてメールアドレスが持てるようになるものです。 ドメインは お名前.com などドメインレジストラにて取得できます。この独自ドメイン、一般的にはWebサイトのURLに使うために取得されることが多いかと思います。 独自ドメインをメールアドレスに使うには、これまでは 1)メールサーバーを独自に立ち上げる 2)Google Workspaceを利用する 3)独自ドメインを使えるメールサービスを利用する といったことが挙げられます。iCloudカスタムメールアドレスは、iCloud+に加入していれば…
6ヶ月前

楽しく振り返る新しい方法
インゲージ開発者ブログ
こんにちは!UI/UXデザイナーのYOROです! 弊社ではスクラムという手法で開発を進めており、定期的に「振り返り」の時間を取っています。 でも最近「振り返りたいことがない…」「いつもどうやって振り返りしていたっけ?」と、なんだかマンネリ気味になっていました🥹 そこで! 「もっと楽しく!ワクワクする振り返りができないか?」と考えた結果... スプリントを冒険に見立てた振り返りフレームワーク「冒険の振り返り」 を作ってみました🎉✨ 冒険の振り返りとは? ①冒険のはじまり(スプリントゴール) ②冒険の道のり(まもの) ③ボス(最大の課題) ④レベルアップ(経験値) ⑤次の冒険に向けて(挑戦) 最も…
6ヶ月前

Flutterのコード可読性を上げる取り組み
インゲージ開発者ブログ
昨年末よりモバイル開発に携わるようになったHaraShoです。 Flutterでモバイル開発を進める中で、コードの可読性を向上させるためにいくつかの工夫を行いました。 本記事では、それらの取り組みについて紹介します。 Android Studioの設定 まず、開発環境であるAndroid Studioの設定を見直しました。 保存時に dart format が実行されるように設定 まずはコードスタイルを合わせるため、自動的にFormatが行われるよう設定しました。 Settings > Languages & Frameworks > Flutter > Format code on save…
6ヶ月前

PostgreSQL で JSON 型データを条件に検索するには?
インゲージ開発者ブログ
人の世を作ったものは神でもなければ鬼でもない。やはり向う三軒両隣にちらちらするただの人である。 夏目漱石「草枕」より こんにちは、勤め人なのに昼夜逆転と寝不足で自立神経が整わない hikaru-kimi です! 弊社のような自社サービスを運営している企業ですと、不具合調査や動作検証のためにデータベースを操作することもままあります O/Rマッパー(Rails で言えば ActiveRecord)で手軽にデータを確認することもありますが、環境によってはSQLを用いて直接データベースを調査する場面もあります テーブルのカラムによっては JSON 型を採用しているものもありますが、JSON の中身を条…
6ヶ月前