エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

テーブルを一個追加するたびにGRANT文書かないといけないの、やめられます

WebシステムがPostgreSQLにアクセスするときのDBロールはどうしていますか? postgres みたいな全能ロールをそのまま使う⋯⋯ でも動くシステムにはできるんですが、仮にアプリサーバ側の脆弱性を突かれたときに即DBの全権限まで危険にさらされる構成はインタ…

DICOMを使いこなして医療画像を扱う

こんにちは、AI・機械学習チームの浮田 (id:uKita) です。今回は、医療画像においてスタンダードとなっているDICOMという規格について紹介します。 私たちのチームでは臨床現場で活用できるAIの開発に取り組んでおり、様々な医療画像を扱っています。中でもX…

ひな形からコードを書くときのコミット流儀

ひな形ファイルを微変更してコード追加したというフィーチャーブランチは、変更部分はわずかなのにレビュアーには変更部分の確認がしづらく辛いもの。それをレビューしやすくするコミットの小技

goのLambdaはコンテナイメージでよくない?

【Unit4 ブログリレー8日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今日の記事は、タイトルのとおりgoのLambdaはコンテナイメージで管理するのがオススメって話です。 城島高原パーク(きじまこうげんパーク)は、大分…

DB をクラウド移行したらレコードが見えなくなった話

【Unit4 ブログリレー7日目】 こんにちは、エムスリーエンジニアリンググループの堺澤です。 エムスリーではクラウド移行(=脱オンプレ)の活動が盛んに行われています。 www.m3tech.blog www.m3tech.blog 今回は私が担当していたサービスで DB をクラウド…

goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる

【Unit4 ブログリレー6日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 最近まで開発していたm3ラウンジでは、goからRDBを利用していました。 m3ラウンジでは、SQLの組みやすさやテストのしやすさの観点で検討した結果、go…

Spring Boot + Flyway で複数の DB に接続したい!!!

【Unit4 ブログリレー5日目】 こんにちは。Unit4 Eng の西川です。JavaScript が好きですが、今回は JavaScript ではなく、最近やった Spring Boot + Flyway を利用しているシステムから別の DB への接続を増やした時の話をしたいと思います。 非常に可愛い…

いいねとその通知機能をDynamoDBで設計したら思ったよりムズい

【Unit4 ブログリレー4日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今回は、SNSではごく一般的ないいねとその通知機能をDynamoDBを利用して実装したら思ったより大変だったので、その詳細をご紹介します。 キャナルシ…

PostgreSQL チューニングよもやま話

あるプロダクトで実施した PostgreSQL チューニングの実例を2つご紹介します.Bitmap Index,実行計画における統計情報の重要性,DISTINCT 句の挙動,メモリとディスクの関係などに触れます.

editorconfig-checkerを導入してコードレビュー時の摩擦を軽減する

【Unit4 ブログリレー 2日目】 永山です。 2023年に至ってもエディタに関する話題がプログラマ間のグルーミングツールとして機能していることからも判る通り、世には多様なエディタが存在し、またそれらを使用するプログラマが存在します。 言うまでもなく各…

ViteとVitestで開発のリズムを上げる

【Unit4 ブログリレー 1日目】 Viteは"ヴィート"と読みます♫ もう覚えましたね♫*1 こんにちは、エムスリーエンジニアリンググループの山田(@Satoki_1226)です。 本日より、Unit4でもブログリレーを行うこととなりました。Unit4は医療系ポータルサイト m3.com…

抗がん剤の副作用をAIで予測する

こんにちは、AI・機械学習チームの浮田 (id:uKita) です。 今年のMultinational Association of Supportive Care in Cancer (MASCC)という国際学会にて、私たちのチームがサポートしてきた研究開発がオーラル発表されたので、今回はその内容について紹介しま…

gokartの分散並列化ライブラリkannonの中身

こんにちは!AI・機械学習チームの小栗です。普段は東京大学電子情報工学科で学生をしており、エムスリーには業務委託で参画しています。 今回はkannonというライブラリについて紹介します。kannonはgokartという機械学習向けパイプラインライブラリを分散並…

今日から使えるgokart小技集

