@Column
의 속성들 (length, nullable)은 DDL 자동 생성할 때만 사용된다. (JPA 실행 로직에 영향을 주지 않음)
키 생성 전략 - SEQUENCE 전략에 대해서는 아직 이해가 잘 안 되는 부분이 있어서 나중에 다시 한 번 봐야 할 것 같다. 사용 코드는 IDENTITY랑 같은데 내부 동작 방식이 조금 다르다. em.persist()를 호출할 때 먼저 식별자를 조회하고 그 식별자를 엔티티에 할당한 후 엔티티를 영속성 컨텍스트에 저장한다.
@Enumerated
: (EnumTypes.STRING)을 권장한다. 기본 타입인 ORDINAL은 기존에 DB에 저장된 값이 변경되지 않기 때문에 role의 순서가 바뀌거나 값이 추가되었을 때 문제가 발생한다.