Skip to content

Week2 ‐ 데일리 스크럼

Yong edited this page Nov 16, 2023 · 10 revisions

😀 2023-11-13

👨‍👩‍👧‍👧 공통 회의

주말에 한 일
  • Android
    • 오프라인 개발
  • BE
    • 웹소켓, WebRTC 학습
오전 스크럼 내용
  • WebSocket, WebRTC에 대한 논의 필요
    • WebRTC는 음성 통화를 적용하게 될 때 학습 및 구현하기로 결정
  • P2P 방식으로 사용하면 사용자 간에 버전 차이가 발생할 수 있어 동기화 문제가 발생할 가능성 인식
    • 서버를 통한 동기화 방식으로 결정
계획 회의
  • 통합

    • 칸반 관리를 위해 Github MindSync_Sprint 프로젝트 생성
    • 기존 backlog와 상세 이슈를 따로 관리하기 위함
  • BE

    • Node.js 서버 배포
    • DB 서버 각각 배포
      • MySQL, NoSQL 각각 배포 예정
    • 개발 환경 설정
  • Android

    • 마인드 맵 그리기
    • 개발 환경 설정
  • 간단한 계획 회의 후 각자 나눠서 상세 계획

티 타임 때 나눈 이야기
  • 모든 보드들이 로딩되는 것에 대한 생각이 필요할 것 같다.
    • 썸네일을 이미지화 하거나, 기본 이미지를 띄워주거나..?
  • 개발자 플레이스토어 계정이 있어야 하는데 계정 검토와 앱 검토가 오래 걸릴 수 있어서 빨리 시도해야 할 것 같다.
    • 상준님 계정이 있어서 계정 검토는 없을지도..?

👨‍💻 분야 별 회의

안드로이드 - 마인드 맵 만들기
  1. 데이터 구조? 클래스 만들기? ex) Plane, Node, …

    1. Node(val childNodes: List) { }

    2. CanvasNode(val childNodes: List) : Node{

      fun drawNode() {

      각도 계산…

      branch 위치 계산… 등등

      }

    }

  2. 노드 그리기

    1. 자기 자신그림

    2. childNode를 그리는데

      1. 이때 childNode의 위치를 결정

        1. childNode.size = 8 일때
          1. 360 / 8 = 45
          2. 45 ⇒ 상/하/좌/우/우상/좌상/좌하/우하

        ⇒ 그래서 브랜치는 Node의 위치가 결정되면 그릴수 있다

    3. 이때 childNode와 자기자신 사이에 branch 그림

      1. 노드의 한 변의 중앙 ( 이때, 한 변은 상하좌우 변 중 parentNode와 가장 가까운 변)과
      2. parent 노드 각도(ex-45도) 연결
    4. 마인드맵 글자입력

    5. 자동 정렬 ( 최대 하위노드 개수 제한 설정 )

  3. 가지 그리기

  4. 화면 확대 / 축소

  5. 자동 색상 ( depth 별로 )

  6. 노드 추가 / 삭제

  7. 뒤로가기,앞으로 가기

  • 기술적 도전으로 빼기
    1. 노드 드래그
    2. 곡선
    3. 빼기버튼
Backend - 배포 및 CRDT
  1. 서버 배포
    • Backend 서버
    • NoSQL 서버
    • MySQL 서버
  2. 방 연결
    • 각 방마다 데이터를 연결 할 수 있도록 테스트
  3. CRDT 구현
    • 학습 및 구현
      • 만약 라이브러리 사용할 거면 왜? 를 찾고, 직접 구현 가능하면 직접 구현하도록.
    • DB 저장(NoSQL)
      • 생성
      • 삭제
  4. Github Action
    • 수요일 마스터 클래스 끝나고 적용 예정
  5. MySQL
    • 테이블 생성

😁 2023-11-14

👨‍👩‍👧‍👧 공통 회의

어제 한 일
  • Android
    • 개발 환경 세팅
      • 공통 개발용 라이브러리 추가 (Hilt, Navigation, Retrofit2)
      • Databinding, ViewBinding 추가
      • 깃허브 Action labels 자동
      • Typography 추가
      • Colors 추가
  • BE
    • 노드 서버 배포
    • git action에 관련된 자동화는 수요일에 수업 듣고 진행
    • 도커 사용 고려
