// 그리드 함수 백업 

  makeGrid() {
    const totalCount = this.bundleImageJson.fileCount;
    const remainder = totalCount % 3;
    const quotient = Math.floor(totalCount / 3);

    let tile;

    if (remainder === 0) {
      this.bundleImageJson.thumbUrls.forEach((v, idx) => {
        tile = {} as Tile;
        tile.cols = 2;
        this.getTile(tile, v);
      });
    } else if (remainder === 1) {
      if (quotient === 0) {
        tile = {} as Tile;
        this.bundleImageJson.thumbUrls.forEach(v => {
          this.getTile(tile, v);
        });
        tile.cols = 6;
        return;
      }

      this.bundleImageJson.thumbUrls.forEach((v, idx) => {
        tile = {} as Tile;
        if (quotient <= idx / 3 + 1) {
          tile.cols = 3;
        } else {
          tile.cols = 2;
        }
        this.getTile(tile, v);
      });
    } else {
      this.bundleImageJson.thumbUrls.forEach((v, idx) => {
        tile = {} as Tile;
        if (quotient <= idx / 3) {
          tile.cols = 3;
        } else {
          tile.cols = 2;
        }
        this.getTile(tile, v);
      });
    }
  }

  private getTile(tile: Tile, v: string) {
    tile.imgSrc = this.baseURL + v;
    tile.color = 'white';
    this.tiles.push(tile);
  }

모바일 개인 주소록을 PC 버전에도 공유
  PC->Mobile 
    주소록 요청 
  PC<-Mobile
    주소록 전송
  PC->Mobile
    주소록 완료 
  
주소록 
    UI 구성
        검색 (이름, 전화번호)
        검색 결과
        리스트 출력
        모바일 주소록 동기화(PC-> Mobile 요청)
        모바일 주소록 초기화(PC에서 동기화된 주소록 초기화)
        엑샐 탬플릿 (주소록을 입력할 수 있는 액샐 템플릿을 제공)
        액샐 업로드 (주소록이 입력된 액샐 템플릿을 업로드 하여 PC 주소록 업데이트)
        액샐 데이터 초기화 (액샐 업로드 데이터 초기화)
        액셀 내려받기 (주소록 데이터 액셀로 다운로드)
    기능 목록
        모바일 주소록 동기화
            기존방식 (데이터가 많은 경우 중간 서버에서 끊길 가능성)
                1. PC -> Server 
                  모바일 주소록 동기화 시작
                  SSVC_TYPE_SYNC_PHONEBOOK_READY_REQ
                2. Server -> Mobile
                  모바일 주소록 동기화 노티 
                3. Mobile -> Server
                  모바일 준비 완료 요청 및 데이터 전송 (추측)
                4. Server -> PC
                4. Server -> PC
                  SSVC_TYPE_SYNC_PHONEBOOK_READY_NOTI
                5. PC -> Server
                  PC 준비 완료 요청
                  SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_REQ
                6.Server -> PC
                  SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_RES //사용없음
                  SSVC_TYPE_SYNC_PHONEBOOK_READY_OK_NOTI 
                    PC가 모바일로부터 준비 확인 NOTI를 받는 처리를 수행
                7.Server -> PC
                  SSVC_TYPE_SYNC_PHONEBOOK_SND_RES  //사용없음
                  SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI //실데이터받는 프로토콜
            박차장님이 제안한 방식
                PC -> 서버 
                    개인 주소록 동기화 요청
                    프로토콜 정의 협의 
                      SSVC_TYPE_SYNC_PHONEBOOK_READY_REQ
                    (사용자번호)
                서버 -> 모바일 
                    개인 주소록 동기화 요청에 대한 푸시
                모바일 -> 서버 (REST API)
                     개인 주소록 POST 전송
                     데이터 JSON 형태
                서버 -> 모바일 (REST API)
                    개인 주소록 전송에 대한 응답
                    (응답코드, 싱크번호, 시간, 사용자번호)
                모바일 -> 서버
                    개인 주소록 전송 동기화 프로토콜 요청
                    (싱크번호, 시간, 사용자번호)
                서버 -> 모바일 
                    개인 주소록 전송 동기화 프로토콜 요청에 대한 응답
                서버 -> PC
                    모바일 개인 주소록 전송 완료 노티
                    SSVC_TYPE_SYNC_PHONEBOOK_SND_NOTI
                    (싱크번호, 사용자번호)
                PC -> 서버 (REST API)
                    개인 주소록 요청
                    (싱크번호, 사용자번호)
                서버 -> PC 
                    개인 주소록 JSON 
                    (싱크번호, 시간, 사용자 번호)
                
        모바일 주소록 초기화
            PC에 저장된 모바일 주소록을 삭제
        엑샐 
            Export/Import
            템플릿
            초기화

대화방

TODO 완료
  대화 묶음파일 그리드 컴포넌트 리팩토링
  
  파일 업로드 큐 컴포넌트 수정
    묶음파일 처리 추가

  묶음파일 업로드 함수 리팩토링
    묶음파일 모델링 수정
  메세지 전송 컴포넌트 수정
    묶음파일 전송 UI 추가
    묶음파일 전송 로직 추가
  이벤트 타입 추가
    BundleImage = 'b';
  파일 타입 추가
    Bundle = 'b';
  앨범함 컴포넌트 수정
    묶음파일 타입 처리 추가
