※プログラミング初学者であるため、用語の使い方が間違っている場合はご教示ください。
そもそも専門用語の定義を正しく理解していない可能性があるため、ご指摘いただければ助かります。
Javaのアプリ開発について、一点基礎的な質問をさせていただけますでしょうか。
まず前提の認識が正しいか、ご説明とご確認をさせてください。
アプリはローカルで開発し、デプロイするのはパブリッククラウド(IAAS PAAS SAASなど)だと思います。パブリッククラウドでは、
ランタイム
ミドルウェア(WEBサーバー、APPサーバー、DBサーバーなど)
OS
サーバー
ストレージ
ネットワーク
などのが用意されていると思います。
これらはデプロイしたあとに私たちが作ったアプリが動く動作・実行環境であり、ローカルでも開発用に同じような環境を整備しないといけない。それが環境構築である。
上記認識正しいでしょうか?
もしそうであるとしたら、アプリ開発で開発者が準備しないといけないものは、例えばJavaのアプリであれば例えば、下記のようになりますでしょうか?
もし間違いがあったらご指摘いただければ助かります。
例)
ソフトウェア開発キット・・・Java SE Development Kit
フレームワーク・・・Spring Bootなど
ビルドツール・・・MavenやGradleなど
ランタイム・・・JDKなど
ミドルウェアの①WEBサーバー・・・Apacheなど
ミドルウェアの②APPサーバー・・・Tomcatなど
ミドルウェアの③DBサーバー・・・Mysqlなど
OS・・・Windowやlinux、Mac OS
物理的なサーバー・・・PCのCPUなどのハードウェア
ストレージ・・・PCのストレージ
ネットワーク・・・インターネット
ここでさらに疑問なのは、ミドルウェアです。
ミドルウェアはあくまでパブリッククラウドの大きなPC上で動作しているWEBサーバー、APPサーバー、DBサーバーというソフトウェア達と認識しています。
プログラムを開発する際、これらのサーバーとプログラムがうまく連携するようにソースコードに記述するのでしょうか?
もしくは、ローカルのPCの中で、これらのサーバーが別で存在するのでしょうか?
あなたの回答
tips
プレビュー