RDBMSとNoSQLを徹底比較!特徴からそれぞれのメリット・デメリットまで、わかりやすく解説!

RDBMSは誕生当初破壊的イノベーションと言われる様なデータベースで、今もなお多くの企業で利用されています。しかし情報量やデータ量の増加に伴いより適した形のデータベースシステムとして誕生したのがNoSQLです。本記事ではそんなRDBMSとNoSQLの特徴からそれぞれのメリット・デメリットなど分かりやすくまとめてみます。

 

RDBMSからNoSQLへ

 

 

RDBMSは階層型データベースが主流だった1960年代に誕生し、1970年からは多くの企業がRDBMSを利用したサービスを開発し、データベースの主要システムの座を奪いました。しかし時代が経つにつれてRDBの処理が重かったり、分散性がなかったりという点に不満視する声が広がり、今のニーズにあったデータベースシステムがあっても良いのではないか?という声からNoSQLが誕生しました。

 

RDBMSとは

 

 

RDBMSはRelational Database Management Systemの略で、その名の通り関連性のあるデータを表形式( Excelのように)で紐づけて管理するデータマネジメントシステムです。データベースのやりとりにはSQLという言語が使用されます。

RDBMSでは表形式のデータをテーブル、項目をカラムと呼びます。例えば商品についてデータをまとめているテーブルが有ったとして、その中に商品番号・商品名・商品IDというカラムを作成し、データを格納するという感じです。

各カラムは別のテーブルと紐づける事が可能で、上の例を使うと商品IDと商品の販売店舗テーブルを紐づける形です。

このようにデータの定義や関係性を厳格に行う事で複雑なデータ構成にもが対応する事ができます。

 

NoSQL

 

NoSQLとは

 

 

NoSQLはNot only SQLの略で、RDBMS以外のデータベースシステムを表す際に使用されます。RDBMSが対応しきれなかったような所を改善するために開発されており、SQL言語を使用しなくてもデータベースを使用する事が出来ます

 

一般的にNoSQLはキー・バリュー型のデータベースを指して使用される事が多いです。キー・バジュー型はその名の通りキーに値が付いたシンプルなデータベース構造で、商品1=りんご、商品2=みかん、といった感じです。

他にもXMLやJSONといったデータ構造を容易に変更することができるドキュメント型のものなど、様々なサービスが有ります。

 

RDBMSとNoSQLの違い

 

 

NoSQLはRDBMSが対応できない部分を改善するために生み出されたため、2つは大きく違います

RDBMSは複雑なデータベースでも厳格に設計できるような仕組みになっており、格納されたデータを処理するためにSQL言語が使用されます。一方NoSQLはSQL言語を使用しなくても一般のプログラム言語でデータを呼び出せるような自由な設計になっています。

これは、RDBMSとNoSQLが誕生したきっかけにも関係してくるのですが、両者には処理速度やデータの分散化といた分野で得意不得意が有ります

次の項目からそれぞれのメリットとデメリットを紹介し、より具体的にそれぞれの違いについて説明しますが、両者の違いについて分かりやすいように表でまとめてみます。

 

RDBMS NoSQL
分散性 ×
拡張性 ×
一貫性 ×
検索 ×

 

 

それぞれのメリットとデメリット

 

RDBMSのメリット

 

 

RDBMSはデータ処理の一貫性が保証されているというメリットがあります。

データベースの処理が正常に行われた場合結果が表示され、処理が正常に行われない場合は処理前の状態に戻ります。この処理についてエンドユーザーは確認する事ができず、結果のみを確認する事が出来ます。

また複数のテーブルを連結されてデータベースを構成する事で、追加・削除・更新といった処理コストを低減させる事が可能になります。

更に複雑なデータ構成での検索や集計もSQL言語を使用することで正確に引き出すことができます。

 

NoSQLのメリット

 

 

 

NoSQLはデータの処理速度が早いというメリットが有ります。

NoSQLはデータの一貫性やバリデーションといった機能を排除し、サーバーを水平分散できるようにしました。そのためデータの処理速度を比較的早くすることが可能になりました。

また、データが大規模になってきてもサーバーを水平分散させる事ができることから必要な分だけ自由に拡張する事ができる様になります。

度々出てきている水平分散とは、1つの仕事を複数台のコンピューターが協力して行う事ができるようにすることです。

 

Geekly Media ライター

とげみ

1+

ApacheとNginxを徹底比較!両者の違いや、それぞれのメリット・デメリットまで、分かりやすく解説します

数多くあるWebサーバの中でも根強い人気がある「Apache(アパッチ)」と人気急上昇中の「Nginx(エンジンエックス)」。Webサーバはシステムの基盤の重要な部分です。理解せずに使うとクライアントへのレスポンスにも影響を与えます。本記事では「Apache」と「Nginx」のWebサーバを比較しながらメリット・デメリットを紹介します。

 

ApacheとNginxの基本情報

 

Apacheとは?

 

 

ApacheはApacheソフトウェア財団によって開発されたOSSです。元々は米国立スーパーコンピュータ応用研究所 (NCSA) が開発したNCSA HTTPdに改良という形で開発が行われていました。

その後、2000年頃にBrian Behlendorf(ブライアン・ベレンドルフ)の手によってソースコードは完全に書き換えられました。彼はApacheの基盤を作成した主要開発者です。

Apacheの正式名称はApache HTTP Server(アパッチ エイチティーティーピー サーバ)。

名前の由来はアメリカインディアンの一民族であるアパッチ族への尊敬の念を込めて付けられたのことです。

 

Nginxとは?

 

 

NginxはNginx,Inc.のCTOのIgor Vladimirovich Sysoev(イーゴリ・ウラジーミロヴィチ・シソエフ)によって開発されたOSSです。2002年に開発が始まり、2004年に初公開されました。

