質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

0回答

428閲覧

Javaのアプリ開発で必要なもの

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/12/09 02:21

編集2020/12/09 04:57

※プログラミング初学者であるため、用語の使い方が間違っている場合はご教示ください。
そもそも専門用語の定義を正しく理解していない可能性があるため、ご指摘いただければ助かります。

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の中で、これらのサーバーが別で存在するのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/12/09 02:22

「私たち」とは 「サーバー」とは 「プログラム」とは どの次元で聞きたいのか不明です。
m.ts10806

2020/12/09 02:23

あとApatcheじゃないです。Apacheです。
退会済みユーザー

退会済みユーザー

2020/12/09 02:41

ご指摘ありがとうございます。修正しました。
dodox86

2020/12/09 03:26

Javaアプリの開発自体はJDKだけでできます。public static void main()があれば良い。何を作るかで使うものが増減するだけです。
dodox86

2020/12/09 03:46

よくよく質問を読んでみると、ちょっと具体性に欠ける内容ですね。 > プログラムを開発する際、これらのサーバーとプログラムがうまく連携するようにソースコードに記述するのでしょうか? > もしくは、ローカルのPCの中で、これらのサーバーが別で存在するのでしょうか? 作る対象で千差万別なので、実際に作って実感しましょう。たぶん、回答を読んでもピンと来ないと思います。
m.ts10806

2020/12/09 04:41

Javaで作れるのはWebアプリだけじゃないので(むしろ導入部分はWebではないはず)、「何を作りたいか」「実際作ってみてどうか」とかもう少し自身の問題を提示されたほうが良いかと思います。 「とりあえず調べて出てきた単語を並べてみた」感が否めません。
退会済みユーザー

退会済みユーザー

2020/12/09 04:57 編集

>> Javaアプリの開発自体はJDKだけでできます。public static void main()があれば良い。何を作るかで使うものが増減するだけです。 例えば、webアプリを作る場合、最低限必要なものは何になりますでしょうか? 私は下記のように考えました。 ソフトウェア開発キット・・・Java SE Development Kit フレームワーク・・・Spring Bootなど ビルドツール・・・MavenやGradleなど ランタイム・・・JDKなど ミドルウェアの①WEBサーバー・・・Apacheなど ミドルウェアの②APPサーバー・・・Tomcatなど ミドルウェアの③DBサーバー・・・Mysqlなど OS・・・Windowやlinux、Mac OS 物理的なサーバー・・・PCのCPUなどのハードウェア ストレージ・・・PCのストレージ ネットワーク・・・インターネット
m.ts10806

2020/12/09 05:01

「最低限」といっても要件次第です。 公開するのか?どこまでの範囲か?本番はどうなっているか? など。 作る人にしか決められない要件が沢山あります。
dodox86

2020/12/09 05:15

極論すると、JDKさえあればソケットAPIで自力でサーバー作ることももできるので、フレームワークいらない。Javaサーブレットベースにしても、Spring Bootなど使わず、素のサーブレットでやればJDKとTomcat、Apache、だけでいける。何ならApache使わず、Tomcatだけでいける。 ビルドシステムなぞ使わないのならMavenもGradleもいらない。DB使わないならMySQLもいらない。実用的、開発期間を問わず、世に出す製品じゃなければそれでいいかもしれない。それを最低限と言っていいなら、です。m.ts10806さんが既に書かれているように、要件次第なのです。
退会済みユーザー

退会済みユーザー

2020/12/09 05:27

どのようなプログラムを作るかは全て要件次第、 そのプログラムを作る手段として何が必要か、不要か、ということですね。 非常に勉強になりました。ありがとうございます。
m.ts10806

2020/12/09 06:41

環境含めて全て実現するための道具です。 何を作るか決まらなければどう作るかは決まりません。
momon-ga

2020/12/09 07:27

具体的に困っているわけでなく、あなたの欲しい回答が 背中を押して欲しいというものであれば、 「認識に関係なく、まずは進めていけばよいです」という回答になるかと思いますが。
momon-ga

2020/12/09 07:28

開発環境もクラウドに用意するなら 作業用のPCとネットワーク(インターネット)だけでよいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問