dslab.konkuk.ac.kr › class › 2011 › 11cd2 › t11 › 졸업작품... · 졸업작품...

34
졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을 이용한 모바일기기와 컴퓨터간의 파일전송 어플리케이션 지도교수 : 유준범 교수님 조원 김효석 / 200614164 ([email protected] / 010-4276-8197) 김형석 / 200511316 ([email protected] / 010-7210-8733)

Upload: others

Post on 25-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

졸업작품 중간보고서

주제

무선통신(3G/Wi-Fi)을 이용한

모바일기기와 컴퓨터간의 파일전송 어플리케이션

지도교수 : 유준범 교수님

조원김효석 / 200614164([email protected] / 010-4276-8197)김형석 / 200511316([email protected] / 010-7210-8733)

Page 2: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

<목 차>

1. 유사한 관련 프로그램 3

2. 프로젝트 적용 기술 5

3. 프로젝트 요구사항 17

4. 프로젝트 설계구조 19

5. USE CASE 25

6. 현재까지의 프로젝트 진행상황 29

7. 앞으로의 계획 33

8. Reference 34

Page 3: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

1. 유사한 관련 프로그램

1.1. 심플싱크

SKT에서 만든 스마트폰과 PC등 디지털 기기간에 무선(Wi-Fi)으로

연결하여 사진/뮤직/동영상/주소록 등을 간단히 이동 및 저장할 수

있는 서비스

특징

- 별도의 PC 응용프로그램 설치 후 사용 가능

- 탐색기 기능을 사용하여 간편한 파일 이동

주요기능

뮤직/동영상/사진을 디바이스 간에 간단히 이동 가능

가능 디바이스 : Android 핸드폰, iPhone, iPod touch 등

- PC와 스마트폰간 사진/뮤직/동영상 이동

- 스마트폰간 사진/뮤직/동영상 이동

- Wi-Fi 연결 시 파일 전송 없이 뮤직/동영상 감상

(단, 사전에 스마트폰에 적합한 파일로 변환 후 사용)

- 주소록을 PC에 저장하여 백업 및 복원 작업을 가능하게 함

- SMS 관리

제약조건

두 장치가 동일한 무선 Wi-Fi(AP) 에 연결시 사용 가능

Page 4: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

1.2. 삼성 kies air

삼성에서 만든 갤럭시S2와 PC간에 무선(Wi-Fi)으로 연결하여 사진/

뮤직/동영상/주소록 등을 간단히 이동 및 저장할 수 있는 서비스

기존에 삼성에서 모바일기기와 Sync를 맞추기 위해 사용했던 kies

의 업그레이드 버전

특징

- 별도의 PC 응용프로그램 설치 없이 PC웹브라우저 사용

- PC웹브라우저에서 갤럭시S2의 IP주소를 입력하여 통신 시작

주요 기능

- 연락처, 일정 동기화

- 사진/음악/동영상 듣기 및 저장

- 휴대폰 데이터 백업

- 전화번호부 관리

- 배경화면/벨소리 지정

문제점

- 불편한 UI와 느린 처리 속도

제약조건

두 장치가 동일한 무선 Wi-Fi(AP) 에 연결시 사용 가능

Page 5: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

2. 프로젝트 적용 기술

2.1. PC 어플리케이션 적용 기술

2.1.1. SWT

- 이클립스에서 사용하고 있는 자바 기반의 위젯 툴킷이다.

- 윈도우 시스템에서 제공하는 고유의 그래픽 구성 요소를 자바

네이티브 인터페이스(JNI, Java Native Interface)를 통하여 직

접적으로 사용하며 스윙에 비하여 비교적 하위 수준의 간단한

구현을 가진다.

- 스윙과 같은 모델-뷰-컨트롤러(MVC, Model-View-Controller)

와 같은 디자인 패턴은 직접적으로 지원하지 못하기 때문에 좀

더 추상화된 고수준의 패턴 지원을 위해 JFace가 개발되었으며,

SWT/JFace와 같이 병기하여 사용하는 경우가 많다.

- JNI를 사용하기 때문에 각 운영 체제별 고유의 라이브러리 파일

