본문 바로가기

전체 글48

[JPA] Jakarta Spec(JSR 338) - (2)기본 키(PK) 및 Entity ID [이전글] [JPA] Jakarta Spec(JSR 338) - (1)Entity, Field, Access Type과 Jakarta Spec을 보는 이유 기본 키와 복합 키 모든 Entity는 반드시 기본키를 가져야 한다 기본 키는 Entity 계층 구조에 정확히 한 번만 정의되어야 한다 기본 키는 Entity 계층 구조의 Root인 Entity에 정의되어야 한다 기본 키는 Entity 계층 구조에 있는 모든 Entity 클래스의 superclass에 정의되어야 한다 기본 키는 Entity 클래스의 한개 혹은 한 개 이상의 필드를 조합하여 정의할 수 있다 복합 키가 아닌 기본 키는 단일 필드에 정의가 가능하고, @Id 어노테이션을 사용하거나, XML에 정의해야 한다 복합 키를 클래스로 정의할 수 있다.. 2023. 8. 23.
[JPA] Jakarta Spec(JSR 338) - (1)Entity, Field, Access Type SpringBoot 3.x 버전과 호환되는 SpringBoot starter-data-jpa 패키지에는 jakarta.persistence-api:3.1.0 라이브러리가 포함되어 있다 jakarta.persistence-api 라이브러리는 Java Application 개발자가 관계형 데이터베이스를 관리하기 위해 Java 도메인 모델을 사용하는 객체/관계형 매핑 기능을 제공한다 starter-data-jpa 를 사용하는 개발자에겐 익숙한 @Entity, @Table, @Id, @Enumerated 와 같은 어노테이션은 모두 jakarta.persistence-api 라이브러리에서 제공하고 있다 그렇다면, JPA를 잘 이해하고 싶다면 SpringBoot의 기본 제공 라이브러리인 jakarta.persist.. 2023. 8. 17.
11장 - 뉴스 피드 시스템 설계 페이스북의 뉴스 피드에 대한 정의 뉴스 피드는 여러분의 홈 페이지 중앙에 지속적으로 업데이트 되는 스토리들로, 사용자 상태 정보 업데이트, 사진, 비디오, 링킄, 앱 활동, 그리고 여러분이 팔로우하는 사람들, 페이지, 그룹으로부터 나오는 좋아요 등을 포함한다 설계 검토 항목 지원 시스템 모바일 앱 웹 중요한 기능 뉴스피드에 새로운 스토리를 발행할 수 있어야한다 친구들이 올린 스토리를 볼 수 있어야 한다 뉴스피드 스토리 노출 순서 토픽 점수(Topic Score) 시간 흐름 역순 한 명의 사용자가 최대 몇 명의 친구를 가질 수 있는가 ex) 5000명 트래픽 규모 DAU - 1000만 피드에 포함되는 항목 이미지, 비디오를 포함한다 설계 범주 분류 1) 피드 발행 (feed publishing) 2) 뉴스.. 2023. 8. 5.
[Java] 상수 값에 행위를 정의하고 싶다면 - Constant Specific Method Implementation 코드를 뚝딱뚝딱 만지다 보면 우리는 종종 특정 분류에 있는 값을 정의하여 사용해야 할 경우가 생기고 우리는 이것을 상수로 정의하여 사용하곤 합니다 가위바위보 게임을 예로 들자면 가위, 바위, 보 이 세 가지는 가위바위보라는 범위 내의 각각의 상수값으로 정의할 수 있습니다 public enum RPS { ROCK, PAPER, SCISSORS; } 모두가 아시다시피 가위바위보 게임은 가위,바위.보를 정의하는 것으로 끝나지 않습니다 가장 중요한 가위, 바위, 보 각각의 상관관계 가위는 보를 이긴다 보는 주먹을 이긴다 주먹은 가위를 이긴다 위 규칙에 대한 정의 혹은 행위가 필요합니다 위 규칙을 구현하기 위해 우리는 가위바위보의 규칙을 정의하는 Util Class를 정의할 수 있습니다. public class .. 2023. 7. 22.
반응형