LoginSignup
gamuprog
@gamuprog

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Next.jsを用いた個人ブログ開発について

解決したいこと

Reactで半年ほど実務の開発をさせていただいているのですが、この度個人的にブログを作りたいと思ったので、勉強も兼ねてNext.jsを用いて開発をしようと考えています。Next.jsについては素人中の素人です。
その上で疑問があったので質問させていただきます。

  • 質問 Next.jsを用いた個人ブログ開発の記事を見ると多くがmicroCMSなど外部のDB(?)を用いて開発していると見受けられたのですが、そのメリットはなんですか?調べる前は、個人ブログ開発などは記事の本文などもプロジェクト内にhtml(やmarkdown形式)で書くものだと思っていたので、外部に記事を保管してそれをAPIで取得するという形をとることのメリット、逆にソースコード内に直書きするデメリットを教えていただきたいです。(というか記事本文の内容をそのままプロジェクト内に書くのはそもそも一般的ではないですか?)
0

4Answer

質問を整理すると,

  1. Next.jsにおいて外部DBを使う理由
  2. ハードコーディングではなく,DBに保管する理由
  3. ハードコーディングのデメリット

の3点かと思います。
自分もNext.jsを実際に触ったことはない(どんなものかはなんとなくわかります)ので回答できる立場ではないかもしれませんが,自分の考えです。

まず,1点目について,DBも使えるサーバは維持費がかかるからではないかと思います。
Vercel等は確か商用利用でなければ無料枠があったと思うので個人ブログも無料でデプロイはできると思います。ただ,それだとDBが使えないから外部のDBで無料あるいは安いDBをAPIで使うんだと解釈しています。

次に2点目について,ハードコーディングだと,エディタが必ず必要でHTML等の知識がある人でなければブログを書けないからだと思います。

最後に3点目について,2点目と同様に執筆のために知識が必要になるからだと思います。

個人の学習のためであれば,ハードコーディングでもDBでもいいと思います。ブログのCMSに有名なWordPressがありますが,WordPressもDBに記事を保存しています。

1

外部のDB(?)を用いて開発していると見受けられたのですが、そのメリットはなんですか?

使うブログのフレームワークによると思いますが、普通は動的な Web アプリになっており DB を使っているはずです。

Web アプリが DB から情報を入手し、html を組み立ててブログの記事としてブラウザに送信する仕組みになっています。(MySQL, PostgreSQL などではなく、XML ファイルをデータソースに使っているフレームワークもありますが、何にせよ html ソースをユーザーがハードコーディングするということはあり得ません)

DB に対して SELECT, INSERT, UPDATE, DELETE を行うことで、その結果が即ブログの記事に反映されるように作られているはずです。

例えば、自分が使っているブログの場合ですが、ログインすると以下のような専用の編集ページにアクセスでき、そこでユーザーがタイトル、本文、その他を入力し[保存]ボタンをクリックすると、入力した内容が DB に INSERT され、その結果が新記事として表示されるようになります。

blog.jpg

ユーザーは html ソースを書く必要はありません。タイトル、本文等を編集ページで入力するだけで済みます。

編集、削除も同様に DB に対して行えば、その結果はブログの内容に反映されます。

個人ブログ開発などは記事の本文などもプロジェクト内にhtml(やmarkdown形式)で書く

昔の静的な HP のイメージで考えているようですが、それではユーザーが html ソースを書く必要があり、さらには FTP クライアントを使って Web サーバーにそのページをアップロードしなければなりません。

さらに問題は、ブログにつきもののタグとかページングとかをどうするかで、そういうものも必要だとすると、それは静的な HP では無理です。

以上のようなわけで、要するに、html ソースを(場合によっては JavaScript や css も)ユーザーがハードコーディングしてサーバーにアップする必要がないこと、タグとかページングとかカテゴリー分けとかして表示するのはフレームワークが自動的に面倒見てくれることが DB をデータソースとする Web アプリを使うメリットです。

0

個人ブログ開発にあたってDBを使うメリットについて回答します。

まず学習目的を含んでいることは考えられそうです。実務ではデータベースを使うことは多いですし、学習用の教材でもそのような構成で説明されていることは多いと思います。なのでその流れでDBを使った構成にすることは考えられそうです。

また、データベースを使うことでデータの保存や検索、整合性を維持するための機能を活用することができます。

データベースを使わずアプリケーションの内部に記事データを保つ場合のデメリットですが、記事データを更新するたびにバージョンアップが必要になる点があります。バージョンアップするということはビルドやデプロイなどの作業が必要になります。

データベース以外にも、記事のなかに画像や動画などのサイズが大きなデータを使う場合はビルドやデプロイに時間がかかりそうです。その場合はストレージサービスなどの利用を検討する必要があるかもしれません。

確かNext.jsのチュートリアルではMarkdown形式のファイルで記事を作成していたと思いますが、それくらいの用途であればそれでもいいと思います。
ただ、記事にタグやカテゴリーなどのメタデータなどが追加されたり、検索機能が必要になったりするとデータベースの利用を考えることになると思います。

0

自分で実際に書いて運用してみれば、メリデマは身をもって分かるんじゃないでしょうか!

勉強も兼ねてコードを書くというのは、そういうのとかなと思います。

0

Your answer might help someone💌