이 있어야 구동 가능하므로 자바가 구동되는 모든 운영 체제/윈

도우 시스템에서 구동 가능하지는 않다.

Page 6: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

2.1.2. JFace

- 이클립스에서 사용되는 일반적인 UI를 구현하기 위한 툴킷이다.

- JFace는 하위 UI 시스템인 SWT를 대체하기 위해 만들어진 것

이 아니고, 자주 쓰이는 UI Framework를 추상화하도록 만들어

졌기 때문에 단독으로는 쓰일 수 없고 SWT와 같이 사용해야 한

다.

- SWT를 보완하기 위해, 모델 기반 접근 방법을 사용하여 더 적

은 시간에, 더 이해하기 쉬운, 재사용 가능한 코드를 작성할 수

있도록 설계되었다.

- Model-View 구조로 되어 있기 때문에, 이미 어플리케이션에서

사용하던 모델을 자연스럽게 사용할 수 있다.

- 주요 기능

* 액션 : 사용자의 명령이 어떠한 UI에서 발생되었는지를 상관

하지 않고 동일하게 처리할 수 있는 추상적인 매커니즘

제공

* 뷰어 : 특정 모델 기반의 SWT 위젯의 어댑터가 되어 자료를

리스트, 테이블, 트리형태로 표현하는 기능을 간략히 할

수 있도록 제공

* MVC가 적용된 필터, 정렬, 업데이트 기능을 갖춘 뷰어를 제

* 액션을 정의하고, 적절한 위치에 배치하는(메뉴, 툴바, 버튼)

기능을 제공

* 표준 대화상자 및 마법사를 제공

* 이미지, 글꼴 등을 관리하는 레지스트리를 제공

Page 7: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

2.2. 연결동작 적용 기술

2.2.1. TCP/IP Socket

- TCP/IP 개요

* 전 세계적인 표준기구인 ISO가 표준안을 확정하기까지는 너

무나도 많은 시간이 요구되었기 때문에 긴급히 표준안 작성할

필요가 있었던 미국에서 만들어 낸 것이 TCP/IP이다. 이후

TCP/IP 가 인터넷을 위한 프로토콜로 채택되고 인터넷이 전

세계적으로 확산되면서, TCP/IP가 수많은 프로토콜 중에 대

표적인 프로토콜이 된 것이다.

- TCP/IP 구조

* TCP/IP는 다음에서 설명하는 바와 같이 응용계층, 전송계층,

인터넷 계층, 그리고 물리계층 등 4개의 계층 구조를 갖는다.

* 응용 계층은 네트워크를 실제로 사용하는 파일 전송 프로그램

등이 이 계층에 해당되는 프로그램이다. OSI 모델에서 보면

애플리케이션 계층과 프리젠테이션 계층이 여기에 해당된다.

* 전송 계층의 역할은 도착하고자 하는 시스템까지 데이터를 전

송하는 것이다. OSI 모델에서 보면 세션 계층과 트랜스포트

계층에 해당하는 역할을 한다. TCP/IP 소켓 부분이 OSI 모델

의 세션 계층에 해당된다. TCP/IP에서는 시스템의 주소

(address)와 포트(port)를 가지고 각 프로세스를 연결해서 통

신을 한다.

* 인터넷 계층에서는 데이터그램이 가지고 있는 주소를 판독하

고 네트워크에서 주소에 맞는 네트워크를 찾아가서 해당되는

호스트가 데이터그램을 받을 수 있도록 데이터그램을 전송한

다. OSI 모델에서 보면 네트워크 계층과 데이터 링크 계층에

해당한다.

Page 8: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

* 물리 계층에 대하여 TCP/IP 프로토콜에 따로 정의한 내용은

없으며, IEEE가 정해놓은 기존의 하드웨어 표준을 따르고 있

다. 일반적으로 데이터 통신에서 이용되는 이더넷(Ethernet)

을 이용한다.

* TCP/IP 계층 구조를 그림으로 표현하면 다음과 같다.

- 연결형 서비스와 비연결형 서비스

* 통신 프로토콜은 연결형(Connection-Oriented) 서비스와 비

