[TIL] 항해99 20일차

심우진·2021년 10월 3일
0

ORM(Object-Relational Mapping)

Object: "객체"지향 언어 (자바, 파이썬)
Relational: "관계형" 데이터베이스 (H2, MySQL)

  • 백엔드 개발자(Backend Developer): 웹 서버를 개발하는 개발자
  • DBA (Database Administration): 데이터베이스 관리자. 데이터베이스를 설치, 구성, 관리 등의 일을 맡은 사람

JPA

자바언어를 DB 언어로 번역해주는 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

  1. Client 의 요청을 Model 로 받아 처리
  2. Template engine 에게 View, Model 전달
    1. View: 동적 HTML 파일
    2. Model: View 에 적용할 정보들
  3. Template engine
    1. ViewModel 을 적용 → 동적 웹페이지 생성
      1. 예) 로그인 성공 시, "로그인된 사용자의 id" 를 페이지에 추가
      2. Template engine 종류: 타임리프 (Thymeleaf), Groovy, FreeMarker, Jade 등 (스프링에서 JSP 이용은 추천하지 않고 있음)
  4. Client 에게 View (동적 웹 페이지, HTML) 를 내려줌

0개의 댓글