2008/09/14 17:47

how to upload a file

클라이언트에서 서버로 파일을 보내는 여러가지 방법에 대해서 연구해볼만한 계기가 있었다.
대략 3가지 방법으로 압축이 되었다.

1. FTP를 사용한 전송법
2. 파일 전송용 socket server를 이용한 전송법
3. HTTP를 이용한 전송법

20-60초마다 파일을 전송하고 전송한 파일은 클라이언트에서 삭제한다는 전제조건이 있을경우 가장 효과적인 방법은 어느것인가 생각해본 결과1번을 선택하게 되었다.

1의 경우 LowLevel의 FTP client 제작에 어려움이 있어서 windows script host를 사용하여 윈도우 scheduler를 통해 갱신하는 방법을 선택했지만 scheduler 문제인지 windows script host의 문제인지 잦은 갱신때문에 client에 에러가 빈번하게 발생하여 2,3번중에 하나로 개선작업을 하기로 결의. 실행에 옮겼다.

2의 경우 socket server까지는 작성했는데 file server에80,443이외의 port를 open해야 한다는 점과 서버상에 socket프로그램을 돌려야 한다는게 부담으로 작용했다.

그래서 최종적으로 선택한 방법은 3이 되었다.
HTTP의 경우 인증없이 URL이 공개된다면 노출된다는 점때문에 간단하게 인증용 키를 발급해서 적용하도록 하였다. c#으로 클라이언트를 만들어본건 거의 처음이여서 조금 어려움이 있었으나 결과적으로는 무리없이 작성이 가능했다.(server side는 asp를 이용해서 작성했다.) 물론 좀더 기능을 개선하고 싶은 생각은 있으나 현재 문제없이 동작하고 있고 더이상 시간을 끌기도 부담스러워서 일단 task를 종료 했지만 조금 더 완벽하게 만들수 있었는데 하는 아쉬움도 있긴하다.

어쨌는 감상은 vc++이었다면 상당히 시간이 걸렸을법한 작업인데 c#+.NET platform으로 아주 쉽고 빠르게 작업이 가능했다는 것이다. platform,language,framework이 고급화되면 고급화 될수록 프로그래머가 필요 없어진다고 할까? 고급 기술을 갖고 있는 사람이 필요 없어지는것같다. 거의 경험이 전무함에도 불구하고 무리가 없었다는게 그 반증이 아닐까?

어쨌든 지난번에 web service WSDL에 이어서 console application에 대해서도 연구할 기회가 되어서 좋았다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

'j.note' 카테고리의 다른 글

About Stored Procedure 저장 프로시저에 대한 단상  (0) 2008/10/03
How to using WebClient class  (0) 2008/09/16
how to upload a file  (0) 2008/09/14
Static SQL  (0) 2008/01/23
count(*) VS count(1)  (0) 2007/12/14
Eclipse Plugin  (0) 2007/12/13
Trackback 0 Comment 0