연결형(Connectionless Oriented) 서비스 중에서 한 가지 형

태로 서비스를 제공한다.

* 연결형은 데이터를 주고 받기 전에 미리 연결을 설정하고 연

결된 전송로를 이용해서 데이터를 주고 받은 다음 연결을 해

제하는 방식으로 스트림 서비스(Stream Service)라고도 한

다. 이 방식은 TCP에서 사용하는 방식으로서 데이터를 신뢰

성있게 전송할 수 있다.

* 연결을 설정하지 않고 데이터를 보내고 그 데이터가 제대로

갔는지 여부에 대해 전혀 신경쓰지 않는 비연결

(connection-less) 방식이 있는데, 이러한 방식은 UDP에서

데이터를 전송하기 위해 사용하는 방식으로, 이러한 포트는

일반적으로 서비스 프로그램에 대해 할당되어 있다.

Page 9: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

Socket [|sɑ:kɪt]1. power point , 美 out・let , re・cep・tacle)

(또한 英 모두 사용) 콘센트

a wall socket

벽의 콘센트

2. (전기 기구에서 플러그 등을) 꽂는 곳, (전구) 소켓

an aerial socket on the television

텔레비전의 안테나 꽂는 곳

3. (다른 부분이 들어갈 수 있도록) 푹 들어간 곳, 구멍

His eyes bulged in their sockets.

그의 두 눈은 눈구멍에서 툭 튀어나와 있었다.

- 소켓(Scocket) 프로그래밍

* 소켓(Socket)의 사전적 의미

* 소켓(Socket)은 전기·전자적으로는 플러그를 연결하는 단자를

의미하는 용어로서, 통신에서는 특정 노드상의 서비스를 식별

하는 식별자를 의미하며, 주소와 서비스를 식별하는 포트 번

호로 구성된다.

* 소켓의 세가지 형식은 다음과 같다.

① SOCK_STREAM : 바이트를 주고받을 수 있는 스트림

(Stream) 통신을 구현할 수 있게 해주는 소켓으로 양방향

통신 가능. 다른 말로 TCP(Transfer Control Protocol)라

고 한다.

② SOCK_DGRAM : 데이터그램 통신용 소켓으로

SOCK_STREAM 과 마찬가지로 양방향 통신 가능.

UDP(User Datagram Protocol)라고 한다.

③ SOCK_RAW : 좀더 수준 높은 제어를 하고 싶은 사용자를

위한 것으로 패킷의 경로까지도 지정할 수 있다. 보안상

Page 10: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

문제가 발생할 수 있기 대문에 자바언어에서는 지원하지

않는다.

* 소켓은 서버측에 있는 프로그램과 클라이언트측에 있는 두 개

의 프로그램이 특정 포트를 통해 연결됨으로써 논리적은 채

널을 형성하여 양방향 통신이 가능하도록 하는 소프트웨어적

인 메커니즘(mechanism)이라고 할 수 있다. 서버와 클라이언

트간에 형성된 채널을 통해 클라이언트가 서비스를 요청

(Request)하면 서버는 그 요청의 내용을 듣게되며(Listen),

해당하는 서비스 프로그램을 수행하여 그 결과를 연결되어

채널로 돌려준다.

* 자바에서는 java.net 패키지에서 서버를 위한 ServerSocket

클래스와 클라이언트를 위한 Socket 클래스를 제공하고 있으

므로, 클라이언트/서버 프로그램에서 각 프로그램에 적합한

소켓 객체를 생성한 후, InputStream과 OutputStream 클래

스를 이용하여 통신을 수행한다.

Page 11: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

* TCP 프로그래밍에서 중요한 클래스는 다음과 같다.

① Java.net.ServerSocekt : 서버쪽에서 클라이언트의 접

속을 대기하기 위해서 반드시 필요한 클래스

② Java.net.Socket : 서버와 클라이언트가 통신하기 위

해서 반드시 필요한 클래스

* 서버와 클라이언트간의 통신과정을 그림으로 다시 표현하면

다음과 같다.

Page 12: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

2.2.2. Thread

- 프로세스와 쓰레드(process & thread)