その頃もApacheのWebサーバが絶大な人気がありました。しかし、Apacheの仕組み上どうしても発生しうる問題がありました。それがC10K問題です。

その問題をきっかけにNginxが開発され始めました。

 

C10K問題とは?

 

「C10K問題」(クライアント1万台問題)とは、同時接続するクライアントが多すぎるとソフトウェア上の問題によりサーバーがパンクしてしまうことです。

例えば想定されるのがプロセス番号です。

UNIX系のOSの場合、メモリ上でプログラムに与えられるプロセス番号は符号付き16ビット整数と決まっています。言い換えるとプロセスは1~32767までの番号が割り付けられます。つまり、1リクエストに対して1つのプロセスを生成するWebサーバ(Apache)の場合、約3万リクエストが最大の同時接続数となります。

ハードウェアの性能上問題がなくてもアーキテクチャ(設計)によってはソフトウェアで上限が決まっているということです。

 

ApacheとNginxを比較

 

Webサーバのアーキテクチャ

 

 

上述しましたが、Apacheでは1リクエストに対して1プロセスが処理されます。

例えば100の同時接続があれば、100のプロセスが必要となります。数多くのプロセスが立ち上がるとプロセス番号の限界やメモリが大量に消費されてしまうという問題があります。

対してNginxでは1プロセスで複数のリクエストに対応します。

同時接続数の上限が設定可能で、具体的な設定パラメータを挙げると「プロセス数」と「プロセス内で最大の同時処理数」の乗算で上限が決まります。

例えば「プロセス数」を2つ、「プロセス内で最大の同時処理数」を1000に設定すると最大同時接続数は2×1000=2000となります。

 

処理能力

 

軽量なコンテンツの同時接続100アクセス状況下の実験結果、ApacheよりもNginxの方が1.2倍~1.5倍ほど高いという情報が出ています。更に同時接続数が増えれば増えるほど処理能力差が顕著に出てきます。

 

同時接続数

 

 

マルチプロセス(Apache)とシングルスレッド(Nginx)の違いからNginxはApacheの10~100倍ほど対応できると言われています。

 

適したコンテンツ

 

マルチプロセス(Apache)は動的コンテンツのような重たい処理が得意ですが、シングルスレッド(Nginx)は向いていません。

軽量なコンテンツはどちらも得意と言えますが、同時処理数が増えるとシングルスレッド(Nginx)が有利になります。

 

メモリ消費量

 

シングルスレッド(Nginx)は同時処理数が増えてもそれほどメモリ使用量は変わりませんが、マルチプロセス(Apache)はリクエストの量に応じてメモリが消費されます。同時処理数が少ない場合には両者にあまり違いはありません。

 

Geekly Media ライター

バスコ

1+

単体テストと結合テスト比較!技術的な違いからメリット・デメリットまで解説します。

システム開発で重要なのがテストです。システムの納品に至るまでには、ユーザーが望む機能が果たされていることや、エラーになってもシステムが止まらない作りになっているかを慎重にテストする必要があります。今回は、テストの中でも「単体テスト」と「結合テスト」について、技術的な違いやメリットとデメリットを交えてかいせつします。

 

単体テストとは

 

モジュールの動作テスト

 

 

ITシステムは、数々のプログラムの塊が集合することによって実現されています。ひとつひとつのモジュール(プログラムの部品)がしっかりと機能することで、システムとして成り立つのです。

自動車に例えるなら、ドアやタイヤなどの各パーツです。これらパーツのサイズや形が設計と違っていれば、組み立てても乗れない自動車になってしまいます。

システムも同じで、これらのモジュールひとつひとつに欠陥があれば、システムは動かない、あるいは誤動作を起こしてしまいます。

システムのモジュールに関しても、結合する前にモジュール単体でのテストを行います。ひとつひとつをしっかりとテストしておくことで、工程の手戻りを無くすことができるのです。

 

結合テストとは

 

モジュールを合わせた機能テスト

 

 

結合テストではモジュール単体でのテストをクリアしたモジュールと、その他外部モジュールを結合した状態でテストを行います。

自動車に例えると、本体やドア、タイヤといった部品をそれぞれ繫ぎ合わせ、設計通りにドアが開くのか、タイヤが連動して回るのか、それぞれに歪みがないかなどのテストです。

システムにおける結合テストも、モジュールを連携させた場合に、設計通り動くのか、あるいは想定外のオペレーションでのエラーでも、システムが止まることがないか(エラー処理や例外処理が入っているか)などをテストします。

結合テストを行うことで、ユーザーの業務に耐え得るシステムであることを確認します。

 

テストにも仕様書が必要

 

テストにも「テスト仕様書」が必要です。それは、テストパターンやその意味、テスト結果や原因までを記録していきます。

テストパターンでは、パターンに漏れがないように、全てのパターンを洗い出します。そして、パターンごとの結果も全て示しておく必要があります。

パターンについては、全てを網羅する必要があり、パターン漏れは許されません。ですので、ほとんどの場合マトリクスの表を作成します。

テスト仕様書は、ほとんどの場合作り手以外の人が読むことになります。他人が読み、実行することを意識して、読みやすく分かりやすいフォーマットと表現にしなければなりません。

テスト仕様書は、システムのテストが終了した後にも利用されるものです。何かしらの不具合が生じた時に、テスト仕様書を見ながら“問題のパターン”がテスト時点でどのような結果だったのか、また、どのようなアプローチでテストされたのかを確認し、根源を洗い出します。

単体テストや結合テストなどのテスト工程において、最も重要なモノがテスト仕様書なのです。

 

単体テストと結合テストの技術的な違い

 

