개발 Q&A

제목 blob 형태의 파일 저장이 가지는 장점?
글쓴이 criuce 작성시각 2012/12/11 12:34:06
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 25257   RSS
지금 제가 진행하고 있는 프로젝트에서 파일 저장을 DB에 blob타입으로 하려고 합니다.
이렇게 하는 이유는 추후 파일 서버를 분리할때 좀 더 쉽게 할수 있지 않을까 해서 그러는데요

혹시 DB에 blob 형태로 저장했을때 얻을수 있는 장점과 단점에 대해 알고 계신분들이 계실까요?

인터넷을 통해서도 명확한 해답을 얻기가 어렵네요.

선배님들의 고견 부탁드립니다.
 다음글 혹시 setInterval에 대해서 아시는분~?ㅠ (3)
 이전글 view파일에서의 include를 질문드립니다. (5)

댓글

변종원(웅파) / 2012/12/11 13:30:22 / 추천 0
파일서버 분리가 목적이라면 db에 파일명만 저장하시고 패스로직은 프로그램에서 구현하시는게 
좋습니다. 

작은 이미지일 경우 db에 넣고 관리하는 것이 괜찮지만 큰 이미지가 많아지는 경우에는
백업 용량 문제도 생길 수 있습니다.

이전 프로젝트에서 처음엔 사이트내부에 디렉토리를 두어 업로드 파일을 관리하다 나중에는
파일 디렉토리만 옮겨서 2차 도메인으로 따로 관리를 했는데 프로그램 내부에서 상수 하나만
변경해서 가능했습니다.  

처음부터 이미지 업로드 경로, 웹경로 등을 상수로 define 해서 사용하시면 편합니다.
milosz / 2012/12/11 13:35:27 / 추천 0
저도 blob이 데이터베이스 퍼포먼스에 악영향을 주지 않을까 생각하고 안써왔었는데 오라클에서 일하시는 분이랑 얘기해보고 생각이 많이 달라졌습니다.
 
일단 파일 시스템으로 보관하면 파일명 중첩을 회피하기 위한 리소스 소모, 폴더당 파일 보관 수로 나타나는 문제라든가 파일의 누수(유실 등), 백업시 데이터베이스와 파일 시스템을 따로 백업해야 하는 등의 문제로 blob을 많이 쓴다고 하더라구요.
 
작은 시스템인 경우 사실 큰 의미가 없다고 생각되는데 파일 유실이나 백업의 용이성을 들어 생각해보았을 때는 유용한 방법으로 보입니다.
criuce / 2012/12/11 13:58:39 / 추천 0
두분 말씀 정말 감사합니다.

전 직장에서 무결성 관련하여 파일서버의 모든 파일들을 DB서버로 옮겨본 경험이 있었는데
사실 그때 당시에는 잘 이해가 가지 않았습니다. 왜냐면 파일을 DB로 옮김으로서 수동적 관리가 불가능해졌었거든요.

하지만 이번에 대규모 시스템을 설계하다 보니 데이터의 양이 늘어나 계속 파일 서버를 늘려가야 하는 상황에서 BLOB 타입은 많은 이점이 있지 않을까 생각했습니다.

특히 milosz님이 말씀하신 이유들로 인해 보통의 방법으로는 프로그램의 구조가 복잡해지더라구요.

다만 이렇게 했을 경우엔 기존에 '웹서버->파일출력' 에서 '웹서버->웹어플리케이션->DB서버->파일출력' 형태가 되버려 시스템 자원을 보다 더 많이 소모하게 되는 단점이 있습니다.

아무튼 좀 더 고민을 해봐야겠습니다. 두분 다시 한번 감사드립니다~