[Clone Coding] 인스타그램-엔티티 구현(3)

Cho Doil·2023년 1월 26일

clone-coding

목록 보기
3/7

엔티티 구현

소프트웨어를 개발하기 위해서는 믿고 쓰는 정해진 프로세스가 있다. 하지만 지금은 클론 코딩이니 코드를 보고 데이터베이스를 이해했다.

코드를 보니 각 엔티티들의 구성은 위의 사진과 같았다.

이를 통해 데이터베이스의 테이블을 간단히 분석해봤다.


위의 사진 처럼 테이블과 속성을 구성하면 될 것 같다.
정해진 표현식을 깜박하고 안썼다...(죄송합니다 ㅠㅠ)
화살표의 의미는 단순히 "(일) -> (다)"인 관계를 나타낸 것이다.

그리고 엔티티 분석 그림에서 빨간색으로 표시가 되어 있는데 이것은 바로 밑에 정리한 것을 참고해주길 바란다.

Annotation

본인이 생각한 이번 클론 코딩의 가장 큰 목표는 전체적인 큰 그림을 이해하는 것도 있지만 본인이 잘 모르는 코드를 이해하고 잘 써먹을 수 있게 공부하는 것이다.
그런 의미에서 엔티티를 구현하는데 기억이 잘 안나거나 처음보는 annotation들이 있어서 정리하고자 한다.

  1. @JsonIgnoreProperies:
    위의 첫 번째 사진에서 빨간색으로 표시한 것이 이것 때문이다. 각 엔티티의 체크된 변수위에 선언된 annotation이며, 무한 참조를 방지하기 위해 쓰인 것으로 보인다.
    JsonIgnoreProperies를 사용한다면 빨간 단어에 의해 참조됐을 때 더이상 참조하는 것을 막아준다.
  2. @NoArgsConstructor:
    파라미터가 없는 생성자를 만들어준다.
  3. @Builder:
    이는 빌더 패턴을 사용하기 위함이다. 기존 생성자보다 더 가독성이 좋으며 순서에 상관하지 않는다는 특징이 있다. 처음 써보는 것인데 생각보다 괜찮았다. 하지만 개인적으로 기존 생성자도 사용하는데 불편함이 없다.
    참고로 2번과 동시에 사용하려면 따로 생성자를 만들어줘야 한다고 한다.
  4. @UniqueConstraint:
    @Table 안에 사용되며 테이블의 속성 2개 이상이 조합되어 Unique 조건이 될 때 사용한다.

마지막으로

로컬 서버에서 화면이 잘 나오는지 시도를 해봤는데 Spring Security 설정을 따로 안해줘서 그런지 전혀 원하는 그림이 안나왔다..
다음엔 이쪽을 잘 분석해보자.

profile
초보 개발자의 저장소

0개의 댓글