Skip to content

231113 회의록

littlesam95 edited this page Nov 16, 2023 · 3 revisions

2주차 스프린트 계획 회의

안건

  • 2주차 목표 설정
    • 이번 주의 우선 순위, 구현할 기능, 작업 크기, 담당자
    • 구현할 기능에 대한 데모 시나리오 작성
      • 테스트 목적과 상황
      • 시나리오 진행에 필요한 값
      • 시나리오 진행에 필요한 조건
      • 시나리오 완료시 보장하는 결과
    • 개인 단위의 성장/학습 목표
      • 학습 정리
  • API 명세 작성
  • DB 스키마 설계(BE)

1. 2주차 목표 설정

  • 먼저 구현되어야 하는 화면은 무엇인가?
    • 백엔드와 통신하며 테스트 하려면 구현되어야 하는 화면이 결정되어야 함
    • 먼저 지도화면을 구현해서 테스트

1.1. 우선 구현할 기능 : 지도화면에서 나, 다른 유저 보이게 하고 주기적으로 업데이트

  • github projects에 backlog에 iteration 1으로 이번주 작업 결정

1.2. 데모 시나리오

1.3. 개인단위의 성장/학습 목표

  • J020
    • 인프라(클라우드) 설정 학습
    • nest.js 학습
    • RESTful API 학습
  • J023
    • 클라우드 플랫폼 활용
    • NestJS 학습
    • DB 스키마 설계
  • K008
    • 실시간 위치 공유
    • 의존성 주입
  • K009
    • 의존성 주입
    • 패턴 학습 및 적정 패턴 활용
  • K037
    • 소셜 로그인 기능 구현
    • 모듈 단위의 계층 분리 vs 패키지 단위의 계층 분리
    • 기술을 선택한 이유(특징, 장점)에 대한 설명을 포함해 이번 주에 학습한 내용 정리

2. API 명세 작성

3. DB 스키마 설계(BE)

1. 계획

이번주 목표

  • 인프라 세팅
  • api를 응답 서버 구현 (DB 구축 X)
  • DB 스키마 설계(ERD 작성)
    • 유저DB

      • id
      • 닉네임
      • 유저프로필

      • 로케이션
      • 마지막 채팅
  • 초기 DB 구축(RDB)
  • 배포

이번 프로젝트의 기술적 목표(BE)

  • 특정 좌표를 가지는 유저 ‘주변’ 다른 유저 검색 (DB 풀스캔 X)
  • 빈번한 업데이트를 가지는 실시간 DB 작업 → Redis? Firebase?

계획 간 의존성 검토

Nest.js 학습 → 초기 API 응답 서버 구현

마스터클래스 복습 → 인프라 세팅 → 1주차 배포

DB 스키마 설계 → 초기 DB 구축


2. 수행 내역

인프라 세팅

서브 어카운트 설정
  • NCP 결제 수단 등록
  • 서비스 → Management & Governance → Sub Account → 신청
  • 콘솔 → Sub Account → 서브 어카운트 생성
    • 대쉬보드 : 로그인 접속키 생성
    • 서브 어카운트 권한 부여 : NCP_Administrator 부여

DB 스키마 설계

https://dbdiagram.io/d/6551d6f87d8bbd64650ddaab

  • id : integer (pk, auto_increment)

    https://americanopeople.tistory.com/378

    • 대안) uuid :
      • 장점
        • 유일함 : 분산환경에서 사용 가능 (stateless)
        • 데이터 충돌 X
        • 보안성 good
      • 단점
        • 저장 공간 많이 차지(일반적으로 16byte)
        • 검색 성능 떨어짐
    • 우리는 인증/인가를 사용하기 때문에 pk값 노출에 대한 부담이 적음
    • user db를 분산해서 사용할 경우 곤란 할 수 있으나, 현재 고려할 문제는 아님
  • username : varchar(15), null

    • 2n-1로 하는게 좋음 : 널문자 포함하여 2의 배수로 가져가는게 메모리 효율성 향상에 ‘일반적으로’ 좋다
      • DBMS, OS(캐시 성능) 측면에서!
    • 초기 생성시에는 null로
  • created_at : timestamp, not null

    • 서비스 관리 측면에서 필요
  • profile_url : varchar(255), null

    • 일단 넉넉하게 잡아둠
  • locX, locY : float, null

    • 초기 생성시 null로
  • message : varchar(31) , null

    • 한 줄에 가까운 양으로
  • messaged_at : timestamp, null

    • 메시지 갱신 시각
Clone this wiki locally