① 프로세스 (Process): 컴퓨터에서 연속적으로 실행되고 있는

프로그램을 말하는 것으로 여러개의 프로세서를 사용하면 멀

티프로세싱이고 여러개의 프로그램을 같은 시간에 시분할 방

식으로 돌리면 멀티태스킹이라 말한다.

② 쓰레드(Thread): 프로세스내에서 실행되는 흐름의 단위를 말

하는 것으로 하나의 프로그램은 최소한 하나의 쓰레드(main

thread)를 가진다. 프로그램에 따라 둘 이상의 쓰레드를 동

시에 실행할수 있는데 이를 멀티쓰레드라고 부른다.

* 모든 프로세스는 하나 이상의 쓰레드를 가지고 있다.

- 프로세스 : 쓰레드 = 공장 : 일꾼

Page 13: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

- 멀티프로세스 vs 멀티쓰레드

* 하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰

레드를 생성하는 것이 더 적은 비용이 든다.

* 멀티프로세스와 멀티스레드는 양쪽 모두 여러 흐름이 동시에

진행된다는 공통점을 가지고 있다. 하지만 멀티프로세스에서

각 프로세스는 독립적으로 실행되며 각각 별개의 메모리를 차

지하고 있는 것과 달리 멀티스레드는 프로세스 내의 메모리를

공유해 사용할 수 있다. 또한 프로세스 간의 전환 속도보다

스레드 간의 전환 속도가 빠르다.

Page 14: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

- 멀티스레드 프로그래밍의 장점

* 응답성 : 대화형 프로그램을 멀티스레드화하면, 프로그램의 일

부분(스레드)이 중단되거나 긴 작업을 수행하더라도 프로그램

의 수행이 계속되어, 사용자에 대한 응답성이 증가된다.

* 자원 공유 : 스레드는 자동적으로 그들이 속한 프로세스의 자

원들과 메모리를 공유한다. 코드 공유의 이점은, 한 응용 프로

그램이 같은 주소 공간 내에 여러 개의 다른 활동성 스레드를

가질 수 있다는 점이다.

* 경제성 : 프로세스 생성에 메모리와 자원을 할당하는 것은 비

용이 많이 든다. 스레드는 자신이 속한 프로세스의 자원들을

공유하기 때문에, 스레드를 생성하고 문맥교환을 하는 편이

보다 경제적이다.

* 멀티프로세서 활용 : 멀티프로세서 구조에서는 각각의 스레드

가 다른 프로세서에서 병렬로 수행될 수 있다. 단일 스레드

프로세스는 CPU가 많아도 CPU 한개에서만 실행된다. 즉, 다

중 스레드화를 하면 다중 CPU에서 병렬성이 증가된다.

- 쓰레드의 구현과 실행

* 쓰레드를 구현하는 방법은 2가지가 있다.

Page 15: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

① Thread 클래스를 상속

class MyThread extends Thread{

public void run() { /* 작업내용 */ }

}

// Thread 클래스의 run()을 오버라이딩.

* Thread 클래스를 상속하는 첫 번째 방법은 다른 클래스를 상

속 받을 수 없게 된다는 단점이 있다.

② Runnable 인터페이스를 구현

class MyThread implements Runnable{

public void run() { /* 작업내용 */ }

}

// Runnable 인터페이스의 추상메서드 run()을 구현

* Runnable 인터페이스를 구현하는 두 번째 방법은 재사용성이

높고, 코드의 일관성을 유지할 수 있는 장점이 있다.

- 쓰레드의 생성부터 소멸과정

Page 16: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

① 쓰레드를 생성하고 start()를 호출하면 큐형태의 실행대기열

에 저장되어 기다린다.

② 실행대기 상태에 있다가 차례가 되면 실행상태가 된다.

③ 주어진 실행시간이 다 되거나 yield()를 만나면 다시 실행대

기 상태가 된다.

④ 실행 중 suspend(), sleep(), wait(), join(), I/O block에 의

해 일시정지 상태가 될 수 있다.

⑤ 지정된 일시정지 시간이 다 되거나 time-out, notify(),

