3주차 주간 보고서

1. 이번 주 개발 내용

추석 연휴가 있었던 한 주인 만큼, 우선 모두 추석 연휴 잘 보내셨는지 궁금합니다.


이번 주에는 연휴 기간을 포함하여 기존에 구현해 둔 NMCloud의 파일 관리 기능을 중심으로 파일 업로드 과정의 완성도를 높이고, 사용자 편의 기능 및 예외 처리 기능을 추가하는 방향으로 개발을 진행하였다.

특히 파일 업로드 이후 실제 클라우드 화면에 파일이 즉시 표시되도록 개선하였으며, 파일 선택 및 더블클릭과 같은 사용자 동작을 추가하였다. 또한 접근할 수 없는 파일이나 폴더가 존재하는 경우 사용자에게 이를 알려주는 경고 기능을 구현하여 향후 발생할 수 있는 예외 상황에 대응할 수 있도록 구성하였다.


2. 파일 업로드 후 즉시 화면 표시 기능 구현

기존에는 파일을 업로드한 이후 데이터 처리 과정이 완료되어야 화면에 파일 정보가 반영되는 구조였으나, 이를 개선하여 파일 업로드가 완료되면 해당 파일이 클라우드 메인 화면에 즉시 표시되도록 구현하였다.

파일 업로드 과정에서 서버에 파일 정보를 전달하고 정상적으로 업로드가 완료되면 별도의 페이지 새로고침 없이 현재 파일 목록에 해당 파일을 추가하도록 구현하였다.

이를 통해 사용자가 파일을 업로드한 직후 현재 클라우드에 파일이 정상적으로 등록되었는지 바로 확인할 수 있도록 하였으며, 전체적인 사용자 경험을 개선하였다.


2.5. 실제 사용량을 기반으로 한 저장 공간 할당량 검사

파일 업로드 과정에서 사용자의 실제 저장 공간 사용량과 할당된 저장 공간을 비교하여 업로드 가능 여부를 확인하는 기능을 추가하였다.

파일 업로드 전 현재 사용 중인 저장 공간을 확인하고, 업로드하려는 파일의 크기를 추가했을 때 할당된 저장 공간을 초과하는 경우에는 파일 업로드가 진행되지 않도록 구현하였다.

또한 파일 업로드가 완료된 이후에도 실제 저장된 파일의 크기를 기준으로 사용량을 다시 확인할 수 있도록 구성하여, 화면에 표시되는 저장 공간 사용량과 실제 데이터 사용량이 일치하도록 처리하였다.

이를 통해 사용자가 저장 공간을 거의 모두 사용한 상태에서 추가로 파일을 업로드하려고 하더라도 할당량을 초과하는 파일은 업로드되지 않도록 제한하였다.

예를 들어 저장 공간이 거의 가득 찬 상태에서 남은 용량보다 큰 파일을 업로드하려고 시도할 경우, 업로드 작업을 진행하지 않고 이를 차단하도록 구현하였다.


3. 파일 업로드 실패에 대한 예외 처리 추가

파일 업로드 과정에서 네트워크 오류나 서버 오류 등으로 인해 업로드가 정상적으로 완료되지 않는 상황을 고려하여 업로드 실패에 대한 예외 처리 기능을 추가하였다.

업로드 과정에서 오류가 발생할 경우 해당 작업을 정상적으로 완료된 것으로 처리하지 않고, 사용자에게 업로드에 문제가 발생했음을 알려주도록 구성하였다.

이를 통해 파일 업로드 과정에서 발생할 수 있는 오류를 사용자에게 명확하게 전달하고, 업로드에 실패한 파일이 정상적으로 업로드된 것처럼 화면에 표시되는 문제를 방지하였다.


4. 파일 선택 및 더블클릭 액션 구현

클라우드 메인 페이지에서 파일을 보다 편리하게 관리할 수 있도록 파일 선택 및 더블클릭 액션을 추가하였다.

사용자가 파일을 클릭하면 해당 파일을 선택할 수 있도록 하였으며, 더블클릭과 같은 추가적인 사용자 동작을 사용할 수 있도록 이벤트를 구현하였다.

이를 통해 향후 파일 다운로드, 파일 열기 또는 상세 정보 확인 등의 기능을 연결할 수 있는 기반을 마련하였다.


5. 접근 불가능한 파일 및 폴더에 대한 경고 기능 구현

클라우드에 존재하는 파일 또는 폴더 중 정상적으로 접근할 수 없는 항목이 존재할 경우 사용자에게 이를 알려주는 접근 불가 경고 기능을 추가하였다.

파일 목록을 서버로부터 받아온 후 클라이언트에서 해당 정보를 해독하는 과정에서도 문제가 발생할 수 있도록 고려하였다.

따라서 다음과 같은 두 가지 상황을 구분하여 처리하도록 구성하였다.

5.1 파일 또는 폴더 자체에 접근할 수 없는 경우