単体テストではモジュールのプログラム把握が必要

 

 

単体テストで必要とされる技術は、その機能に特化した動作を把握していることと、動作するプログラムを熟知していることです。

単体テストでは、システムで使われる機能が細分化されたモジュールが完璧に機能していることを確認しなくてはなりません。

変数に入るべき値や、考え得る例外処理に至るまで、あらゆる角度からモジュールの機能をテストしますので、そのモジュールがどのように使われるのかを把握しておかなければなりません。

 

結合テストはモジュールを繋げた時の全体の把握が必要

 

 

単体テストを終えたモジュールを組み合わせた状態でテストを行います。この時必要な技術は、システムの全体的なデータの流れの把握です。

モジュール同士が繋がっているということは、システムに必要な機能は揃っているということで、ユーザーが行うオペレーションに近い動作で検証します。

モジュール単体では完璧に動くものでも、それらを結合すると不具合が起きる可能性があります。それはデータの受け渡しや、予期しないオペレーションによる例外処理などです。

また、結合テストでは、システムのセキュリティに及ぶまでを考慮してテストをする場合もあります。ですので、その業務に必要な技術の全てを把握しておくことも大切なのです。

 

単体テストを行うメリットとデメリット

 

メリット:ひとつのモジュールに特化して徹底したテストができる

 

 

単体テストを行う目的は、バグの無い完璧なモジュールを完成させるためです。そして単体テスト工程を行うことで、モジュールをしっかりとテストできるメリットがあります。単体テストが終わったモジュールの信頼性は高くなければなりません。

信頼性の高いモジュールを組み合わせることで、システムが機能するのです。結合テストにおいて、単体テストの信頼性はなくてはならないものなのです。

 

デメリット:コストがかかる

 

 

テストというイメージから、誰でもできてすぐに終わるという意識を持っている人が少なくありません。

しかし、単体テストでは、しっかりとシステムを把握しておかなければなりませんし、そもそも単体テストは非常にコストがかかるのです。

テスト仕様書やテストケースの作成でも工数がかかりますし、実際の単体テスト中にバグが見つかれば、その調査と改修を行わなければならないからです。

単体テストを見積もる際には、コーディングよりも大きなコストがかかることを意識しておかなければなりません。

 

結合テストを行うメリットとデメリット

 

メリット:品質が高まる

 

 

単体テストで信頼性のあるモジュールを結合しテストを行います。単体テストをクリアしたモジュールも、結合テストの段階で機能的な不具合や仕様バグが見つかることも少なくないのです。

結合テストで出た不具合は、最悪の場合モジュールの改修という手戻りを起こしますが、結合テストでモジュールバグや仕様バグといった致命的な不具合を洗い出すことが大切なのです。結合テスト経たシステムは、より品質を高めたシステムとなります。

 

Geekly Media ライター

佐久森

2+

CRMとは何?メリット・デメリットはある?今更聞けない基礎知識を徹底解説!

今回はCRMについて解説をしていきます。CRMとはどういったものなのかご存知ですか?あまりにも当たり前なものになっているため、「今さら聞けない」という方も多いのではないでしょうか?この記事では、CRMとは一体どういったものなのか、基礎知識やそのメリット、デメリットなどについて徹底的に解説していきます。

 

CRMとは?

 

 

まずは基本中の基本である「CRMとは何か」というところから解説をしていきます。

 

顧客管理のシステム

 

『CRM』とは、Customer Relationship Management(カスタマーリレーションシップマネジメント)と言って、簡単に言うと、顧客との関係性をマネジメントするシステムです。

日本語に訳すと顧客関係管理といいます。

企業と、顧客との関係性を管理するシステムであるということを理解してください。

 

CRMは単なる顧客の情報管理ではない

 

基本情報以上の管理が可能

 

 

顧客管理というと、顧客の基本情報を管理するシステムだと思われる方が多いと思います。

しかし、CRMはそれ以上の情報を管理できるシステムです。

基本情報とは、氏名、住所、電話番号といった、住所録的なイメージを持たれているのではないでしょうか?

しかし、住所録なら、エクセルなどで管理すればいいだけで、システムにする必要はありません。

 

CRMは、住所録的な働きだけではなく、購買履歴や、商談の内容、好みなどの細かな情報を管理することができます。

その細かな情報をもとにして、クライアントのニーズに則したアプローチが可能になります。

 

単なる顧客管理のシステムではなく、マーケティングが可能になる顧客情報管理システムになります。

 

CRMのメリット

 

 

CRMの概要、そしてCRMが重要なシステムであるということはご理解いただけたと思います。

 

しかしここで、「重要なのは分かったけれども、具体的にはどんなメリットがあるの?」という疑問が生まれてきます。

この項目では、CRM導入のメリットについて、解説していきます。

 

効率的な営業活動が可能

 

 

一番大きなメリットと思われるのは、『効率的な営業活動が可能』ということです。

顧客の情報を細部まで管理できるCRMは、顧客のニーズを把握することができます。

購入履歴なども管理されているため、いままでの履歴から、顧客の欲求を分析し、その分析結果に基づいてプロモーションを行うことで、非常に効率的な営業活動が可能になります。

 

手がかりもなく、がむしゃらに営業すると、当然、無駄足も増えます。

働き方も見直されている現代では、がむしゃらに営業することは、時代に逆行する手法といえます。

「下手な鉄砲数打てば当たる」みたいな営業手法では、非効率すぎて、営業個人としても成果をあげれなかったり、企業としても業績不振に陥りやすくなります。

 

顧客の情報を管理することが、企業の業績向上につながると言えます。

それだけでも、大きなメリットがあります。

 

顧客情報を一元管理が可能

 

 

