1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.js × Python × Dockerで求人サイトを開発した4日間 ― エン・ジャパン インターン体験記

1
Last updated at Posted at 2025-10-04

エン・ジャパンのサマーインターンに参加して、モダンWeb開発を体験してきた

はじめに

こんにちは。
2025年夏に開催された エン・ジャパン株式会社 エンジニアリンググループのサマーインターン(4日間)に参加しました。

本記事では、インターンの概要や実際に取り組んだ内容、学びや気づきをまとめます。
これからインターンに参加する学生の方や、モダンWeb開発を体験してみたい方の参考になれば幸いです。


自己紹介

  • 修士1年 / AIエンジニア
  • 普段は 画像処理・音声合成・自然言語処理 を中心にAI研究・開発に取り組んでいます
  • 使用技術: Python, PyTorch, YOLOv8, Docker, React, Next.js など

AI寄りのバックグラウンドでしたが、Web開発の実務フローを短期間で体験してみたいと思い参加しました。


インターン概要

今回の課題は、「小さな求人サイトを作る」Webアプリ開発 です。
特徴的だったのは、実務に近いモダンな構成が用意されていたことです。

  • フロントエンド: Next.js / React (SPA構成)
  • バックエンド: Python, MVC+S+R アーキテクチャ
  • 環境構築: Docker, devcontainer
  • 開発フロー: GitHub Flow(feature branch → Pull Request → review → merge)

最終日には、完成したWebアプリを動かしながら発表を行う流れでした。


技術的な取り組み

1. 環境構築

まずは Docker / devcontainer を使って環境をセットアップ。
普段はローカル環境で直接開発することが多いので、コンテナベースで開発環境を統一するメリットを実感しました。

  • ローカル環境を汚さない
  • チーム全員が同じ環境で開発できる
  • 「動く環境がない」というトラブルを回避できる
# backend起動
docker compose up -d

# frontend起動
npm install
npm run dev

2. バックエンド実装

バックエンドでは、API仕様に沿った機能追加 を担当しました。
具体的には、ユーザー認証や求人データ取得に関するエンドポイントを実装し、テストまで行いました。

実装時には以下を意識しました:

  • 責務分離(モデル・サービス・リポジトリ層の役割を明確に)
  • エラーハンドリング(例外発生時にユーザーへ分かりやすいメッセージを返す)
  • 再現性(レビューやデバッグ時に追いやすいログ設計)

3. フロントエンド実装

Next.js / React を使ったSPAで、APIと接続して求人一覧を表示する部分を担当しました。

  • フォーム入力からAPIリクエストを送信
  • レスポンスデータを整形してUIに反映
  • エラー時のメッセージ表示

普段AI研究ではフロント実装をする機会が少なかったので、UI/UX設計とAPI連携の難しさを肌で感じました。


4. GitHub Flowとコードレビュー

今回のインターンで一番印象的だったのは GitHub Flowとレビュー文化 です。

  • 実装は小さな単位でfeatureブランチを作成
  • PRを出したらSlackでレビュー依頼
  • コメントを受けて修正・再提出

特に「なぜこの実装にしたのか?」と問われるレビューが多く、自分の思考を言語化する重要性を実感しました。


学び・気づき

小さくPRを出すことの大切さ

大きな変更を一気に出すのではなく、小さく区切ってPRを出すことでレビューがしやすくなり、手戻りも減りました。
これは今後の研究や実務でも徹底したい習慣です。

設計段階での責務分離

フロントとバック、さらに層ごとの責務を分ける設計により、コードの読みやすさと保守性が大きく向上することを体感しました。

エラー処理とユーザー体験

「ただ動けばいい」ではなく、エラー時のユーザー体験(エラーメッセージ、ローディングUIなど)まで考慮する必要があることを学びました。


今後に活かしたいこと

  • AI/MLシステム開発でも、再現性や責務分離、レビュー駆動を強く意識する
  • コードの動作だけでなく、読みやすさ・保守性・チームで扱いやすい設計を重視する
  • 設計思想やレビュー文化を積極的に取り入れ、プロダクト思考を持ったエンジニアを目指す

まとめ

エン・ジャパンのインターンは、モダンWeb開発を短期間で実践できる貴重な機会でした。
技術的な学びだけでなく、チーム開発の進め方・レビューを通じた成長を強く実感できました。

今回の経験は、研究やAI開発だけでなく、今後のキャリア全体に活かせる財産になると感じています。


使用技術

  • 言語/フレームワーク: Python, Next.js, React
  • 開発環境: Docker, devcontainer
  • 開発フロー: GitHub Flow
  • その他: API設計, コードレビュー
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?