[TIL]航海9920日


ORM(Object-Relational Mapping)


Object:オブジェクト向け言語(Java、Python)
リレーショナル:リレーショナルデータベース(H 2、MySQL)
  • バックエンド開発者:Webサーバを開発する開発者
  • データベース管理:データベース管理者.
  • データベースのインストール、構成、管理

    JPA


    データベース#データベース# 翻訳言語のORM
    @Entity // DB 테이블 역할
    public class User {
        // ID가 자동으로 생성 
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Id
        private Long id;
    
        // nullable: null 허용 여부
        // unique: 중복 허용 여부 (false 일때 중복 허용)
        @Column(nullable = false, unique = true)
        private String username;
    
        @Column(nullable = false)
        private String password;
    
        @Column(nullable = false, unique = true)
        private String email;
    
        @Column(nullable = false)
        @Enumerated(value = EnumType.STRING)
        private UserRoleEnum role;
    
        @Column(unique = true)
        private Long kakaoId;
    }
    

    MVC (Model - View - Controller)


    Controller

  • クライアント要求のモデル処理
  • Templateエンジンにビュー、モデルを転送
  • ビュー:ダイナミックHTMLファイル
  • モデル:ビュー用情報
  • Template engine
    モデルを
  • ビューに適用→動的Webページの生成
  • 例)ログインが成功すると、ページ
  • に「ログインユーザのid」が追加される.
  • Templateエンジンタイプ:Thymeleaf、Groovy、FreeMarker、Jadeなど(スプリングはJSPを推奨しない)
  • クライアントへのビューダウングレード(ダイナミックWebページ、HTML)