CRM導入前の顧客の情報は、住所録的なものを除き、基本的には担当者がより詳しく把握していました。

というよりも、担当者しかきちんと理解できていないというほうが、正しいでしょう。

システムを使うことで、こうした属人化を避け、顧客の情報を一元管理することができます。

 

また、部署をまたいでの顧客管理をすることで、顧客の情報を引き出すことができて、営業以外にも活用が可能になります。

例えば、顧客のニーズを分析することで、顧客が望む製品の開発を進めることができたりします。

 

その他にも、イベントやセミナーの情報を開催する際にも、どのようなイベントを望んでいるのか、どのようなセミナーを開催することで集客が望めるのかなどを検討することができます。

 

このように、顧客情報を会社全体で一元管理することで、会社全体の利益を高めることができます。

 

Geekly Media ライター

Terrace Factory

0

SES契約とは?メリット・デメリットを徹底解説します!

皆様はIT業界で採用されている「SES契約」というものをご存知でしょうか?派遣契約や請負契約といったものは聞いた事があるかもしれませんが、それらの契約とは異なるタイプの契約方法なんです!そんな「SES契約」に関して、どんなものか?メリット・デメリットは何か?という点を踏まえて、徹底的解説していきます!

 

SES契約とは?

 

 

名称について

 

まず名称に関してですが、SES契約のSESは「System Engineering Service」の略で、日本語で翻訳をすると、システムエンジニアリングサービスという訳になります。

読み方としては、上記の翻訳通りシステムエンジニアリングサービス契約と称したり、システムエンジニアリング契約と呼称されることが多いので覚えておきましょう。

 

基本情報

 

では、続きまして、そもそもSES契約とは何か?と言う点に関して基本情報を解説させていただきます。

SES契約は、IT業界で採用されている、エンジニアを雇用する際に用いられる契約方法の内の1つになり、分類としては準委任契約に分類されます。契約内容としては、エンジニアの能力が契約対象になりますので、成果の有無や出来を問わず、エンジニアの作業した時間や工数に対して報酬を支払う、といった契約内容になります。

契約の内容的に似通っている部分があったり、違いをよく理解をしていないと、派遣契約や請負契約と同じような扱いをされてしまうこともあります。ですが、実際は異なる契約内容になりますので、混同してしまわないよう注意が必要です。

この部分の違いに関しては、以降の項目でもう少し掘り下げて解説をさせていただきますので、そちらをチェックしてみてください。

 

SES契約と派遣契約との違い

 

 

ここからは、先程の項目内でもお伝えした通り、SES契約とその他の契約の違いに関して個別に解説をさせていただきます。まずは、SES契約と派遣契約との違いに関しての説明になりますので、チェックしてみてください。

 

指揮命令系統の所在

 

まず大きく異なるのが、指揮命令系統の所在です。SES契約では指揮や命令を行うのが受注した側の企業になるのに対して、派遣契約では指揮や命令を行うのが発注した側の企業になります。ですので、SES契約の場合は、エンジニアに対して、発注した側の企業が作業指示や労務管理等を行うことができない、というポイントが派遣契約と大きく異なる点になります。

 

契約期間の違い

 

もう一点、大きく異なるポイントとして挙げられるのが、契約期間になります。SES契約ではプロジェクトが終了した後も、その企業で引き続き業務を行うことが多く、他の企業に移って業務を行うということは少ないです。(案件が変わった場合は、出向する企業が変わることもありますので補足しておきます。)

それに対し派遣契約では、最初に決められたプロジェクトが終了した段階で、他の企業に再度派遣される、という形がほとんどになりますので、こちらも大きな違いと言えるでしょう。

 

SES契約と請負契約との違い

 

 

では引き続き、SES契約と請負契約との違いに関しても説明させていただきますので、こちらもチェックしてみてください。

 

契約内容の違い

 

最初の基本情報の項目内でも説明したので、おさらいになってしまいますが、成果の有無に関わらずエンジニアの作業した時間や工数に対して報酬を支払うのがSES契約になります。それに対して、挙げられた成果や成果物に対して報酬を支払う、という契約が請負契約になります。

上記のような内容の違いがある為、挙げられた成果や成果物に問題(納期の遅延や不良品等)があった場合の対応もそれぞれで異なってきます。このような状況になった場合、SES契約の場合は責任を負う必要はありませんが、請負契約の場合は責任が生じ、賠償請求等の責任を取る必要が出てくるのです。

 

納品後の対応の違い

 

納品を行った後にエラーやバグが発生した際、その対応にかかる費用に関してもそれぞれの契約で内容が異なってきます。SES契約の場合は有償で対応を行うのが基本になりますが、請負契約の場合は基本的に無償で対応を行うという形になり、そちらの違いについても、二つの契約の大きく異なるポイントと言えるでしょう。

 

SES契約のメリット

 

 

SES契約の基本情報や他の主な類似契約との違いについて分かったところで、一番気になるメリットとデメリットに関しての説明に入りたいと思います。まずはメリットからご紹介していきます。

 

スキルを保有した人材の確保が容易になる

 

最近、ニュースや新聞等でも取り上げられていますが、多くの業界で人材不足というのが大きな問題となっており、この問題に関しては、残念ながらIT業界においても例外ではありません。また、企業側から見た時、人材を確保するにあたって、研修や教育等が必要となってくるため、なかなか容易に人材確保を行うことができない、という現状にあるのも事実です。

ですが、SES契約を活用すれば、欲しているスキルを保有している人材と契約を行うことができ、研修や教育等を行わずに人材の確保を行うことが可能になりますので、企業とエンジニアの双方にとって大きなメリットになる、と言えるでしょう。

 

エンジニアとしてのスキルアップが見込める

 

 

