마무리 발표 전 마지막으로 구현할 목표
로컬의 원본 파일을 유저가 고른 북마크들 구간대로 잘라주는 exe 다운로드 구현
구상하는 비즈니스 로직은 아래와 같다
0. client로부터 유저가 북마크한 구간 정보를 수신
1. 북마크 구간 정보를 txt파일로 동적 생성
2. 영상분할 function을 수행하는 exe파일, ffmpeg.exe, 위의 txt파일을 모은 zip 파일 생성
3. zip 파일을 flask의 sendfile로 client에 제공
4. 동적 생성된 txt, zip 삭제
-> 다운로드받은 유저는 압축을 풀고 exe를 실행하여 원본파일 이름을 입력하면 영상이 분할됨
이를 위해 구현해야 할 부분은
영상분할 function 설계
function을 수행하는 exe build
exe, txt, ffmpeg을 하나의 zip파일로 만드는 로직 구현
위 모든걸 차례대로 수행해주는 하나의 함수 구현
함수 서버에 탑재하고 api 연결
쯤 있을 것 같다.
먼저 main function 제작
client로부터 bookmark를 받아 txt파일로 만들었다는 전제 하에 잘 작동하는 것을 확인
다음으로 유저에게 제공할 파일들을 한데 묶어 zip파일로 만드는 setup 제작
cmd에서 "python setup.py build" 하면 C처럼 컴파일이 된다
신기하네...
마지막으로
서버가 받은 bookmarks를 txt파일로 저장하는 함수,
build된 exe와 소스파일들을 한데묶어 zip파일로 만드는 함수를 제작
zip화는 파이썬 내장 라이브러리가 있어서 이걸 썼다
상대경로 절대경로 생각해가며 에러안나게 만드느라 머리에 쥐나는줄...
마지막으로 이 셋을 조합하면 zip파일을 생성하는 하나의 함수가 완성
완성된걸 보니 몇줄 안되는데 하나하나 배우느라 대체 몇시간을 쓴건지...
위 함수를 실행하면 요런 zip파일이 생성되는데
압축을 풀고 실행해서 원본영상 파일이름을 복붙하면
와!
이제 이걸 서버에 갖다붙이면 진짜 다 끝이다...
'나만의 무기 : HIGHLIGHTING > 개발 일지' 카테고리의 다른 글
Day 25 ~ 29 : 발표준비, 마무리 발표 (0) | 2022.03.05 |
---|---|
Day 24 (3) : cutTool 다운로드 기능 (0) | 2022.02.27 |
Day 24 (1) : file to dict, 키워드 검색 기능 구현 (0) | 2022.02.27 |
Day 23 (3) : 아호코라식을 쓴 Chat Keywords 검색 알고리즘 (0) | 2022.02.26 |
Day 23 (2) : Chat Process 정리 (0) | 2022.02.26 |