システム開発において、開発言語だけですべてを開発すること、例えばJavaならJava言語だけで全機能を作るといったことはしません。DBアクセスや画面描画といった「仕様に関係しない共通機能」は何らかのフレームワークを使うのが普通です。
言語ごとに複数のフレームワークがあります。Javaにおいても、その中でも時代とともに隆盛に乗るフレームワークがあれば、逆にピークを迎えて廃れるものもあるのです。
フリーランスへの転身や転職を予定している方、将来に不安を感じている方には、フレームワークはとても大きな問題ですよね。自分の使えるフレームワークの流行り度合いによって案件の幅が変わるのですから!
よって、本記事ではJavaのフレームワーク「Spring Framework」をピックアップして、Spring Frameworkを「求人案件」という観点で調査してみました。
本記事の執筆にあたっては、大手のIT転職サイト2社と、ポテパンを含むフリーランス・副業向けサイト5社の計7社を徹底調査しています。
目次
- 1そもそもSpring Frameworkとは
- 1.1Spring Frameworkの生い立ち
- 1.2Spring Frameworkの開発環境
- 1.3他にはないSpring Frameworkの特徴
- 1.4開発者としてのSpring Frameworkのメリット
- 2Spring Frameworkエンジニアの仕事内容
- 3Spring Frameworkエンジニアの働き方
- 4Spring Framework案件は今後減少する?増加する?
- 5Spring Frameworkのフリーランス求人案件トレンド
- 6Spring Framework求人案件の単価相場は?
- 7Spring Framework案件で年収・収入を上げるポイント
- 8Spring Framework案件で週2~3日常駐はあるの?
- 9Spring Framework案件で在宅ってあるの?
- 10まとめ
そもそもSpring Frameworkとは
Spring Frameworkとは、冒頭で解説した通りJavaのフレームワークです。Webシステム開発を目的に・・・だけでなく、それだけにとどまっていません。
試しに、Spring Frameworkのページを見てみましょう。トップページから「Project」のリンクをクリックすると、Springの名を冠した各プロジェクト(簡単に言えばSpring Frameworkに含まれる仲間たち)が一覧で見えます。
SPRING BOOT
SPRING FRAMEWORK
SPRING DATA
SPRING CLOUD
SPRING MOBILE
SPRING ANDROID
SPRING SECURITY
・・・計22のプロジェクトと、
SPRING ROO
SPRING SCALA
・・・計2つのコミュニティから構成されています。
ご覧いただいたとおり、Webシステム開発からクラウド、ビッグデータ、モバイル等々、さらにScalaでの開発も可能のようです。
種類が多すぎてよく分からないですが、名前を見る限りでは、イマドキの開発はほとんどがSpringでまかなえそうな気がしてきましたね。
Spring Frameworkの生い立ち
Spring Frameworkは初版(つまりVer.1.0)が発表されたのが2004年という、Javaでは老舗のフレームワークです。2018年2月に最新版の5.0.4がリリースされました。Spring Frameworkの開発環境
Spring Frameworkには専用の開発スイートであるSTS(Spring Tool Suite)があります。STSは、Spring Frameworkの開発に必要なものが最初から同梱されているEclipseです。PCにJava8以上がセットアップされていれば、STSをダウンロード・解凍してすぐに使えます。他にはないSpring Frameworkの特徴
Spring FrameworkはMVCがベースです。それは他のフレームワークとは変わりませんが、アスペクト指向(AOP)、DIといった概念の導入が特徴です。開発の具体的な特徴としては、フロント周りは従来のJSPではなくThymeleafの使用が推奨されます。先ほど述べたSpring Frameworkの複数のプロジェクトの成果物を使い、トランザクション管理や認証認可、ビッグデータの解析からモバイル対応までを駆使すると、Spring Frameworkだけでほとんど網羅できてしまいます。
またSpring Frameworkで必ずフロントまで含めたWebシステムを構築しなくとも、WebAPIのサーバーサイドだけを開発することも可能です。
開発者としてのSpring Frameworkのメリット
Spring FrameworkはAOPやDIといった、他のフレームワークでも利用する概念が採用されています。またMVCがベースです。Spring Frameworkの開発ができれば「JavaによるMVCベースのフレームワークの開発ができます」と胸を張って言っても問題ないでしょう。先ほどの「Spring Framework内のライブラリが多い」ということは、Springがあれば大抵のことはできる、ということです。自分自身で何らかのサービスを立ち上げて公開したい方にとって、一通りのことはできてしまうSpring Frameworkは必見です。
Spring Frameworkエンジニアの仕事内容
各種サイトで「Spring Framework」というキーワードで求人を検索し、ヒットした内容からいえることを見てみましょう。
「Spring Framework」というキーワードで調査
上記の調査で、併記されることの多いキーワードをピックアップします。- AWS、クラウド
- Java8
- 4系
- Struts
- サーバーサイド、インフラ、API
クラウドベースの環境構築
これはSpring Frameworkに限ったことではありませんが、クラウドが併記されていることが多いので取り上げました。Spring Frameworkで開発するということは、単にプログラミングスキルだけでなく、クラウドやインフラ全般の知識も求められることが多いということです。JavaやSpringのバージョン
Spring Frameworkは、現在のバージョンは5系です。5系は2017年7月にリリースされました。5系になったと同時に、それまでサポートされていたJava6や7のサポートが終了しました。つまり最新のSpring Frameworkを使うイコールJava8による開発が主となります。Java8でJava6や7のプログラムが動くのと同様に、5系でJava6や7の記法で書いても動きます。しかし多くの企業ではSpring5系への移行と同時にJava8への移行もしています。つまり、Java8の新機能であるラムダ式やストリームAPIが導入されています。
案件の多くはSpring4系または5系というバージョンが書いてあります。案件を選ぶ時は注意してください。
相変わらず散見される「Strutsからの載せ替え」
StrutsやSeasarからの移行で、まず選択肢に出てくるのがPlay Frameworkと今回取り上げたSpring Frameworkなのです。Strutsはバージョン2系はまだ開発が続いていますが、Struts自体がたびたびセキュリティホールが発見されており、実害も出ています。1系の開発はすでに終了しています。Seasarも開発が終了しています。
ということは、これら2つのフレームワークを移行しなくてはなりません。その移行先の1つがSpring Frameworkなのです。
暫定的にStrutsとSpringを併用、徐々にSpringの1本化へ移行、という段階を踏むところもあります。いずれにしても、旧時代のフレームワークからの移行案件もある、というのはSpring Frameworkの案件の特徴といえます。
Spring Frameworkエンジニアの働き方
Spring Framework自体がWebシステム開発フレームワークであることは何度も述べました。ということは、普通のWebシステムエンジニアと、働き方は大きく変わりません。
週5勤務で正社員雇用の案件もありますし、フリーランス向け案件も多数あります。ということは、Spring Frameworkが習得できたときは、正社員、フリーランスのいずれでも案件獲得可能ともいえますね。
Spring Framework案件は今後減少する?増加する?
今のところ案件が急増する要素はありませんが、急減する要素もありません。堅調な案件数の推移を維持するでしょう。そもそも、Javaのフレームワークとは?
Javaのフレームワークで、現在も開発中、今後も安定して使われるであろうフレームワークは?といえば、実際問題としてPlay FrameworkとSpring Frameworkしかないのです。JavaのフレームワークとしてJavaEEも名前に挙がります。しかしJavaEEの所有権を持つOracle社、仕様の策定をするJavaEEコミュニティの関係が良好でなく、結局はOracleが手放しました。JavaEEはOracleの手を離れてEclipseファンデーションへの移管が決まっており、名前もJakartaEEへと変わります。
そもそも、JavaEEは「仕様」であり、具体的なツールではありません。同時によく語られるJSFも一般的に使われるには至りませんでした。サーブレットとJSPだけでWebシステムを構築するのも現実的ではありません。
SeasarやStrut1系は開発が終了しましたし、Struts2系も今までのセキュリティホールの問題で心象がよくなく、技術的にも今以上伸びる要素は見当たりません。案件情報を見ていても、JavaのWeb系案件のほとんどがPlay FrameworkとSpring Frameworkで占めています。対抗馬がいないのです。
よほどJavaで有力なフレームワークが出てこない限り、Spring Frameworkは今後も順調といえるでしょう。
Spring Frameworkのフリーランス求人案件トレンド
もう一度、併記されることの多いキーワードを見て見ましょう。- AWS、クラウド
- Java8
- 4系
- Struts
- サーバーサイド、インフラ、API
「プログラマですから」と言ってしまえばそれで話が終わりです。「個人レベルでHerokuやAWSへデプロイしたことがあります」といえば、面談先のあなたに対する心象が変わること請け合いです。
あと、WebAPIは押さえておきましょう。WebAPIとは、提供者がURLとパラメータを公開し、利用者はそのURLに対してパラメータを渡し、欲しいデータを得るためのものです。例えばYahooや楽天、アマゾンがWebAPIを公開しています。
Spring FrameworkもこのようなWebAPIを作るのはお手の物で、それが理由でインフラ系でもSpring Frameworkの求人があるのです。
Spring Framework求人案件の単価相場は?
Spring Frameworkの求人案件における、単価相場を調査しました。規模の小さいスタートアップ企業は、PHPやRubyを採用する傾向があります。ところがSpring Frameworkを使って生産性の高い開発をしようと考えるような企業は、そこそこの規模の企業です。現に本記事を執筆するときの調査では、IT業界では誰でもが知っているような有名企業の案件も見つかりました。
さて、そんなSpring Frameworkの単価相場とはどんな感じでしょうか?
実務未経験
スクールに通っていないというような「完全未経験」では、残念ながら案件を獲得するのは難しいです。調査した結果、ほとんどの案件がSpring Framework以外のインフラ系の知識を必要としています。つまり、普通のJavaエンジニアですら敷居が高いのです。そんな中、完全未経験の方が案件獲得するのはほぼ不可能ということになります。
実務経験半年
350万円(週5勤務)実務経験1年間
400万円(週5勤務)実務経験2年間
450万円(週5勤務)実務経験3年間以上
600万円(週5勤務)実務経験5年間以上
800万円(週5勤務)Spring Framework案件で年収・収入を上げるポイント
フルスタックエンジニアを目指すことです。
「Spring FrameworkはWebシステムを開発するためのフレームワーク、コーディングさえできればよい」そう思っていては視野も広がらないし、数あるSpring案件に応募しても案件を得ることは難しいでしょう。
Webシステムをインフラからユーザーまで含めた集合体と考えて、そこでのSpring Frameworkのできることはどこまでか、と捉えるのです。実際、Spring Frameworkができることは広範囲に及びます。広範囲に捉えられてこそ、Spring Frameworkを活かせるというものです。
Spring Framework案件で週2~3日常駐はあるの?
ほぼ無いと考えた方がよいでしょう。Spring Frameworkでヒットする案件は、ほぼすべて週5勤務かつ常駐でした。SpringがというよりJavaの開発そのものに、規模が大きく複雑なものが多く、週に2〜3日でできるものがないのです。その影響を受けているのでしょう。
Spring Framework案件で在宅ってあるの?
これも、調査した限りでは見当たりませんでした。Javaの開発そのものが複雑なので、仕事を切り出して在宅で、という案件はありませんでした。フリーランスや正社員案件に限らず、副業案件ですら在宅でのSpring Framework案件はありませんでした。
よって本当に在宅を重視するのなら、Spring Frameworkを使っている、かつ会社として在宅を勧めている企業に入社するしかなさそうです。