SES契約の場合、企業に出向して業務を行うことになりますが、各企業やそこで働いている人等の違いによって、案件の種類や考え方・文化等が異なってきます。そういった、環境の違う中での実務を経験することで、今まで知らなかった知識やノウハウ等を学ぶことができますので、エンジニアとしてのスキルアップが見込めます。

 

正社員として雇用される

 

SES契約の場合、正社員扱いとして雇用されますので、安心して働くことができるという点があるのも忘れてはいけないでしょう。また、正社員扱いではありますが、色んな企業や環境で働くことができる、という少し特殊な環境になるのもユニークなポイントです。

過去にIT業界で働いていた実績があったとしても、IT業界に中途採用で復帰する、というのは簡単な事ではありませんが、SES契約なら比較的スムーズに話が進むケースが多い、というのも特徴的です。

 

Geekly Media ライター

クラウドマン

0

【徹底比較!】Unity vs Unreal Engine!どう違うの?ゲームエンジンの説明からメリット・デメリットまで解説します!

ゲームの開発ツールとして、UnityとUnreal Engineなどのゲームエンジンは非常に人気で、個人の製作現場から大手企業まで様々な形で使用されています。そんなゲームエンジンですが、そもそもどういったものか?どのような使われ方をしているのでしょうか。本記事ではそんなゲームエンジンについてメリットやデメリットをご紹介します。

 

ゲームエンジンとは?

 

 

ゲームエンジンとは、名前の通りゲームを動かすためのエンジン的な役割を持つ開発環境です。ゲームで使用される共通の処理をまとめて開発に使用することを可能にしており、コンピューターゲームの総合的な開発環境として多くの人が利用しています。

昔のゲームエンジニアは、それぞれの会社や個人が自作でアルゴリズムを製作していたため、一からゲームを作成することが非常に大変でした。ところが、過去に作成されたアルゴリズムを元に開発したり、オープンソースでライブラリーとして共有されたりする中で、同一の環境でオブジェクトを製作したり、視覚的にデザインを変更する追加することで、ゲームの開発に関わる総合的な環境を作ろうという動きが生まれゲームエンジンが誕生しました。

 

Unity

 

Unityとは

 

 

Unityはアメリカのユニティ・テクノロジー社が運営しているゲームエンジンで、2Dはもちろんのこと、3Dのゲームを手軽に製作することが可能です。また、製作したゲームを実行できる段階までUnity上で行うことができるため、ゲームエンジンの枠を超えた超総合的な開発環境となっています。

白猫プロジェクトやPokémon Go などを始めとする多くの有名な作品にも採用されています。

プログラミングができない人でも視覚的にキャラクターを操作したり、デザインを変更したりすることが可能です。よりこだわって動きを調整したい場合は「Javascript」「C#」「Boo」の3つの言語で操作することができるため、簡単な製作物から本格的な物まで幅広く対応してくれます。

 

Unityのメリット

 

様々なプラットフォームに対応

 

 

 

様々なプラットフォームで出力することが可能で、Unityの公式によるとモバイルやVR機器、デスクトップなど合わせて24のプラットフォームに対応しています。

 

・モバイル向け

Universal Windows Platform, iOS, Android

 

・VR/AR向け

Google Cardboard Android & iOS, Oculus, Steam, Playstation VR, Gear VR, Windows Mixed Reality, Daydream, Apple ARKit, Google ARCore, Vuforia

 

・デスクトップ向け

Windows, Mac, Linux, Universal Windows Platform, Facebook Gameroom

 

・コンソール向け

PS4, XBOX, 3DS, Nintendo Switch

 

・Web向け

WebGL

 

このように一度作成さえすれば、様々なプラットフォームで自分のゲームを動かすことができます。

 

豊富なアセットを提供するストア

 

 

Unityでは開発者が自身で作成したアイテムやキャラクター、アニメーションやスクリプトといった素材を販売・提供することができるストアが有り、その量が非常に豊富なため自分で作成しなくても簡単に素材を手に入れることができます。

大半が有料で提供されていますが、無料で提供されている物もあるので素材で困ったら確認してみると効率的に製作することが可能になります。

 

無料で使用することができる

 

 

Unityには無料で使用することができるPersonal版が提供されており、収入や資金が10万ドルを超えない人はこれを利用することが出来ます

大々的な製品化を目指していないのであれば無料版でもかなり充実した機能を使用することが出来るため、ゲームの開発初心者にとってはかなり有難い製品設計になっています。

個人で本格的に開発したいという方向けには月25ドルの年間プランが、チームで開発したい方向けには月125ドルのプランが提供されています。

 

Unityのデメリット

 

 

Unityに大きなデメリットは無いのですが、強いて挙げるのであればその充実性が故にアプリケーションの起動が遅かったり、編集画面に英語が頻繁に使われていたりすることが挙げられます

とはいえ、日本語のプラグインをインストールすれば日本語化出来ますし調べれば簡単に理解できる英語が多く使用されているため、プラグインさえすれば簡単に利用できます。

 

Geekly Media ライター

とげみ

1+

ASPとは?使ったら何ができる?メリット・デメリットまで分かりやすく解説

あなたはASPについてどれくらい知っていますか?今回はASPとはどんなもので何ができるのかやメリット・デメリットについて分かりやすく解説していきます。ビジネスを成功に導く可能性を秘めているASPについて理解してくださいね。

 

ASPとは?

 

 

そもそもASPとは、Application Service Provider(アプリケーションサービスプロバイダ)の略称の事で、アプリケーションソフトの機能をネットワーク経由で顧客に提供する事業者やサービスを指す言葉です。

アプリケーションソフトの機能をネットワーク経由で顧客に提供するとは、通常アプリケーションというのは自分の端末にダウンロードして使用します。

