GraphQLのN+1問題をDataloaderで解決

こんにちは。株式会社PRVENT開発部、バックエンドチームの横川です。 今回は、GraphQLで発生するN+1問題と弊社の解決方法を紹介しようと思います。 N+1問題とは? ループ処理の中で都度SQLが発行され、SQLが大量増殖してしまう問題です。 テーブルAからN件の…

GraphQLライブラリ「gqlgen」でサーバー構築

こんにちは。株式会社PRVENT開発部、バックエンドチームの横川です。 今回は弊社で使用しているGraphQLライブラリ 「gqlgen」と実際にgqlgenを使ったGraphQLサーバーの構築方法を紹介したいと思います。 なぜ書こうと思ったか 弊社のプロダクトのバックエン…

branch名を使ってrelease-drafterを楽に運用する。

PREVENT開発部、フロントエンドチームの高田(@tockii_ )です! 今回は開発を担当しているリポジトリに release-drafter を導入するに至った経緯と設定について記事を書きました。 書いていること release-drafter を導入した経緯 release-drafter とは? bra…

社内システムのインフラをHerokuからAWSに移行した話

こんにちは。株式会社PRVENT開発部、バックエンドチームの横川です。 2021年1月に未経験から入社して現在はRubyやGoを書いて仕事してます。 今回は社内システムのインフラをHerokuからAWSへ移行した話を書こうと思います。 はじめに 元々弊社のシステムのイ…

CookieのSameSite属性とSecure属性について

初めまして。株式会社PRVENT開発部、バックエンドチームの横川です。 現在入社2年目で、普段はGoやRubyを書いて仕事してます。 今回はCookieのSameSite属性とSecure属性について紹介したいと思います。 なぜ書こうと思ったか 現在、『Mymonitor』という弊社…

開発部内でのコミュニケーション頻度の向上のためGatherを導入してみた

PREVENT開発部、フロントエンドチームの高田(@tockii_ )です。本日は弊チームでオンラインコミュニケーション改善のため実施している施策についてご紹介します。 書いていること Gatherを使い始めた背景 Gatherの利点 Gatherを使ってからのメンバーの所感 今…

データサイエンスチームで、はじめてのインターンシップを受け入れました

はじめに 株式会社PREVENTのデータサイエンス(DS)チームの戸田です。今回はDSチームで受け入れたインターンシップの活動を報告します。 ツイッターのDM経由で連絡をいただいた東京大学 公共健康医学専攻の瀧澤さんは、9月6~24日の実稼働日が13日と非常に短…

ベイジアンネットワークを用いた胃潰瘍罹患者における薬剤処方パターンの探索

【はじめに】 こんにちは。データサイエンスチームです。 今回はPREVENT社内に蓄積されたレセプトデータを用いて、因果探索を行なった事例を紹介します。 【はじめに】 因果探索とベイジアンネットワークについて レセプトについて 今回の趣旨 【方法】 デー…

CORS(オリジン間リソース共有)とは?

はじめに こんにちは、フロントエンドチームの高田(@proghallelujah)です。 webアプリケーションを開発していると、このような内容のエラーが出たことがある人は多いかもしれません Access to XMLHttpRequest at 'https://hoge.com' from origin 'https://…

銀座Rails#24@リンクアンドモチベーション 勉強会の感想

こんにちは!株式会社 PREVENT の開発部門、バックエンドエンジニアチームの松原と申します。 厳しい残暑がようやく和らぎ始めましたが、いかがお過ごしでしょうか? 今回は、8月28日(金)に銀座 Rails に参加した感想と、イベント中に登場した技術、特に詳…

半年間リモートワークを続けてみて感じたこと

はじめに こんにちは、フロントエンドチームの高田(@proghallelujah)です。 弊社は昨今世界中で発生しているCOVID-19危機のため、2020年3月ごろから一時的にリモートでの業務が可能になりました。 それまでは全ての業務を会社のオフィス内で行っていました…

moment.jsで単位を日に指定してdiffを使う時、時間を考えず日が変わったかどうかだけで比較する

結論: startOf('days')で時間をまるめる const dayOne = moment('2020-01-01 10:00:00').startOf('days'); const dayTwo = moment('2020-01-02 09:00:00').startOf('days'); console.log('dayOne', dayOne.format()); console.log('dayTwo', dayTwo.format()…

PREVENTの事業内容について

みなさんはじめまして。株式会社PREVENTの開発部門、フロントエンドエンジニアチームの高田(@proghallelujah)と申します。 こちらのブログでは、わたしたちが社内でどのようなプロダクトの開発を行なっているかや、普段用いている技術や運用方法について、…