웹에서 파일업로드때 어떤 방법이 좋은가요?

gurumong의 이미지

게시판 같은곳에서 사용자가 첨부로 파일을 업로드 할적에
파일을 자신의 하드디스크에서 선택할때 즉시 업로드 하는것이 좋은가요?
아니면 글쓰기를 마치고 쓰기 버튼을 눌렀을때
본문내용(텍스트)과 파일(바이너리)을 하나의 HTTP연결에 보내는것이 좋은가요?

네이버 같은 경우 메일쓰기 할적에 파일을 첨부하면 그 즉시 파일을 업로드 하더라구요(메일 보내기 버튼을 누르기전...)
보통 이런식으로 파일을 즉시 업로드 하는것이 일반적인 방법인가요?

chadr의 이미지

반응성의 문제입니다. 사용자 편의 위주인가 아니면 서버 리소스 위주인가에 따라서 구분하시면 됩니다.

파일을 첨부하면 바로 서버에 올라가도록 하면 그동안 사용자는 다른 일을 할 수 있습니다.
예를들면 파일 먼저 첨부하고 글을 쓴다든가 하는 것입니다. 이렇게 하면 사용자는 빠르게
글을 작성할 수 있는 장점이 있습니다. 대신 서버에는 부하가 갑니다. 만약에 사용자가
첨부 후 어떤 이유로 인해 글 쓰기를 취소하면 애써 서버 자원과 네트워크 대역폭을
투자해서 저장한 첨부파일은 버려지게 됩니다. 서비스 제공자 입장에서는 바람직한 시나리오가
아니지요.

반대의 경우에는 무조건 데이터를 마지막에 한꺼번에 올리므로 전자에 비해 비교적 서버 자원을
효율적으로 사용할 수 있지만 대신 사용자는 최종적으로 첨부파일과 글이 서버에 정상적으로
저장될때까지 기다리게 됩니다. 어떤 이유로 인해 여러개 파일을 첨부할때 문제가 생기면 처음부터
다시 올려야하는 문제점도 있습니다. 전자의 경우에는 문제 생긴 파일만 다시 올릴수 있습니다.

개인적으로 지메일과 같이 첨부가 바로 올라가는 시스템이 편하긴 합니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

gurumong의 이미지

대략적인 로직을 좀 알수있을까요? 경험이 없다보니...
파일을 첨부할때 파일을 사용자가 글을 쓰고있는 아직은 *존재*하지 않는 어떤 문서와 연관시킬 필요가 있을텐데
이것을 어떻게 처리 해야할지 잘 모르겠습니다
파일을 올리기 이전까지는 모르는 것이 아닌가요?
게다가 어떤 경우에는 같은 페이지를 두개, 세개를 띄워놓고도 파일을 각각 첨부할수도 있을테구요
머리가 아파오네요 ㅜ.ㅜ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.