img{ display: inline-block; box-sizing: border-box; border: solid 1px #333; } こんにちは! エムスリーエンジニアリンググループ AI・機械学習チームの氏家です。 AI・機械学習チームでは多くのMLプロダクトを開発・運用していますが、そのうちのほとん…

ファイル競合を防ぐロック技術 in gokart

こんにちは、AI・機械学習チームの池嶋です。 複数のjobを並列して実施していると、同じファイルを同時に操作する可能性があります。 このときに同時編集をするとファイルが破損したり変更が消滅したりする、データの競合問題が発生することがあります。 こ…

BigQueryでSendGrid Activityをセキュアに管理する仕組みを構築した

BigQueryでSendGrid Activityをセキュアに管理する仕組みを構築したのでその紹介をします。

axe-core を用いて web a11y test に触れる

QA

【QAチームブログリレー8日目】 エンジニアリンググループ QA の窪田です。最近は AWS 資格を取ることにハマっています。資格勉強は結果が目に見えやすいので、モチベーションが維持しやすいですね。 今回は web accessibility (a11y) test とそのツールであ…

ChatGPTに要件レビューを手伝ってもらえるか調べてみた

QA

【QAチームブログリレー7日目】 こんにちは。エンジニアグループQAチームの中塚です。 オンライン医療相談サービス「AskDoctors」を中心に、コンシューマ向けのサービス全般のQAを担当しています。 最近は宅トレや家カフェ、クラフトビールの飲み比べを楽し…

「QAって何をする人?」~上流工程におけるQAの役割とその重要性~

QA

【QAチーム ブログリレー6日目】こんにちは。エンジニアリンググループ クオリティアシュアランス(QA)チームの今井(@tak-imai-m3)です。 新年度が始まってから3か月が終わり、各社新人研修も終わった頃かと思いますが、QAについての研修はありましたでしょう…

毎年6/27はエムスリーチームリーダーの日

はじめに こんにちは、VPoEの河合(@vaaaaanquish)です。 最近、父の日のタイミングで実家にお酒を送った所、滅多にメッセージを送ってこない父がLINEで140字程の文章を送ってきまして、傍若無人な思春期を支えてくれた事を思い出しながらエモい空気を味わい…

【Sansan x エムスリー】gokartで爆速開発!MLOps勉強会をSansan株式会社と共同開催しました!

こんにちは! エムスリーエンジニアリンググループ AI・機械学習チームの氏家です。 最近同僚におすすめされたチーズグレーターを使ってチーズを削るようになり、市販の粉チーズと比べて格段に風味が良くて感動しています。 さて、エムスリーは7月10日にSans…

API テスト事始め ーテストツールscenarigoを添えてー

【QAチームブログリレー5日目】 こんにちは、エンジニアリンググループの末吉です。最近十数年ぶりに再開したピアノにハマっています。何年先になるかはわかりませんが、英雄ポロネーズを弾けるようになろう! と目標を立てて励んでいます。 実家の猫です、…

2023年夏のインターン、はじめました

はじめに こんにちは、エムスリーVPoEの河合(@vaaaaanquish)です。7月になって大分暑くなってきましたね。冷やし中華が食べたくなる毎日です。 冷やし中華です。本文には特に関係ありません。 本記事は、2023年、エムスリー夏の学生インターンの募集を宣言す…

E2Eテスト自動化サービスmablでテストケースを作成する際のルールを作った話

【QAチームブログリレー4日目】 こんにちは! エムスリーエンジニアリンググループ QAチームの城本(@yuki_shiro_823)です。普段は担当しているBIR(Business Intelligence and Research)チームで品質向上のためにあれこれしています。 今回はE2Eテスト自…

mablでassertエラーでもテストを続けて欲しい。そう、最後まで。

QA

【QAチームブログリレー3日目】 おはようございます。エンジニアリンググループ QA チームの津向です。 前回も健康診断で目標達成できず、生活に気を使うようになりました。 最近はノンフライヤーでオートミールクッキーを焼いていましたが、美味しくないの…

エラーでる憂き夕刻をエラー無く棲みなすものは

QA

【QAチーム ブログリレー2日目】 こんにちは。猛暑のさなか仁左衛門の体調がいささか気になる、エンジニアリンググループ・マルチデバイスチームQAの前川です。 1月のエンジニアブログで紹介のありましたように、私がQAエンジニアとして所属するマルチデバイ…

観点表を活用してテストの抜け漏れを防ごう

【QAチームブログリレー1日目】 こんにちはエンジニアリンググループの森内です。私は現在eESのエビデンスソリューション(治験臨床研究支援)チームでQA(品質保証)を担当しております。本ブログでは、QAの作業効率と生産性向上のために導入したテスト観点…

BigQuery上のデータマートをクラスタ化したらクエリコストが9割カットできた話

こんにちは、エンジニアリンググループ、データ基盤チームの木田です。 最近我が家では手作りピザがブームになっており、週末になると度々生地をこねては家庭内ピザパーティーを開催しております。 息子が盛り付けた手作りピザ (本文とは特に関係ありません)…

ECDW2023に山崎、河合が登壇しました

はじめに こんにちは、エムスリー VPoEの河合(@vaaaaanquish)です。 最近の推しはブルーロック 雪宮剣優です。試練に挑み続けたいですね。 さて、6月21日から5日間に渡って開催されました、エンジニアtypeさん主催のENGINEERキャリアデザインウィーク 2023(…

エンジニアリングの時間を生み出すドキュメンテーション術

【データ基盤チーム ブログリレー 3日目】 こんにちは、エンジニアリンググループの石塚です。 趣味は筋トレです。好きなトレーニングはレッグカールです。今年2023年の1月に第一子が爆誕し、毎日子供の笑顔に癒されております。一方であまり言い訳にはした…