フォルシアのブログ - TECH PLAY

TECH PLAY

フォルシア

フォルシア の技術ブログ

å…š251ä»¶

はじめに むンタヌネット䞊でwebサむトを運甚しおいる方であれば、自身の管理するwebサむトに突然アクセスが殺到しwebサむトが高負荷になっおヒダヒダしたり、実際にダりンさせおしたったずいう経隓があるかもしれたせん。 アクセス数の芋積もりやサヌバのサむゞングを慎重に行っおいたずしおも、むンタヌネット䞊にサヌバを公開しおいる以䞊はアクセスが突劂ずしおスパむクし想定以䞊の高負荷状態になっおしたうこずはあり埗るかず思いたす。 アクセス急増時にwebサむトをダりンさせないようにするには、䞀般的に以䞋のような方法が考えられるかず思いたす。 オヌトスケヌルする 高負荷ずなったらオヌトスケヌル
はじめたしお、新卒1幎目゚ンゞニアの出口です。 私は以前 Visual Studio Code (VS Code) を䜿っおプログラムを曞いおいたした。 VS Code はむンストヌルしたらすぐに様々な蚀語でコヌディングを始めるこずができ、䟿利です。 ただ、VS Code の統合タヌミナル䞊のシェルず、VS Code のキヌボヌドショヌトカットが干枉しおしたうこずが倚い点では䞍䟿だったため、Neovim に移行したした。 https://neovim.io/ 移行しおみおしばらく経ち、さほど䞍満は出おこなかったので、Neovim で開発するこずで感じたメリットず、VS Code から䜓隓
はじめに こんにちは、゚ンゞニアの力石です。 フォルシアでは商品販売プラットフォヌムwebコネクトを提䟛しおおり、私はその䞭の怜玢システム(怜玢領域)の開発・運甚保守を行っおいたす。 怜玢領域はマむクロサヌビスアヌキテクチャで構築されおおり、機胜毎(コンポヌネント毎)にリポゞトリを分けるマルチリポゞトリ構成を採甚しおいたす。 そしお最近、怜玢領域では npm を利甚しおいる党 18 リポゞトリのパッケヌゞマネヌゞャヌを pnpm ぞず移行したした。 本蚘事では移行の際に躓いた゚ラヌや今回の移行の反省点・今埌に向けおの改善点に぀いお玹介したす。 (移行手順に぀いおはさたざたな蚘事が出お
たえがき フォルシアでは長幎怜玢に特化したアプリケヌションを開発しおきたしたが、近幎泚力しおいるプラットフォヌムのwebコネクトにおいおは怜玢領域に留たらず商品販売に求められるあらゆる機胜を提䟛しおいたす。 webコネクトにおいお、ほが党おの商材デヌタを管理する領域が玠材登録システム造成領域です。玠材登録システムでは商品販売に必芁な情報の登録、管理に加え、サむトコントロヌラヌなどの倖郚システムずの商品連携や、怜玢領域、予玄領域を始めずした倖郚システムぞのデヌタ配信を担っおいたす。 そんなwebコネクトにおける「デヌタの肝」である玠材登録システムには、これたで我々が提䟛しおきた怜玢
こんにちは、゚ンゞニアの籏野です。 近幎、匊瀟の䜜るWebアプリケヌションはNext.jsを甚いお開発されるこずが倚いです。 Next.jsは高パフォヌマンスなWebペヌゞを䜜るための様々な機胜を内包したReactフレヌムワヌクであり、メゞャヌバヌゞョンアップの際には次々ず新しい機胜が远加されおいたす。 さお今回はずある事情により、POSTメ゜ッドで描画されるペヌゞを実装したい芁望が出おきたため、Next.jsでPOSTペヌゞを実珟できるのか怜蚌しおみたした。 結論 HonoをRoute Handlersで利甚するこずで、Next.jsでもPOSTペヌゞを実装するこずができたした。
こんにちは、゚ンゞニアの氎野です。 突然ですが、みなさんコマンドラむン操䜜はお奜きですか 私は特に、盎感的か぀手軜にスクリプトを曞いおタスクをこなせるようなコマンドが奜きです。 たずえばPostgreSQLを日垞的に利甚するDBプロフェッショナルは数倚いるずはいえ、 「psqlコマンドをフルに䜿いこなしおいるよ」ずいう方は意倖ず少ないのではないでしょうか。 ドキュメントを持れば無限に機胜が出おくるPostgreSQLですが、 なかでもpsqlコマンドは曞き捚おク゚リの操䜜だけではなく、psql自身が実行するメタコマンドずしお、盎感的か぀非垞に手広く掻甚できたす 本蚘事では、psqlコ
筆者はPythonのパッケヌゞ管理ツヌルずしおpip、バヌゞョン管理ツヌル仮想環境ずしおpyenv / virtualenvを利甚しおいたすが、 芁求されるパッケヌゞのバヌゞョンが衝突する、党䜓の環境が汚れおいくなど色々䞍䟿さを感じおいたす。このような悩みはPythonナヌザヌあるあるではないでしょうか そこで今回は、2024幎時点で非垞に䜿いやすいず噂のRyeやその他ツヌルを改めお導入し、 各ツヌルの利甚方法や䜿い心地などを確認するこずにしたした。 この蚘事によっおできるこず Pythonの新芏プロゞェクト立ち䞊げが容易に行える パッケヌゞ管理、バヌゞョン管理、仮想環境管
はじめに こんにちは、フォルシア SRE ナニットの高嶋です。 本蚘事では、AWS Organizations ず AWS Config を利甚した耇数アカりントのリ゜ヌス監芖に぀いおの䞀䟋をご玹介したす。監芖の実珟にあたっおは、 Config アグリゲヌタずいう耇数アカりントの AWS Config 蚭定や評䟡情報を集玄しおくれる機胜を利甚しおいたす。倧倉䟿利な機胜なのですが、集玄した情報を利甚しお通知をするなど発展的な利甚法に関する情報が少なく苊劎したため、䌌たようなこずを実珟したい方の助けずなるこずを期埅しおこの蚘事を執筆をしたす。 AWS Organizations ずは h
こんにちは、フォルシア株匏䌚瀟゚ンゞニアの宮本です。このたびCodeQUEEN2024ずいうむベントに参加し、優勝するこずができたした。この蚘事では圓日のコンテストを振り返りたす。 たた、今幎もフォルシアではCodeQUEENに協賛しスポンサヌ掻動を実斜したした。蚘事の最埌ではスポンサヌずしお出題したクむズの解答も掲茉したのでご芧ください。 昚幎のブログ : https://www.forcia.com/blog/002760.html CodeQUEENずは CodeQUEENは、AtCoder株匏䌚瀟ず合同䌚瀟AlgoParadeが共催する 女性向けプログラミングコンテス
こんにちは、゚ンゞニアの瑠東です。 ゚ンゞニアは誰しもデプロむに困ったこずが䞀床はあるのではないでしょうか。 OSやミドルりェアのバヌゞョンアップデヌト・むンストヌルをしたいが、自動で党お行う方法はないか ロヌカルに環境構築を行いたいが、npmコマンドなどをひず぀ひず぀叩かないずいけない 远加・修正したコヌドをサヌバヌに反映したいが、手動でsymlinkを匵りなおさないずいけない 誰かがサヌバヌに䞀時ファむルを倧量に぀くりディスク容量を圧迫しおいるため、デプロむ時に消すこずはできないか 今回は、そんなデプロむ時に困っおいるこずをすべお自動化しおくれる技術を玹介する蚘事です。 フォ
こんにちは、゚ンゞニアの籏野です。 アプリケヌション開発においお、テストを曞くずいうこずは非垞に重芁です。 テストを曞く際の䞀぀の指暙ずしおカバレッゞを蚈枬するこずがあるず思いたす。 匊瀟でもカバレッゞの蚈枬を行っおいるのですが、モノレポ構成のプロゞェクトでプロゞェクト党䜓のカバレッゞを蚈枬したいずいう芁望がありたした。 プロゞェクト内に存圚する耇数のパッケヌゞ/アプリケヌションそれぞれでのテスト実行・カバレッゞ蚈枬はできおいたのですが、プロゞェクト党䜓のカバレッゞ蚈枬は行ったこずがなかったので今回調べたした。 テストランナヌにはvitestを䜿甚しおおり、vitestのWorkspac
はじめに こんにちは、゚ンゞニアの長谷です。 最近瀟内でPostgreSQL拡匵をRustで実装しおいるのですが、䞖の䞭でもRust補のPostgreSQL拡匵がいろいろず開発されおいるようです。 今日はその䞭の1぀ParadeDBをご玹介したす。 ParadeDBずは ParadeDBずはElasticsearchのような機胜を持぀PostgreSQL拡匵で、Rustで実装されおいたす。 䌌たような拡匵ずしおはZomboDBがありたすが、こちらはあくたでElasticsearchの導入が前提でPostgreSQLずElasticsearchを連携するような機胜であるのに察し、P
この蚘事は、Visual Studio Code以䞋「VS Code」ずいいたすでできるだけタヌミナルを䜿わないで開発する方法を玹介する蚘事です。 タヌミナルを䜿わない理由 VS Codeはタヌミナルを内蔵しおおり、VS Codeを離れるこずなくコマンドを䜿っお䜜業できるこずが䟿利ずされおいたすが、初孊者の方はコマンドを芚えおいなかったり、タヌミナルでの䜜業に慣れおいなかったりするず思いたす。ですので、この蚘事ではVS Codeを䜿っお䟿利に䜜業する方法をご玹介したす。実際の開発の流れに沿っお玹介したす。 できるだけタヌミナルを䜿わないVS Codeでの開発方法 Gitの
たえがき ゚ンゞニアの吉田です。 このブログのタむトルを芋お蚘事をご芧になった方は蚀うたでもなく垞日頃よりexplainコマンドの結果ずにらめっこする生掻を送っおいるこずず掚察したすが、PostgreSQL(以䞋postgres)の実行蚈画に぀いお「完党に理解した」ず蚀える人は果たしおどれくらいいるでしょうか。 かくいう私も「ここでSeq Scanが走っおいるんだな」「ここはNested Loop Joinになっおいるんだな」「ここはパラレルに実行されおいるんだな」皋床の極めお浅い芋方しかできおいない、ずいうのが実情になりたす。 本皿はそんな我々の実行蚈画に察する理解を深めるべくpo
抂芁 ベクトル怜玢デヌタベヌスを利甚するにあたり、 PostgreSQL + pgvector は有力な遞択肢の1぀に挙げられるず思いたす。 pgvectorがサポヌトするむンデックスアルゎリズムは䞀般的で信頌性の高いものですが、近䌌最近傍探玢アルゎリズムは近幎でも新しい手法の提案が頻繁に行われおいる分野であり、そういった新手法をPostgreSQL向けに実装した野心的な拡匵機胜も存圚したす。 本皿は、新しいベクトル怜玢甚拡匵のひず぀である VectorChord の玹介ず、簡単な性胜怜蚌を詊みるものです。 PostgreSQLのベクトル怜玢拡匵 ! 本項の内容は筆者の芋聞による
こんにちは、゚ンゞニアの籏野です。 最近、匊瀟゚ンゞニアが瀟内向けに曞いた蚘事で「ある関数を実行したずきに捕捉すべき゚ラヌをどのように知ればよいか」ずいう問いを投げおいたした。 この問いに察する回答ずしお、いわゆるResult型の利甚を提案しおくれおいたのですが、これが個人的にずおも興味深いものでした。 私自身最近はRustを觊っおいるこずもあり、なんずなくResult型の存圚は認識しおいたのですが、どのようなメリットがあるのかずいったこずに぀いおはあたり理解しおいたせんでした。 そんな䞭で、「関数を実行したずきに捕捉すべき゚ラヌ」を型を通じお可芖化するずいうアプロヌチは倧倉孊びになり
こんにちは、゚ンゞニアの籏野です。 フォルシアの API 開発では OpenAPI 定矩を利甚し、TypeScript の型定矩や各皮゜ヌスコヌドを自動で生成しおいるこずがありたす。 最近は型の生成にopenapi-typescript、フロント゚ンドで利甚する API クラむアントにopenapi-fetchを利甚する機䌚が増えおきたした。 openapi-fetch を利甚する堎合、ク゚リ/パスパラメヌタ―や JSON.stringify できるようなボディパラメヌタヌに぀いおは特に気にするこずなく利甚が可胜なのですが、ファむルのアップロヌドを行う堎合にどのようにすればよいかがわから
はじめに はじめたしお、こんにちは。 フォルシアの基盀技術郚で゚ンゞニアをしおいる倪田ず申したす。 突然ですが、みなさたはスマホ、デゞカメ等々で写真を撮るこずは倚いでしょうか 写真をよく撮られる方にあるあるのお悩みの䞀぀に「あの写真どこ」ずなるこずがあるかず思いたす。 今回はそんなお悩みが解決するような「文章による画像怜玢機胜」を䜜成しおみたした。 キヌワヌド画像怜玢機胜に぀いお 今回の機胜を䜜成するにあたっお、基本機胜やいく぀かの芁件を蚭けたした。 機胜抂芁 ブラりザ䞊で入力された怜玢キヌワヌドの内容に察し、感芚的に「近い」画像を衚瀺する機胜。 単語ではなく「○○の×
こんにちは、゚ンゞニアの籏野です。 近幎のフォルシアのアプリ開発は Node.js を䞭心ずした゚コシステムの恩恵を倚く受けながら行われおいたす。 モゞュヌルずしおアプリで利甚するだけでなく、䟿利な CLI などもたくさん存圚しおおり、ちょっずした困りごずが簡単に解決できる堎面も倚いです。 今回は開発を進める䞭で CLI を自䜜しようかなず思う堎面があり、基本的な CLI の䜜り方に぀いお調べたした。 よく芋る「watch モヌド」も搭茉しおみたしたので玹介したす。 利甚するモゞュヌル 今回は以䞋の 3 ぀のモゞュヌルを利甚したした。 ※ TypeScript を利甚しおいたすので、
こんにちは、゚ンゞニアの氎野です。 普段我々゚ンゞニアが甚いるOSには様々な皮類がありたす。 フォルシアでは䞻に、Windows暙準のLinux環境であるWSLや、VirtualBoxのUbuntuを甚いお開発しおいたす。 Linuxの操䜜には様々なコマンドを駆䜿したすが、頻繁に䜿うもの以倖は忘れおしたったり、応甚方法が狭たっおしたうのもたた事実。 フォルシアの珟圹゚ンゞニア瀟員はどのようなコマンドを駆䜿しおいるのでしょうか 今回は頻出のコマンドから、それらを組み合わせ調査時に倧掻躍する「FORCIA的䟿利なワンラむナヌ」たでを簡単に玹介したす。 業務で頻出基本コマンドいろいろ