-
Notifications
You must be signed in to change notification settings - Fork 9
6차 스프린트 기준 ERD
Jaewoo Shin edited this page Oct 28, 2024
·
2 revisions
create table category
(
id bigint not null auto_increment,
name varchar(255) not null,
member_id bigint not null,
is_default bit not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (id)
) engine = InnoDB;
create table likes
(
id bigint not null auto_increment,
member_id bigint not null,
template_id bigint not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (id)
) engine = InnoDB;
create table member
(
id bigint not null auto_increment,
name varchar(255) not null,
password varchar(255) not null,
salt varchar(255) not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (id)
) engine = InnoDB;
create table source_code
(
id bigint not null auto_increment,
template_id bigint not null,
ordinal integer not null,
filename varchar(255) not null,
content TEXT not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (id)
) engine = InnoDB;
create table tag
(
id bigint not null auto_increment,
name varchar(255) not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (id)
) engine = InnoDB;
create table template
(
id bigint not null auto_increment,
member_id bigint not null,
category_id bigint not null,
title varchar(255) not null,
description TEXT,
visibility enum ('PRIVATE','PUBLIC') default 'PUBLIC' not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (id)
) engine = InnoDB;
create table template_tag
(
template_id bigint not null,
tag_id bigint not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (tag_id, template_id)
) engine = InnoDB;
create table thumbnail
(
id bigint not null auto_increment,
template_id bigint not null,
source_code_id bigint not null,
created_at datetime(6) not null,
modified_at datetime(6) not null,
primary key (id)
) engine = InnoDB;
create index idx_member_id
on category (member_id);
alter table category
add constraint name_with_member unique (member_id, name);
alter table member
add constraint UK9esvgikrmti1v7ci6v453imdc unique (name);
create index idx_tag_name
on tag (name);
alter table thumbnail
add constraint UKi6dbyoqre1oeei7309am7m65p unique (source_code_id);
alter table thumbnail
add constraint UKqvae6g2xuj6an3wjyc7wau2eb unique (template_id);
alter table category
add constraint FKd7qtd46ngp06lnc19g6wtoh8t
foreign key (member_id)
references member (id);
alter table likes
add constraint FKa4vkf1skcfu5r6o5gfb5jf295
foreign key (member_id)
references member (id);
alter table likes
add constraint FKbrgthyu05fsswb9ysi2l79g7r
foreign key (template_id)
references template (id);
alter table source_code
add constraint FKjax3t3l28tqs65iqfd3ty5dxw
foreign key (template_id)
references template (id);
alter table template
add constraint FKfke34lch7qf4xixqnyj3h12m7
foreign key (category_id)
references category (id);
alter table template
add constraint FKodvst19gfi7in0ox3dfocuejx
foreign key (member_id)
references member (id);
alter table template_tag
add constraint FK460d2kdmrpffumqaahvh414mv
foreign key (tag_id)
references tag (id);
alter table template_tag
add constraint FKnq3tyggcae26yafql1l0rc91l
foreign key (template_id)
references template (id);
alter table thumbnail
add constraint FKssc68bv1tyrlqpi3fet97rbi
foreign key (source_code_id)
references source_code (id);
alter table thumbnail
add constraint FKgxg8st4s8hfkmbb3mbm34ww49
foreign key (template_id)
references template (id)
https://dbdiagram.io/d/code-zap-6-668f39759939893dae9cef63
Table category {
id bigint [not null, pk, increment]
name varchar(255) [not null]
member_id bigint [not null, ref: > member.id]
is_default bit [not null]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
indexes {
(member_id)
}
}
Table likes {
id bigint [not null, pk, increment]
member_id bigint [not null, ref: > member.id]
template_id bigint [not null, ref: > template.id]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
}
Table member {
id bigint [not null, pk, increment]
name varchar(255) [not null, unique]
password varchar(255) [not null]
salt varchar(255) [not null]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
}
Table source_code {
id bigint [not null, pk, increment]
template_id bigint [not null, ref: > template.id]
ordinal integer [not null]
filename varchar(255) [not null]
content TEXT [not null]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
}
Table tag {
id bigint [not null, pk, increment]
name varchar(255) [not null]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
indexes {
(name)
}
}
Table template {
id bigint [not null, pk, increment]
member_id bigint [not null, ref: > member.id]
category_id bigint [not null, ref: > category.id]
title varchar(255) [not null]
description TEXT
visibility enum('PRIVATE', 'PUBLIC') [default: 'PUBLIC', not null]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
}
Table template_tag {
template_id bigint [not null, ref: > template.id]
tag_id bigint [not null, ref: > tag.id]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
indexes {
(tag_id, template_id) [pk]
}
}
Table thumbnail {
id bigint [not null, pk, increment]
template_id bigint [not null, ref: > template.id]
source_code_id bigint [not null, ref: > source_code.id]
created_at datetime(6) [not null]
modified_at datetime(6) [not null]
}
- 백엔드 코드 컨벤션
- 백엔드 기술 스택 및 선정 이유
- 각종 인스턴스 설정 파일 및 구성 위치 가이드
- ERD
- 백엔드 CI CD 동작 프로세스
- 로컬 DB 환경 설정
- 백엔드 로깅 전략
- 백엔드 로그 모니터링 구성도
- 스프링 메트릭 모니터링 구성도
- Flyway 로 스키마 관리
- 코드잽 서버 구성도
- Git Submodule 사용 메뉴얼
- 프론트엔드 코드 컨벤션
- 프론트엔드 기술 스택 및 선정 이유
- 프론트엔드 서비스 타겟 환경 및 브라우저 지원 범위 선정
- 프론트엔드 모니터링 및 디버깅 환경 구축
- 프론트엔드 테스트 목록
- 프론트엔드 라이브러리 기술 검토
- 프론트엔드 개발서버, 운영서버 빌드 및 배포 환경 구분
- 목표했던 타겟 환경과 디바이스에서 서비스 핵심 기능 동작 확인
- 프론트엔드 접근성 개선 보고서
- EC2 로그 확인 방법
- VSCode를 통한 EC2 인스턴스 SSH 연결 방법
- 터미널을 통한 EC2 인스턴스 SSH 연결 방법
- NGINX 설정 파일 접근 및 적용 방법
- DB 접속 및 백업 방법
- [QA] 배포 전 체크리스트
- CI 파이프라인 구축
- CD 파이프라인 구축
- 백엔드 CI CD 트러블슈팅
- Lombok Annotation Processor 의존성을 추가한 이유
- 2차 스프린트 기준 ERD
- DTO 검증하기
- ProblemDetail
- Fork된 레포지토리 PR에서 CI Secrets 접근 문제 해결
- AWS CloudWatch 모니터링
- 스프링 메트릭 모니터링 구축 방법
- 로깅과 Logback에 대해 알아보아요.
- Logback MDC로 쉽게 요청 추적하기 (+ Grafana로 추적 더더 쉽게!)
- 백엔드 CD 파이프라인 Ver.2
- 요청, 응답 로그에 correlationId 를 추가하자!
- 3차 스프린트 기준 ERD
- 더미데이터 생성하고 실행하기
- 쿼리 성능 개선 결과
- 테이블별 인덱스 설정 목록
- 사용자 증가 시 발생할 수 있는 문제 상황과 개선 방안
- k6를 사용한 서버 부하 테스트
- 6차 스프린트 기준 ERD
- TestExecutionListenr 간의 충돌 문제에 대해 알아보아요
- Query Performance Improvement Results
- 테스트 전략 및 CI 설정
- CI CD 구조
- 배포 전, 로컬에서 로그인 기능 포함 테스트해보는 법
- stylelint 적용기
- 내 작업 브랜치 중간에 Merge된 동료의 작업물을 넣고 싶다면 pull vs rebase
- [TS] Webpack config
- [TS] Webpack 환경에서 MSW v2 이슈
- [TS] webpack에서 react‐router‐dom 적용 안됨