27卒エンジニア就活の技術面接を振り返って、一番焦ったのは非機能要件まわりの質問だった。
・N+1問題をどう説明して、どう解消するか
・DBのインデックスをどのカラムに貼るか、その判断理由とトレードオフ
・「ページが遅い」と言われたとき、バックエンド側でどう切り分けるか
・GraphQLはRESTと比べて何が良くて、逆にどこが辛いか
正直、難しくて言語化できなかった質問も多かった。機能は極論、仕様に書かれたロジックを繋げれば作れる。でも非機能要件(パフォーマンス・スケーラビリティ・セキュリティ)はケースバイケースで、実体験や深い理解がないと考えを出せない。
学生でここまで考えるのは正直かなり難しいけど、非機能要件をちゃんと考えている人は少なくて、経験がある人も少ないからこそ面接ではかなり差が出る分野だなと思った。