Skip to content

1109(목) 회의록

Minboy edited this page Nov 9, 2023 · 1 revision

디자인

1

2

코드 구조 설계

FE

폴더구조 (FE)

  • src
    • components
      • common → 공통적으로 쓰이는 컴포넌트들
        • Button
          • index.tsx
          • styled.ts
      • feature → 특정 페이지 / 요소에서만 쓰이는 컴포넌트들
    • pages
      • 랜딩 페이지
      • 메인 페이지`
    • apis
    • constants
    • store
    • styles
    • types
    • utils
    • hooks

3

페이지

  1. 랜딩 페이지 - 로그인, 회원가입
  2. 메인 페이지 - 은하
  3. 화면 전환 페이지

컴포넌트

common

  1. 버튼
  2. 인풋
  3. 모달
  4. 알럿

데이터베이스 테이블 설계

4

  • 각 데이터의 길이는 추후 수정
  • user 테이블
5
```sql
-- -----------------------------------------------------
-- Table `b1g1`.`user`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `b1g1`.`user` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) NOT NULL UNIQUE,
  `password` VARCHAR(100) NOT NULL,
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `nickname` VARCHAR(50) NOT NULL UNIQUE,
  `galaxy_style` JSON NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `userid_UNIQUE` (`username` ASC) VISIBLE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
```

- id (identifier)
- username (유저 로그인 ID)
- password (salt + 비밀번호 해시값)
- created_at (계정 생성 일시)
- nickname (닉네임)
- galaxy_style (three.js에서 custom 은하를 그리기 위한 구조체)
    - 이후 MongoDB에 데이터 저장 고려
  • board 테이블
6
```sql
-- -----------------------------------------------------
-- Table `b1g1`.`board`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `b1g1`.`board` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `content` TEXT NULL DEFAULT NULL,
  `image` BLOB NULL DEFAULT NULL,
  `star_style` JSON NOT NULL,
  `star_position` POINT NOT NULL,
  `author` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `userid_idx` (`author` ASC) VISIBLE,
  CONSTRAINT `userid`
    FOREIGN KEY (`author`)
    REFERENCES `b1g1`.`user` (`username`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
```

- id (identifier)
- title (게시글 제목)
- content (게시글 내용)
- image (게시글 첨부 이미지 파일)
- star_style (게시글 각각의 별 스타일, 프론트에서 별을 그려줄 때 필요한 데이터)
    - 이후 MongoDB에 데이터 저장 고려
- star_position (프론트 우주 상에서의 글의 위치 정보 데이터)
    - MySQL에서 지원하는 POINT타입
    - 이후 MySQL에서 지원하는 공간 함수 활용을 고려
- author (작성자 id, user 테이블의 id를 외래키로 참조)

이슈 탬플릿

추후 학습 및 정리하고자 하는 것들

🐯 BE

  • NestJS LifeCycle ⭐️⭐️⭐️⭐️⭐️
    • Middleware
    • Guard
    • Interceptor
    • Exception Filter
  • NestJS에서 이미지 파일 저장 ⭐️⭐️
    • 리사이징
    • 확장자 통일
  • 관계형 vs NoSQL (어떤 상황에서 어떤 것을 사용하면 좋을 지) ⭐️⭐️
  • 데이터베이스 정규화 ⭐️⭐️⭐️
  • 데이터베이스 인덱싱 ⭐️⭐️
  • 데이터베이스 쿼리 최적화 ⭐️⭐️
  • MySQL의 데이터타입들, 함수들 - ex) POINT 타입과 공간 함수들 ⭐️⭐️
  • AWS, NCP ⭐️⭐️⭐️⭐️
  • NGINX ⭐️⭐️⭐️
  • CI/CD - docker, github action ⭐️⭐️⭐️
  • 로그 저장 및 모니터링 ⭐️⭐️
  • TDD ⭐️⭐️⭐️⭐️
    • Test Database Transaction Rollback

소개

규칙

학습 기록

[공통] 개발 기록

[재하] 개발 기록

[준섭] 개발 기록

회의록

스크럼 기록

팀 회고

개인 회고

멘토링 일지

Clone this wiki locally