파일 또는 폴더에 접근할 수 없는 상태가 확인되면 해당 항목을 정상적인 파일처럼 표시하지 않고 사용자에게 접근할 수 없는 파일 또는 폴더가 존재한다는 경고 메시지를 표시하도록 구현하였다.

5.2 파일 목록 해독에 실패하는 경우

서버로부터 파일 목록을 정상적으로 전달받았더라도 클라이언트에서 해당 데이터를 해독하는 과정에서 문제가 발생할 수 있다.

이 경우에도 별도의 예외 상황으로 판단하여 일반적인 파일 오류와 구분되는 해독 실패 경고 메시지가 표시되도록 구현하였다.

이러한 기능은 단순히 현재 발생하는 오류를 사용자에게 알려주는 것뿐만 아니라, 향후 문제가 있는 파일이나 비정상적인 데이터로 판명된 항목에 대해 접근을 제한하는 보안 기능으로 확장하기 위한 기반으로 활용할 예정이다.

또한 예기치 않은 데이터나 암호화 정보의 손상 등 다양한 예외 상황이 발생하더라도 클라우드 전체의 파일 목록이 정상적으로 동작하지 않는 문제를 방지할 수 있도록 구성하였다.


6. 이번 주 개발 결과

이번 주에는 NMCloud의 파일 관리 기능을 중심으로 실제 사용 과정에서 발생할 수 있는 다양한 상황을 고려하여 기능을 보완하였다.

현재까지 구현된 파일 관리 흐름은 다음과 같다.

파일 업로드
    ↓
파일 암호화
    ↓
서버 업로드
    ↓
 ┌───────────────┐
 │ 업로드 성공?  │
 └───────┬───────┘
     Yes │ No
         │
         ↓
  파일 목록에 즉시 표시
         │
         ↓
    파일 선택 가능
         │
         ↓
    더블클릭 액션

업로드 과정에서 오류가 발생하는 경우에는 별도의 예외 처리를 수행하며, 기존 파일 목록을 조회하는 과정에서도 접근할 수 없는 파일이나 해독할 수 없는 데이터가 존재할 경우 사용자에게 경고하도록 구성하였다.

주요 개발 성과

  • 파일 업로드 완료 후 파일 목록에 즉시 표시되는 기능 구현
  • 파일 업로드 실패에 대한 예외 처리 추가
  • 클라우드 메인 페이지에서 파일 선택 기능 구현
  • 파일 더블클릭 액션 구현
  • 접근할 수 없는 파일 및 폴더에 대한 경고 기능 구현
  • 파일 목록 데이터 해독 실패에 대한 별도 예외 처리 구현
  • 향후 문제가 있는 파일에 대한 접근 제한 기능으로 확장할 수 있는 기반 마련

7. 다음 주 개발 계획

다음 주에는 현재 구현되어 있는 파일 관리 기능을 더욱 확장하여 파일 다운로드 및 썸네일 표시 기능을 구현할 예정이다.

우선 업로드된 파일을 사용자가 다시 자신의 장치로 받을 수 있도록 파일 다운로드 기능을 구현할 계획이다.

또한 이미지 및 동영상 파일의 경우 파일의 내용을 쉽게 확인할 수 있도록 썸네일 생성 및 표시 기능을 추가할 예정이다.

파일 업로드
    ↓
파일 종류 확인
    ↓
 ┌───────────────┐
 │ 이미지/동영상 │
 └───────┬───────┘
         ↓
      썸네일 생성
         ↓
      썸네일 암호화
         ↓
      파일과 함께 저장
         ↓
   클라우드 화면에 표시

추가적으로 가능하다면 폴더 단위 업로드 기능도 구현할 예정이다.

다만 폴더 단위 업로드를 구현할 경우 추후 다른 사용자와 파일 또는 폴더를 공유하는 기능까지 고려해야 하기 때문에, 폴더 내부의 파일들을 어떤 방식으로 암호화하고 공유 시 암호화 키를 어떻게 전달 및 관리할 것인지에 대한 추가적인 설계가 필요하다.

특히 폴더 단위로 여러 파일을 암호화할 경우 각 파일의 암호화 키와 폴더에 대한 접근 권한을 어떻게 연결할지, 향후 공유 기능을 구현할 때 암호화 키를 어떤 방식으로 전달할지 등을 함께 고려해야 한다.

따라서 해당 부분은 보안 구조에 대한 추가적인 검토가 필요하며, 구현 과정에서 예상보다 많은 시간이 소요될 가능성이 있다.

마지막으로 파일 업로드 및 다운로드 로직이 완전히 안정화되면, 지금까지 구현한 NMCloud의 기능을 실제 동작 화면으로 보여줄 수 있는 기능 시연용 예시 페이지를 제작할 예정이다.

해당 페이지에서는 NMCloud의 파일 암호화부터 업로드, 파일 목록 표시, 다운로드까지의 전체적인 동작 과정을 하나의 흐름으로 보여줄 수 있도록 구성하여 졸업작품 발표 및 시연에 활용할 수 있도록 할 계획이다.


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다