Accont 도메인 클래스
Account 도메인에 필요한 데이터
> 로그인
> 프로필
> 알림설정
1인 개발이기 때문에 monolithic한 app개발을 할 예정
팀 단위가 되면은 모듈화를 이루어주어야함
도메인 작성
의존성에 Spring Security를 주입하였으면 기본적으로 로그인 페이지를 제공한다.
설정을 하지 않았으면 초기 값은 id : user / pw는 아래와 같이 앱을 실행할 때 마다 새로운 값을 준다
@EqualsAndHashCode(of ="id")
id만 사용하는 이유
연관관계가 복잡해질 때 @EqualsAndHashCode에서 서로 다른 연관관계를 계속해서 순환참조하느라 무한 루프가 발생하고 결국에는 Stackoverflow가 발생할 수 있기 때문에 id만 사용
Account 도메인
@Entity
@Getter @Setter
@EqualsAndHashCode(of ="id")
@Builder @AllArgsConstructor @NoArgsConstructor
public class Account {
@Id
@GeneratedValue
private Long id;
// email, nickname은 중복이 되지 않으므로 unique해야 함
@Column(unique = true)
private String email;
@Column(unique = true)
private String nickname;
private String password;
private boolean emailVerified;
private String emailCheckToken;
private LocalDateTime joinedAt;
private String bio;
private String url;
private String occupation;
private String location;
// varchar(255)보다 더 길어질 수 있을 때 @Lob -> text type에 매핑 시켜줌
// profile image는 user을 로딩 할 떄 종종 같이 쓰일 것이기 때문에 fetch모드로 가져오는게 좋음
@Lob @Basic(fetch = FetchType.EAGER)
private String profileImage;
// 알림
private boolean studyCreatedByEmail;
private boolean studyCreatedByWeb;
private boolean studyEnrollmentResultByEmail;
private boolean studyEnrollmentResultByWeb;
private boolean studyUpdatedByEmail;
private boolean studyUpdatedByWeb;
}
참고
인프런 강의 - 스프링과 JPA 기반 웹 애플리케이션 개발
'Dot Programming > Spring Clone' 카테고리의 다른 글
[스프링 웹앱 프로젝트 #6]회원가입 폼 서브밋 처리 (0) | 2020.11.05 |
---|---|
[스프링 웹앱 프로젝트 #5]회원 가입 폼 서브밋 검증 (0) | 2020.11.03 |
[스프링 웹앱 프로젝트 #4]회원 가입 뷰 (0) | 2020.11.03 |
[스프링 웹앱 프로젝트 #3]회원 가입 컨트롤러 (0) | 2020.11.02 |
[스프링 웹앱 프로젝트 #1]스프링 프로젝트 생성 (0) | 2020.11.02 |