본 프로젝트 SETIVB에서는
매주 지도 교수님, 한이음 ICT 멘토링 사업의 멘토님께 진행 상황 피드백 받은 학습 내용을 기록한다.
진행상황은 에어터치 소스 코드 개발 완료,
Jin 웹 백엔드 개발
Jeon 웹 프론트엔드 개발
Yang 소스 코드 수정, 윈도우 프로그램화 작업 중이다.
종합 설계 세미나
9차
학부 : 정보통신공학과
팀명 : Set To Title
교수명 : Kim
작성일 : 2023.05.11
1. Jin
#CORS 정책 오류

많은 시간동안 고생했던 문제
CORS란? Cross Origin Resource Sharing
즉, 동일 출처가 아닌 다른 출처에서 자원을 요청할 경우 응답을 방지하는 웹 정책이다. 출처의 기준은 프로토콜 (http), 호스팅 (IP주소), 포트번호 (:3001)까지 같아야지만 서로 동일 출처로 처리한다. 이 외 다른 출처가 요청한 자원에 서버가 응답을 하게될 때의 보안상 문제는 해커가 의도적으로 비슷한 사이트를 구현해놓고 리다이렉트를 통해 개인정보 등을 탈취할 수 있는 위험이 있다.
/download로 URL 입력을 해서 바로 드롭박스 리다이렉트는 정상적으로 진행되어 다운로드가 됐지만, 프론트엔드에서 버튼을 눌러서 백엔드로 요청을 보내서 다운로드 url에 요청을 보내는 것은 localhost to dropbox의 Cross Origin이기에 계속해서 실패했다. 그리고 이 문제는 드롭박스 서버 측에서 CORS를 허용하지 않기 때문에 발생하는 현상이다.
생각보다 해결 방법은 간단했는데 그냥 location.href를 통해 현재 위치한 페이지에서 /download 페이지로 이동했고, 이동하면 자연스럽게 리다이렉트를 통해 드롭박스에 접근, 다운로드가 완료됐다.
EC2 항시 호스팅

EC2 우분투 리눅스를 사용할 때 터미널을 통해 클라우드 서버에 접근하여 서버를 가동 시키는데, 이때 클라우드 서버 접근을 끊으면 서버 가동 또한 끊긴다.
문제를 방지하기 위하여 백그라운드로 서버를 가동하여 EC2와 연결을 종료하여도
24시간 가동되는 클라우드 서버 내의 데몬 프로세스로 남아 서버가 가동된다.

nohup 명령어를 통해 서버를 가동하고 파이프를 통해 그 출력 내용을 app.log에 남길 때, &까지 붙여주어 백그라운드에서 실행하도록 하면 완성이고, 혹여 오류가 생겨 서버가 종료되어도 app.log에 저장된 기록을 보고 추적할 수 있다.
#2 문제점
HTTPS 프로토콜이 없어 웹 서비스 통신시 보안의 위협이 있다.
#3 해결방안
SSL을 통해 HTTPS 프로토콜 기반의 웹 서버 호스팅을 해야한다.
#4 향후 계획
도메인을 구입하여 서버 IP와 도메인 연결
2.Jeon
#Event에 따른 Pop up 창
button태그의 watch가 onlclick 이벤트 발생시에 window.open()메서드를 사용하여 watch.html을 popup을 시켜주었다. watch.html에는 video태그로 width와 height값이 각각 100%로 동영상이 자동 재생되게 하였다.


#2 문제점
원하는 위치에 맞게 window.open()메서드를 사용하여 팝업을 하였지만 페이지자체가 팝업이 되는것이 아니라 메인 HTML 안에서 영상만을 팝업 시키면 더 좋을 것 같다.
#3 해결방안
① 첫 번쨰 방법으로 #top 안에 video영상을 삽입하고 display값을 none값을 주어 영상이 보여지지 않게 한후 button onclick이벤트 발생시에 영상이 보여지게 하여 해결이 가능 할 것으로 보인다.
② 두 번쨰 방법으로는 html css로 팝업 레이어를 만들고 이를 중앙 정렬 시키면 원하는 결과가 나올 것으로 보인다.
#4 향후 계획
위의 문제를 해결하기 위해서 첫 번째 방법과 두 번쨰 방법 모두 시도해본 후 코드상 더 간결한 것을 채택할 예정이다.
#SETIVB 프로그램 베타테스트, 가상칠판 프로그램 지우개 기능 편의성 개편
가상칠판 프로그램에서 지우개 기능을 사용할 때, 선택 후에 검지와 엄지를 피면 이전에 그렸던 그림들을 전부 지우는 방식이였으나 이제 지우개 도구에 검지를 위치시키면 지워지도록 개편했다.
그리고 SETIVB 프로그램을 응용프로그램으로 변환시키고나서 파이썬이 깔려있지 않은 컴퓨터에 실행하여 제대로 작동하는지에 대한 테스트를 진행하였다.
#2 문제점
pyinstaller를 이용하여 파이썬 응용프로그램으로 만들었을 경우, 파이썬이 없는 곳에도 실행 할 수 있다. 하지만 AIVM.py, AIVB.py는 파이썬 인터프리터가 작동하지 않아 cmd 창에 ‘Python’ 이라는 문구만 뜨는 오류가 발생했다.
#3 해결 방안
pyinstaller가 아닌 cz-freeze를 이용해서 SETIVB.py, AIVM.py, AIVB.py를 모두 exe파일로 만들고 필요한 외부 라이브러리 파일들도 전부 추가할 수 있었다.
그 결과, 파이썬이 없는 컴퓨터에서도 실행되는 것을 확인했다.
#4 향후 계획
현재는 새로운 기능을 추가 구현시키는 것은 무리로 판단되어, 프로그램의 최적화와 사용에 관한 편의성을 개선하는 방향으로 계획을 잡을 것이다.
'프로젝트(My Project)' 카테고리의 다른 글
[프로젝트 : SETIVB] 10차 세미나 (0) | 2023.05.22 |
---|---|
[프로젝트 : SETIVB] 8차 세미나 (0) | 2023.05.15 |
[프로젝트 : SETIVB] 7차 세미나 (0) | 2023.05.15 |
[프로젝트 : SETIVB] 6차 세미나 (1) | 2023.05.15 |
[프로젝트 : SETIVB] 5차 세미나 (1) | 2023.05.15 |