例えばスマホゲーム等のアプリケーションを利用する際、アプリケーションをインストールしてから遊びますよね。

 

しかしASPというサービスは、自分の端末にアプリケーションをインストールする必要がないのです。

なぜならばASPサーバーにアプリケーションが保存されているので、そこにアクセスしてアプリケーションを利用すればいいからです。

インターネット等のネットワークを経由して、ASPサーバーに保存されているアプリケーションを利用することができるというのが、ASPというサービスなのです。

ASPというサービス自体は昔からありましたが、インターネットが普及し始めた2000年代によく使われるようになり、ネットが様々なビジネスにとって必要不可欠になっている現代でも重宝されています。

 

ASPは何に役立つのか?

 

 

ネットワーク経由でアプリケーションを利用することができるASPですが、次にそれを使って何をする事ができるのかについて説明していきます。

ASPが使われる主な一例としては、

営業管理・顧客管理・ICT資産管理・販売管理・在庫管理・財務会計・給与会計といった会社の経営管理の部分のサポートであったり、グループウェア・オープンソース開発のコミュニティ基盤などの仕事をする上での支援、インターネット上のウイルスや風評被害のチェックなどの危機管理などに使われます。

他にも様々な使い方があり、ビジネスを効率的に進め成功に導くための重要なファクターとなりえるサービスなのです。

 

ASP導入のメリット

 

ASPの使われ方について説明しましたが、営業管理・顧客管理・ICT資産管理・販売管理・在庫管理・財務会計・給与会計など先ほどあげた例は、どれをとってもASPを使わなくてもすることができるように思える仕事です。

しかし、実際はASPを利用して行っている企業が多くあるのは何故なのでしょう。

次はASPを導入するメリットについて説明していきます。

 

コスト削減ができる

 

 

まず一つ目にあげられるのは、コストを抑えて導入することができるという点です。

コストを抑えられる理由としては、初期コストとランニングコストを抑えることができる点があげられます。

何故初期コストが抑えられるかというと、ASPサービスは自社の端末にインストールするものと比べて、比較的安価で導入することができるためです。

ASPの場合は初期設定費と利用期間中の月額費用だけ払えばよく、高額なシステム開発や構築費用やライセンス費用などを払う必要がないのです。

 

また基本的には月々のサービス利用料を払えばいいだけで、サーバー維持費や保守・点検・改善・運用といったコストをかける必要がなく、月々の出費も計算しやすいのでランニングコストも抑えられるのです。

 

手間がかからない

 

 

導入・運用・解約等様々な際に手間がかからないのも、ASP導入のメリットといえます。

ASPはインターネットに接続可能なパソコンさえあれば、申し込み後すぐに利用することが可能です。

申し込んでからのタイムラグがないのは、スピードが重要な近年のビジネスでは非常にありがたいですし、導入の際に新しいシステムをインストールするといった特別な準備をする必要がないので、インストールに時間を取られたり間違って違うシステムをインストールしてしまいトラブルになる等の手間も軽減することができます。

 

ASPサービスの多くは、自動でバージョンアップやバックアップを取ってくれます。

また、システム維持や運用管理はASPサービスを提供している会社が行ってくれるので、アップデートに時間を取られたり、運用知識がない人でも手軽にバックアップなどの運用をしていくことができます。

解約する際もASPを提供している企業に対して、電話やメールにて解約希望を伝えるだけで完結するため解約時の手間も省くことができます。

 

管理システムが不要

 

 

システムの構築はASPを提供している会社が行うので、わざわざ自社で初期設定や管理をする必要がありません

管理者の負担を減らすことができるので、その分他の仕事をする事ができます。

 

ASP導入のデメリット

 

 

 

このように導入することで様々なメリットがあるASPですが、メリットだけではなくデメリットもあります。

次は導入する事によって発生するデメリットについて説明していきます。

 

カスタムができない

 

 

まず一つ目のデメリットとしては、カスタムすることができないという点があげられます。

ASPはあらゆる業種・業態の方が使うことができるような仕様になっており、各業界の特殊な仕様には適応できない場合があります。

そういう場合でも、システムの構築や運用はASPを提供している会社が行っているので自分好みにシステムを変換してくことができません。

そのため、会社独自に使いやすいシステムにカスタムしてくことはできません。

 

導入する前に、自社で使いやすいシステムなのかをしっかりチェックしておくことが重要です。

 

Geekly Media ライター

1+

オフショア-ニアショアを徹底解説!それぞれどんなメリット・デメリットがあるか、分かりやすく解説します!

システム開発を海外や国内の地方へ委託することで、人件費などのコスト削減を実現する手法をオフショア開発やニアショア開発と言います。オフショアとニアショアへ期待する効果は似ていますが、それぞれの特徴を把握することで使い分ける必要があるのです。そこで今回はオフショア/ニアショアのメリットとデメリットを分かりやすく解説します。

 

オフショアとは

 

そもそもオフショアとは沖合を意味する用語で、大きくは「海外」を意味しています。金融用語として広まったオフショアという用語はその後、システム開発を海外のエンジニアへ委託する意味で「オフショア開発」と使われるようになりました。

主に中国やインド、そして東南アジアを中心にシステム開発の委託が行われ、日本国内では実現できなかった大幅なコスト削減に成功しています。

 

オフショア開発の目的

 

 

システム開発におけるオフショア開発は、大幅な開発コスト削減を目的として行われます。削減されるコストは人件費であり、安価で技術力のある人材が豊富な東南アジアへのアウトソースを主とします。

昨今では、日本国内のITエンジニア不足が深刻ですが、オフショア開発ならばその煽りも受けにくいという特徴も表れてきました。

 

