일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 소프티어
- 자바
- 프로그래머스
- 파이썬
- CJ UNIT
- 회고
- python
- SW봉사
- 알고리즘
- 문제풀이
- 공부일지
- 백준 알고리즘
- BFS
- 코틀린
- 1과목
- 시나공
- 스프링
- SQL
- 백준알고리즘
- java
- C++
- 백준
- kotlin
- 데이터베이스
- MYSQL
- 정보처리산업기사
- 코딩봉사
- programmers
- 코딩교육봉사
- softeer
- Today
- Total
JIE0025
[2019자바프로젝트]첫 프로젝트 : 모션인식을 통한 파일 전송 (상반기) 본문
18년 학부생으로 입학한 후 2학년이 되었다.
2학년 전공 선택과목으로 수강한 JAVA 에서 프로그래밍을 배운 후 처음으로 프로젝트를 진행하게 되었다.
프로젝트 진행 기간 : 3월 ~ 6월 (2019년, 2학년 1학기)
1. 프로젝트 이름
Mr. FILE ( 'Motion Recognition' demo using FILE transmission)
2. 팀 역할 분담
팀장(본인) : 파일전송 서버 및 클라이언트, UI design
팀원 1 : 모션인식 및 마우스 연동
팀원 2 : UI 구현, UI Design
3. 개요
- 아이디어 상의 중 마우스를 쥘 수 없는 환경에 있거나, 손가락을 자유자재로 움직일 수 없는 사람들이 컴퓨터를 사용할 때 불편할 수 있다는 문제점에 대해 생각을 하게 됨.
- 모션 인식 기술로서 컴퓨터와 상호작용을 하게 되면 언급한 내용을 개선시킬 수 있을 것이라 예상해보면서 기획을 함.
4. 목적
앞에서 언급했던 문제점을 해결하기 위해 모션 인식 기술을 기반으로 다양한 기능을 추가 함으로서
마우스나 터치패드 없이 입력 장치로서의 기능을 다 하는 것
5. 개발 일정
6. 기능 소개
1) File Drag & Drop
방향별로 존재하는 Adapter에 각각 다른 사용자를 설정한다.
Drag & Drop을 통하여 파일을 잡고, Adapter로 Drop 시키면 파일이 전송된다.
2) TCP를 이용한 파일전송
클라이언트에서 파일을 Drag & Drop 하게 되면, Drag된 파일의 절대경로를 인식하여 보낼 파일의 이름을 알려준다.
서버에서 파일을 전송받아 바탕화면에 띄운다.
3) 모션 인식 Interface
- 노트북의 카메라를 통하여 사용자의 모션을 입력한다.
- 손가락 관절 하나하나와 손바닥의 움직임을 체크한다.
- 손가락으로 잡는 듯한 모션을 위해 엄지와 검지를 인식한다.
- 클릭하는 모션을 잡는 것처럼 표현하기 위해 두 손가락의 각도를 인식한다.
- 일정 각도보다 작아질 경우에 손가락을 모은 것으로 인식하며, 마우스 클릭과 클릭한 상태를 유지한다.
- 일정 각도보다 커질 경우에 클릭 상태를 해제한다.
7. 개발 언어와 도구
1) UI : Java (eclipse)
2) server & client : Window API 소켓 프로그래밍을 이용, C++ (visual studio)
3) motion recognition : python, open cv와 연동 (pycharm)
8. UI 소개
9. 견본이미지
10. 후기
아무것도 몰랐기 때문에 어려웠고 힘들었던 시간이었지만, 개발을 해보았다는 경험 하나로 충분히 값진 시간이었다.
또 프로그래밍과 개발은 다른 것이라는 것을 알 수 있었다.
한가지 아쉬운 점은 개발을 어떻게 하는 지 방법을 아예 모르는 상태로 결과를 얻어 내야 했기 때문에 많은 시간의 노력과 삽질이 필요했다는 점이다. 3월에 주제를 선정하고, 6월까지 한 것 치고 완성도가 높지 못했던 이유도 여기에 있다.
1학년 때 씨언어만을 열심히 공부하면서 비쥬얼 스튜디오에 너무 익숙해져 있었다. 그래서 새로운 IDE를 접하는 것도 어렵게만 느껴졌다.
비쥬얼 스튜디오를 사용하고 싶다는 마음에서 파일 전송을 C++로 구현하였는데 자바나, 파이썬으로 구현했으면 시간이 더 단축 되었을 것이라고 생각도 든다.
TCP를 이용한 파일 전송에서 생겼던 문제점은 절대경로와 상대경로의 개념을 제대로 알지 못했기에 왜 전송이 되지 않는지 알 수 없었다. 이 문제를 해결하는 데에만 2주 정도 걸렸던 것 같다.
데모 전 마지막 테스트를 할 때, 내 노트북 환경에선 잘 되던 파일전송이 안되는 문제점도 있었다. 3일 밤을 잠을 덜 자가며 해결 방안을 찾아 보았다. 문제 발생 당시엔 소스에 오류가 있는 것인가 하고 소스 디버깅을 해보았는데 어느 순간에 잘 되던게 환경이 변해서 안된다면 소스에는 이상이 없을 것이라고 판단이 되었다. 상대 컴퓨터에 백신이 깔려 있었기 때문에 MR.FILE 실행프로그램을 알 수 없는 프로그램으로 판단하였던것이 원인이었다.
데모 전 주는 디버깅과 테스트, 발표자료 만들기를 하는데 거의 모든 시간을 사용했다.
데모는 학생평가와 전문가평가로 나뉘어 진행하였다. 오전에는 데모 준비에 모든시간을 사용했고, 오후에 약 5시간동안 부스를 운영하였다. 전문가 평가는 비공개라서 결과를 알 수는 없었지만 학생평가에서 1등을 함으로서 좋은 결과를 낳으면서 프로젝트는 마무리 되었다.
아쉬운 점도 많았지만 완성 할 수 없을 것만 같았던 프로젝트가 무사히 완성 됐음에 감사할 뿐이다.
'개인 활동 > 프로젝트 결과' 카테고리의 다른 글
[2020 이브와] 수행계획서와 진행프로젝트 선정 (0) | 2020.06.02 |
---|