- 질문 게시판입니다.
Date | 23/01/07 16:09:00 |
Name | Paraaaade |
Subject | 파일 기반 정보수집 방법 문의 |
사용자들로부터 일정한 양식을 갖춘 정보들을 입력받고 그 정보들을 모아서 엑셀 등을 활용하여 정리하고자 하는데, 방법적인 측면에서 질문드립니다. 웹서버나 sql 등을 쓰지않고 해결해야하는 상황입니다. 제가 생각한건 HTML 등을 이용하여 구글 폼과 같은 형식을 만들고 그 HTML파일을 사용자에게 제공(직접적인 파일 배포)하여 사용자가 데이터를 입력하도록 하는 것입니다. 사용자가 그 폼에 내용을 다 입력한 후 파일을 전송하면 그 파일들을 모아서 파이썬 등을 이용, 엑셀 형태로 정리 취합 하려구요. 이렇게하려는 이유는 내부망에서 웹서버/DB를 오픈하긴 어렵고 파일의 직접적인 전달은 수월하기 때문인데요. 관련내용을 찾다보니 HTML은 서버/DB 없이 활용하기엔 제한적인듯 한데, 어떤 방법/툴을 이용하면 쉽게 구현할 수 있을까요? 요약하자면 구글 폼과 같은 데이터 입력 시스템을 파일 베이스로 하고 싶습니다. (입력이 끝나고 SAVE 한 후 그 파일 전송) 폼 내에 파일을 첨부하는 기능도 있어야할 것 같구요. 나중에 파이썬 등으로 재가공하기 쉬우려면 뭘쓰면 좋을까요? 아래는 이해를 돕기위한 예시이고, 따옴표 속 내용이 사용자 입력 항목입니다. 양식 파일 다운로드 -> 데이터 입력 (구매 품목: "사과", 가격 : "3000", 증빙서류: "파일 첨부") -> 저장 -> 저장파일 전송 -> DB화 정리 0
|
python 쓰실거면 pandas로 값을 다루면 될 것 같고, 첨부파일은 openpyxl로 직접 뽑거나, AttachmentExtractor로 쉽게 뽑는다고 치면 xlsx로 쓰시면 될 것 같읍니다. 예상되는 단점이라면, OLE object에는 셀 귀속이나 순번에 대한 개념이 미약한걸로 기억하는데, 2개 이상의 파일 첨부가 필요하면 좀 문제가 있을 것 같읍니다.
AttanchmentExtractor: https://stackoverflow.com/questions/59810248/how-to-extract-ole-objects-from-excel-table-using-python
AttanchmentExtractor: https://stackoverflow.com/questions/59810248/how-to-extract-ole-objects-from-excel-table-using-python
유효성 검사기능으로는 셀에 채워길 값에 대해 드롭다운이나 형식에 대한 체크 정도라면 괜찮을 것 같고, 파일은 아니오, (셀 귀속이 아니기 때문.) 라고 할 수 있겠읍니다.
양식의 정합성 체크가 문제라면 standalone webserver가 포함된 flask/django 같은걸로 윈도우 바이너리 만들고 배포한다 치면 사실 데이터는 어떤방식으로 만들어도 괜찮겠지요. 첨부파일이라면 대충 base64같은걸로 인코딩해서 json에 포함시키면 왠만한 key-value 데이터는 단일 파일로 다루기 괜찮겠지요. 근데 이건 배포를 위한 사전 작업이 상대적으로 커서 아마 안하실 것 같은데, 무엇을 중요하게 생각하시는지 제가 알지를 못하니...
양식의 정합성 체크가 문제라면 standalone webserver가 포함된 flask/django 같은걸로 윈도우 바이너리 만들고 배포한다 치면 사실 데이터는 어떤방식으로 만들어도 괜찮겠지요. 첨부파일이라면 대충 base64같은걸로 인코딩해서 json에 포함시키면 왠만한 key-value 데이터는 단일 파일로 다루기 괜찮겠지요. 근데 이건 배포를 위한 사전 작업이 상대적으로 커서 아마 안하실 것 같은데, 무엇을 중요하게 생각하시는지 제가 알지를 못하니...
xlsx를 데이터 수집용으로 쓰는데는 클라이언트 파트를 위한 별도의 준비가 양식 파일외 다른게 필요없다는 것과, 그 양식을 채울 사람들의 환경에 왠만하면 오피스가 깔려있고 생각하는 경우지요.
비용이 문제라면 free-tier vps같은걸로 대충 하나 만들고 python으로 form 채울 페이지 만들고 받는걸 개인적으로 우선 고려할 듯 싶습니다. 데이터 저장형식이야 sqlite같은 embeddable sql로 해결하면 되고, 그게 아니면 파일로 저장해도 무리가 없구요. 파일 저장하는 스토리지가 걱정이라면, 양식 채우고 저장버튼 누르면 json으로 담아서 사용자가 다운로드받게 만들어서, 그 파일만 메일로 수집하시어도 되구요.
비용이 문제라면 free-tier vps같은걸로 대충 하나 만들고 python으로 form 채울 페이지 만들고 받는걸 개인적으로 우선 고려할 듯 싶습니다. 데이터 저장형식이야 sqlite같은 embeddable sql로 해결하면 되고, 그게 아니면 파일로 저장해도 무리가 없구요. 파일 저장하는 스토리지가 걱정이라면, 양식 채우고 저장버튼 누르면 json으로 담아서 사용자가 다운로드받게 만들어서, 그 파일만 메일로 수집하시어도 되구요.
어음... free-tier vps는 클라우드 서비스 업체들이 공짜로 내주는 기초적 수준의 가상머신 인스턴스라고 이해하시면 되겠읍니다. 보통 1년 무료지만, 평생 무료 같은것도 있으니 조금만 찾아보시면 요건에 맞는 서비스를 구하실 수 있을겁니다.
파이썬에서 폼 페이지를 만들려면 적절한 웹 프레임워크가 필요할텐데, 이건 flask나 django로 쓰시면 되지만 코딩이 필요합니다. no code 솔루션이 있을지는 모르겠어요. 암튼 남은건 (1) 폼 페이지 만들고, (2) 사용자가 입력한 데이터를 POST 형식으로 받을 방법을 구현... 더 보기
파이썬에서 폼 페이지를 만들려면 적절한 웹 프레임워크가 필요할텐데, 이건 flask나 django로 쓰시면 되지만 코딩이 필요합니다. no code 솔루션이 있을지는 모르겠어요. 암튼 남은건 (1) 폼 페이지 만들고, (2) 사용자가 입력한 데이터를 POST 형식으로 받을 방법을 구현... 더 보기
어음... free-tier vps는 클라우드 서비스 업체들이 공짜로 내주는 기초적 수준의 가상머신 인스턴스라고 이해하시면 되겠읍니다. 보통 1년 무료지만, 평생 무료 같은것도 있으니 조금만 찾아보시면 요건에 맞는 서비스를 구하실 수 있을겁니다.
파이썬에서 폼 페이지를 만들려면 적절한 웹 프레임워크가 필요할텐데, 이건 flask나 django로 쓰시면 되지만 코딩이 필요합니다. no code 솔루션이 있을지는 모르겠어요. 암튼 남은건 (1) 폼 페이지 만들고, (2) 사용자가 입력한 데이터를 POST 형식으로 받을 방법을 구현, (3) 최종적으로 받은 데이터를 어떻게 저장하는지에 대한 문제로 다루시면 됩니다.
(1) sql로 테이블 만들어놓고 파일 수준으로 관리를 하려면 sqlite라는걸 쓰시면 되고,
(2) 아니면 대충 데이터를 JSON 형식으로 만들어서 파일로 저장하거나 사용자한테 반환해도 됩니다. json으로 만들면 sql을 고려할 필요는 당연히 없겠지요.
embeddable sql이라고 적어놓은건, sql을 다루기 위해 별도의 rdbms 서버를 띄울 필요가 없다는 뜻으로 쓴겁니다.
파이썬에서 폼 페이지를 만들려면 적절한 웹 프레임워크가 필요할텐데, 이건 flask나 django로 쓰시면 되지만 코딩이 필요합니다. no code 솔루션이 있을지는 모르겠어요. 암튼 남은건 (1) 폼 페이지 만들고, (2) 사용자가 입력한 데이터를 POST 형식으로 받을 방법을 구현, (3) 최종적으로 받은 데이터를 어떻게 저장하는지에 대한 문제로 다루시면 됩니다.
(1) sql로 테이블 만들어놓고 파일 수준으로 관리를 하려면 sqlite라는걸 쓰시면 되고,
(2) 아니면 대충 데이터를 JSON 형식으로 만들어서 파일로 저장하거나 사용자한테 반환해도 됩니다. json으로 만들면 sql을 고려할 필요는 당연히 없겠지요.
embeddable sql이라고 적어놓은건, sql을 다루기 위해 별도의 rdbms 서버를 띄울 필요가 없다는 뜻으로 쓴겁니다.
뭔가 오해가 일어날것 같아서 대충 부연하자면, 처음부터 끝까지 python이 사용됩니다.
(1) HTML 템플릿으로 사용자한테 보일 내용을 작성 + python+django/flask로 앞에서 만든 HTML 템플릿을 사용자한테 뿌려주고, FORM DATA 검증하고, 값을 전달할 주소를 코딩
(2) python+django/flask로 POST 형식으로 들어오는 값을 다루도록 코딩. 이때 들어온 데이터를 최종적으로 json이나 sql로 저장하시면 됩니다.
여기서 스탠드얼론형식으로 바이너리를 배포하려면 좀 더 보셔야 할게 많을텐데, 암튼 얼개는 저렇게 되어 있으니 해야하는 포인트마다 매뉴얼이랑 스택오버플로 같은데를 찾아보셔서 해결하시면 되지않을까 싶습셉슾.. 암튼 천천히 해보세요!
(1) HTML 템플릿으로 사용자한테 보일 내용을 작성 + python+django/flask로 앞에서 만든 HTML 템플릿을 사용자한테 뿌려주고, FORM DATA 검증하고, 값을 전달할 주소를 코딩
(2) python+django/flask로 POST 형식으로 들어오는 값을 다루도록 코딩. 이때 들어온 데이터를 최종적으로 json이나 sql로 저장하시면 됩니다.
여기서 스탠드얼론형식으로 바이너리를 배포하려면 좀 더 보셔야 할게 많을텐데, 암튼 얼개는 저렇게 되어 있으니 해야하는 포인트마다 매뉴얼이랑 스택오버플로 같은데를 찾아보셔서 해결하시면 되지않을까 싶습셉슾.. 암튼 천천히 해보세요!
목록 |
|