
프로젝트 시작과 동시에 설계하는 것이 좋다! 1차 목표는 큰 틀을 정해두는 것 실제 개발을 진행하면서 필요한 내용을 수정해나가면된다.
처음에 빠르게 ERD를 설계하여, 모두가 공통된 데이터베이스에 대해 인지한 후 작업을 하는 것이 좋다.
밀리초 소수점 6자리까지 구분한다는 의미이다. (mysql에서는 6자리가 최대)
🙋♀️ 왜 created_at, updated_at 를 밀리초까지 구분할까?
최신순 정렬을 할때 동시에 등록된 경우 초 단위까지만 저장을 하게 되면 정렬이 잘 안될 수 있다.
member 테이블은 status와 inactive_date을 두는 것이 좋다.
그 이유는 회원 탈퇴를 철회하고 다시 돌아오는 회원들이 많기 떄문에 바로 데이터를 삭제해버리는 Hard Delete를 하게 되면 사용자 경험에 좋지 않다.
따라서, 사용자 같이 즉시 삭제하는 것이 위험한 엔티티는 바로 Delete를 하지않고 일단 비활성 상태로 두고, 일정 기간동안 비활성인 경우 자동 삭제가 되도록 설계 하는 것이 좋다.
어떻게 자동으로 지우나요?
batch라는 것을 사용하는데, 이는 정해진 시간에 자동으로 실행되는 프로세스이다. 예를 들어, 매일 정해진 시간에 자동으로 테이블을 검사하여 inactive된 이후 며칠이 지난 경우 삭제하도록 설정할 수 있다. 이를 soft delete라고 한다.
N : M 관계일 때는 가운데에 매핑 테이블을 따로 두어야 한다.
가운데 매핑 테이블은 양쪽의 기본 키를 외래 키로 가지고, 각각과 1 : N 관계를 가진다.
3가지 설계 방법이 존재한다.
여러 알람 타입을 서브 타입으로 두고 설계하는 것이다.
모든 내용을 한 테이브렝 두고 dtype으로 구분하는 것이다.
RDS를 VPC의 서브넷에 배치 하기 위해서는 2개의 서브넷을 지정해주어야 한다.
RDS는 만약을 대비하여 서브넷 2개를 요구한다.
IPc4 CIDR 블록을 10.0.3,0.24로 하나 생성해주겠다.

이 서브넷을 퍼블릿 서브넷으로 만들기 위해 외부와 연결이 된 라우팅 테이블에 연결을 해주겠다.

DB 서브넷 그룹을 생성한다. 이때, 서로 다른 2개의 가용영역으로 해야한다.

RDS-> 데이터베이스 메뉴 -> 데이터베이스 생성
표준 생성, mysql, 프리티어, 인스턴스 식별자 입력, 마스터 사용자 이름(root), 마스터 암호, 스토리지 자동 조정 체크 해체(돈 아껴야 함), EC2 컴퓨터 리소스 연결 안 함, VPC 선택, 앞서 생성한 DB 서브넷 그룹 선택, 퍼블릭 엑세스 '예', 보안 그룹은 VPC 설정 시 만들었던 보안 그룹(3306 anywhere 필수), 자동 백업 체크 해제
생성한 Database의 상세 페이지에서 엔드포인트 복사 ->
DataGrip에서 새로 연결을 만들어 Host에 엔드포인트 넣고, User와 Password에 RDS 생성 시 기입했던 정보를 기입 -> Test Connection
succeeded라고 뜨면 성공!