3. 3/45
소개 개발동기 시스템 환경 시스템 구조 시스템 동작과정 시연 결론, 평가
3/45
토렌트 통합 관리 체계란?
• 토렌트 : P2P(peer-to-peer) 파일 전송 프로토콜을 활용한 응용 소프트웨어
• 토렌트 통합 관리 체계 : 여러 사용자로부터 토렌트 프로그램을
WEB GUI를 통해 사용하고, 사용자의 접근 영역을 제한하여 안전한
홈네트워크 자원을 사용하는 것
5. 5/45
소개 개발동기 시스템 환경 시스템 구조 시스템 동작과정 시연 결론, 평가
5/45
개발동기
1) 홈네트워크 환경
휴대용 장치, 컴퓨터, TV, 서버 등 대다수의 장치들이 하나의 망 내에 존재
2) 자료의 중복
- 리눅스의 배포판, 유틸리티 제작사들의 일부가 네트워크의 트래픽 감소를 위해
토렌트로 배포하는 경우가 잦음. 영상 자료 중 공개된 강연자료 등도 다수 존재
- 하지만 콜드데이터에 가까운 이런 자료들은 장치내에 보관하기가 애매
6. 6/45
소개 개발동기 시스템 환경 시스템 구조 시스템 동작과정 시연 결론, 평가
6/45
개발동기
3) 전세계 망의 많은 자료들이 토렌트라는 허공의 데이터로 시드(공유자)와 이어져
있다.
4) 전통적인 클라이언트 서버 방식의 장점과 P2P 방식의 장점이 결합 되어있다.
- 클라이언트는 필요한 것만 서버에 요청
- 서버가 모든 자료를 보관하는 것이 아닌 각 Peer들 간에 자료 공유로 부하 감소
7. 7/45
소개 개발동기 시스템 환경 시스템 구조 시스템 동작과정 시연 결론, 평가
7/45
개발동기
하지만 이런 장점에도 불구하고, 서버에서 작업하는것은
대다수 비전공자들이 사용하기에 매우 어려움
-> 사용하기 편한 웹 GUI를 만들자!
9. 9/45
소개 개발동기 시스템 환경 시스템 구조 시스템 동작과정 시연 결론, 평가
9/45
시스템 환경 (개발환경)
사용된 언어 JSP(HTML, CSS, JS, JAVA)
IDE(및 편집기)
웹: Sublime Text, Eclipse
서버: Eclipse
SDK, 라이브러리
JDK 1.8
jquery.js // 효율적인 js사용
spin.js // 스피너 활용
json-simple.jar // JAVA에서 JSON 활용
10. 10/45
소개 개발동기 시스템 환경 시스템 구조 시스템 동작과정 시연 결론, 평가
10/45
시스템 환경 (운영환경)
서버 OS CentOS 6.9 (kernel 4.14.2)
WS
(Web Server)
Nginx 1.13.7 Compiled
WAS
(Web App Server)
Tomcat 7.0.82 Compiled
DBMS MySQL Community 10.1.18 Compiled
12. 12/45
개발동기 시스템 환경 시스템 구조 시스템 동작과정 시연 결론, 평가
12/45
소개
시스템 구조
• REST(Representational State Transfer) 구조 모방
index.jsp
sub_DOWNLOAD.jsp
sub_LOG.jsp
sub_SEARCH.jsp
login.jsp
signup.jsp
IndexInterface
LoginInterface
RegisterInterface
Downloader
RssParser
Transaction
Linux Shell
MySQL DB
JSP Side
Interface Side
Backend Side
Server Shell Side
14. 14/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
14/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 로그인
ID & PWD입력
Login Interfacelogin.jsp Transaction ID & PWD 체크
로그인 기록 등록
처리코드 리턴
처리 코드 전달로그인처리index.jsp로 이동
JSP Side
Interface Side
Backend Side
Server Shell Side
15. 15/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
15/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 로그인
데스크탑 환경 모바일 환경
16. 16/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
16/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 회원가입
form 입력
Register
Interface
register.jsp Transaction 중복체크
가입처리
처리코드 리턴
처리 코드 전달회원가입처리 안내login.jsp로 이동
JSP Side
Interface Side
Backend Side
Server Shell Side
17. 17/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
17/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 회원가입
18. 18/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
18/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 검색
검색어 입력
Index Interfaceindex.jsp
토렌트 트래커
검색 요청
검색결과
Parsing
JSON 가공 후
리턴
JSON 객체 전달
JSON 데이터
HTML로 표현
JSP Side
Interface Side
Backend Side
Server Shell Side
19. 19/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
19/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 검색
20. 20/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
20/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 다운로드
다운받을
결과 선택
Index Interfaceindex.jsp
torrent
다운로드 요청
torrent
다운로드 등록
처리코드 리턴처리 코드 전달응답 처리
JSP Side
Interface Side
Backend Side
Server Shell Side
21. 21/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
21/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 다운로드
22. 22/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
22/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 다운로드 토렌트 삭제
삭제할
토렌트 선택
Index Interfaceindex.jsp
torrent
삭제 요청
torrent
삭제
처리코드 리턴처리 코드 전달응답 처리
JSP Side
Interface Side
Backend Side
Server Shell Side
23. 23/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
23/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 다운로드 토렌트 삭제
24. 24/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
24/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 로그 확인
Index Interfaceindex.jsp
사용자의
다운로드 기록 요청
LOG 검색
DB 데이터 파싱처리 코드 전달응답 처리
JSP Side
Interface Side
Backend Side
Server Shell Side
JSON 가공 후
리턴
25. 25/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
25/45
시스템 구조소개
시스템 동작과정 및 사용 화면
• 로그 확인
28. 28/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
28/45
시스템 구조소개
결론 및 특이점, 보완사항
• 프로젝트를 진행하면서 잘했던 점
1) 문서화
2) 프론트엔드
3) 프론트 – 백 사이의 인터페이스
4) 백엔드
29. 29/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
29/45
시스템 구조소개
결론 및 특이점, 보완사항
• 1) 문서화
• REST API 처럼
프론트와 백을 나누어 개발
• 확실한 명세로 실제 구현전에
오류없이 각 파트를 구현
30. 30/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
30/45
시스템 구조소개
결론 및 특이점, 보완사항
• 2) 프론트엔드
브라우저(IE, FireFox, Chrome) 모바일 등 크로스 브라우징 및 반응형 웹 구현
ajax를 통한 SPA 지향, spinner의 위치, 유효한 검색어 처리 등 깔끔한 UI와 더불어 UX 고려
• 3) 엔드포인트 연결
복잡한 백엔드 함수를 이해할 필요없이, 프론트 엔드의 디자인 및 배치에 상관없이
명세한 내용에 맞게 데이터를 전송 + 간단한 호출 >> Interface 클래스 별도 배치
• 4) 백엔드
SQL Injection 방지, CORS나 XSS등의 프론트 보안 무력 공격에 방지하기위해 검색에 대한 유효
세션 구현(UUID, GUID) / 로그인 실패기록 저장으로 서버 보안 분석 방안 대비 / DB풀사용
31. 31/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
31/45
시스템 구조소개
결론 및 특이점, 보완사항
• 보완사항
- 유효한 검색 세션에 대한 주기적인 정리
작업 필요 (프로시저)
-> 현재는 DB에 무작정 쌓이는 상태
• - fail2ban등 실제로 해당 공격자 IP들에 대해
차단하는 기능 추가
32. 32/45
개발동기 시스템 환경 시스템 동작과정 시연 결론, 평가
32/45
시스템 구조소개
결론 및 장단점, 보완사항
QnA
감사합니다