오늘 할 일
  • Android
    • BaseActivity, BaseFragment
    • 오늘부터 마인드맵 기능 개발 시작
    • 대면으로 2시
  • BE
    • DB 고려
    • 직접 구현 해보기 전 소켓 및 CRDT 라이브러리 구조 파악
이슈 전달
  • BE
    • 서버 하나 당 비용이 굉장히 비쌈
    • DB를 여러 개 쓰는 것에 대한 부담이 있을 듯
  • Android
    • GitHub Actions에서 ktlint가 Gradle 파일을 검사하는 문제
    • 캔버스는 데이터가 Position, 색상, 두께, 도형 타입
    • 마인드 맵 가지 개수 제한을 둬야 할 지, 데이터 형식은 어떻게 저장할지 토론해 봐야 할 듯

👨‍💻 진행 중 이슈

CRDT
  1. CRDT 알고리즘을 Kotlin에서도 구현해야 하고, Javascript에서도 구현해야 함.
    1. Javascript 코드를 사용하거나, 다 작성한 Javascript를 변환도 가능
  2. 마인드 맵 데이터가 어떤 식으로 오게 될 것인지, 서버 쪽에서 데이터를 가공해야 할 필요가 있을 것인가?

😄 2023-11-15

👨‍👩‍👧‍👧 공통 회의

어제 한 일
  • Android
    • 샘플 데이터를 토대로 그려주는 마인드 맵 그리기
    • 노드 클래스 변경
      • 마인드 맵 클래스에서 color 컬럼은 없애고, 중심 점을 기반으로 높이와 세로를 저장하기로 변경
    • 라인 커스텀 그리기
      • 노드의 중심점 기반으로 라인 그리기
    • 그림 그리는 알고리즘 고민 중
  • BE
    • 소켓 라이브러리와 CRDT 라이브러리를 통해 샘플 제작
      • 돌아가는 구조를 이해하고, 제작하면 빠를 것 같아서 샘플을 우선 제작
오늘 할 일
  • Android
    • 노드 생성 위치, 알고리즘 작성
    • 노드 추가 시 depth 별로 움직이는 로직 작성
    • 일단 오늘 개발 가능 시간은 4~5시간
    • 3명이서 Issue 3개를 분담해서 하는게 좋을거 같음.
      • 예상 이슈는 드로잉 알고리즘, 텍스트 입력, 화면 확대/축소/스크롤/화면크기고정
      • 선아 - 드로잉 알고리즘
      • 상준 - 화면 확대/축소/스크롤/화면크기고정
      • 재한 - 텍스트 입력
  • BE
    • CRDT 학습 및 구현

고려할 사항

CRDT
  • CRDT 는 Backend에서 구현한 뒤, Android는 추후 코드 변환이 필요 할 듯
  • 뒤로 가기를 할 때 어떻게 저장 할 것인지
  • 뒤로 가기는 기본 기능 구현 후 추가 하기로 결정
화면 구현
  • 양방향 마인드 맵으로 진행 할 듯
    • 마인드 맵에서 부모가 자식 노드를 기억 하도록 데이터 구조를 잡을 듯

😲 2023-11-16

👨‍👩‍👧‍👧 공통 회의

어제 한 일
  • Android
    • K027 - 확대하고 축소 될 수 있도록 구현
      • 확대 했을 시 화면을 벗어나는 경우 기존 그림이 안보이는 문제가 있어서 해결 할 예정
    • K023 - 자동 정렬 알고리즘
      • 버블맵일 경우 복잡할 것 같은데, 양방향 마인드 맵일 경우에 x, y만 구하면 될 것 같다.
      • 확대 축소를 했을 경우에 계산을 계속 해야되나 고민했었는데, 상준님 코드를 보니 다른 방식으로 접근할 수 있을 것 같다.
    • K029 - 노드 텍스트 입력
      • 더블 클릭으로 처리할지, 팝업 창을 띄울지 고민하다가 더블 클릭 방식이 어려운 것 같아서 팝업 쪽으로 고민해보고 있다.
  • BE
    • CRDT 라이브러리에서 직접 작성한 코드로 변경
    • Git Action 활용 방법 고민
오늘 할 일
  • Android
    • 오후 2시에 오프라인으로 같이 하기로
    • 노드가 화면 크기에 벗어나는 경우 노드가 안보이는 문제 해결
  • BE
    • 도커 활용 및 자동화 배포, DB 설치
    • 자동으로 밤에는 서버를 끌 수 있도록 가능한 지 확인
  • 공통
    • 멘토링 질문 적기
Clone this wiki locally