부트캠프 87일차 후기
오늘로 어느정도 개인프로젝트를 완성했다. 다소 버그가 있고 미흡한 점이 있지만, 내일 다소 보강을 하면 완성이다.
지금까지 무시해 온 자잘한 버그를 수정했는데, 기억에 남는 것은 ZoneDateTime을 javascript에서 사용하는 것을 찾는 것이였다.LocalDateTime을 attribute로 사용하자니, 이전에 알아냈듯 정확한 시간을 얻기 힘들 것 같아서 고민을 했었는데, Response로 리턴할 때, LocalDateTime으로 바꾸는 좋은 방법을 떠올렸고, 다행히, 정상적으로 작동했다.
또 다른 것은 @ElementCollection의 사용이다. Like를 표시하기 위해서, 중복 방지를 위해서 자료구조를 사용했다. 처음엔 Set을 사용했는데, 어차피 중복 사용을 미리 확인을 해볼거고, Set 사용이 성능면에서 좋지 않다고 들어서 List로 수정하였다. 또, @OneToMany를 사용했었는데, like로 사용하기엔 무겁다고 느껴졌다. 즉, 단순 멤버 id를 저장하는 컬렉션이 필요했다. 이렇게 @ElementCollection을 사용해서 좋아요를 만들었다.
그 외 자잘한 버그를 고치고, github 사용을 하다. 코드를 날릴 뻔하기도 하며, 겨우 프로젝트를 완성했다. 내일은 좀 더 다듬을 예정이다.
참조: https://lordofkangs.tistory.com/383
[JPA] 값타입 컬렉션 ( @ElementCollection, @CollectionTable )
[JPA] 임베디드 타입 ( @Embedded, @Embeddable ) @Id 어노테이션이 붙은 필드는 식별자를 의미한다. JPA는 식별자로 엔티티를 구분한다. @ManyToOne 등은 연관관계를 의미한다. JPA는 어노테이션으로 다른 엔
lordofkangs.tistory.com