-
Notifications
You must be signed in to change notification settings - Fork 4
5주차 회의록
DongHwan Kim edited this page Nov 25, 2021
·
6 revisions
-
Folder를 명시한 스키마 구조
- 각각의 폴더도 DB의 도큐먼트로 관리해야 한다.
-
중요 문서함
- star 필드 하나 추가
-
중복된 파일/폴더 업로드 방지
- 파일/ 폴더명을 임의로 변경
- 저장할때부터 파일의 이름을 변경해서 저장
2. 파일/ 폴더명 업로드 차단
- 저장할때부터 파일의 이름을 변경해서 저장
- 파일/ 폴더명을 임의로 변경
-
mongo DB indexing
(6주차)
-
UX/UI 디테일
- 버튼들 커서 변경
- 로그인시, 비밀번호에서 엔터 누르면 post 요청
- Select and Drag하면서 스크롤 내리면 드래그박스가 따라오지 않는 문제
- 아주 조금만 드래그돼도, 드래그로 판단되는 부분
-
클라이언트 파일 생성/수정 시간 버그 수정 - 해결
기본적인 파일의 도큐먼트 구조
/test1/file.txt
{
_id: "6193bb2896a9733ec7929210",
osLink: "https://oslink~~",
directory: "/test1",
name: "file.txt",
size: 2048,
ownerId: "ownerLoginId",
contentType: "text/plain",
isDeleted: false,
isStar: false,
createdAt: "2021-11-16T14:07:36.957+00:00",
updatedAt: "2021-11-18T15:02:54.451+00:00"
}
기본적인 폴더의 도큐먼트 구조
/test1/test2
// directories: [ "/test1/test2" ]
- 폴더를 들고와야 됨
- directory 필드의 /test1, name 필드의 test2랑 정확히 일치하는 것
- 인풋값 파싱이 필요함.
- directory 필드의 /test1, name 필드의 test2랑 정확히 일치하는 것
- 폴더가 포함하고있는 하위 파일/폴더를 들고와야 됨 3. directory 필드의 ^/test1/test2.* 를 regex 들고와야 됨
{
_id: "6193bb2896a9733ec7929210",
osLink: "",
directory: "/test1",
name: "test2",
size: 0,
ownerId: "ownerLoginId",
contentType: "folder",
isDeleted: false,
isStar: false,
createdAt: "2021-11-16T14:07:36.957+00:00",
updatedAt: "2021-11-18T15:02:54.451+00:00"
}
휴지통에 있는 파일의 도큐먼트 구조
/test1/file.txt
{
_id: "6193bb2896a9733ec7929210",
osLink: "https://oslink~~",
directory: "/test1",
name: "file.txt",
size: 2048,
ownerId: "ownerLoginId",
contentType: "text/plain",
isDeleted: true,
isStar: false,
createdAt: "2021-11-16T14:07:36.957+00:00",
updatedAt: "2021-11-18T15:02:54.451+00:00",
deletedAt: "2021-11-18T15:02:54.451+00:00"
}
중요문서로 등록된 파일의 도큐먼트 구조
/test1/file.txt
{
_id: "6193bb2896a9733ec7929210",
osLink: "https://oslink~~",
directory: "/test1",
name: "file.txt",
size: 2048,
ownerId: "ownerLoginId",
contentType: "text/plain",
isDeleted: false,
isStar: true,
createdAt: "2021-11-16T14:07:36.957+00:00",
updatedAt: "2021-11-18T15:02:54.451+00:00"
}
짜잘한거/공통된거 빼고 중요한 부분만
/folder1/file.txt 파일인 경우
{
osLink: "https://oslink~~",
directory: "/folder1",
name: "file.txt",
size: 2048,
contentType: "text/plain"
}
/folder1/folder2 폴더인 경우
{
osLink: "",
directory: "/folder1",
name: "folder2",
size: 0,
contentType: "folder"
}
- router 계층
- POST cloud/upload (동환)
- 바꿀게 없내..?
- 빈폴더 기능이랑 별개로 비동기 처리를 변경할 필요가 있음
- for await이라 DB에 파일 넣는 과정들이 동시에 이루어지지 않음
- Promise.all 패턴으로 바꾸자...
- PUT cloud/files (동환)
- moveTrashFolders 부분을 수정해야할 것 같다.
- 구현하면서 파악해보자
- DELETE cloud/files (동환)
- removeFolders 부분을 수정해야할 것 같다.
- 구현하면서 파악해보자
- GET cloud/download (영화)
- Folder 여부 확인 후 Folder는 따로 mkdir 하기
- GET user/files (영화) url 변경하기(GET cloud/files)
- 현재 디렉토리에 있는 파일은 그대로
- 현재 디렉토리에 있는 폴더는 Folder여부 확인 후 따로 파싱하기
- GET user/directory
- POST cloud/upload (동환)
- service 계층
- /cloud/download/getDownloadListMetadata (영화)
- 빈 폴더 생성 후 다운로드
- /cloud/directory/getFilteredFiles, getFiles (영화)
- 폴더만 따로 파싱하기
- /cloud/file/uploadFile (동환)
- 파일을 업로드하는 과정에서 해당 파일이 해당되는 디렉토리들을 만들어줘야 한다.
- ex) /folder1/folder2/test.txt
-
/folder1
,/folder1/folder2
디렉토리 도큐먼트가 없다면 만들어야 한다.
-
- /cloud/file/(moveTrashFolders, restoreTrashFolders, removeTrashFolders) (동환)
- 기존 방식을 유지하는 방향으로 진행
- 폴더를 들고와야 됨
- directory 필드의 /test1, name 필드의 test2랑 정확히 일치하는 것
- 인풋값 파싱이 필요함.
- directory 필드의 /test1, name 필드의 test2랑 정확히 일치하는 것
- 폴더가 포함하고있는 하위 파일/폴더를 들고와야 됨
- directory 필드의 ^/test1/test2.* 를 regex 들고와야 됨
- makeTree
- /cloud/download/getDownloadListMetadata (영화)
- router 계층
- 빈 폴더 만들기 요청을 받을 라우터 추가
- service 계층
- 빈 폴더를 mongoDB 도큐먼트로 추가해줄 함수 추가?
- 폴더 이동 구현 완료 ( 윤영 ....)
- 새 폴더 이름 중복 방지 적용
- 자잘한 UX 처리
- 버튼 커서 처리
- 로그인, 회원 가입 폼 상단으로 이동
- 로그인 화면에서 비밀번호까지 입력하고 엔터누르면 폼 전송
- contextmenu UI 수정
- 로그아웃 UI 위치 수정
- 화면이 작아질 때, 레이아웃이 깨지는 것
- min-width를 걸어주면 될 것 같다.
- (FE) 매직넘버? 빼기
- API 문서 추가
- Demo 영상 제작
- Gather town 꾸미기 (logo, 소개 등)
-
스트레스 테스트
-
파일 구조 리팩토링
- 적절하지 않은 폴더에 있는 파일들 정리
-
잡다한 리팩토링
- 디렉토리 트리 계속 백엔드에서 안가져오게 코드 개선
- (FE) api들 api 폴더로 이동
- 안쓰는 함수 매개변수 or 변수 등등 정리
- 적절하지 않은 변수명 or 함수명 변경?
- (FE) 사이드바를 포함하지 않고 라우팅
- 메인페이지 <-> 휴지통 <-> 중요문서함들의 사이드바는 모두 같은 사이드바를 사용해도 됨
-
UX
- 드래그가 아주 조금만 돼도, 드래그로 판단하는 것? (이건 기능 구현인데?)
- 새 폴더 추가할때 엔터쳐도 추가되도록
-
버그 수정
-
에러 핸들링
-
Docs 정리
-
PPT 제작
-
데모 영상 제작
- Short version, Full version
- 무중단 배포 container 바뀌는것 (동영상으로..?)
-
예상 질문 뽑아서 정리
월-화: 리펙토링, 에러 헨들링 수: 스트레스 테스트 목 - 발표 준비