7시에 팀회의를 했다. 팀 주제를 정하는 시간을 가졌다.
백엔드팀 상의 결과 내가 스프링부트를 초기화하기로 했다.
https://start.spring.io/
에서 Spring initializr 다운받아서 프로젝트를 만들려고 했는데, 빌드가 되지 않았다.
처음부터 막혀서 식은땀 났는데(😂ㅋㅋㅋ), 그냥 intellij에서 직접 Spring initializr을 추가하는 방식으로 진행했더니 됐다
- Project > New Module > Spring Initializr 선택
- SDK, Gradle 설정도 잊지말기 !!
@Valid
이용? 아니면 프론트에서 검증하는 방법은?
@ManyToOne
와@JoinColumn(name='idx')
는 한세트 (연관관계의 주인인 엔티티에)
@OneToMany
와mappedBy
속성은 한세트 (연관관계의 주인이 아닌 엔티티에)
분명 공부했는데도, 엔티티가 복잡해지니까(내기준) 맞게 적었나 자꾸 확인하게 된다..
좋아요를 누르면
Likes
엔티티에User
,Video
객체 저장하고
User
객체의List<Likes> likeVideos
에Likes
객체 저장할 생각이다.
이렇게 되면 사용자가 좋아하는 비디오 정보 갖고 올 때 조인문 대신List<Likes> likeVideos
을 쓰면 되기 때문에 불필요한 쿼리문을 날릴 필요가 없을 것이다.
엔티티에서 버튼 누르고 Show Entity Relationship Diagram 누르면 ERD 알아서 그려서 보여준다
모든 엔티티가 BaseEntity를 상속받도록 설계했기 때문에 원래 그림은 좀 더 지저분하지만
여기서 3번째 누르면 superclass 뺀 ERD를 그려준다(꿀팁!)
- Database > Reverse Engineer 에서 촥촥 진행하면 ERD 만들어진다.
- sql문은 아까 Show Entity Relationship Diagram가 있던 메뉴 아래의 Show DDL에서 뽑아서 쓰면 된다.
- DB별로 sql문을 만들어주는데, 이번 프로젝트에서는 mysql을 쓸거라서 mysql을 선택했다
단, 여기서 주의할 것은 연관관계가 복잡하게 얽혀 있는 경우 테이블 생성 순서를 잘 정해야 까마귀발이 잘 그려진다.
(용어 정확히 뭔지 몰라서 찾아봤더니 까마귀발이라고 한다ㅋㅋ 귀엽당)
예를 들어interest - user_interest - user
처럼 다대다 관계인 경우,interest
,user
테이블을 먼저 만들고user_interest 테이블
을 만들어야 외래키 매핑이 잘되면서 까마귀발도 잘 그려진다.