[논의] 파일 관리 기능 구현 설계 및 적용 방안 #57
Closed
SeoGyeongWon
started this conversation in
General
Replies: 2 comments 9 replies
-
|
@SeoGyeongWon 님 안녕하세요! 비지니스 로직 구현과 다른 모듈간 인터페이스 상호작용에 대한 내용 잘 읽었습니다. 다음은 파일 관리 서비스 구현에 대한 제 의견입니다:
다음은 모듈간 인터페이스 상호 작용에 대한 제 의견입니다:
|
Beta Was this translation helpful? Give feedback.
6 replies
-
|
정규화 비정규화 논의가 좀 필요해보입니다. 제쪽에서는 직원을 생성 완료하면 매번 프로파일 이미지의 아이디를 반환해야합니다. 이뿐만아니라 직원 조회시에도 프로파일 이미지의 아이디를 반환해야합니다. 따라서 프로파일 이미지의 아이디를 File 엔티티가 가질시 매번 요청해야하는 상황이 발생합니다. 이 문제를 해결하기 위해서는 |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
파일 기능 관리 #19
파일 관리 기능은 데이터 백업 관리 기능의 csv, log 파일 저장 및 직원 관리 기능의 이미지 저장 + 이미지 다운로드 기능(페이지에 사진이 나올 수 있도록 보여주는것이 다운로드)이 있습니다.
파일 관리 기능은 파일의 실제 파일과 파일의 메타정보 파일로 분리되서 관리되어야 합니다.
실제 파일은 따로 디렉토리에서 저장될 수 있도록 구현
메타정보는 엔티티로 하여, 디비에 저장하여 관리
앞서, 파일 관리 기능에 작성되고 있는 내용들을 간략하게 설명드리겠습니다.
메타 정보
메타 정보의 엔티티는 파일 Id, 파일명, 파일 형식, 파일 크기, 파일 경로로 구성하였습니다.
실제 파일
사용자 디렉토리에 파일을 저장하는 폴더를 두고, 그 밑에 하위 디렉토리(csv, log, image)를 두어 각 MIME 타입에 맞게 파일이 저장될 수 있도록 합니다.
DTO
DTO는 파일의 메타정보를 반환하는 FileMetaDataDto와 파일 다운로드 시 파일을 전달하기 위한 FileDownloadResponseDto를 두었습니다.
FileMetaDataDto
FileDownloadResponseDto
Service
파일을 저장하는 기능, 파일을 다운로드 하는 기능을 구현합니다.
BasicFileService.class & FileService(Interface)
public FileMetadataDto saveFile(MultipartFile multipartFile) { }public FileDownloadResponseDto downloadFile(Long fileId) { }따로 FileUtil 클래스를 두어 디렉토리 생성및 설정을 담당하는 부분을 두었습니다.
FileUtil.class
Controller
아직 기능 구현을 진행하지 않아 어떻게 진행할지 계획하지 않았습니다.
파일관리 컨트롤러는 GET 메서드만 사용합니다.(파일 다운로드 시 사용)
주요 Discussion
백업 관리 기능의 csv, log 파일 저장과 직원 관리 기능의 이미지 등록및 다운로드
직원 관리 기능
직원 관리 기능 부분에서 파일 관리 기능을 참조하기 위해서는 파일의 아이디를 키로써 참조하기에 따로 파일관리 측에서는 Employee Id를 받아오지 않아도 된다고 생각합니다.
employee측에서 이미지를 등록하는 부분에 있어서 EmployeeController 부분에서 이미지를 MultipartFile로 지정하여 BasicFileService를 호출해 등록하면 될것 같다고 생각합니다.
이미지등록이 성공하면 파일이 저장되고 메타 정보가 저장되면서 파일Id가 생깁니다. 그 파일 Id를 직원 관리 기능 부분에 반환하면 될것 같다고 생각합니다.
직원이 삭제되면 저장한 파일도 같이 삭제되어야 하는데 이부분을 어떻게 연결하면 좋을까하고 생각이 됩니다. 직원 엔티티에 저장된 프로필 Id값이 직원 정보와 함께 같이 사라지면 자동으로 파일 엔티티에 있는 Id값이 사라지도록 해야할것 같습니다.
백업 관리 기능
백업 관리 기능 부분에서 파일을 쓰고, 생성까지 진행하므로 백업 관리 기능 부분의 컨트롤러 부분에서 Multipart 형태로 변환하여 BasicFileService를 호출하여 저장이 진행되면 되지 않을까 하고 생각합니다.
Beta Was this translation helpful? Give feedback.
All reactions