database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 6285 게시물 읽기
No. 6285
[질문]이미지 저장 방법..?
작성자
유진성
작성일
2005-08-24 18:04
조회수
2,560

안녕 하세요,.

이미지를 저장 할때 어떤 방법이 낳을런지요..?

이미지는 5만장 정도 되고 하루에 100 ~ 200 장 정도는 삭제 추가 되는데요..

평균적으로 이미지 용량은 장당 100k 정도 되고요,,

DB 에 저장 하는게 낳을까요.. 아니면 이미지 링크 정보만 저장하는

방식이 낳을까요..?

답변 부탁드립니다.

 

 

이 글에 대한 댓글이 총 3건 있습니다.

저는, 웹에서만 쓰는 자료라면,

그냥 웹서버가 가동중인 시스템의 특정 규칙을 가지는 폴더에 저장합니다. 물론 웹서버에서 웹프로그램을 통하지 않고는 접근할 수 없도록 하고.

 

<img src='show_image.php?id=10000'>

이런식으로 이미지 id를 입력받는 프로그램을 하나 만들고, 모든 인증은 show_image.php 에서하고.

 

따로 이미지 경로를 db에 저장하지는 않습니다. 그냥 Primary key 값으로 이미지의 파일 이름을 사용하니까요. 원래 이미지 파일 이름은 db에 저장하고.

 

김상기(ioseph)님이 2005-08-25 10:40에 작성한 댓글입니다.

저도 별도의 파일 시스템에 저장하는데 한표 던집니다.

 

파일이 많아지거나 서비스가 커지면 분산처리를 해야 하는데 DB에 저장을 하면 관리하기가 쉽지 않습니다. 그리고 DB가 대부분 별도의 원격 서버에 있기 때문에 네트워크로 자료를 전달해야 하는데요. DB 쿼리 자체만도 부담이 될텐데 여기에 파일까지 전송해야 한다면 네트워크에 부하가 더 심해지겠죠. DB 서버의 IO에도 물론 부담이 되구요.

 

문제는 파일들을 파일 시스템에 저장을 할 때에 어떻게 체계적으로 관리하는가가 중요합니다. 그냥 한 디렉토리에 몰아 넣으면 파일 시스템의 특성 때문에 효율이 엄청 떨어지니까요.

 

저는 이렇게 합니다.

 

1) 특정 디렉토리 밑에 파일을 사용하는 어플리케이션 별로 디렉토리를 만든다.

2) 그 디렉토리 밑에 년,월 별로 디렉토리를 만든다.

3) DB에 저장한 file 정보의 id(숫자)를 100으로 나눈 값으로 디렉토리를 만든다.

4) 3에서 만든 디렉토리에 파일 id와 확장자로 파일을 저장한다.

 

예를 들어 bbs에 첨부되는 파일이 2005년 8월 12일에 저장이 되는데 DB의 파일 정보 table에 등록된 id가 1201번이고 파일이름이 abc.hwp라면 .../bbs/200508/1/1201.hwp에 저장이 되는 식입니다.

 

이렇게 하면 한 디렉토리에 100개 이상의 파일이 저장이 되지 않고 날짜별, 용도별로 구별이 되기 때문에 나중에 분산해서 처리하거나 백업을 할 때에도 편리하더군요. 오래된 파일을 지우기도 편하구요. 그리고 id로 파일이름이 정해지니까 파일명이 같은 경우도 문제가 없구요. 파일 확장자가 있기 때문에 어떤 종류의 파일인지도 알기 쉽습니다.

 

그리고 중요한 것은 웹 서버가 직접 접근할 수 있는 document root 아래에는 첨부파일을 저장하지 않아야 합니다. 보안상 문제가 될 수 있기 때문이죠. 대신 사용자가 파일을 요청하면 이 디렉토리에서 파일을 찾아서 제공하는 프로그램을 하나 작성해야 합니다. 이런식인거죠.

 

http://www.myserver.com/cgi-bin/download.cgi/abc.hwp?id=1201

 

여기에서 abc.hwp는 프로그램 입장에서는 무시하면 되구요 전달변수 id 값이 중요합니다. 보안을 더 신경쓰려면 이 값도 암호화 하는 것이 좋겠지요.

 

박성철(gyumee)님이 2005-08-25 11:09에 작성한 댓글입니다.
이 댓글은 2005-08-25 11:17에 마지막으로 수정되었습니다.

요거때문에 몇일 망설였는데..

이제야 확신이 서네요..

정말 감사합니다..

유주성님이 2005-08-25 17:21에 작성한 댓글입니다.
이 댓글은 2005-09-05 11:02에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6288어리석은 질문 같지만...ㅡㅡ;; [1]
장재혁
2005-08-25
2326
6287따옴표 관련 질문.. [3]
장재혁
2005-08-25
3568
6286postgresql8.0.3 윈도우XP에 자동설치방법(배포) [2]
정준
2005-08-24
2832
6285[질문]이미지 저장 방법..? [3]
유진성
2005-08-24
2560
6284수정 시 아래와 같은 에러메시지가 나옵니다. [2]
김창욱
2005-08-24
2550
6283아래글 추가 질문.. [3]
장재혁
2005-08-24
3591
6282PostGIS를 설치하면서..또 질문.. [1]
장재혁
2005-08-24
2233
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다