resume(), interrupt()가 호출되면 실행대기 상태가 된다.

⑥ 실행을 모두 마치거나 stop()이 호출되면 소멸된다.

※ 번호의 순서대로 쓰레드가 수행되는 것이 아니라 설명을 위

한것임.

Page 17: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

3. 프로젝트 요구사항

3.1. 간편한 UI

- 삼성 kies air와 같은 경우 여러 가지 좋은 기능을 갖추고 있

음에도, 불편한 UI 때문에 사용하기가 어려움

Page 18: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

3.2. 안정된 통신 연결과 올바른 파일 전송

- 가장 기본적이고 우선되어야 할 사항

3.3. 비정상적인 통신 해제를 대비한 파일 이어받기 기능

- 파일 전송 중에 통신이 해제되면, 추후에 다시 접속했을 때

받던 파일을 이어서 받을 수 있도록 한다.

3.4. 동일한 이름의 파일 전송시 덮어쓰기

- 저장 폴더에, 전송받으려는 파일과 같은 이름의 파일이 있으

면 덮어써서 저장

3.5. 다중 파일 전송 지원

- 동시에 여러 개의 파일을 전송

3.6. 하나의 PC에 다중 모바일 기기 접속 불가

- PC와 모바일 기기는 동시에 일대일로만 접속

- 모바일 기기는 최초 접속한 PC의 정보를 소유

3.7. PC에서 요청한 모바일 기기 내 파일 정보들이 바

르게 표기

- 어플리케이션에서, 목록에 나타난 파일들의 이름, 크기와 같

은 정보들이 올바르게 표기되어야 함

Page 19: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

4. 프로젝트 설계구조

4.1. 어플리케이션간의 접속

4.1.1. 접속 과정

- 사용자가 안드로이드 어플리케이션에서 PC의 IP주소를 입력하여

PC의 Client와 통신을 설정한다.

- 이때 안드로이드 핸드폰의 IP 주소와 Port Number를 PC 어플리

케이션에 전송한다.

- 전송받은 IP주소와 Port Number를 통해 안드로이드 핸드폰의

Server와 통신을 설정한다.

Page 20: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

4.1.2. 접속 완료

- 안드로이드 어플리케이션과 PC 어플리케이션의 Server는 각각

실행중이며 Client의 요청을 기다린다.

- 별도의 종료 동작이 발생하기 전까지 각 어플리케이션의 Server

는 동작하고 있다.

- 파일전송은 안드로이드에서 PC로, PC에서 안드로이드 양방향 모

두 가능하다.

Page 21: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

4.2. 파일전송

4.2.1. PC에서 안드로이드 핸드폰으로 파일 전송

- PC 어플리케이션에서 ACK를 보내어 파일 전송을 알린다.

- 안드로이드 어플리케이션에서 ACK를 보내어 다운 준비가 되었음

을 알린다.

- PC 어플리케이션에서 안드로이드 핸드폰으로 파일을 전송한다.

Page 22: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

4.2.2. 안드로이드 핸드폰에서 PC로 파일 전송

- PC 어플리케이션에서 안드로이드 핸드폰의 파일 중 다운 받을 파

일을 선택한다.

- PC 어플리케이션에서 파일 전송을 요청한다.

- 안드로이드 어플리케이션 Server에서 Client에게 파일 전송 요청

이 있음을 알린다.

- Client는 PC 어플리케이션에게 ACK를 보내어 파일 전송을 알린

다.

- PC 어플리케이션에서 ACK를 보내어 다운 준비가 되었음을 알린

다.

- 안드로이드 어플리케이션에서 PC 어플리케이션으로 파일을 전송

한다.

Page 23: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

4.2.3. 다중 파일 전송

- 파일전송 중 일 때 파일전송 요청이 있어도 이전에 있었던 연결

은 끊어지지 않는다.

- 쓰레드를 사용하지 않는 파일전송 일 경우 위와 같은 파일전송

과정을 따라서 파일전송이 이루어진다.

- 안드로이드에서 PC로 전송, 반대로 PC에서 안드로이드로 전송

양방향 모두 가능하다.

Page 24: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

4.2.4. 쓰레드를 사용한 다중 전송

