게시글 엔티티가 존재하고 거기에 첨부파일정보가 값객체로 존재한다고 할 때
게시글에 첨부파일을 추가하게되면 DB말고 S3에 파일도 생성되게 되는 상태입니다.
게시글 복사기능을 구현할 떄
게시글 엔티티와
S3의 파일까지 복제하는게 일반적일지
아니면 S3 파일을 제외한
엔티티만 복제하는게 좋을지 궁금합니다.
현재 저는 S3 파일까지 복제하는 방식이 첨부파일 삭제시 동작이 깔끔할 거 같아 해당 방식으로 진행하려고 생각하고 있습니다.
위 방식으로 게시글 복제 기능을 아래와 같은 흐름으로 구현하려합니다.
복제할 게시글 식별자 입력 -> 첨부파일 복제 후 파일식별자 받기 -> 게시글 엔티티 복제(파일 식별자를 첨부파일정보에 포함)
위 흐름에서 '첨부파일 복제 후 파일 식별자 받기'가 파일이 큰 경우에 동기로 진행하면 API 응답 시간이 길 것 같고
비동기나 이벤트로 진행하면 뭔가 구현이 어려워지는 것 같습니다.
혹시 다른 방식이나 좋은 생각 있으시면 조언 부탁드립니다.
감사합니다.
파일 업로드 동작으로 파일 s3에 저장 및 파일 식별자를 게시글에 추가 게시글 복제 기능으로 게시글 및 파일 식별자 정보만 복사 이렇게 해서 복제된 게시글에서 파일 삭제할때는 파일 식별자만 제거하면 되지 않을까?
파일 식별자만 제거하게 되면 S3에 업로드된 파일은 삭제하지 않는다는 말씀이신가요?
파일 메타데이터에 참조 카운트 넣어서 0 된 놈들만 파일 삭제하면 되지
기술적인 측면에서만 고민하는거같은데 개인적인 경험으론 이런 케이스는 기획 의도를 같이 보면 좋을거같음 게시글 복제 기능 목적에 따라 파일을 복제할지 말지 정하는게 어떨지 그리고 첨부파일 메타데이터를 관리하는 테이블이 게시글을 직접 참조하도록 하지 말고 m:n 관계로 구성하고 매핑테이블을 하나 두는 방법으로 구현하면 게시글이랑 첨부파일간 관계를 느슨하게 유지할 수 있을거같음. 게시글 수정을 통해서 첨부파일을 제거하더라도 매핑테이블에 있는 정보만 지우면 되니까.. 그리고 배치같은걸 달아둬서 실제로 사용되지 않는 파일을 주기적으로 s3에서 제거하는 방법으로 해두면 아주 깔끔
DB에 URL만 띡 박아두지마셈.