Instagram Clone Coding


Github Link
昨年9月、インターネット開発を学ぶためにインスタグラムクローンプロジェクトが行われた.フロントを担当しているもう一人と一緒にバックグラウンド全体の開発を担当しています.当時勉強していた時にまとめた内容をブログにアップしたいと思います.
プロジェクトが始まったばかりの頃は、フレームワークがないだけでなく、フロントが画面を構成していて、バックグラウンドはdb送信データの管理しか知らなかったので、以下の基礎科目や書籍を参考にしました.
[Infolean]Spring入門-コード学習を用いたSpring Boot、Web MVC、DBアクセス技術
[本]Spring BootとAWSによる個別Webサービス
Java Springを選んだのは、広く使われているからで、どのように使うかを学び、SpringBootを使ったからで、簡単に設定できると言われています.
DBには通常使用されるRDBMS MySQLも使用されており、JavaではJPAを使用してオブジェクトやテーブルをマッピングし、DBの処理を容易にしています.

📝 機能(API)


User

GET /api/user/:username 유저 정보 조회
PATCH /api/user/:username 유저 정보 수정
DELETE /api/user/:username 유저 정보 삭제
POST /api/user/register 유저 생성 (회원 가입)

Auth

POST /api/auth/login 로그인

Post

GET /api/posts/:username 특정 유저가 올린 모든 포스트 조회
GET /api/posts/feeds 내가 팔로우한 유저들이 올린 모든 포스트 조회
POST /api/posts 포스트 생성
DELETE /api/posts/:postId 포스트 삭제

POST /api/posts/:postId/like 포스트 like (좋아요)
DELETE /api/posts/:postId/like 포스트 unlike (좋아요 취소)

Comment

POST /api/comments 새 댓글 생성
DELETE /api/comments/:commentId 댓글 삭제
GET /api/posts/:postId/comments 특정 포스트의 모든 댓글 조회

GET /api/comments/:commentId/comments 특정 댓글의 대댓글 조회

POST /api/comments/:commentId/like 댓글 like (좋아요)
DELETE /api/comments/:commentId/like 댓글 unlike (좋아요 취소)

Follow

GET /api/follow/:username/followers 특정 유저의 팔로워 조회
GET /api/follow/:username/followings 특정 유저가 팔로잉하는 유저 조회
POST /api/follow/:username 유저 follow
DELETE /api/follow/:usernmae 유저 follow 취소

📝 改善すべき点


  • JWT refresh tokenの適用
  • アクセストークンの有効期間が長すぎると、トークンが盗まれた場合にセキュリティ保護を受けやすいため、短縮したほうがよい.これを補うためにrefreshトークンを導入する必要がある.
  • 初回ログイン時にrefresh tokenを同時に発行し、access tokenの期限切れ時に新しい
  • を発行する.
  • リフレッシュトークンが期限切れになったら、
  • に再ログインする必要があります.

  • 会員登録時にEメールを送信し、認証完了時にアカウントをアクティブにします.
  • は現在、任意のEメールで
  • に登録できます.

  • ほうそう
  • すべてのイメージを一度に読み込むことができます)

  • イメージサーバ

  • DM機能
  • 📝 振り返る


    このプロジェクトを始めるにあたり、Web開発自体が初めてなので、Web開発方式やSpring Bootの使い方など非常に基礎的な部分から学ぶ必要があります.DB設計からAPI実装まで,バックエンド全体を学び,SpringBoot,JPAなどを用いて把握した.しかし、どうしてもプロジェクトを完成させたいという目標があり、時間が限られていたため、より深く学ぶことができず、プロジェクトの完成度に残念な思いを残しました.近いうちにスプリングレッスンを受けるような気がして、足りないところを補ってほしいです.

    📂 Related Posts


    (作成予定)
    Instagram Clone Coding Backend 1プロジェクトの起動
    Instargram Clone Coding Backend 2データモデリング
    Instargram Clone Coding Backend 3エントリーレベル/ログイン(Spring Security+JWT)