- 파일전송 중 일 때 파일전송 요청이 있어도 이전에 있었던 연결

은 끊어지지 않는다.

- 쓰레드를 사용해야 할 경우, 쓰레드를 생성하여 파일전송에 무리

가 없게 한다.

- 쓰레드를 생성하여 파일전송을 시작하고, 파일전송이 완료되면 생

성된 쓰레드는 소멸된다.

- 파일전송 과정은 위의 과정과 동일하다.

- 안드로이드에서 PC로 전송, 반대로 PC에서 안드로이드로 전송

양방향 모두 가능하다.

Page 25: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

5. USE CASE

Use Case PC와 모바일 기기 연결

Actor 사용자

Type Primary

Pre-conditionsPC와 모바일 기기가 동일 네트워크 상에 연결되어 있음

PC와 모바일 기기가 각각 어플리케이션 실행 중

Basic Flow

Actor System

1. 모바일 기기에 PC IP 주

소를 입력

2. 해당 IP 주소를 가진 PC

에 접속

3. 최초 접속이라면 모바일

기기는 PC의 정보를 저장

4. 모바일 기기가 PC에 자

신의 IP 주소를 전송

5. PC, 모바일 기기의 어플

리케이션에 각각 파일 리스

트를 출력

Alternative Flow

Actor System

E-1. 해당 IP 주소를 가진

PC가 동일 네트워크 상에

존재하지 않으면 접속 실패

메시지를 출력

Use Case PC와 모바일 기기 연결 해제

Actor 사용자

Type Primary

Pre-conditions PC - 모바일 기기 접속

Basic Flow

Actor System

1. 어플리케이션에서 연결

해제 버튼을 클릭2. 세션을 해제한다.

Page 26: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

Use Case 파일 업로드

Actor 사용자

Type Primary

Pre-conditions PC - 모바일 기기 접속

Basic Flow

Actor System

1. 업로드를 원하는 파일을

선택한 후, 업로드 버튼을

클릭

2. 모바일 기기에 동명 파일

이 있는지 체크 후 전송

3. 완료되면 파일 리스트 새

로고침

Alternative Flow

Actor System

E-1. 모바일 기기에 파일을

저장할 용량이 부족할 경우

전송하지 않고 메시지 출력

E-2. 동명 파일이 존재할

경우 덮어쓰기

Use Case 파일 다운로드

Actor 사용자

Type Primary

Pre-conditions PC - 모바일 기기 접속

Basic Flow

Actor System

1. 다운로드를 원하는 파일

을 선택한 후, 다운로드 버

튼을 클릭

2. PC에 동명 파일이 있는

지 체크 후 전송

3. 완료되면 파일 리스트 새

로고침

Alternative Flow

Actor System

E-1. PC에 파일을 저장할

용량이 부족할 경우 전송하

지 않고 메시지 출력

E-2. 동명 파일이 존재할

경우 덮어쓰기

Page 27: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

Use Case 파일 이어받기

Actor 사용자

Type Primary

Pre-conditionsPC - 모바일 기기 접속

이전 세션에서 파일 전송 중 비정상 종료

Basic Flow

Actor System

1. 전송 중 중단됐던 부분부

터 다시 파일 전송 재개

Use Case 파일 덮어쓰기

Actor 사용자

Type Primary

Pre-conditionsPC - 모바일 기기 접속

전송하려는 폴더에 동명 파일 존재

Basic Flow

Actor System

2. ‘예’, ‘아니오’ 중 선택

1. 동명 파일이 있고, 덮어

쓸지 여부를 묻는 메시지

출력

3. 사용자가 ‘예’를 선택했

을 경우 기존 파일을 삭제

하고 파일 전송

Alternative Flow

Actor System

E-1. 사용자가 ‘아니오’를

선택했을 경우 전송을 취소

하고 대기

Page 28: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

Use Case 파일 리스트 새로고침

Actor 사용자

Type Primary

Pre-conditions PC - 모바일 기기 접속

Basic Flow

Actor System

1. 어플리케이션에서 파일리

스트 새로고침 버튼을 클릭