ニアショアとは

 

オフショア開発が海外という遠方への業務委託を指すのに対し、ニアショアとは比較的近い場所である日本国内の地方都市へ業務委託する手法です。

 

ニアショア開発の目的

 

 

ニアショア開発の目的もまた、コスト削減です。東京近郊と地方の人件費を比較した場合、システム開発を地方都市へ委託した方がコスト削減に繋がることから、ニアショア開発にも注目が集まったのです。

 

オフショアのメリット

 

大幅なコスト削減

 

 

オフショア開発のメリットは、システム開発における大幅な人件費などのコスト削減です。日本と比較して、中国やインド、また東南アジアでは、大きな経済格差があります。それに比例して、人件費も非常に安く抑えることができるのです。

また、IT技術に関しては非常に優秀な人材が多いため、システム開発を海外に委託するオフショア開発が注目を集めています。

 

日本よりも人材の確保が容易

 

 

現在の日本では、ITエンジニア不足が顕著になっています。しかし、東南アジアを対象にエンジニアを探すことで、人材不足という問題を解決できるのです。

特にベトナムなどでは、年齢も若く技術力も高い人材が豊富です。そこでオフショア開発を目指すことで、システム開発における必要人材を比較的容易に見つけることができます。

 

オフショアのデメリット

 

開発チームとの距離がある

 

 

安くて豊富な人材を獲得できるオフショア開発ですが、海外の開発拠点は物理的な距離の遠さがデメリットとなります。開発チームとの打ち合わせは主にSkypeなどを通すことになりますので、直接開発現場を見るということが困難です。

 

言語の違い

 

 

海外の人材は基本的に英語でのコミュニケーションとなるでしょう。日本語のニュアンスを正しく伝えることが困難な場面は多くあります。

システム開発において、仕様の意識統一は必須です。ですので、言語の壁を意識レベルまで克服する能力が必要となります。

もちろん、オフショア開発チームを提供している企業へ委託することは可能ですが、自社で直接オフショア開発チームを持つ場合と比較すれば、他社サービスを利用するコストはかかってしまいます。言語の違いはオフショア開発の大きなデメリットとなるでしょう。

 

管理に手間がかかる

 

 

オフショア開発における全体的な管理は、基本的にインターネットを通した遠隔管理となります。ITツールを使うことで物理的な距離は克服できますが、自社内や日本国内で管理するプロジェクトよりも遥かに手間がかかるのは事実です。

進捗管理や問題解決における迅速な対応が難しい場面もありますし、品質管理にはより気を配る必要も出てくるのです。

 

現地責任者の育成に時間がかかる

 

 

オフショア開発では、開発現場はもちろん海外ということになります。ですので、現場責任者となるSEの育成を行わなければなりません。

日本から責任者を常駐させる方法もありますが、現地のエンジニアに責任者を任せる場合もあります。その際には、日本の働き方を含めて、文化的な面についても育成しなければ、日本と開発現場の足並みを揃えることが難しくなります。

 

Geekly Media ライター

佐久森

1+

『jQuery』でできることってなに?!その特徴からメリット・デメリットまで幅広くご紹介します!

jQueryってなに?できることは何なの?という風に思っているなら今回の記事は役に立ちますよ!jQueryの特徴からメリット・デメリットまでを幅広く紹介していきます。実は意外と多くの企業や開発者がjQueryを利用しているので、これを機に注目してみてはいかがでしょうか?初心者でも入りやすいこともあり、プログラムの一歩にしてみてもいいでしょう。

 

jQueryとは?

 

 

簡単に説明するとJavaScriptをより簡単にしたものがjQuery(正確にはJavaScriptのライブラリである)となります。JavaScriptとはプログラム言語の一つであり、主にWebサイトやWebアプリケーションで使用されることが多いです。jQueryもJavaScript同様、WebサイトやWebアプリケーションで使用されることが多いです。2006年にアルファ版が登場し、2018年1月にはバージョン3.3.0をリリースしました。

プログラム言語としてはまだ新しい部類に入る言語ですが、使いやすさや手軽さから多くの開発の現場で使われています。

 

jQueryの特徴

 

 

jQueryの特徴はとにかく簡単にHTMLCSSを操作できることにあります。たったの数行を書くだけでユーザーにとって嬉しい機能を盛り込むことができます。たとえば、「ページのトップに戻る」ボタンは多くのWebサイトで採用されています。これもjQueryなら簡単に実装することが可能です。

他にもマウスオーバーすると画像が変更、スライドパネル、フェイスブックやTwitterへのリンクなども簡易的に行えます。

 

jQueryでできることは?

 

 

jQueryには主に3つの機能があり、それぞれできることが違います。どんなものがあるのか見ていきましょう。

 

DOM

 

DOMとはDocument Object Modelの略でありHTMLを操作するための仕様です。ドキュメントをオブジェクトのように使うモデルという意味になります。ドキュメントとはHTMLファイルにある<p>や<img>などを指します。このドキュメントを直接操作することができるのがDOMになるのです。

たとえばDOMを利用することで、あるボタンをクリックするごとに特定の位置に移動することができます。または画像を暗くしたり明るくしたりすることも可能です。通常HTMLファイルにあるドキュメントは簡易的に操作できないのですが、jQueryを使うことで簡易的な操作を可能としています

 

アニメーション

 

jQueryはアニメーションも簡易的に行えます。現在はCSS3が登場したことで、簡易的なアニメーションができますがCSS3に対応していないブラウザでは利用することができません。jQueryはJavaScriptのライブラリであるため、古いブラウザでも対応することが可能です。タイマーを使って、アニメーションさせることで動きのあるページを作ることができます。

 

Ajax

 

