ネスぺ試験直前に確認しておくこと
こんにちは、しぐれがきです。
本記事ではネスぺの試験直前に確認しておくことを整理しました。
IEEEの区分やポート番号など覚えにくいことを直前で詰め込むためにまとめました。
目次
- 目次
- 参考
- RAID
- IEEE規格一覧(有名どころのみ抜粋)
- イーサネットヘッダのパケットフォーマット
- IEEE 802.11規格一覧(有名どころのみ抜粋)
- IPヘッダのパケットフォーマット
- IPアドレスのクラス
- プライベートIPアドレス
- 有名どころのマルチキャストアドレス
- ICMPのタイプとコード
- IPv6アドレスの分類
- ウェルノウンポート
- TCPヘッダのパケットフォーマット
- UDPヘッダのパケットフォーマット
- UDPを使うプロトコル
- HTTPヘッダ
- DNSレコードのタイプとリソースデータ
- DHCPの通信シーケンス
- SMTPコマンドのシーケンス
- DNSサーバのゾーン転送
- POPの通信シーケンス
- FTPの通信シーケンス
- SIPの通信シーケンス
参考
【(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度】
【ネスペ 27 礎 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)】
【ネスペ 26 道 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)】
【ネスぺの剣25 ~ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)】
【ネットワークに関することが体系的によくまとめられているサイト】
RAID
IEEE規格一覧(有名どころのみ抜粋)
イーサネットヘッダのパケットフォーマット
IEEE 802.11規格一覧(有名どころのみ抜粋)
IPヘッダのパケットフォーマット
IPアドレスのクラス
プライベートIPアドレス
有名どころのマルチキャストアドレス
ICMPのタイプとコード
IPv6アドレスの分類
ウェルノウンポート
TCPヘッダのパケットフォーマット
UDPヘッダのパケットフォーマット
UDPを使うプロトコル
HTTPヘッダ
HTTPヘッダはさらに4つに分類される。
・ジェネラル・ヘッダ
要求と応答の双方で使われるヘッダ・フィールド
・要求ヘッダ
要求の付加情報として使われるヘッダ・フィールド
・応答ヘッダ
応答の付加情報として使われるヘッダ・フィールド
・エンティティ・ヘッダ
エンティティ(ボディ部分の情報)の付加情報として使われるヘッダ・フィールド
【ジェネラル・ヘッダ】
【要求ヘッダ】
【応答ヘッダ】
【エンティティ・ヘッダ】
DNSレコードのタイプとリソースデータ
DHCPの通信シーケンス
以下のシーケンスでDHCPクライアントはIPアドレスを設定する。
(ブロードキャスト)DHCPDISCOVER:DHCP発見パケット
(ユニキャスト)DHCPOFFER:DHCP提供パケット
(ブロードキャスト)DHCPREQUEST:DHCP要求パケット
(ユニキャスト)DHCPACK:DHCP確認応答パケット
SMTPコマンドのシーケンス
以下のシーケンスでSMTPの通信をする。
主なコマンドを以下
・「HELO」コマンド
通信開始
・「EHLO」コマンド
通信開始(拡張版)
・「MAIL FROM:」コマンド
送信者
・「RCPT TO:」コマンド
受信者
・「DATA」コマンド
メールの本文
・「QUIT」コマンド
終了
DNSサーバのゾーン転送
ゾーン転送はセカンダリからプライマリに対して要求して実行するが、その契機はプライマリ、セカンダリどちらからもできるようになっている。
セカンダリからゾーン転送要求
プライマリからゾーン転送要求
POPの通信シーケンス
POPはメールサーバ上にあるメールをすべてクライアントにダウンロードするプロトコル
以下のシーケンスで受信メールをダウンロードする。
FTPの通信シーケンス
FTP(File Transfer Protocol)は異なるコンピュータ館でファイル転送をするプロトコル
FTPは制御用(ポート番号21)とデータ用(ポート番号20)の2つのTCPコネクションを利用する。
通信シーケンスは以下
SIPの通信シーケンス
SIP(Session Initiation Protocol)は呼制御を行うプロトコル
※データ通信は別のプロトコル(RTPなど)を使用する
通信シーケンスは以下
以上!
ネスぺ午前IIに向けて気を付けるポイント(まとめ)
本ページは以下のブログに移転しました。
ネスぺ午前Iに向けて気を付けるポイント
本ページは以下のブログに移転しました。
ネットワークスペシャリストを3ヶ月で合格! に向けて (2)
こんにちは、しぐれがきです。
サーバ開発においてネットワークの仕組みを理解しているのは重要だと思い、2017年度秋に開催されるネットワークスペシャリストを受験することにしました。
以前記載した以下のブログ内容に従い、勉強を進めています。
本記事では、その進捗を記載したいと思います。
目次
勉強スケジュールと進捗
ステップ1およびステップ2(午前I,II)は完了しました。
ただ、思ったよりステップ1と午前I,IIの対策に時間がかかってしまったため、午後問対策のスケジュールを見直すことにしました。。。
その分、ネスぺの~1冊当りに2週間当てていましたが1週間に短縮しました。
ステップ | 予定 | 実績 | ステータス |
---|---|---|---|
ステップ1 | 2017/7/31(月)-8/4(金) | 2017/7/31(月)-8/11(金) | 完了 |
ステップ2(午前I,II) | 2017/8/5(土)-8/27(日) | 2017/8/12(土)-9/3(日) | 完了 |
ステップ2(ネスぺの礎) |
| - | 着手 |
ステップ2(ネスぺの道) |
| - | 未着手 |
ステップ2(ネスぺの剣) |
| - | 未着手 |
ステップ3 |
| - | 未着手 |
ステップ4 | 2017/10/14(土) | - | 未着手 |
試験日 | 2017/10/15(日) | - | 未着手 |
午前I,IIの対策結果
ステップ2(午前I,II)では想定よりも時間がかかってしまいましたが、どうにか合格圏内の点数にまで引き上げることができました。
ただ、毎回試験時間がぎりぎりで見直す時間が十分とれていないので、もう少しスピード分配を考えたいと思います。
また、午前IIは80%に到達していないため、午後対策をしつつも引き続き過去問は解いていこうと思います。
過去問 | 午前I | 午前II |
---|---|---|
平成28年度秋期 | 25/30(83.3%) | 16/25(64.0%) |
平成27年度秋期 | 24/30(80.0%) | 19/25(76.0%) |
平成26年度秋期 | 24/30(80.0%) | 18/25(72.0%) |
合格ライン | 18/30(60.0%) | 15/25(60.0%) |
ネスぺ午前Iに向けて気を付けるポイント
過去問を解いた中で間違えた/あいまいな点を整理しました。
よろしければ、ご参考にしてください。
http://shiguregaki.hatenablog.com/entry/p50shiguregaki.hatenablog.com
ネスぺ午前IIに向けて気を付けるポイント
過去問を解いた中で間違えた/あいまいな点を整理しました。
よろしければ、ご参考にしてください。
http://shiguregaki.hatenablog.com/entry/p51shiguregaki.hatenablog.com
(再掲)勉強方法:4ステップ
以下の4ステップで合格を目指します。
ステップ1:知識詰め込み
(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度を読んで、ネットワークの知識を蓄えます。
ここでわからないことがあったら、ネットで検索をかけて分からないことを解消します。
1回読んでも覚えられないので、何度も繰り返すことに意味があります。ステップ1ではなるべく時間をかけず、ステップ2以降の問題演習で不明点が出たら、このテキストに戻って復習しなおすことで知識を定着したいと思います。
ステップ2:過去問題を解く
午前問題は同じ問題がでることが多いとのことなので、少なくとも3年分、多くて6年分を解いて、知識を定着できればいいと思います。
ここら辺は実際に解いてみて、午前I,IIで80点くらいとれるくらいまでできたら午前問題はクリアでよいと思います。
午後問題は文章問題になるため、解くためのポイントが必要になるようです。
そのためネットワークスペシャリストの問題の特性を理解するため、「ネスぺの~」の3冊を解くことで過去3年分の午後I,IIの問題演習を行います。
ここで解き方のポイントや知識の再復習を行って、さらなる知識の定着を図ります。
ステップ3:午後I,IIに関してはさらに過去問題を解く
午後I,IIの解き方のポイントは知識というより経験としてこなすほうがよいと考え、たくさん問題を解くことで経験値を得ようと考えました。
具体的には、「ネスぺの~」の3冊は過去3年分のため、それ以前の過去4年前のものを順に解いていこうと考えています。
(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度には過去6年分の過去問が収録されているのでそれを解こうと思います。
また、過去問自体はIPAのサイトにもあるので、必要あればさらに過去にさかのぼって問題演習をしたいと思います。
※IPAが以下のURLで過去問を掲示しています。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_mondai.html
ステップ4:前日に問題集を一気に読み直す
再度テキストや問題集を読み直します。
ここは流し読みで、知識を総まとめさせるためです。これによって当日への知識の積み込みを行います。
個人的にはこれを行うことでかなり知識が整理できて、当日はステップ3の模擬試験よりも実力が出せます。
まとめ
事前に計画したスケジュール通りにはぜんぜん行きませんでした。。。
どうにか午前I,IIは合格水準まで到達しましたが、時間を使いすぎてしまった感があります。
高度試験の肝は午後問題だと思うので、残りは午後問題対策に重点を置いて勉強をしたいと思います。
以上!
【投稿アプリ自作(6)】seederでダミーデータの作成(Laravel)
Webアプリを自作するためにPHPのフレームワークのLaravelを導入することに決めました。
PHP初心者かつLaravel初心者ですが、自分なりにスキルを得るためにLaravelを用いた記事投稿アプリを自作しました。その過程を備忘録としてまとめます。
最終的にはブラウザを利用して記事投稿画面の表示、ユーザごとの記事投稿数のグラフ化を目指したいと思います。
本記事は連載【投稿アプリ自作】の第六回目で、Seederでダミーデータを作成する方法をまとめます。
※:Laravelは5.3からファイル構成が大幅に変わりました。本記事ではLaravel5.3以降を使って説明したいと思います。
※2:データベースはXAMPPに入っていたMySQLを使うことにします。事前にデータベースアカウントを登録しておいてください。
目次
ゴール
本記事では、以下の2つについてまとめます。
・Seederファイルの変更
・Sedderを実行してダミーデータの作成
以下の画像ではSeederによって第四回目で設計したDetailedArticlesテーブルにダミーデータを作成しました。
その他のテーブルにも同様にダミーデータを作成することを目指します。
必要なもの
必要なもの | 価格(円) | ||
---|---|---|---|
1 | PC | ピンキリ | |
備考 | インターネット接続可能なこと | ||
2 | XAMPP | 無料 | |
備考 | 持っていない場合は、こちらを参照→ XAMPPのインストール方法 - しぐれがき |
||
3 | Composer | 無料 | |
備考 | 持っていない場合は、こちらを参照→ Composerのインストール - しぐれがき |
||
4 | Laravelフレームワーク | 無料 | |
備考 | インストールしていない場合は、こちらを参照→ 最近話題のPHPフレームワーク『Laravel5』をインストールする! - しぐれがき |
||
5 | MySQLのデータベースアカウント | 無料 | |
備考 | 持っていない場合は、こちらを参照→ phpMyAdminでデータベースとユーザを新規登録する - しぐれがき |
||
6 | 投稿アプリ向けのテーブル | 無料 | |
備考 | 【投稿アプリ自作】の第四回目で作成した投稿アプリ向けのテーブルです。持っていない場合は、こちらを参照→【投稿アプリ自作(4)】テーブル設計とマイグレーション実行(Laravel) - しぐれがき |
事前準備
テーブルの作成
事前に投稿アプリ向けのテーブルを用意する必要があります。
第四回目でテーブル設計と新規テーブルの作成方法をまとめていますので、まだ作成していない方は以下の記事を参考にして新規テーブルの作成をしてください。
テーブルの関連性
投稿アプリ向けのテーブルの関連性をER図にまとめると下の様になります。(IDEDF1X記法で記述)
※ネットで検索しながら見よう見まねで書いたので間違っているかもしれませんがご容赦ください。
ダミーデータの設計
Seederの機能を使ってダミーデータを作成していくのですが、実際の中身は何を使うのかはこちらで決定しないといけません。
この章では以下の各テーブルのダミーデータを設計します。
・Articlesテーブル
・DetailedArticlesテーブル
・ArticleUsersテーブル
・Categoriesテーブル
・Tagsテーブル
Articlesテーブルのダミーデータの設計
Articlesテーブルのカラムは【投稿アプリ自作】の第四回目で以下の様に設計しました。
Articlesテーブル
記事を管理するテーブルです。各記事はユーザやカテゴリー、タグを紐づけられています。
カラム名 | 変数名 | 補足 |
---|---|---|
記事ID | article_id | 主キー |
ユーザID | user_id | 外部キー |
ユーザごとの記事ID | user_article_id | |
カテゴリーID | category_id | 外部キー |
タグID | tag_id | 外部キー |
Articlesテーブルのダミーデータ
このテーブルはIDばかりでその他のテーブルの紐づけに使用します。
ダミーデータは以下の様にしたいと思います。
記事ID | ユーザID | ユーザごとの記事ID | カテゴリーID | タグID |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 3 |
3 | 2 | 1 | 1 | 1 |
4 | 1 | 3 | 2 | 2 |
5 | 3 | 1 | 4 | 6 |
6 | 3 | 2 | 3 | 5 |
7 | 1 | 4 | 3 | 5 |
8 | 2 | 2 | 3 | 4 |
9 | 3 | 3 | 3 | 5 |
10 | 2 | 3 | 3 | 4 |
11 | 1 | 5 | 1 | 1 |
12 | 3 | 4 | 2 | 2 |
13 | 3 | 5 | 3 | 5 |
14 | 2 | 4 | 3 | 4 |
15 | 1 | 6 | 1 | 1 |
16 | 2 | 5 | 2 | 4 |
17 | 3 | 6 | 1 | 1 |
18 | 3 | 7 | 1 | 1 |
19 | 2 | 6 | 2 | 3 |
20 | 1 | 7 | 1 | 1 |
DetailedArticlesテーブルのダミーデータの設計
DetailedArticlesテーブルのカラムは【投稿アプリ自作】の第四回目で以下の様に設計しました。
DetailedArticlesテーブル
記事詳細を管理するテーブルです。Articlesテーブルとarticle_idで1:1に関連を持っています。
カラム名 | 変数名 | 補足 |
---|---|---|
記事ID | article_id | 主キー 外部キー |
タイトル | title | |
記事内容 | body | |
投稿日 | published_date |
DetailedArticlesテーブルのダミーデータ
このテーブルはタイトルや内容など記事の具体的な内容を格納します。
ダミーデータは以下の様にしたいと思います。
記事ID | タイトル | 内容 | 投稿日 |
---|---|---|---|
1 | 自己紹介! | はじめまして、ケンです。よろしく! | 2017-04-01 |
2 | おすすめイタリアン! | このイタリア料理店おすすめです! | 2017-04-01 |
3 | 自己紹介です | こんにちは、エミリーです。よろしくです。 | 2017-04-01 |
4 | おすすめ和食 | この和食屋もおすすめです!ぜひ! | 2017-04-01 |
5 | 北海道旅行 | 今日は北海道にいます。寒い。。。 | 2017-04-01 |
6 | 最近の仕事 | 仕事で外回り多い。明日は仕事で沖縄だ | 2017-04-01 |
7 | つぶやき | 今からバイトだ。支度しなきゃ! | 2017-04-01 |
8 | 友人の結婚式 | 明日は友達の結婚式だわ! | 2017-04-02 |
9 | 移動中です | 沖縄行の飛行機のなか。ハードだぜ! | 2017-04-02 |
10 | お祝儀について | 友人のお祝儀は3萬でいいよね? | 2017-04-02 |
11 | 沖縄旅行に出発 | 今から沖縄旅行にいってきます! | 2017-04-02 |
12 | 沖縄めし | 沖縄に到着。飯がうまいぜ | 2017-04-02 |
13 | 沖縄堪能します | 仕事はさっさと片付けて沖縄堪能するぞ | 2017-04-03 |
14 | 友人の結婚式 | ドレスがきれいだわ | 2017-04-03 |
15 | やばい | 財布落とした!!! | 2017-04-03 |
16 | 結婚式のごはん | 結婚式場のごはんっておいしいですよね | 2017-04-03 |
17 | どうしよう | 財布を拾ってしまった。。。 | 2017-04-03 |
18 | 交番 | とりあえず、拾った財布は交番に届けた | 2017-04-03 |
19 | 結婚式の二次会 | おしゃれなイタリアレストランにて | 2017-04-03 |
20 | 財布ありました | 近くの交番に届けられてた。よかったあ | 2017-04-03 |
ArticleUsersテーブルのダミーデータの設計
Articlesテーブルのカラムは【投稿アプリ自作】の第四回目で以下の様に設計しました。
ArticleUsersテーブル
記事を書くユーザを管理するテーブルです。Articlesテーブルとuser_idで1:多に関連を持っています。
カラム名 | 変数名 | 補足 |
---|---|---|
ユーザID | user_id | 主キー |
ユーザ名 | user_name | |
パスワード | password | |
性別 | gender | |
メールアドレス | mail_address |
ArticleUsersテーブルのダミーデータ
このテーブルは記事アプリを利用するユーザの情報を格納します。
ダミーデータは以下の様にしたいと思います。
ユーザID | ユーザ名 | パスワード | 性別 | メールアドレス |
---|---|---|---|---|
1 | ケン | ken12345 | 男 | k-e-n-0123@ken.com |
2 | エメリー | emily111 | 女 | e-mi-ly-111@emy.com |
3 | ボブ | bobbob3 | 男 | boooob123@bob.com |
Categoriesテーブルのダミーデータの設計
Categoriesテーブルのカラムは【投稿アプリ自作】の第四回目で以下の様に設計しました。
Categoriesテーブル
記事のカテゴリーを管理するテーブルです。Articlesテーブルとcategory_idで1:多に関連を持っています。
カラム名 | 変数名 | 補足 |
---|---|---|
カテゴリーID | category_id | 主キー |
カテゴリー名 | category_name |
Categoriesテーブルのダミーデータ
カテゴリーテーブルは記事のカテゴリーをまとめています。
ダミーデータは以下の様にしたいと思います。
カテゴリーID | カテゴリー名 |
---|---|
1 | カテゴリーなし |
2 | 食と酒 |
3 | 暮らしと生活 |
4 | 旅行 |
Tagsテーブルのダミーデータの設計
Tagsテーブルのカラムは【投稿アプリ自作】の第四回目で以下の様に設計しました。
Tagsテーブル
記事のタグを管理するテーブルです。Articlesテーブルとtag_idで1:多に関連を持っています。
カラム名 | 変数名 | 補足 |
---|---|---|
タグID | tag_id | 主キー |
タグ名 | tag_name |
Tagsテーブルのダミーデータ
タグテーブルは記事のタグをまとめています。
ダミーデータは以下の様にしたいと思います。
タグID | タグ名 |
---|---|
1 | タグなし |
2 | 和食 |
3 | イタリアン |
4 | 冠婚葬祭 |
5 | 仕事 |
6 | 北海道 |
7 | 沖縄 |
Laravelソースファイルの変更
変更や新規作成するLaravelファイル一覧
Laravelのプロジェクトファイル配下にあるファイルで本記事の中で変更、新規作成するファイルについてまとめました。
ファイル名 | 対応 | 備考 | |
---|---|---|---|
1 | database/seeds/DatabaseSeeder.php |
変更 | |
2 | database/seeds/seed/Articles.csv |
新規作成 | database/seeds/seedディレクトリも新規作成 |
3 | database/seeds/seed/ArticleUser.csv |
新規作成 | 同上 |
4 | database/seeds/seed/Categories.csv |
新規作成 | 同上 |
5 | database/seeds/seed/DetailedArticles.csv |
新規作成 | 同上 |
6 | database/seeds/seed/Tags.csv |
新規作成 | 同上 |
Seederファイルの変更
まずはSeederファイルを変更します。
Seederファイルは以下のディレクトリに格納されています。
ここに格納されたDatabaseSeeder.phpがSeederファイルになります。
このファイルに各テーブルにダミーデータを格納するように処理を追加します。
また、各ダミーデータはcsvから読み取るようにします。csvの内容については後述します。
DatabaseSeeder.phpを以下の様に変更します。
※このとき$this->call(で呼び出す関数の順番には外部キー制約がついているため注意が必要です。
具体的にはArticleUsersテーブル/Categoriesテーブル/Tagsテーブル => Articlesテーブル => DetailedArticlesテーブル の順番で実行する必要があります。
<?php use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; use Carbon\Carbon; use App\ArticleUser; use App\Category; use App\Tag; use App\DetailedArticle; use App\Article; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); $this->call(ArticleUsersTableSeeder::class); $this->call(CategoriesTableSeeder::class); $this->call(TagsTableSeeder::class); $this->call(ArticlesTableSeeder::class); $this->call(DetailedArticlesTableSeeder::class); Model::reguard(); } } class ArticleUsersTableSeeder extends Seeder { public function run() { DB::table('article_users')->delete(); $filepath="E:\\xampp\\htdocs\\article-test-apl\\database\\seeds\\seed\\ArticleUser.csv"; $file = new SplFileObject($filepath); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $line) { if(is_null($line[0])){ continue; }else{ ArticleUser::create([ 'user_name' => $line[1], 'password' => $line[2], 'gender' => $line[3], 'mail_address' => $line[4] ]); } } } } class CategoriesTableSeeder extends Seeder { public function run() { DB::table('categories')->delete(); $filepath="E:\\xampp\\htdocs\\article-test-apl\\database\\seeds\\seed\\Categories.csv"; $file = new SplFileObject($filepath); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $line) { if(is_null($line[0])){ continue; }else{ Category::create([ 'category_name' => $line[1] ]); } } } } class TagsTableSeeder extends Seeder { public function run() { DB::table('tags')->delete(); $filepath="E:\\xampp\\htdocs\\article-test-apl\\database\\seeds\\seed\\Tags.csv"; $file = new SplFileObject($filepath); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $line) { if(is_null($line[0])){ continue; }else{ Tag::create([ 'tag_name' => $line[1] ]); } } } } class DetailedArticlesTableSeeder extends Seeder { public function run() { DB::table('detailed_articles')->delete(); $filepath="E:\\xampp\\htdocs\\article-test-apl\\database\\seeds\\seed\\DetailedArticles.csv"; $file = new SplFileObject($filepath); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $line) { if(is_null($line[0])){ continue; }else{ DetailedArticle::create([ 'article_id' => $line[0], 'title' => $line[1], 'body' => $line[2], 'published_date' => date("Y-m-d 10:00:00",strtotime($line[3])) ]); } } } } class ArticlesTableSeeder extends Seeder { public function run() { DB::table('articles')->delete(); $filepath="E:\\xampp\\htdocs\\article-test-apl\\database\\seeds\\seed\\Articles.csv"; $file = new SplFileObject($filepath); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $line) { if(is_null($line[0])){ continue; }else{ Article::create([ 'user_id' => $line[1], 'user_article_id' => $line[2], 'category_id' => $line[3], 'tag_id' => $line[4] ]); } } } }
各csvファイルの新規作成
上で変更したDatabaseSeeder.php内ではcsvファイルを読みだしてダミーデータを設定しています。
本章ではそのcsvファイルについてまとめます。
それぞれの内容については下記です。
Articles.csv
ArticleUser.csv
Categories.csv
DetailedArticles.csv
Tags.csv
Seederの実行
Seederを実行するにはコマンドプロンプトで以下のコマンドを入力します。
データベースの確認
データベースが正しく作成されているか確認するため、phpMyAdminにアクセスします。
ブラウザでphpMyAdmin(以下のURL)にアクセスしてください。
今回の記事で以下の5つのテーブルについてダミーデータを設定したのでそれぞれ確認してきます。
・articles(Articlesテーブル)
・detatiled_articles(DetatiledArticlesテーブル)
・article_users(ArticleUsersテーブル)
・categories(Categoriesテーブル)
・tags(Tagsテーブル)
Articlesテーブルの確認
phpMyAdminの左側にあるメニューでarticles(Articlesテーブル)を選択します。
するとダミーデータの章で設計したデータが格納されていることが分かります。
DetatiledArticlesテーブルの確認
phpMyAdminの左側にあるメニューでdetailed_articles(DetatiledArticlesテーブル)を選択します。
するとダミーデータの章で設計したデータが格納されていることが分かります。
ArticleUsersテーブルの確認
phpMyAdminの左側にあるメニューでarticle_users(ArticleUsersテーブル)を選択します。
するとダミーデータの章で設計したデータが格納されていることが分かります。
Categoriesテーブルの確認
phpMyAdminの左側にあるメニューでcategories(Categoriesテーブル)を選択します。
するとダミーデータの章で設計したデータが格納されていることが分かります。
Tagsテーブルの確認
phpMyAdminの左側にあるメニューでtags(Tagsテーブル)を選択します。
するとダミーデータの章で設計したデータが格納されていることが分かります。
これで設計した通りにダミーデータを作成することができました。
まとめ
この記事では以下の2つについてまとめました。・Seederファイルの変更
・Sedderを実行してダミーデータの作成
これでダミーデータを作成することができたので、コントローラでデータベースにアクセスしてデータを取得することができます。
ですので、次回は記事を操作するコントローラー(ArticleController.php)を変更して、ダミーデータにアクセスしたいと思います。
次回記事
次回記事はコントローラでデータベースにアクセスし、ダミーデータを画面上に表示する方法についてまとめたいと思います。http://shiguregaki.hatenablog.com/entry/p48shiguregaki.hatenablog.com
前回記事
以上!
ネットワークスペシャリストを3ヶ月で合格! に向けて (1)
こんにちは、しぐれがきです。
サーバ開発においてネットワークの仕組みを理解しているのは重要だと思い、2017年度秋に開催されるネットワークスペシャリストを受験することにしました。
しぐれがきとしては初めてのITスキル標準レベル最上位のレベル4の資格であり、本当に取れるのか不安ではありますが。。。
このブログでは、ネスぺ合格に向けてしぐれがきが使う教材の紹介と、勉強スケジュールの計画を立てたいと思います。
本記事がネスぺ受験を検討している人、同じく合格に向けて頑張っている人の参考になればうれしいです。
目次
資格概要
資格情報
資格名
IPA 情報処理推進機構 ネットワークスペシャリスト試験
概要
ネットワークの固有技術からサービス動向まで幅広く精通し、目的に適合した大規模かつ堅牢なネットワークシステムを構築し運用できるネットワークエンジニアやインフラ系エンジニアを目指す方に最適です。(IPAのネスぺページから引用 IPA 独立行政法人 情報処理推進機構:制度の概要:ネットワークスペシャリスト試験)
レベル
ITスキル標準(ITSS):レベル4試験情報
受験料金
5,700 円(税込)インターネットでの受験申込では以下の支払い方法が選択可能
・クレジットカード決済
・ペイジー(Pay-easy)による払込み
・コンビニ利用による払込み
受験方法
情報処理試験が開催される特定の試験会場にて一斉受験試験地は各地にあり(試験地については以下のIPAのサイト参照)
IPA 独立行政法人 情報処理推進機構:試験実施案内:試験地一覧
試験内容
試験時間 | 出題形式 | 解答数/出題数 | |
---|---|---|---|
午前I | 9:30~10:20 (50分) |
多肢選択式 (四肢択一) |
30問/30問 |
午前II | 10:50~11:30 (40分) |
多肢選択式 (四肢択一) |
25問/25問 |
午後I | 12:30~14:00 (90分) |
記述式 | 2問/3問 |
午後II | 14:30~16:30 (120分) |
記述式 | 1問/2問 |
合格条件
合格ライン | |
---|---|
午前I | 60点/100満点中(18問/30問中正解) |
午前II | 60点/100満点中(15問/25問中正解) |
午後I | 60点/100満点中 |
午後II | 60点/100満点中 |
合格率
H28年度 15.4%教材紹介
午前はネットワーク以外にも一般的な知識を解いてくる問題で、午後はネットワークに焦点を当てた問題となるようなので、午前と午後それぞれ対策することにしました。
以下ではそれぞれの対策で使用した教材を紹介したいと思います。
午前対策
午前対策に使用したテキストは以下の1冊のみです。
1.(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度
本情報
■タイトル
(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度
■価格(2017/7/30現在)
3,002円
■著者
株式会社わくわくスタディワールド 瀬戸美月 (著)
■ページ数
632ページ
■章構成
第1章 ネットワーク基礎知識
1-1 ネットワークとは
1-2 ITインフラ
1-3 演習問題
第2章 ネットワークインタフェース層
2-1 データリンク
2-2 LAN間接続
2-3 通信サービス
2-4 演習問題
第3章 インターネット層
3-1 IP
3-2 ルーティング
3-3 演習問題
第4章 トランスポート層
4-1 トランスポート層の役割
4-2 TCPとUDP
4-3 演習問題
第5章 アプリケーション層
5-1 Web関連のプロトコル
5-2 メール関連のプロトコル
5-3 アドレス・名前解決
5-4 その他のプロトコル
5-5 演習問題
第6章 セキュリティ
6-1 情報セキュリティマネジメント
6-2 セキュリティ技術
6-3 セキュリティプロトコル
6-4 演習問題
第7章 ネットワーク設計
7-1 ネットワーク設計
7-2 通信に関する技術や計算
7-3 演習問題
第8章 運用管理
8-1 ネットワーク運用管理
8-2 演習問題
第9章 仮想ネットワーク
9-1 仮想化
9-2 ストレージ
9-3 仮想ネットワーク
9-4 演習問題
付録 平成28年度秋期 過去問題解説
■詳細
内容
ネットワークの基本知識となる部分の勉強に使えるテキストだと思います。
随所に図や絵もあり、イメージ的にも理解しやすいです。
また、このテキストには過去6回分の過去問題とその解説がつくとのことだったので、過去問題集としても利用することができます。
私はこのテキストを使って、ネットワークの基本となる知識をつけるとともに、過去問題の特に午前I,IIの解説に利用しようとしています。
その他の午前問題のテキストについて
午前I,IIはネットワークというよりかは情報処理の基本的知識を問われるようなので、上で紹介したテキストのみでは足りないかもしれません。
私は上で紹介したテキストと過去問をひたすら解くことで知識を得ようと考えています。
しかしネットで調べた限りでは、午前I,IIは過去問と同問題もしくはかなり近い内容の問題の出題が多いようです。
そのため、午前I,II専用のテキストの勉強を検討してもよいかもしれません。
この章では、午前対策としてオススメのテキストを紹介します。
1.情報処理教科書 高度試験午前I・II 2017年版
このテキストはネットワークスペシャリスト以外の高度試験も含めたテキストです。
本屋で軽く確認しましたが、高度試験として共通の問題、ネットワークスペシャリストとしての問題とわかりやすくまとまっており、高度試験共通のテキストとしても、気にせず使いやすそうと感じました。
amazonでも評価が良く、私の本屋でもかなりプッシュされていました。
2.ネットワークスペシャリスト 午前 試験問題集 第2版 (合格精選500題)
このテキストは「質より量」、とにかくたくさんの過去問を解け!っていう感じのイメージでいくつかのネットワーク機能を分類して、それぞれに対してたくさんの過去問とその解説がまとめられています。
amazonの評価では、重複する問題や間違いがあるそうですが、それでもかなり良本と紹介されていました。
午後対策
午後対策に使用したテキストは以下の3冊および過去問用に午前で使用した(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度を考えています。
1.ネスペ 27 礎 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
2.ネスペ 26 道 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
3.ネスぺの剣25 ~ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
ネスペ 27 礎 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
■タイトル
ネスペ 27 礎 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
■価格(2017/7/30現在)
2,570円
■著者
左門 至峰 (著), 平田 賀一 (著), 山内 大史 (著), 幸田 廣信 (著)
■ページ数
312ページ
■章構成
第1章 本書の使い方
第2章 過去問解説平成27年度午後1
第3章 過去問解説平成27年度午後2
第4章 参考解説
第5章 ネット犯罪の犯人を追え
■詳細
ネスペ 26 道 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
■タイトル
ネスペ 26 道 -ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
■価格(2017/7/30現在)
2,570円
■著者
左門 至峰 (著), 平田 賀一 (著)
■ページ数
352ページ
■章構成
第1章 本書の使い方と実力アップ!問題演習
第2章 過去問解説平成26年度午後1
第3章 過去問解説平成26年度午後2
第4章 参考解説(FWの冗長化とHA機能について
VoIPの基礎知識)
第5章 ネスペの意義と勉強法―もし100万円でネスペ資格が売られているとしたら、あなたは買いますか?
■詳細
ネスぺの剣25 ~ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
■タイトル
ネスぺの剣25 ~ネットワークスペシャリストの最も詳しい過去問解説 (情報処理技術者試験)
■価格(2017/7/30現在)
2,462円
■著者
左門 至峰 (著), 平田 賀一 (著)
■ページ数
328ページ
■詳細
勉強方法
本章ではネットワークスペシャリスト合格に向けてしぐれがきが実践しようとしている勉強方法を紹介したいと思います。
以下の4ステップで勉強を進めたいと思います。
勉強方法:4ステップ
ステップ1:知識詰め込み
(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度を読んで、ネットワークの知識を蓄えます。
ここでわからないことがあったら、ネットで検索をかけて分からないことを解消します。
1回読んでも覚えられないので、何度も繰り返すことに意味があります。ステップ1ではなるべく時間をかけず、ステップ2以降の問題演習で不明点が出たら、このテキストに戻って復習しなおすことで知識を定着したいと思います。
ステップ2:過去問題を解く
午前問題は同じ問題がでることが多いとのことなので、少なくとも3年分、多くて6年分を解いて、知識を定着できればいいと思います。
ここら辺は実際に解いてみて、午前I,IIで80点くらいとれるくらいまでできたら午前問題はクリアでよいと思います。
午後問題は文章問題になるため、解くためのポイントが必要になるようです。
そのためネットワークスペシャリストの問題の特性を理解するため、「ネスぺの~」の3冊を解くことで過去3年分の午後I,IIの問題演習を行います。
ここで解き方のポイントや知識の再復習を行って、さらなる知識の定着を図ります。
ステップ3:午後I,IIに関してはさらに過去問題を解く
午後I,IIの解き方のポイントは知識というより経験としてこなすほうがよいと考え、たくさん問題を解くことで経験値を得ようと考えました。
具体的には、「ネスぺの~」の3冊は過去3年分のため、それ以前の過去4年前のものを順に解いていこうと考えています。
(全文PDF・単語帳アプリ付) 徹底攻略 ネットワークスペシャリスト教科書 平成29年度には過去6年分の過去問が収録されているのでそれを解こうと思います。
また、過去問自体はIPAのサイトにもあるので、必要あればさらに過去にさかのぼって問題演習をしたいと思います。
※IPAが以下のURLで過去問を掲示しています。
ステップ4:前日に問題集を一気に読み直す
再度テキストや問題集を読み直します。
ここは流し読みで、知識を総まとめさせるためです。これによって当日への知識の積み込みを行います。
個人的にはこれを行うことでかなり知識が整理できて、当日はステップ3の模擬試験よりも実力が出せます。
勉強スケジュール
ブログのタイトルで記載した通り、目標は3ヶ月取得です!
といっても、正確にはすでに3か月はないのですが。。。
以下のスケジュールで上で紹介した4ステップを進めていこうと思います。
日程 | ステップ |
---|---|
2017/7/31(月)-8/4(金) | ステップ1 |
2017/8/5(土)-8/27(日) | ステップ2(午前I,II) |
2017/8/7(月)-8/20(日) | ステップ2(ネスぺの礎) |
2017/8/21(月)-9/3(日) | ステップ2(ネスぺの道) |
2017/9/4(月)-9/17(日) | ステップ2(ネスぺの剣) |
2017/9/18(月)-10/13(金) | ステップ3 |
2017/10/14(土) | ステップ4 |
2017/10/15(日) | 試験日 |
上記のスケジュールに従って勉強を進めていきたいと思います。
ところどころのポイントで進捗日記がかければいいと思います。
以上!
【投稿アプリ自作(5)】モデルファイルの設定(Laravel)
Webアプリを自作するためにPHPのフレームワークのLaravelを導入することに決めました。
PHP初心者かつLaravel初心者ですが、自分なりにスキルを得るためにLaravelを用いた記事投稿アプリを自作しました。その過程を備忘録としてまとめます。
最終的にはブラウザを利用して記事投稿画面の表示、ユーザごとの記事投稿数のグラフ化を目指したいと思います。
本記事は連載【投稿アプリ自作】の第五回目で、モデルファイルとデータベースを紐づけるための設定内容をまとめます。
※:Laravelは5.3からファイル構成が大幅に変わりました。本記事ではLaravel5.3以降を使って説明したいと思います。
※2:データベースはXAMPPに入っていたMySQLを使うことにします。事前にデータベースアカウントを登録しておいてください。
目次
ゴール
本記事では、前回で新規作成したモデルファイルに修正を加えて、テーブルにアクセスできるようにします。
・ArticleUser.php
・Category.php
・Tag.php
・Article.php
・DetailedArticle.php
必要なもの
必要なもの | 価格(円) | ||
---|---|---|---|
1 | PC | ピンキリ | |
備考 | インターネット接続可能なこと | ||
2 | XAMPP | 無料 | |
備考 | 持っていない場合は、こちらを参照→XAMPPのインストール方法 | ||
3 | Composer | 無料 | |
備考 | 持っていない場合は、こちらを参照→Composerのインストール方法 | ||
4 | Laravelフレームワーク | 無料 | |
備考 | インストールしていない場合は、こちらを参照→Laravelのインストール方法 | ||
5 | MySQLのデータベースアカウント | 無料 | |
備考 | 持っていない場合は、こちらを参照→phpMyAdminでデータベースとユーザを新規登録する | ||
6 | 投稿アプリのモデルファイル | 無料 | |
備考 | 前回の記事で作成したモデルファイルです。持っていない場合は、こちらを参照→【投稿アプリ自作(4)】テーブル設計とマイグレーション実行(Laravel) |
Laravelソースファイルの変更
変更や新規作成するLaravelファイル一覧
Laravelのプロジェクトファイル配下にあるファイルで本記事の中で変更、新規作成するファイルについてまとめました。
ファイル名 | 対応 | 備考 | |
---|---|---|---|
1 | app/Article_User.php | 変更 | |
2 | app/Category.php | 変更 | |
3 | app/Tag.php | 変更 | |
4 | app/Article.php | 変更 | |
5 | app/Detailed_Article.php | 変更 |
ArticleUsersテーブルのモデルファイルの変更
前回マイグレーションファイルで作成したArticleUsersテーブルとモデルファイルを紐づけます。
前回作成したxxxx_xx_xx_xxxxxx_create_article_users_table.phpを見直してみると
このテーブル名をArticleUsersテーブルのモデルファイルを紐づけるために以下の様にArticleUser.phpファイルを変更します。
<?php namespace App; use Illuminate\Database\Eloquent\Model; class ArticleUser extends Model { protected $table = 'article_users'; }
protected $table = 'article_users';でモデルファイルとテーブルを紐づけることができます。
Categorysテーブルのモデルファイルの変更
ArticleUsersテーブルと同様にCategorysテーブルの変数名とモデルファイルを紐づけていきます。
Category.phpファイルを以下の様に変更します。
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Category extends Model { protected $table = 'categories'; }
Tagsテーブルのモデルファイルの変更
ArticleUsersテーブルと同様にTagsテーブルの変数名とモデルファイルを紐づけていきます。
Tag.phpファイルを以下の様に変更します。
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Tag extends Model { protected $table = 'tags'; }
Articlesテーブルのモデルファイルの変更
ArticleUsersテーブルと同様にArticlesテーブルの変数名とモデルファイルを紐づけていきます。
Article.phpファイルを以下の様に変更します。
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Article extends Model { protected $table = 'articles'; }
DetailedArticlesテーブルのモデルファイルの変更
ArticleUsersテーブルと同様にDetailedArticlesテーブルの変数名とモデルファイルを紐づけていきます。
DetailedArticle.phpファイルを以下の様に変更します。
<?php namespace App; use Illuminate\Database\Eloquent\Model; class DetailedArticle extends Model { protected $table = 'detailed_articles'; }
これですべてのモデルファイルとテーブルを紐づけられました。
まとめ
今回はモデルファイルとテーブルの紐づけを行いました。
これでコントローラーでデータベースを宣言することでデータベースの値を取得することができるようになります。
しかし、現状はデータベースの中身が一つもありません。データベースの確認をするためにはこのままでは使えません。
そのため、次回ではseederというダミーデータを作成する機能を使ってダミーデータを作成し、その後データベースの操作の確認をして行くことにします。
次回記事
次回記事はseederを使ってダミーデータを作成方法についてまとめたいと思います。http://shiguregaki.hatenablog.com/entry/p46shiguregaki.hatenablog.com
前回記事
以上!