2. PC와 모바일 기기 양쪽

의 파일 리스트를 갱신하여

출력

Use Case 파일 다중 전송

Actor 사용자

Type Primary

Pre-conditionsPC - 모바일 기기 접속

파일이 이미 전송 중

Basic Flow

Actor System

1. 파일 전송 중에, 다른 파

일을 선택하여 업로드나 다

운로드 버튼을 클릭

2. 기존 전송 중이던 파일과

동시에 새로운 파일을 전송

Alternative Flow

Actor System

E-1. 이미 전송 중인 파일

을 다시 선택하였을 경우

에러 메시지를 출력

Page 29: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

6. 현재까지의 프로젝트 진행상황

6.1. PC 어플리케이션

6.1.1. 메인화면

- 현재 구현 중인 PC 어플리케이션의 메인화면이다.

- JFace의 TreeViewer와 TableViewer, Menu로 구성되어 있다.

- 왼쪽 화면은 Mobile Equipment의 파일 트리 구조에 해당한다.

아직 Mobile Equipment와의 연동이 이루어지지 않아 양쪽 모두

PC의 파일 트리 구조를 출력하는 모습을 나타냈다.

- 오른쪽 화면은 PC의 파일 트리 구조에 해당한다.

- PC 어플리케이션을 통하여 Mobile Equipment와 PC의 파일 모

두를 제어할 수 있도록 할 예정이다.

TreeViewer TableViewer

Page 30: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

6.1.2. 파일 트리 탐색

- TreeViewer에서 폴더를 선택했을 경우에 나타나는 화면이다. 폴

더안에 포함되어 있는 하위 폴더 및 파일들이 우측 Table

Viewer에 출력된다.

- 좌측 TreeViewer에서 폴더를 더블클릭하면 하위폴더 내용들이

TreeViewer에 출력된다.

- 좌측 TreeViewer에서 폴더 외에 파일까지 출력되는 부분을 폴더

만 출력될 수 있도록 변경할 예정이다.

- 가운데 두 버튼은 Upload와 Download 역할을 할 버튼이다.

Page 31: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

6.1.3. 메뉴 동작 화면

- 일반적으로 사용하는 메뉴의 모습이다.

- 메뉴버튼의 하위 목록을 클릭하면 그에 해당하는 동작이 작동한다.

Page 32: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

6.2. 안드로이드 어플리케이션

6.2.1. 메인화면

- 현재 구현 중인 안드로이드 어플리케이션의 메인화면이다.

- PC의 IP주소를 입력하는 TextBox가 있고, Mobile Equipment에

서 사용할 Port번호를 입력하는 TextBox가 있다.

Page 33: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

7. 앞으로의 계획

- 각각의 어플리케이션의 UI 확정

- 각각의 어플리케이션 기본 동작 설계 및 구현

- TCP/IP Socket을 통한 통신 구현

- 두 어플리케이션간의 연동 확인

- 이어받기, 덮어쓰기 등의 추가 기능 구현

  6월말 7월초 7월말 8월초 8월말 9월초 9월말 10월초 10월말 11월초

설계 준비                    컴퓨터 어플리케이

션 개발                   

모바일 어플리케이

션 개발                   

TCP/IP 통신 모듈

구현                   

두 어플리케이션간

연동 확인                   

테스트&디버깅                    중간보고서 제출                    최종보고서 제출

및 시현                   

Page 34: dslab.konkuk.ac.kr › Class › 2011 › 11CD2 › T11 › 졸업작품... · 졸업작품 중간보고서 김효석김형석2012-09-13 · 졸업작품 중간보고서 주제 무선통신(3G/Wi-Fi)을

8. Reference

http://story.pxd.co.kr/342

http://news.danawa.com/netizen/News_Netizen_View.php?nSeq=1

987177&nBoardSeq=28

http://ko.wikipedia.org/wiki/JFace

http://wiki.eclipse.org/index.php/JFace

http://reshout.com/2692009

http://golmaru.tistory.com/category/SWT/JFace

http://cafe.naver.com/eztcp/

http://www.cyworld.com/CremazerBlog/3970133

http://follet.tistory.com/10