Ajaxとは外部ファイルを読み込む機能です。たとえば最近、企業ページや施設ページのアクセスにグーグルマップを載せていますよね?実はこれはAjax機能を使っているのです。自社の地図を作成したわけでも、グーグルマップのような機能を作成したわけではありません。自身のページにグーグルマップの機能を読み込んでいるだけなのです。Ajaxのお陰で幅広い対応ができ、簡易的にWebサイトのコンテンツを豊富にすることができます。グーグルマップのほかにもGmailやTwitter、youtubeなどもWebサイトに組み込むことが可能です。

 

jQueryのメリット

 

 

jQueryのメリットは主に3つありますので見ていきましょう。

 

コードを短く書ける

 

 

JavaScript自体が簡易的にプログラムできる言語なのですが、jQueryは更に簡易的にプログラムを作成することができます。コーディングが短いので、すぐに実装できること、バグが見つかっても追いやすいという利点があります。特にすぐに実装できる点には注目すべきではないでしょうか?現代の仕事の多くはスピードが求められており、早急な対応が必要とされています。

コーディングが短く済むのであれば、その分作業時間も減ることは確実です。効率さを求めるのであればjQueryを利用することは大きいメリットと言えるでしょう。

 

ブラウザごとの対応をしなくてもいい

 

インターネットエクスプローラーやファイアフォックス、グーグルクロームなどウェブブラウザは多様にあります。Web関連の仕事をしている場合、特定のブラウザで何かしらの不具合が出てしまうことは良くあることです。たとえばインターネットエクスプローラーでは問題ないのにファイアフォックスではバグが発生することもあり得る話です。

この問題は各ブラウザごとに仕様があるために起こることです。しかし、jQueryを使う場合は気にする必要はありません。それぞれのブラウザごとの挙動を吸収してくれているため、開発者は純粋にコーディングに集中することができるのです。

 

豊富なプラグイン

 

プラグインとは拡張させるためのプログラムといえばわかりやすいでしょう。ゲームでわかりやすく解説するのであれば、魔法使いに火の魔法書を読ませて、火の魔法を使えるようにするということです。jQueryのプラグインもまた、何かしらの処理や効果をプラグインを付けることで対応できるようになるのです。

jQueryにはさまざまなプラグインがあります。たとえばスライドバーを簡易的に作成できるプラグイン、クリックすると波紋が出るように機能追加することができるプラグインなど多岐にあふれています。フリーで手に入るプラグインもあるため、究極的なことを言ってしまえばないものがないと言ってもいいかもしれません。

 

Geekly Media ライター

gibson

0

【パッケージシステム】導入のメリット・デメリットを徹底解説!

仕事や生活を便利にしてくれている様々なシステム。そのシステムの中には『パッケージシステム』と呼ばれるものがあるのは、ご存知ですか?「そんなの知っているよ!」という方も多いと思いますが、本当に理解されていますか?今回は「今さら聞けない!」というパッケージシステムについて、徹底的に解説していきます。

 

パッケージシステムとは

 

すでにできているシステム

 

 

既にご存じの方も多いと思いますが、改めて再度『パッケージシステム』について確認をしたいと思います。

『パッケージシステム』とは、既に出来上がっているシステムのことを言います。既製品のことですね。

 

例えば、洋服です。

量販店で洋服を買うときには、既に出来上がっている洋服が店舗に並んでいます。

店舗にある、既に出来上がった洋服の中から、自分が気に入った洋服を買うと思います。

上記の例だと、既に出来上がっている洋服(製品)を購入します。

 

これをソフトウェアに当てはめると、既に出来上がっているシステム(ソフトウェア)を導入するということになります。

『パッケージシステム』とは、既製品ということになります。

 

独自開発システムとは

 

オーダーメイドで『0』から構築するシステム

 

 

『パッケージシステム』の対になるものが『独自開発システム』です。

これは、『パッケージシステム』とは違い、『0』からシステムを開発して、導入していくというシステムになります。

 

先ほどの洋服の例にしますと、『オーダーメイド』になります。

スーツをオーダーメイドするとしましょう。

まずは体に合ったものを作るための採寸をして、素材となる布を選びます。

スーツの型を決め、詳細を決めていきます。

その後。いよいよ制作します。

一点ものを作るので、職人の手作業になり、時間がかかります。

このようにして作られたスーツは、オーダーした人にピッタリのものとなります。

 

システムも同様に、完全オーダーメイドで、需要に合ったシステムを構築、導入することができます。

『独自開発システム』とは、需要に合わせて『0』からシステムを構築、導入していくオーダーメイドシステムのことです。

 

『パッケージ』と『独自開発』はどっちを導入すべき?

 

 

『パッケージシステム』と『独自開発システム』については、ご理解いただけたと思います。

双方のシステムに違いがあります。

実際に導入する際には、どちらのシステムを導入すると良いのでしょうか?

この項目では、その比較をしていきます。

 

簡単に比較はできない

 

 

『パッケージシステム』と、『独自開発システム』のどちらを導入すべきかは、簡単に答えは出ません。

なぜなら、どちらにも導入するにあたってのメリット、デメリットがあるからです。

『パッケージシステム』のメリット、デメリットについては、後の項目にて紹介していきます。

この項目においては、『独自開発システム』のメリット、デメリットについて紹介することで、どちらのシステムを導入すべきかが、簡単に答えが出せないということを解説していきます。

 

『独自開発システム』の最大のメリットは、必要に応じて自由にシステムを構築することができるという点です。

業務系システムでは、会社の業務に合わせたシステムを自由に構築することができます。

余分な機能がなかったり、必要な機能を使い勝手の良いインターフェイスで構築することができる点は、大きなメリットです。

 

Geekly Media ライター

Terrace Factory

2+