# 備忘録① ## 11/5 今年の夏くらいからゼミの活動として、7人グループでWebアプリを開発している。そこでつまづいたりして解決まで導いた手順を特にメモしてなかったのでこれからしていこうと思う。 今までにやったこととしてPMがメンバー毎に役割を与えて自分は裏方であるサーバー側を担当している。 基本的に活動時間が週に3時間程度しかないのでかなりの長期間で開発することになっている。 サーバー側の担当として、クラス図やAPI設計を担当してきた。 ほかのフロント側の担当やテスト担当等メンバーによって様々な作業があるが、最初の方に決めたWBSに基づいて予定を進めている。 最近になってようやくクラス図とAPI設計が終わり、作りたいものの形や使うサービスが決まってきたのでそろそろコーディングの作業に入る日が近くなった。 今まで授業ではコーディングは様々な言語(PHP,Python,java,C,C#等簡単な基礎だけ)をやってきたが、javaをメインで開発することにしている。そのため、上流工程はあまり経験していなかったのでかなり苦戦した。 API設計は今まで見たこともなく、1から調べながらやった。 下の画像は設計の一部だがレスポンスの形式がフロント側との兼ね合いでJSON形式になるのでその形式で記述している。 API設計と調べてもなかなか基準となる記述形式とかもないため何を書けばいいのか苦戦した。 ![](https://i.imgur.com/nWxTjei.png) 次にクラス図だが、こちらはDB構築担当とのデータ受け渡しの相談やAPI設計をふまえて作成した。 クラス図も調べながら作成していったが、astaを使用した。 ![](https://i.imgur.com/cXadeBe.png) そしてここまでクラス図を作成する過程でログイン処理を独自で作るとセキュリティ面が心配ということで外部APIを使うことに決まった。 そして、今回認証をAWSの機能であるCognitoを使用している。(ここをfirebaseにするかで相談したが、Cognitoになった)また、DBもAWSを使用する。 ここまでの課題として上流工程がまじでわからなすぎて常にネットで調べての作業になったこと。大まかなこともわからなくてほとんどのことを調べていった結果何を調べていったかの過程を忘れたので割愛します。 ただ社会に出る前に学生のうちにSEの仕事の一部であるコーディング以外の作業を実際に体験できたのでいい機会だった。 だいたい今日までにできたのはここまで これからはCognitoの使い方を勉強しつつ、一緒に使うSpring Securityの2つをメインに勉強する。 次からのコーディングではしっかり毎回備忘録を残していきたい。 特にログイン処理をしてそのログインした人に基づいて処理が変わっていく(KJ法のアプリなので表示するプロジェクトが変わったり等)のでこれからも使い回しがしやすい技術だと思うため。 あと自分自身が忘れやすく、コードを書いといてどんな意味で作ったのか確認するため。