SlideShare a Scribd company logo
๊ฐœ ์ธ ํ”„ ๋กœ ์  ํŠธ
P O R T F O L I O
์‹  ์ž… ๊ฐœ ๋ฐœ ์ž ์žฅ๋ณ‘ํ•™
INDEX
โ€ข ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
โ€ข ์‚ฌ์šฉ ์–ธ์–ด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โ€ข ๊ตฌํ˜„ ๋‚ด์šฉ
โ€“1. HomePage
โ€“2. Android Application
โ€ข ํ”„๋กœ์ ํŠธ ์†Œ์Šค์ฝ”๋“œ
๊ฐœ๋ฐœ ํ™˜๊ฒฝ
โ€ข HomePage
โ€“ STS(Spring Tool Suite) 3.9.1.RELEASE
โ€“ apache-tomcat-8.0.47
โ€“ MySQL 5.7.18
โ€ข Android Application & ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ
โ€“ Android Studio 3.0.1 (Android ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ)
โ€“ Eclipse Neon.3 Release 4.6.3 (Window PC ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ)
โ€“ Java Swing (Window PC ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ GUI)
โ€ข ๊ณตํ†ต
โ€“ Git
์‚ฌ์šฉ ์–ธ์–ด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ํ”„๋กœ์ ํŠธ ์–ธ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ํ™ˆํŽ˜์ด์ง€
Java
JSP
HTML, CSS
JavaScript
Bootstrap (HTML, CSS)
jQuery, Handlebars (JavaScript)
ImgScalr (Spring โ€“ ์ด๋ฏธ์ง€ํŒŒ์ผ ๊ฐ€๊ณต)
Jackson, GSON (Spring โ€“ JSON)
HttpClient (Spring โ€“ ์™ธ๋ถ€ ์„œ๋น„์Šค ์ด์šฉ)
myBatis (Spring โ€“ DB)
์•ˆ๋“œ๋กœ์ด๋“œ
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜
Java Bluecove (Bluetooth)
๊ตฌํ˜„ ๋‚ด์šฉ - HOMEPAGE
โ€ข 1. HomePage ์š”์•ฝ
โ€“ ๊ฐœ์ธ ์‚ฌ์ง„ ํ™ˆํŽ˜์ด์ง€๋กœ, ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธ ํ•  ๊ฒฝ์šฐ ์‚ฌ์ง„ ์—…๋กœ๋“œ, ์ˆ˜์ •, ์‚ญ์ œ ๊ธฐ๋Šฅ.
โ€“ ๋กœ๊ทธ์ธ, ๋ฉ”์‹œ์ง€ ์ „์†ก ๋“ฑ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ RSA์•”ํ˜ธํ™”.
โ€“ Ajax์™€ Handlebars ํ…œํ”Œ๋ฆฟ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด์ „ํ™˜ ์—†์ด ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ .
โ€“ Drag & Drop์œผ๋กœ ์†์‰ฝ๊ฒŒ ํŒŒ์ผ์„ ์—…๋กœ๋“œ.
โ€“ ๊ฒŒ์‹œํŒ ํ˜•ํƒœ๋กœ Message๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  E-mail ๋‹ต์žฅ.
โ€“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋กœ๋“œ ๋œ ์‚ฌ์ง„ํŒŒ์ผ์„ ๊ฐ€๊ณตํ•˜์—ฌ ์ €์žฅ.
โ€“ Open API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์„œ๋น„์Šค ์ด์šฉ.
Controller
Service
DAO
DB (MySQL)
์™ธ๋ถ€ ์„œ๋น„์Šค
๋ฐฉ๋ฌธ์ž ๊ด€๋ฆฌ์ž
โ€ข ์›น ์„œ๋น„์Šค ์ฒ˜๋ฆฌ ๊ณผ์ • - 1
1. HOMEPAGE
Interceptor
โ€ข ์›น ์„œ๋น„์Šค ์ฒ˜๋ฆฌ ๊ณผ์ • - 2
1. HOMEPAGE
Client
/
/gm/{cate}
/ad/main
/ir/del/{no}
/ir/reg
Controller
MainController
UrlMapping = โ€œ/โ€
โ€ฆ
AdminController
UrlMapping = โ€œ/adโ€
โ€ฆ
FileGetControllerRest
UrlMapping = โ€œ/fileโ€
โ€ฆ
Service
MemberService
loginService()
PhotoService
insertService()
โ€ฆ
MainService
insertVisiterInfo
โ€ฆ
DAO
PhotoDAO
inpuirePhotolist()
โ€ฆ
MessageDAO
totalMessage()
โ€ฆ
DB(MySQL)
View
์ธ
ํ„ฐ
์…‰
ํ„ฐ
โ€ข ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ์„ค์ •
1. HOMEPAGE
MAVEN์„ค์ •์„ ํ†ตํ•ด
ํ•„์š”ํ•  ๋ชจ๋“ˆ ์„ค์น˜
myBatis ์„ค์ •ํŒŒ์ผ ๋ฐ
SQL๋ฌธ์„ ๋ถ„๋ฆฌํ•˜์—ฌ
๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ XMLํŒŒ์ผ
DB์™€ ์—ฐ๊ฒฐ๋œ
SqlSession ๋นˆ์„
์ฃผ์ž… ๋ฐ›๊ธฐ ์œ„ํ•œ ์„ค์ •.
๋ฆฌ์†Œ์Šค ๊ฐ’๋“ค์„ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ
Class ๋‚ด๋ถ€
1. HOMEPAGE
โ€ข ๊ด€๋ฆฌ์ž Login Service ๋ฐ Interceptor
ID๊ฐ€ DB์— ์—†๊ฑฐ๋‚˜
Password๊ฐ€ ํ‹€๋ฆฌ๋ฉด ์˜ˆ์™ธ ๋ฐœ์ƒ
Service Controller
Interceptor
โ€œadminโ€๊ฐ์ฒด ์œ ๋ฌด๋ฅผ ํ™•์ธ.
์—†์„ ๊ฒฝ์šฐ Login Page๋กœ
๊ฐ•์ œ ์ด๋™ ์‹œํ‚จ๋‹ค.
โ€œ/adโ€๋กœ ์‹œ์ž‘๋˜๋Š”
๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ๋งตํ•‘.
์˜ˆ์™ธ์— ๋”ฐ๋ผ
์—๋Ÿฌ๋‚ด์šฉ์„
๋‹ด์€ Map๊ฐ์ฒด๋ฅผ
Model์— ๋‹ด์•„
Login page๋กœ
์ „๋‹ฌํ•œ๋‹ค.
servlet-context.xml
1. HOMEPAGE
โ€ข ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”(RSA)์ฒ˜๋ฆฌ.
ํ‚ค ์ƒ์„ฑ.
๊ณต๊ฐœํ‚ค๋Š” ์ „์†กํ•˜๊ณ 
๊ฐœ์ธํ‚ค๋Š” ์„ธ์…˜์— ์ €์žฅ.
๊ณต๊ฐœํ‚ค์™€ ์•”ํ˜ธํ™” ํ•  ๋ฐ์ดํ„ฐ๋กœ
์•”ํ˜ธํ™” ์ž‘์—… ์ˆ˜ํ–‰
Server Client
์„œ๋ฒ„๋กœ ์ „์†ก
์„ธ์…˜์—์„œ ๊ฐœ์ธํ‚ค๋ฅผ ๊ฐ€์ ธ์™€
๋ณตํ˜ธํ™” ์ˆ˜ํ–‰ ํ›„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ.
RestController
Client
DB
1. HOMEPAGE
โ€ข ๋ฐฉ๋ฌธ์ž Message ๋“ฑ๋ก.
์ฟ ํ‚ค๋ฅผ ํ™•์ธํ•˜์—ฌ
์—ฐ์† ๋ฉ”์‹œ์ง€๊ธฐ๋ก์„
์ œํ•œํ•˜๊ธฐ.
์ฒซ ๋ฉ”์‹œ์ง€ ์ „์†ก์ด๋ฉด
์ƒˆ๋กœ์šด ์ฟ ํ‚ค ๋ฐœ๊ธ‰
๋“ฑ๋ก ๋’ค ํŽ˜์ด์ง€ ์ „ํ™˜ ์—†์ด ์„ฑ๊ณต, ์‹คํŒจ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ
RSA์•”ํ˜ธํ™”๋œ
๋ฉ”์‹œ์ง€๋ฅผ ๋ณตํ˜ธํ™”
์œ ํšจ์„ฑ ์ฒดํฌ ํ›„ RSA๊ณต๊ฐœํ‚ค๋ฅผ ๋ฐ›์•„์™€
์•”ํ˜ธํ™” ๊ณผ์ •์„ ๊ฑฐ์นœ ๋’ค ์ „์†ก
1. HOMEPAGE
โ€ข EL, JSTL, Bootstrap์„ ์ด์šฉํ•œ ๊ฒŒ์‹œํŒ ํ˜•ํƒœ์˜ Message List๊ตฌํ˜„.
Controller
JSP Page
BootStrap์„ ์‚ฌ์šฉํ•˜์—ฌ ๊น”๋”ํ•˜๊ฒŒ
Message List ํ‘œํ˜„.
1. HOMEPAGE
โ€ข Message์— ๋Œ€ํ•œ E-mail ๋‹ต์žฅ.
์ƒ์„ฑ๋œ ์ž๋ฐ” ๋นˆ์„
@Inject ์—๋…ธํ…Œ์ด์…˜์œผ๋กœ
JavaMailSender ๊ฐ์ฒด์—
์ž๋™ ์ฃผ์ž….
๋ฉ”์ผ ๋ฐœ์†ก
๋ฐฉ๋ฌธ์ž ์ •๋ณด
๋ฐ
๋ฉ”์‹œ์ง€ ์ „๋‹ฌ
Click
Click
SimpleMailMessage
๊ฐ์ฒด์— ๋ฐฉ๋ฌธ์ž ์ •๋ณด ๋ฐ
๋ฉ”์‹œ์ง€ ๋‹ด๊ธฐ.
root-context.xml
Drag
&
Drop
1. HOMEPAGE
โ€ข Drag & Drop์œผ๋กœ ์‚ฌ์ง„ํŒŒ์ผ ์ถ”๊ฐ€
๋ฐ•์Šค ์•ˆ์— โ€˜dropโ€™
์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ.
Event๊ฐ์ฒด์—์„œ
File๊ฐ์ฒด์˜ ๋ฐฐ์—ด์„ ๋ฐ›์•„
[].forEach.call ํ•จ์ˆ˜๋ฅผ
์‚ฌ์šฉํ•˜์—ฌ readfile
ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์ „๋‹ฌ.
FileReader๊ฐ์ฒด์—
์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋ก.
File๊ฐ์ฒด๊ฐ€ โ€˜loadโ€™๋˜๋ฉด
๋ฐ์ดํ„ฐ๋ฅผ FormData๊ฐ์ฒด์—
๋‹ด์•„ Ajax๋กœ ์„œ๋ฒ„์— ์ „์†ก.
MultipartHttpServletRequest๊ฐ์ฒด๋กœ
๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ MultipartFile ๋ฆฌ์ŠคํŠธ๋ฅผ
์–ป์–ด ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ.
์ธ๋„ค์ผ
์ƒ์„ฑ
Spring์—์„œ ์ œ๊ณตํ•˜๋Š”
FileCopyUtilsํด๋ž˜์Šค๋กœ
ํŒŒ์ผ์„ ๋‹ค๋ฅธ ํด๋”๋กœ ๋ณต์‚ฌ
ImgScalr๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š”
Scalrํด๋ž˜์Šค๋กœ ์›๋ž˜ ์‚ฌ์ง„ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ
์ธ๋„ค์ผ ํŒŒ์ผ์„ ์ƒ์„ฑ.
ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ UUID๋กœ ์ƒ์„ฑ๋œ
๋ฌธ์ž์—ด์„ ํ•ฉ์ณ์„œ ๊ณ ์œ ํ•œ ํŒŒ์ผ์ด๋ฆ„์„
๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ๋กœ์šด ์ด๋ฆ„ ์ƒ์„ฑ.
1. HOMEPAGE
โ€ข ์ „์†ก๋œ ์‚ฌ์ง„์˜ ์ธ๋„ค์ผ ๋งŒ๋“ค๊ธฐ โ€“ ImageUtil Class.
Drag
&
Drop
getJSON ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
์š”์ฒญ๊ฒฐ๊ณผ ๊ฐ’์„ JSON์œผ๋กœ ๋ฐ›์•„ ์˜จ ๋’ค
ํ™”๋ฉด ์ „ํ™˜ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
Ajax๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„๋กœ
์‚ฌ์ง„์„ ์ „์†กํ•˜๊ณ  ๋งŒ๋“ค์–ด์ง„
์ธ๋„ค์ผ์„ ๋ฐ›์•„ ํ™”๋ฉด์—
ํ‘œ์‹œํ•œ๋‹ค.
1. HOMEPAGE
โ€ข Ajax์™€ Handlebars ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด์ „ํ™˜ ์—†์ด Data์ถ”๊ฐ€.
์„ ํƒ ์ „
์„ ํƒ ์‹œ
์„ ํƒ ํ›„
1. HOMEPAGE
โ€ข Open API๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์„œ๋น„์Šค ์ด์šฉ
Instagram-API, Google Maps-API๋“ฑ
Token๊ฐ’์ด ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด
HttpClient๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์—์„œ ๋ฐ”๋กœ
API์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณต.
IP-API Instagram-API
Google Maps API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฉ๋ฌธ์ž ์œ„์น˜๋ฅผ ์‹œ๊ฐํ™”
Google Chart๋กœ ๋ฐฉ๋ฌธ์ž ํ†ต๊ณ„ ์‹œ๊ฐํ™”
๊ตฌํ˜„ ๋‚ด์šฉ - ANDROID
โ€ข 2. Android Application ์š”์•ฝ
โ€“ Bluetooth ํ†ต์‹ ์œผ๋กœ PCโ€“Android๊ฐ„ ๋ฐ์ดํ„ฐ์ „์†ก.
โ€“ Android์—์„œ ์ œ๊ณตํ•˜๋Š” BluetoothAdapterํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Bluetooth Socket
ํ†ต์‹  ๊ตฌํ˜„.
โ€“ BlueCove๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PC Serverํ”„๋กœ๊ทธ๋žจ์—์„œ Bluetoothํ†ต์‹  ๊ตฌํ˜„.
โ€“ ์‚ฌ์šฉ์ž์˜ ๋™์ž‘์„ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„.
โ€ข Client ์ƒํƒœ์— ๋”ฐ๋ผ Serverํ”„๋กœ๊ทธ๋žจ ํ™”๋ฉด์ด ์ž๋™์œผ๋กœ ์ „ํ™˜.
โ€“ ์ „์†ก ๋ฐ›์„ ํŒŒ์ผ์˜ ์ €์žฅ ์œ„์น˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ.
โ€“ ArrayAdapter๋กœ ์ „์†กํ•  ์ด๋ฏธ์ง€ํŒŒ์ผ ๋ฐ ์Œ์•…ํŒŒ์ผ์„ ๋ฆฌ์ŠคํŠธํ˜•ํƒœ๋กœ Activity์— ์ถœ๋ ฅ.
โ€“ ๋””๋ฐ”์ด์Šค ์–ธ์–ด์„ค์ •์— ๋”ฐ๋ผ ์˜์–ด/ํ•œ๊ธ€์„ ์ง€์›.
2. ANDROID APPLICATION
โ€ข Bluetooth ์„œ๋น„์Šค ์ฒ˜๋ฆฌ ๊ณผ์ •.
Activity
Client Service
Server Service
GUI
Android
PC Server
์—ฐ๊ฒฐ
์š”์ฒญ
์—ฐ
๊ฒฐ
๋ฐ์ดํ„ฐ
์ „์†ก
์™„๋ฃŒ
์‘๋‹ต
๋ฐ์ดํ„ฐ
์ „์†ก
์™„๋ฃŒ
์‘๋‹ต
๋™์ž‘ ์š”์ฒญ ๊ฒฐ๊ณผ ๋ฐ˜์˜
๋™์ž‘ ์š”์ฒญ ๊ฒฐ๊ณผ ๋ฐ˜์˜
2. ANDROID APPLICATION
โ€ข Android Activity ๊ตฌ์กฐ.
๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ
ํด๋ฆญ ์‹œ
๋ฐ์ดํ„ฐ ์ „์†ก
2. ANDROID APPLICATION
โ€ข PC Server-Program GUI ๊ตฌ์กฐ.
๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ
๋ฐ์ดํ„ฐ ์ „์†ก
2. ANDROID APPLICATION
โ€ข Device ๋‚ด๋ถ€ Data์— ์ ‘๊ทผ.
์›ํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜
์ข…๋ฅ˜๋“ค์„ String ๋ฐฐ์—ด๋กœ
๋งŒ๋“ ๋‹ค.
์–ป๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜
Type์„ ์ •ํ•œ ๋’ค
์ปค์„œ๋ฅผ ์–ป์–ด์˜จ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ปค์„œ๋ฅผ ๊ฐ€์žฅ
์ฒ˜์Œ์œผ๋กœ ์œ„์น˜์‹œํ‚จ๋‹ค.
์ปค์„œ๋ฅผ ์˜ฎ๊ธฐ๋ฉฐ
ํŒŒ์ผ ์ •๋ณด๋ฅผ ์ฝ์–ด ์˜ฌ
๋ฐ˜๋ณต๋ฌธ
ํŒŒ์ผ๋งˆ๋‹ค ๊ฐ€์ ธ์˜ฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜
์œ„์น˜(Index)๋ฅผ ์–ป์–ด์˜จ๋‹ค.
์–ป๊ฒŒ ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์œ„์น˜(Index)๋กœ
ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ปค์„œ๋กœ ๋ถ€ํ„ฐ
๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
์ด ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์–ป๊ฒŒ ๋œ ํŒŒ์ผ์˜ ๋‹ค์–‘ํ•œ
์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ Device ๋‚ด๋ถ€์˜ ๊ฐ์ข…
ํŒŒ์ผ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.
ํŒŒ์ผ ์ „์†ก์„ ์œ„ํ•ด ํ•„์š”ํ•œ
๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
2. ANDROID APPLICATION
โ€ข Bluetooth ์—ฐ๊ฒฐ โ€“ 1 (Client)
BluetoothAdapter
๊ฐ์ฑ„๋กœ๋ถ€ํ„ฐ ํŽ˜์–ด๋ง๋œ
Device List๋ฅผ ์–ป์–ด์˜จ๋‹ค.
Dialog
๋„์šฐ๊ธฐ
Click
ํŽ˜์–ด๋ง ๋˜์–ด ์žˆ๋Š”
Device ๋ชฉ๋ก์„ ์ถœ๋ ฅ.
์„ ํƒ๋œ Device๋ฅผ
Serviceํด๋ž˜์Šค์˜
connect() ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌ.
2. ANDROID APPLICATION
โ€ข Bluetooth ์—ฐ๊ฒฐ โ€“ 2 (Client)
Thread ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด
Bluetooth Socket ์–ป๊ธฐ
์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ• ์„
ํ•˜๋Š” ConnectedThread ์‹คํ–‰
Bluetooth Socket์„ ์–ป๋Š”
ConnectThread
Thread ์ƒ์„ฑ ์‹œ
์–ป๊ฒŒ ๋œ Socket์œผ๋กœ
Connect ์ˆ˜ํ–‰. ์„ฑ๊ณต ์‹œ,
ConnectedThread ์‹คํ–‰.
์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„
Input, Output Stream์„
๊ฐ€์ ธ์˜จ๋‹ค.
2. ANDROID APPLICATION
โ€ข Bluetooth ์—ฐ๊ฒฐ โ€“ 3 (Server)
ํด๋ผ์ด์–ธํŠธ์™€ ๋™์ผํ•œ UUID๋กœ
Connection ์—ด๊ธฐ.
๋™์ผํ•œ UUID๋กœ ์ƒ์„ฑ๋œ Socket์ด
์—ฐ๊ฒฐ๋  ๋•Œ ๊นŒ์ง€ ๋Œ€๊ธฐ.
Client๊ฐ€ ์—ฐ๊ฒฐ์— ์„ฑ๊ณตํ•œ๋‹ค๋ฉด
๋Œ€๊ธฐ์ค‘์ด๋˜ ์•„๋ž˜ ์ž‘์—… ์ˆ˜ํ–‰.
์—ฐ๊ฒฐ์— ์„ฑ๊ณตํ•˜๋ฉด
Client์™€ ๋™์ผํ•˜๊ฒŒ
๋ฐ์ดํ„ฐ ์ „์†ก์„
๋‹ด๋‹นํ•˜๋Š” Thread๊ฐ€
์‹คํ–‰๋œ๋‹ค.
2. ANDROID APPLICATION
โ€ข ๋ฐ์ดํ„ฐ ์ „์†ก Process โ€“ 1 (Client)
๋ฒˆํ˜ธ ์„ค๋ช…
1๋ฒˆ ์—ฐ๊ฒฐ์ƒํƒœ์˜ ์ •์ƒ์„ ์•Œ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ.
2๋ฒˆ ์‚ฌ์šฉ์ž์˜ ์˜๋„๋ฅผ ์ „๋‹ฌ. (์ •์ƒ : 1, Activity ์ข…๋ฃŒ : -1)
3๋ฒˆ 2๋ฒˆ์ด 1์ด ์•„๋‹ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์ „์†ก ์ค‘์ง€.
4๋ฒˆ ํŒŒ์ผ ์ด๋ฆ„์„ ์ „๋‹ฌ.
5๋ฒˆ ํŒŒ์ผ์˜ MIME Type์„ ์ „๋‹ฌ.
6๋ฒˆ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ „๋‹ฌ.
7๋ฒˆ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ byte[]๋กœ ๋ฐ”๊พธ์–ด ์ „๋‹ฌ.
1
2
3
4
5
6
7
Client โ€“ Data ์ „์†ก
ํŒŒ์ผ ์ „์†ก์„ ์œ„ํ•œ
Object
Write ๋ฉ”์„œ๋“œ
2. ANDROID APPLICATION
โ€ข ๋ฐ์ดํ„ฐ ์ „์†ก Process โ€“ 2 (Server)
1
2
3
4
5
6
7
Server โ€“ Data ๋ฐ›๊ธฐ1
๋ฒˆํ˜ธ ์„ค๋ช…
1๋ฒˆ
Socket์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์„ ๊ฒฝ์šฐ -1์„ ๋ฐ›๊ณ  ์ข…๋ฃŒ ์‹œํ‚จ๋‹ค.
(์˜๋„์น˜ ์•Š์€ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ.)
2๋ฒˆ
Client๊ฐ€ ์ข…๋ฃŒ๋ฅผ ์›ํ•  ๊ฒฝ์šฐ -1์ด, ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ• 
๊ฒฝ์šฐ 1์ด ์ „๋‹ฌ๋œ๋‹ค. (์˜๋„๋œ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ.)
3๋ฒˆ
Client์—์„œ ํŒŒ์ผ ์ €์žฅ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ
์ฝ์–ด ๋“ค์ธ๋‹ค.
4๋ฒˆ
์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” Data๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐ›์•„ ๋‘๊ธฐ
์œ„ํ•œ ์ผ์ข…์˜ ์ž„์‹œ ์ €์žฅ ๋ณ€์ˆ˜.
5๋ฒˆ
์‹ค์ œ Data๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๊ตฌ๊ฐ„.
๋ฐ˜๋ณตํ•ด์„œ ๋ฒ„ํผ๋งŒํผ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ ๋ณ€์ˆ˜์— ์“ด๋‹ค.
ํŒŒ์ผ์˜ ํฌ๊ธฐ์™€ ๋ณต์‚ฌ๋œ ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์œผ๋ฉด ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.
6๋ฒˆ 5๋ฒˆ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์†Œ(์™ธ์žฅ ๋””์Šคํฌ)์— ์ €์žฅ.
7๋ฒˆ
Client์— ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” Message๋ฅผ ์ „๋‹ฌ.
์‚ฌ์šฉ์ด ์™„๋ฃŒ๋œ OutputStream์„ ๋‹ซ๋Š”๋‹ค.
2
3
4
5
6
7
2. ANDROID APPLICATION
โ€ข Device -> PC ๋ฐ์ดํ„ฐ ์ „์†ก - 1
Server ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ ๋™์‹œ์—
Socket์—ฐ๊ฒฐ ๋Œ€๊ธฐ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
์ „์†ก ํ•  ๋ฐ์ดํ„ฐ ํด๋ฆญ
Click
Server ์— ์—ฐ๊ฒฐ๋จ ๊ณผ ๋™์‹œ์—
ํ™”๋ฉด์ „ํ™˜ ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†ก.
๋‹ค์‹œ ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜๋จ.
์ „์†ก
์™„๋ฃŒ
์ „์†ก
์™„๋ฃŒ ์‹œ
๋‹ค์‹œ ์„ ํƒ๊ฐ€๋Šฅ
2. ANDROID APPLICATION
โ€ข Device -> PC ๋ฐ์ดํ„ฐ ์ „์†ก - 2
<ํŽ˜์–ด๋ง Dialog>๋ฅผ
์ข…๋ฃŒ ์‹œํ‚ค๊ณ 
<์ „์†ก์ค‘ Dialog> ํ™œ์„ฑํ™”.
๋ณต์‚ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€
๊ฐฑ์‹  ๋  ๋•Œ ๋งˆ๋‹ค
ProgressBar์— ์ž…๋ ฅ.
ํ™”๋ฉด์˜ ์ƒํƒœ๋ฐ”๋ฅผ ์ง„ํ–‰์‹œํ‚ด.
์ •์ƒ์ ์œผ๋กœ
์—ฐ๊ฒฐ๋˜๊ณ  ํŒŒ์ผ ์ „์†ก
์ฝ”๋“œ๋ฅผ ๋ฐ›์œผ๋ฉด
ํŽ˜๋„์„ ์ „ํ™˜.
ํŒŒ์ผ ์ „์†ก ์™„๋ฃŒ
์ฝ”๋“œ๋ฅผ Client๋กœ
์ „์†ก.
<์ „์†ก์ค‘ Dialog> ์ข…๋ฃŒ.
ํŽ˜๋„์„
๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ๋ณ€๊ฒฝ
Client Server
2. ANDROID APPLICATION
โ€ข PC -> Device ๋ฐ์ดํ„ฐ ์ „์†ก - 1
Server ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ ๋™์‹œ์—
Socket์—ฐ๊ฒฐ ๋Œ€๊ธฐ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
Click
Click
Click
๋‹ค์‹œ ํŒŒ์ผ ๋Œ€๊ธฐํŒŒ์ผ ๋Œ€๊ธฐ ํŒŒ์ผ ๋ฐ›๊ธฐ
์ „์†ก
์™„๋ฃŒ์‹œ
2. ANDROID APPLICATION
โ€ข PC -> Device ๋ฐ์ดํ„ฐ ์ „์†ก - 2
Bluetooth์—ฐ๊ฒฐ ๋’ค
FILE_SEND_MODE
๋ฉ”์‹œ์ง€ ์ „์†ก.
์ •์ƒ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๊ฐ€
์ „๋‹ฌ๋˜๋ฉด ํŽ˜๋„ ์ „ํ™˜
๋ฉ”์„œ๋“œ ํ˜ธ์ถœ.
ํŒŒ์ผ ์„ ํƒ ๋ฒ„ํŠผ.
์„ ํƒ๋œ File๊ฐ์ฒด๋กœ ์ „์†ก ํ• 
WriteObject๊ฐ์ฒด ์ƒ์„ฑ.
์ „์†ก ๋ฒ„ํŠผ.
์ƒ์„ฑ ๋œ WriteObject
๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋กœ
์“ฐ๊ธฐ ์ˆ˜ํ–‰.
Client Server
๋ณต์‚ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€
๊ฐฑ์‹  ๋  ๋•Œ ๋งˆ๋‹ค
ProgressBar์— ์ž…๋ ฅ.
ํ™”๋ฉด์˜ ์ƒํƒœ๋ฐ”๋ฅผ ์ง„ํ–‰์‹œํ‚ด.
2. ANDROID APPLICATION
โ€ข ๊ตญ์ œํ™”
ํ•œ๊ธ€ English
Device ์–ธ์–ด ์„ค์ •์— ๋”ฐ๋ฅธ
๋ฆฌ์†Œ์Šค ๊ฐ’ ์ ์šฉ.
์ด๋ฏธ์ง€ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ
๋ฌธ์ž์—ด ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ
ํ”„๋กœ์ ํŠธ ์†Œ์Šค์ฝ”๋“œ
์†Œ์Šค์ฝ”๋“œ ๋งํฌ(Git)
โ—‹ Homepage :
https://github.com/byunghakjang1230/byunghakphoto.git
โ—‹ Bluetooth Client(Android) :
https://github.com/byunghakjang1230/BluetoothSender.git
โ—‹ Bluetooth Server(PC) :
https://github.com/byunghakjang1230/BluetoothServer.git

More Related Content

PDF
๋ชจ๋ฐ”์ผ ๋ฉ”์‹ ์ € ์•„ํ‚คํ…์ณ ์†Œ๊ฐœ
Hyogi Jung
ย 
PDF
Learning HTML5
Jin Joong Kim
ย 
PDF
Kgc2014 one daylearnunitycryptography-f
Seungmin Shin
ย 
PPSX
Cubrid Inside 5th Session 2 Ha Implementation
CUBRID
ย 
PDF
แ„‘แ…กแ„‹แ…ตแ„‹แ…ฅแ„‡แ…ฆแ„‹แ…ตแ„‰แ…ณ แ„‚แ…ฆแ„‹แ…ตแ„‡แ…ฅ แ„†แ…ตแ†บแ„‹แ…ฅแ†ธแ„‡แ…กแ†ฏแ„‘แ…ญ
NAVER D2
ย 
PDF
LevelDB ๊ฐ„๋‹จํ•œ ์†Œ๊ฐœ
์ข…๋นˆ ์˜ค
ย 
PDF
[215]แ„‚แ…ฆแ„‹แ…ตแ„‡แ…ฅแ„แ…ฉแ†ซแ„แ…ฆแ†ซแ„Žแ…ณแ„แ…ฉแ†ผแ„€แ…จแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„‰แ…ฉแ„€แ…ข แ„€แ…ตแ†ทแ„€แ…ตแ„‹แ…งแ†ผ
NAVER D2
ย 
PPTX
ํŒŒ์›Œ์„œํฌํŠธ ๊ฐ€์ด๋“œ
StartupAlliance
ย 
๋ชจ๋ฐ”์ผ ๋ฉ”์‹ ์ € ์•„ํ‚คํ…์ณ ์†Œ๊ฐœ
Hyogi Jung
ย 
Learning HTML5
Jin Joong Kim
ย 
Kgc2014 one daylearnunitycryptography-f
Seungmin Shin
ย 
Cubrid Inside 5th Session 2 Ha Implementation
CUBRID
ย 
แ„‘แ…กแ„‹แ…ตแ„‹แ…ฅแ„‡แ…ฆแ„‹แ…ตแ„‰แ…ณ แ„‚แ…ฆแ„‹แ…ตแ„‡แ…ฅ แ„†แ…ตแ†บแ„‹แ…ฅแ†ธแ„‡แ…กแ†ฏแ„‘แ…ญ
NAVER D2
ย 
LevelDB ๊ฐ„๋‹จํ•œ ์†Œ๊ฐœ
์ข…๋นˆ ์˜ค
ย 
[215]แ„‚แ…ฆแ„‹แ…ตแ„‡แ…ฅแ„แ…ฉแ†ซแ„แ…ฆแ†ซแ„Žแ…ณแ„แ…ฉแ†ผแ„€แ…จแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„‰แ…ฉแ„€แ…ข แ„€แ…ตแ†ทแ„€แ…ตแ„‹แ…งแ†ผ
NAVER D2
ย 
ํŒŒ์›Œ์„œํฌํŠธ ๊ฐ€์ด๋“œ
StartupAlliance
ย 

What's hot (16)

PDF
2ํšŒ ์˜คํ”ˆ์†Œ์Šค ๊ฒŒ์ž„ ์„œ๋ฒ„ ์—”์ง„ ์Šคํ„ฐ๋”” ์บ ํ”„ - CloudBread
Dae Kim
ย 
PPTX
N04 xmpp and_android
Sun-Jin Jang
ย 
PDF
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜
NAVER D2
ย 
PDF
3์žฅ
NAMYONG KANG
ย 
PDF
[D2 COMMUNITY] Open Container Seoul Meetup - ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes
NAVER D2
ย 
PDF
20120525 ์กธ์—…์ž‘ํ’ˆ ๋ฐœํ‘œ
SeonMan Kim
ย 
PDF
3.[d2 แ„‹แ…ฉแ„‘แ…ณแ†ซแ„‰แ…ฆแ„†แ…ตแ„‚แ…ก]แ„‡แ…ฎแ†ซแ„‰แ…กแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„€แ…ขแ„‡แ…กแ†ฏ แ„†แ…ตแ†พ แ„€แ…ญแ„’แ…ฎแ†ซ n base arc
NAVER D2
ย 
PPTX
แ„ƒแ…ขแ„‹แ…ญแ†ผแ„…แ…ฃแ†ผ แ„…แ…ฉแ„€แ…ณแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ Bigqueryแ„…แ…ฉ แ„€แ…กแ†ซแ„ƒแ…กแ†ซแ„’แ…ต แ„‰แ…กแ„‹แ…ญแ†ผแ„’แ…กแ„€แ…ต
Jaikwang Lee
ย 
PPT
๋ฒ„ํด๋ฆฌDb ๋ฅผ ์ด์šฉํ•œ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ œ์ž‘
Vong Sik Kong
ย 
PDF
์ž๋ฐ”์ฑ„ํŒ… ๋‹ค์ค‘
๋ผํ•œ์‚ฌ ์•„
ย 
PPT
๊ตฌ๊ธ€์˜ ๋ถ„์‚ฐ์Šคํ† ๋ฆฌ์ง€
juhyun
ย 
PDF
แ„‰แ…ฅแ„‡แ…ฅแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„€แ…ขแ„‰แ…ฅแ†ซ แ„…แ…ฒแ„‹แ…ฎแ„…แ…ตแ†ท
์šฐ๋ฆผ ๋ฅ˜
ย 
PPT
Ndc2011 ์„ฑ๋Šฅ ํ–ฅ์ƒ์„_์œ„ํ•œ_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_์•„ํ‚คํ…์ณ_๊ตฌ์ถ•_๋ฐ_๊ฐœ๋ฐœ_๊ฐ€์ด๋“œ
cranbe95
ย 
PPSX
Cubrid Inside 5th Session 4 Replication
CUBRID
ย 
PDF
FCGI, C++๋กœ Restful ์„œ๋ฒ„ ๊ฐœ๋ฐœ
ํ˜„์Šน ๋ฐฐ
ย 
PDF
Webservice cache strategy
DaeMyung Kang
ย 
2ํšŒ ์˜คํ”ˆ์†Œ์Šค ๊ฒŒ์ž„ ์„œ๋ฒ„ ์—”์ง„ ์Šคํ„ฐ๋”” ์บ ํ”„ - CloudBread
Dae Kim
ย 
N04 xmpp and_android
Sun-Jin Jang
ย 
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜
NAVER D2
ย 
3์žฅ
NAMYONG KANG
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes
NAVER D2
ย 
20120525 ์กธ์—…์ž‘ํ’ˆ ๋ฐœํ‘œ
SeonMan Kim
ย 
3.[d2 แ„‹แ…ฉแ„‘แ…ณแ†ซแ„‰แ…ฆแ„†แ…ตแ„‚แ…ก]แ„‡แ…ฎแ†ซแ„‰แ…กแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„€แ…ขแ„‡แ…กแ†ฏ แ„†แ…ตแ†พ แ„€แ…ญแ„’แ…ฎแ†ซ n base arc
NAVER D2
ย 
แ„ƒแ…ขแ„‹แ…ญแ†ผแ„…แ…ฃแ†ผ แ„…แ…ฉแ„€แ…ณแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ Bigqueryแ„…แ…ฉ แ„€แ…กแ†ซแ„ƒแ…กแ†ซแ„’แ…ต แ„‰แ…กแ„‹แ…ญแ†ผแ„’แ…กแ„€แ…ต
Jaikwang Lee
ย 
๋ฒ„ํด๋ฆฌDb ๋ฅผ ์ด์šฉํ•œ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ œ์ž‘
Vong Sik Kong
ย 
์ž๋ฐ”์ฑ„ํŒ… ๋‹ค์ค‘
๋ผํ•œ์‚ฌ ์•„
ย 
๊ตฌ๊ธ€์˜ ๋ถ„์‚ฐ์Šคํ† ๋ฆฌ์ง€
juhyun
ย 
แ„‰แ…ฅแ„‡แ…ฅแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„€แ…ขแ„‰แ…ฅแ†ซ แ„…แ…ฒแ„‹แ…ฎแ„…แ…ตแ†ท
์šฐ๋ฆผ ๋ฅ˜
ย 
Ndc2011 ์„ฑ๋Šฅ ํ–ฅ์ƒ์„_์œ„ํ•œ_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_์•„ํ‚คํ…์ณ_๊ตฌ์ถ•_๋ฐ_๊ฐœ๋ฐœ_๊ฐ€์ด๋“œ
cranbe95
ย 
Cubrid Inside 5th Session 4 Replication
CUBRID
ย 
FCGI, C++๋กœ Restful ์„œ๋ฒ„ ๊ฐœ๋ฐœ
ํ˜„์Šน ๋ฐฐ
ย 
Webservice cache strategy
DaeMyung Kang
ย 
Ad

Similar to Portfolio (20)

PPTX
๊ตฌ๊ธ€ ๊ธฐ์ˆ ์„ ์ด์šฉํ•œ ๋ชจ๋ฐ”์ผ ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
LGU+
ย 
PDF
Web server page_ed10
hungrok
ย 
PDF
Portfolio
MyeongSeokKim2
ย 
PDF
[NEXT] Flask ๋กœ Restful API ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ
YoungSu Son
ย 
PDF
IT ์ผ๋ฐ˜๊ธฐ์ˆ  ๊ฐ•์˜์ž๋ฃŒ_ed10
hungrok
ย 
PPTX
์•ˆ๋“œ๋กœ์ด๋“œ ์˜คํ”ˆ์†Œ์Šค ๊ทธ๋ฆฌ๊ณ  ํŒจํ„ด
YoungSu Son
ย 
PDF
๊ฐœ๋ฐœ์ž์™€ ํ˜‘์—…ํ•˜๊ธฐ ์œ„ํ•œ API์˜ ์ดํ•ด - API๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ธˆ์„ฑ์ธ์„ ์œ„ํ•œ ์•ˆ๋‚ด์„œ
๋™์ˆ˜ ์žฅ
ย 
PDF
KTH_Detail day_ํ™”์„ฑ์—์„œ ์˜จ ๊ฐœ๋ฐœ์ž ๊ธˆ์„ฑ์—์„œ ์˜จ ๊ธฐํš์ž ์‹œ๋ฆฌ์ฆˆ_7์ฐจ(1)_API_์žฅ๋™์ˆ˜_20120718
KTH, ์ผ€์ดํ‹ฐํ•˜์ดํ…”
ย 
PPTX
์•ˆ๋“œ๋กœ์ด๋“œ ์˜คํ”ˆ์†Œ์Šค ํŒจํ„ด - 0.1
YoungSu Son
ย 
PDF
WHAT / WHY / HOW WEโ€™RE ENGINEERING AT SMARTSTUDY
Hyun-woo Park
ย 
PDF
[์Šค๋งˆํŠธ์Šคํ„ฐ๋””]์Šค๋งˆํŠธ์Šคํ„ฐ๋””๋Š” ๋ฌด์—‡์„ / ์™œ / ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด ์™”๋Š”๊ฐ€
smartstudy_official
ย 
PDF
ํฌํŠธํด๋ฆฌ์˜ค ๊น€๊ทœํ•˜
GyooHa Kim
ย 
PDF
ํ™”์„ฑ์—์„œ ์˜จ ๊ฐœ๋ฐœ์ž, ๊ธˆ์„ฑ์—์„œ ์˜จ ๊ธฐํš์ž
Yongho Ha
ย 
PPTX
11_์›น์„œ๋น„์Šคํ™œ์šฉ
noerror
ย 
PPTX
์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒ๋ฅผ ์œ„ํ•œ ๋ธŒ๋ฆฌ์ง€ ์„œ๋ฒ„ Ver1.0
Wooram Cha
ย 
PPTX
ํฌํŠธํด๋ฆฌ์˜ค
YoungJune Park
ย 
PDF
์„œ๋ฒ„ํ•™๊ฐœ๋ก (๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ)
SU BO KIM
ย 
PPTX
Ksug ์„ธ๋ฏธ๋‚˜ (์œค์„ฑ์ค€) (20121208)
Sungjoon Yoon
ย 
PDF
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Tomcat6&7 How To
Ji-Woong Choi
ย 
PDF
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #01 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ
Myungjin Lee
ย 
๊ตฌ๊ธ€ ๊ธฐ์ˆ ์„ ์ด์šฉํ•œ ๋ชจ๋ฐ”์ผ ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
LGU+
ย 
Web server page_ed10
hungrok
ย 
Portfolio
MyeongSeokKim2
ย 
[NEXT] Flask ๋กœ Restful API ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ
YoungSu Son
ย 
IT ์ผ๋ฐ˜๊ธฐ์ˆ  ๊ฐ•์˜์ž๋ฃŒ_ed10
hungrok
ย 
์•ˆ๋“œ๋กœ์ด๋“œ ์˜คํ”ˆ์†Œ์Šค ๊ทธ๋ฆฌ๊ณ  ํŒจํ„ด
YoungSu Son
ย 
๊ฐœ๋ฐœ์ž์™€ ํ˜‘์—…ํ•˜๊ธฐ ์œ„ํ•œ API์˜ ์ดํ•ด - API๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ธˆ์„ฑ์ธ์„ ์œ„ํ•œ ์•ˆ๋‚ด์„œ
๋™์ˆ˜ ์žฅ
ย 
KTH_Detail day_ํ™”์„ฑ์—์„œ ์˜จ ๊ฐœ๋ฐœ์ž ๊ธˆ์„ฑ์—์„œ ์˜จ ๊ธฐํš์ž ์‹œ๋ฆฌ์ฆˆ_7์ฐจ(1)_API_์žฅ๋™์ˆ˜_20120718
KTH, ์ผ€์ดํ‹ฐํ•˜์ดํ…”
ย 
์•ˆ๋“œ๋กœ์ด๋“œ ์˜คํ”ˆ์†Œ์Šค ํŒจํ„ด - 0.1
YoungSu Son
ย 
WHAT / WHY / HOW WEโ€™RE ENGINEERING AT SMARTSTUDY
Hyun-woo Park
ย 
[์Šค๋งˆํŠธ์Šคํ„ฐ๋””]์Šค๋งˆํŠธ์Šคํ„ฐ๋””๋Š” ๋ฌด์—‡์„ / ์™œ / ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด ์™”๋Š”๊ฐ€
smartstudy_official
ย 
ํฌํŠธํด๋ฆฌ์˜ค ๊น€๊ทœํ•˜
GyooHa Kim
ย 
ํ™”์„ฑ์—์„œ ์˜จ ๊ฐœ๋ฐœ์ž, ๊ธˆ์„ฑ์—์„œ ์˜จ ๊ธฐํš์ž
Yongho Ha
ย 
11_์›น์„œ๋น„์Šคํ™œ์šฉ
noerror
ย 
์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒ๋ฅผ ์œ„ํ•œ ๋ธŒ๋ฆฌ์ง€ ์„œ๋ฒ„ Ver1.0
Wooram Cha
ย 
ํฌํŠธํด๋ฆฌ์˜ค
YoungJune Park
ย 
์„œ๋ฒ„ํ•™๊ฐœ๋ก (๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ)
SU BO KIM
ย 
Ksug ์„ธ๋ฏธ๋‚˜ (์œค์„ฑ์ค€) (20121208)
Sungjoon Yoon
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Tomcat6&7 How To
Ji-Woong Choi
ย 
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #01 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ
Myungjin Lee
ย 
Ad

Portfolio

  • 1. ๊ฐœ ์ธ ํ”„ ๋กœ ์  ํŠธ P O R T F O L I O ์‹  ์ž… ๊ฐœ ๋ฐœ ์ž ์žฅ๋ณ‘ํ•™
  • 2. INDEX โ€ข ๊ฐœ๋ฐœ ํ™˜๊ฒฝ โ€ข ์‚ฌ์šฉ ์–ธ์–ด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ โ€ข ๊ตฌํ˜„ ๋‚ด์šฉ โ€“1. HomePage โ€“2. Android Application โ€ข ํ”„๋กœ์ ํŠธ ์†Œ์Šค์ฝ”๋“œ
  • 3. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ โ€ข HomePage โ€“ STS(Spring Tool Suite) 3.9.1.RELEASE โ€“ apache-tomcat-8.0.47 โ€“ MySQL 5.7.18 โ€ข Android Application & ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ โ€“ Android Studio 3.0.1 (Android ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ) โ€“ Eclipse Neon.3 Release 4.6.3 (Window PC ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ) โ€“ Java Swing (Window PC ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ GUI) โ€ข ๊ณตํ†ต โ€“ Git
  • 4. ์‚ฌ์šฉ ์–ธ์–ด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ”„๋กœ์ ํŠธ ์–ธ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™ˆํŽ˜์ด์ง€ Java JSP HTML, CSS JavaScript Bootstrap (HTML, CSS) jQuery, Handlebars (JavaScript) ImgScalr (Spring โ€“ ์ด๋ฏธ์ง€ํŒŒ์ผ ๊ฐ€๊ณต) Jackson, GSON (Spring โ€“ JSON) HttpClient (Spring โ€“ ์™ธ๋ถ€ ์„œ๋น„์Šค ์ด์šฉ) myBatis (Spring โ€“ DB) ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ Java Bluecove (Bluetooth)
  • 5. ๊ตฌํ˜„ ๋‚ด์šฉ - HOMEPAGE โ€ข 1. HomePage ์š”์•ฝ โ€“ ๊ฐœ์ธ ์‚ฌ์ง„ ํ™ˆํŽ˜์ด์ง€๋กœ, ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธ ํ•  ๊ฒฝ์šฐ ์‚ฌ์ง„ ์—…๋กœ๋“œ, ์ˆ˜์ •, ์‚ญ์ œ ๊ธฐ๋Šฅ. โ€“ ๋กœ๊ทธ์ธ, ๋ฉ”์‹œ์ง€ ์ „์†ก ๋“ฑ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ RSA์•”ํ˜ธํ™”. โ€“ Ajax์™€ Handlebars ํ…œํ”Œ๋ฆฟ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด์ „ํ™˜ ์—†์ด ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ . โ€“ Drag & Drop์œผ๋กœ ์†์‰ฝ๊ฒŒ ํŒŒ์ผ์„ ์—…๋กœ๋“œ. โ€“ ๊ฒŒ์‹œํŒ ํ˜•ํƒœ๋กœ Message๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  E-mail ๋‹ต์žฅ. โ€“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋กœ๋“œ ๋œ ์‚ฌ์ง„ํŒŒ์ผ์„ ๊ฐ€๊ณตํ•˜์—ฌ ์ €์žฅ. โ€“ Open API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์„œ๋น„์Šค ์ด์šฉ.
  • 6. Controller Service DAO DB (MySQL) ์™ธ๋ถ€ ์„œ๋น„์Šค ๋ฐฉ๋ฌธ์ž ๊ด€๋ฆฌ์ž โ€ข ์›น ์„œ๋น„์Šค ์ฒ˜๋ฆฌ ๊ณผ์ • - 1 1. HOMEPAGE Interceptor
  • 7. โ€ข ์›น ์„œ๋น„์Šค ์ฒ˜๋ฆฌ ๊ณผ์ • - 2 1. HOMEPAGE Client / /gm/{cate} /ad/main /ir/del/{no} /ir/reg Controller MainController UrlMapping = โ€œ/โ€ โ€ฆ AdminController UrlMapping = โ€œ/adโ€ โ€ฆ FileGetControllerRest UrlMapping = โ€œ/fileโ€ โ€ฆ Service MemberService loginService() PhotoService insertService() โ€ฆ MainService insertVisiterInfo โ€ฆ DAO PhotoDAO inpuirePhotolist() โ€ฆ MessageDAO totalMessage() โ€ฆ DB(MySQL) View ์ธ ํ„ฐ ์…‰ ํ„ฐ
  • 8. โ€ข ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ์„ค์ • 1. HOMEPAGE MAVEN์„ค์ •์„ ํ†ตํ•ด ํ•„์š”ํ•  ๋ชจ๋“ˆ ์„ค์น˜ myBatis ์„ค์ •ํŒŒ์ผ ๋ฐ SQL๋ฌธ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ XMLํŒŒ์ผ DB์™€ ์—ฐ๊ฒฐ๋œ SqlSession ๋นˆ์„ ์ฃผ์ž… ๋ฐ›๊ธฐ ์œ„ํ•œ ์„ค์ •. ๋ฆฌ์†Œ์Šค ๊ฐ’๋“ค์„ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ Class ๋‚ด๋ถ€
  • 9. 1. HOMEPAGE โ€ข ๊ด€๋ฆฌ์ž Login Service ๋ฐ Interceptor ID๊ฐ€ DB์— ์—†๊ฑฐ๋‚˜ Password๊ฐ€ ํ‹€๋ฆฌ๋ฉด ์˜ˆ์™ธ ๋ฐœ์ƒ Service Controller Interceptor โ€œadminโ€๊ฐ์ฒด ์œ ๋ฌด๋ฅผ ํ™•์ธ. ์—†์„ ๊ฒฝ์šฐ Login Page๋กœ ๊ฐ•์ œ ์ด๋™ ์‹œํ‚จ๋‹ค. โ€œ/adโ€๋กœ ์‹œ์ž‘๋˜๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ๋งตํ•‘. ์˜ˆ์™ธ์— ๋”ฐ๋ผ ์—๋Ÿฌ๋‚ด์šฉ์„ ๋‹ด์€ Map๊ฐ์ฒด๋ฅผ Model์— ๋‹ด์•„ Login page๋กœ ์ „๋‹ฌํ•œ๋‹ค. servlet-context.xml
  • 10. 1. HOMEPAGE โ€ข ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”(RSA)์ฒ˜๋ฆฌ. ํ‚ค ์ƒ์„ฑ. ๊ณต๊ฐœํ‚ค๋Š” ์ „์†กํ•˜๊ณ  ๊ฐœ์ธํ‚ค๋Š” ์„ธ์…˜์— ์ €์žฅ. ๊ณต๊ฐœํ‚ค์™€ ์•”ํ˜ธํ™” ํ•  ๋ฐ์ดํ„ฐ๋กœ ์•”ํ˜ธํ™” ์ž‘์—… ์ˆ˜ํ–‰ Server Client ์„œ๋ฒ„๋กœ ์ „์†ก ์„ธ์…˜์—์„œ ๊ฐœ์ธํ‚ค๋ฅผ ๊ฐ€์ ธ์™€ ๋ณตํ˜ธํ™” ์ˆ˜ํ–‰ ํ›„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ.
  • 11. RestController Client DB 1. HOMEPAGE โ€ข ๋ฐฉ๋ฌธ์ž Message ๋“ฑ๋ก. ์ฟ ํ‚ค๋ฅผ ํ™•์ธํ•˜์—ฌ ์—ฐ์† ๋ฉ”์‹œ์ง€๊ธฐ๋ก์„ ์ œํ•œํ•˜๊ธฐ. ์ฒซ ๋ฉ”์‹œ์ง€ ์ „์†ก์ด๋ฉด ์ƒˆ๋กœ์šด ์ฟ ํ‚ค ๋ฐœ๊ธ‰ ๋“ฑ๋ก ๋’ค ํŽ˜์ด์ง€ ์ „ํ™˜ ์—†์ด ์„ฑ๊ณต, ์‹คํŒจ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ RSA์•”ํ˜ธํ™”๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณตํ˜ธํ™” ์œ ํšจ์„ฑ ์ฒดํฌ ํ›„ RSA๊ณต๊ฐœํ‚ค๋ฅผ ๋ฐ›์•„์™€ ์•”ํ˜ธํ™” ๊ณผ์ •์„ ๊ฑฐ์นœ ๋’ค ์ „์†ก
  • 12. 1. HOMEPAGE โ€ข EL, JSTL, Bootstrap์„ ์ด์šฉํ•œ ๊ฒŒ์‹œํŒ ํ˜•ํƒœ์˜ Message List๊ตฌํ˜„. Controller JSP Page BootStrap์„ ์‚ฌ์šฉํ•˜์—ฌ ๊น”๋”ํ•˜๊ฒŒ Message List ํ‘œํ˜„.
  • 13. 1. HOMEPAGE โ€ข Message์— ๋Œ€ํ•œ E-mail ๋‹ต์žฅ. ์ƒ์„ฑ๋œ ์ž๋ฐ” ๋นˆ์„ @Inject ์—๋…ธํ…Œ์ด์…˜์œผ๋กœ JavaMailSender ๊ฐ์ฒด์— ์ž๋™ ์ฃผ์ž…. ๋ฉ”์ผ ๋ฐœ์†ก ๋ฐฉ๋ฌธ์ž ์ •๋ณด ๋ฐ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ Click Click SimpleMailMessage ๊ฐ์ฒด์— ๋ฐฉ๋ฌธ์ž ์ •๋ณด ๋ฐ ๋ฉ”์‹œ์ง€ ๋‹ด๊ธฐ. root-context.xml
  • 14. Drag & Drop 1. HOMEPAGE โ€ข Drag & Drop์œผ๋กœ ์‚ฌ์ง„ํŒŒ์ผ ์ถ”๊ฐ€ ๋ฐ•์Šค ์•ˆ์— โ€˜dropโ€™ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ. Event๊ฐ์ฒด์—์„œ File๊ฐ์ฒด์˜ ๋ฐฐ์—ด์„ ๋ฐ›์•„ [].forEach.call ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ readfile ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์ „๋‹ฌ. FileReader๊ฐ์ฒด์— ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋ก. File๊ฐ์ฒด๊ฐ€ โ€˜loadโ€™๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ FormData๊ฐ์ฒด์— ๋‹ด์•„ Ajax๋กœ ์„œ๋ฒ„์— ์ „์†ก. MultipartHttpServletRequest๊ฐ์ฒด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ MultipartFile ๋ฆฌ์ŠคํŠธ๋ฅผ ์–ป์–ด ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ.
  • 15. ์ธ๋„ค์ผ ์ƒ์„ฑ Spring์—์„œ ์ œ๊ณตํ•˜๋Š” FileCopyUtilsํด๋ž˜์Šค๋กœ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ํด๋”๋กœ ๋ณต์‚ฌ ImgScalr๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” Scalrํด๋ž˜์Šค๋กœ ์›๋ž˜ ์‚ฌ์ง„ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ์ธ๋„ค์ผ ํŒŒ์ผ์„ ์ƒ์„ฑ. ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ UUID๋กœ ์ƒ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ํ•ฉ์ณ์„œ ๊ณ ์œ ํ•œ ํŒŒ์ผ์ด๋ฆ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ๋กœ์šด ์ด๋ฆ„ ์ƒ์„ฑ. 1. HOMEPAGE โ€ข ์ „์†ก๋œ ์‚ฌ์ง„์˜ ์ธ๋„ค์ผ ๋งŒ๋“ค๊ธฐ โ€“ ImageUtil Class.
  • 16. Drag & Drop getJSON ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ๊ฒฐ๊ณผ ๊ฐ’์„ JSON์œผ๋กœ ๋ฐ›์•„ ์˜จ ๋’ค ํ™”๋ฉด ์ „ํ™˜ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. Ajax๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์‚ฌ์ง„์„ ์ „์†กํ•˜๊ณ  ๋งŒ๋“ค์–ด์ง„ ์ธ๋„ค์ผ์„ ๋ฐ›์•„ ํ™”๋ฉด์— ํ‘œ์‹œํ•œ๋‹ค. 1. HOMEPAGE โ€ข Ajax์™€ Handlebars ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด์ „ํ™˜ ์—†์ด Data์ถ”๊ฐ€. ์„ ํƒ ์ „ ์„ ํƒ ์‹œ ์„ ํƒ ํ›„
  • 17. 1. HOMEPAGE โ€ข Open API๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์„œ๋น„์Šค ์ด์šฉ Instagram-API, Google Maps-API๋“ฑ Token๊ฐ’์ด ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด HttpClient๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์—์„œ ๋ฐ”๋กœ API์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณต. IP-API Instagram-API Google Maps API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฉ๋ฌธ์ž ์œ„์น˜๋ฅผ ์‹œ๊ฐํ™” Google Chart๋กœ ๋ฐฉ๋ฌธ์ž ํ†ต๊ณ„ ์‹œ๊ฐํ™”
  • 18. ๊ตฌํ˜„ ๋‚ด์šฉ - ANDROID โ€ข 2. Android Application ์š”์•ฝ โ€“ Bluetooth ํ†ต์‹ ์œผ๋กœ PCโ€“Android๊ฐ„ ๋ฐ์ดํ„ฐ์ „์†ก. โ€“ Android์—์„œ ์ œ๊ณตํ•˜๋Š” BluetoothAdapterํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Bluetooth Socket ํ†ต์‹  ๊ตฌํ˜„. โ€“ BlueCove๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PC Serverํ”„๋กœ๊ทธ๋žจ์—์„œ Bluetoothํ†ต์‹  ๊ตฌํ˜„. โ€“ ์‚ฌ์šฉ์ž์˜ ๋™์ž‘์„ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„. โ€ข Client ์ƒํƒœ์— ๋”ฐ๋ผ Serverํ”„๋กœ๊ทธ๋žจ ํ™”๋ฉด์ด ์ž๋™์œผ๋กœ ์ „ํ™˜. โ€“ ์ „์†ก ๋ฐ›์„ ํŒŒ์ผ์˜ ์ €์žฅ ์œ„์น˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ. โ€“ ArrayAdapter๋กœ ์ „์†กํ•  ์ด๋ฏธ์ง€ํŒŒ์ผ ๋ฐ ์Œ์•…ํŒŒ์ผ์„ ๋ฆฌ์ŠคํŠธํ˜•ํƒœ๋กœ Activity์— ์ถœ๋ ฅ. โ€“ ๋””๋ฐ”์ด์Šค ์–ธ์–ด์„ค์ •์— ๋”ฐ๋ผ ์˜์–ด/ํ•œ๊ธ€์„ ์ง€์›.
  • 19. 2. ANDROID APPLICATION โ€ข Bluetooth ์„œ๋น„์Šค ์ฒ˜๋ฆฌ ๊ณผ์ •. Activity Client Service Server Service GUI Android PC Server ์—ฐ๊ฒฐ ์š”์ฒญ ์—ฐ ๊ฒฐ ๋ฐ์ดํ„ฐ ์ „์†ก ์™„๋ฃŒ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์ „์†ก ์™„๋ฃŒ ์‘๋‹ต ๋™์ž‘ ์š”์ฒญ ๊ฒฐ๊ณผ ๋ฐ˜์˜ ๋™์ž‘ ์š”์ฒญ ๊ฒฐ๊ณผ ๋ฐ˜์˜
  • 20. 2. ANDROID APPLICATION โ€ข Android Activity ๊ตฌ์กฐ. ๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ ํด๋ฆญ ์‹œ ๋ฐ์ดํ„ฐ ์ „์†ก
  • 21. 2. ANDROID APPLICATION โ€ข PC Server-Program GUI ๊ตฌ์กฐ. ๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ ๋ฐ์ดํ„ฐ ์ „์†ก
  • 22. 2. ANDROID APPLICATION โ€ข Device ๋‚ด๋ถ€ Data์— ์ ‘๊ทผ. ์›ํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋“ค์„ String ๋ฐฐ์—ด๋กœ ๋งŒ๋“ ๋‹ค. ์–ป๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ Type์„ ์ •ํ•œ ๋’ค ์ปค์„œ๋ฅผ ์–ป์–ด์˜จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปค์„œ๋ฅผ ๊ฐ€์žฅ ์ฒ˜์Œ์œผ๋กœ ์œ„์น˜์‹œํ‚จ๋‹ค. ์ปค์„œ๋ฅผ ์˜ฎ๊ธฐ๋ฉฐ ํŒŒ์ผ ์ •๋ณด๋ฅผ ์ฝ์–ด ์˜ฌ ๋ฐ˜๋ณต๋ฌธ ํŒŒ์ผ๋งˆ๋‹ค ๊ฐ€์ ธ์˜ฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์œ„์น˜(Index)๋ฅผ ์–ป์–ด์˜จ๋‹ค. ์–ป๊ฒŒ ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์œ„์น˜(Index)๋กœ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ปค์„œ๋กœ ๋ถ€ํ„ฐ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์–ป๊ฒŒ ๋œ ํŒŒ์ผ์˜ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ Device ๋‚ด๋ถ€์˜ ๊ฐ์ข… ํŒŒ์ผ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค. ํŒŒ์ผ ์ „์†ก์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
  • 23. 2. ANDROID APPLICATION โ€ข Bluetooth ์—ฐ๊ฒฐ โ€“ 1 (Client) BluetoothAdapter ๊ฐ์ฑ„๋กœ๋ถ€ํ„ฐ ํŽ˜์–ด๋ง๋œ Device List๋ฅผ ์–ป์–ด์˜จ๋‹ค. Dialog ๋„์šฐ๊ธฐ Click ํŽ˜์–ด๋ง ๋˜์–ด ์žˆ๋Š” Device ๋ชฉ๋ก์„ ์ถœ๋ ฅ. ์„ ํƒ๋œ Device๋ฅผ Serviceํด๋ž˜์Šค์˜ connect() ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌ.
  • 24. 2. ANDROID APPLICATION โ€ข Bluetooth ์—ฐ๊ฒฐ โ€“ 2 (Client) Thread ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด Bluetooth Socket ์–ป๊ธฐ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ConnectedThread ์‹คํ–‰ Bluetooth Socket์„ ์–ป๋Š” ConnectThread Thread ์ƒ์„ฑ ์‹œ ์–ป๊ฒŒ ๋œ Socket์œผ๋กœ Connect ์ˆ˜ํ–‰. ์„ฑ๊ณต ์‹œ, ConnectedThread ์‹คํ–‰. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ Input, Output Stream์„ ๊ฐ€์ ธ์˜จ๋‹ค.
  • 25. 2. ANDROID APPLICATION โ€ข Bluetooth ์—ฐ๊ฒฐ โ€“ 3 (Server) ํด๋ผ์ด์–ธํŠธ์™€ ๋™์ผํ•œ UUID๋กœ Connection ์—ด๊ธฐ. ๋™์ผํ•œ UUID๋กœ ์ƒ์„ฑ๋œ Socket์ด ์—ฐ๊ฒฐ๋  ๋•Œ ๊นŒ์ง€ ๋Œ€๊ธฐ. Client๊ฐ€ ์—ฐ๊ฒฐ์— ์„ฑ๊ณตํ•œ๋‹ค๋ฉด ๋Œ€๊ธฐ์ค‘์ด๋˜ ์•„๋ž˜ ์ž‘์—… ์ˆ˜ํ–‰. ์—ฐ๊ฒฐ์— ์„ฑ๊ณตํ•˜๋ฉด Client์™€ ๋™์ผํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋‹ด๋‹นํ•˜๋Š” Thread๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
  • 26. 2. ANDROID APPLICATION โ€ข ๋ฐ์ดํ„ฐ ์ „์†ก Process โ€“ 1 (Client) ๋ฒˆํ˜ธ ์„ค๋ช… 1๋ฒˆ ์—ฐ๊ฒฐ์ƒํƒœ์˜ ์ •์ƒ์„ ์•Œ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ. 2๋ฒˆ ์‚ฌ์šฉ์ž์˜ ์˜๋„๋ฅผ ์ „๋‹ฌ. (์ •์ƒ : 1, Activity ์ข…๋ฃŒ : -1) 3๋ฒˆ 2๋ฒˆ์ด 1์ด ์•„๋‹ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์ „์†ก ์ค‘์ง€. 4๋ฒˆ ํŒŒ์ผ ์ด๋ฆ„์„ ์ „๋‹ฌ. 5๋ฒˆ ํŒŒ์ผ์˜ MIME Type์„ ์ „๋‹ฌ. 6๋ฒˆ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ „๋‹ฌ. 7๋ฒˆ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ byte[]๋กœ ๋ฐ”๊พธ์–ด ์ „๋‹ฌ. 1 2 3 4 5 6 7 Client โ€“ Data ์ „์†ก ํŒŒ์ผ ์ „์†ก์„ ์œ„ํ•œ Object Write ๋ฉ”์„œ๋“œ
  • 27. 2. ANDROID APPLICATION โ€ข ๋ฐ์ดํ„ฐ ์ „์†ก Process โ€“ 2 (Server) 1 2 3 4 5 6 7 Server โ€“ Data ๋ฐ›๊ธฐ1 ๋ฒˆํ˜ธ ์„ค๋ช… 1๋ฒˆ Socket์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์„ ๊ฒฝ์šฐ -1์„ ๋ฐ›๊ณ  ์ข…๋ฃŒ ์‹œํ‚จ๋‹ค. (์˜๋„์น˜ ์•Š์€ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ.) 2๋ฒˆ Client๊ฐ€ ์ข…๋ฃŒ๋ฅผ ์›ํ•  ๊ฒฝ์šฐ -1์ด, ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๊ฒฝ์šฐ 1์ด ์ „๋‹ฌ๋œ๋‹ค. (์˜๋„๋œ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ.) 3๋ฒˆ Client์—์„œ ํŒŒ์ผ ์ €์žฅ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ๋“ค์ธ๋‹ค. 4๋ฒˆ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” Data๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐ›์•„ ๋‘๊ธฐ ์œ„ํ•œ ์ผ์ข…์˜ ์ž„์‹œ ์ €์žฅ ๋ณ€์ˆ˜. 5๋ฒˆ ์‹ค์ œ Data๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๊ตฌ๊ฐ„. ๋ฐ˜๋ณตํ•ด์„œ ๋ฒ„ํผ๋งŒํผ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ ๋ณ€์ˆ˜์— ์“ด๋‹ค. ํŒŒ์ผ์˜ ํฌ๊ธฐ์™€ ๋ณต์‚ฌ๋œ ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์œผ๋ฉด ๋น ์ ธ๋‚˜๊ฐ„๋‹ค. 6๋ฒˆ 5๋ฒˆ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์†Œ(์™ธ์žฅ ๋””์Šคํฌ)์— ์ €์žฅ. 7๋ฒˆ Client์— ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” Message๋ฅผ ์ „๋‹ฌ. ์‚ฌ์šฉ์ด ์™„๋ฃŒ๋œ OutputStream์„ ๋‹ซ๋Š”๋‹ค. 2 3 4 5 6 7
  • 28. 2. ANDROID APPLICATION โ€ข Device -> PC ๋ฐ์ดํ„ฐ ์ „์†ก - 1 Server ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ ๋™์‹œ์— Socket์—ฐ๊ฒฐ ๋Œ€๊ธฐ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์ „์†ก ํ•  ๋ฐ์ดํ„ฐ ํด๋ฆญ Click Server ์— ์—ฐ๊ฒฐ๋จ ๊ณผ ๋™์‹œ์— ํ™”๋ฉด์ „ํ™˜ ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†ก. ๋‹ค์‹œ ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜๋จ. ์ „์†ก ์™„๋ฃŒ ์ „์†ก ์™„๋ฃŒ ์‹œ ๋‹ค์‹œ ์„ ํƒ๊ฐ€๋Šฅ
  • 29. 2. ANDROID APPLICATION โ€ข Device -> PC ๋ฐ์ดํ„ฐ ์ „์†ก - 2 <ํŽ˜์–ด๋ง Dialog>๋ฅผ ์ข…๋ฃŒ ์‹œํ‚ค๊ณ  <์ „์†ก์ค‘ Dialog> ํ™œ์„ฑํ™”. ๋ณต์‚ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐฑ์‹  ๋  ๋•Œ ๋งˆ๋‹ค ProgressBar์— ์ž…๋ ฅ. ํ™”๋ฉด์˜ ์ƒํƒœ๋ฐ”๋ฅผ ์ง„ํ–‰์‹œํ‚ด. ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๊ณ  ํŒŒ์ผ ์ „์†ก ์ฝ”๋“œ๋ฅผ ๋ฐ›์œผ๋ฉด ํŽ˜๋„์„ ์ „ํ™˜. ํŒŒ์ผ ์ „์†ก ์™„๋ฃŒ ์ฝ”๋“œ๋ฅผ Client๋กœ ์ „์†ก. <์ „์†ก์ค‘ Dialog> ์ข…๋ฃŒ. ํŽ˜๋„์„ ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ๋ณ€๊ฒฝ Client Server
  • 30. 2. ANDROID APPLICATION โ€ข PC -> Device ๋ฐ์ดํ„ฐ ์ „์†ก - 1 Server ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ ๋™์‹œ์— Socket์—ฐ๊ฒฐ ๋Œ€๊ธฐ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. Click Click Click ๋‹ค์‹œ ํŒŒ์ผ ๋Œ€๊ธฐํŒŒ์ผ ๋Œ€๊ธฐ ํŒŒ์ผ ๋ฐ›๊ธฐ ์ „์†ก ์™„๋ฃŒ์‹œ
  • 31. 2. ANDROID APPLICATION โ€ข PC -> Device ๋ฐ์ดํ„ฐ ์ „์†ก - 2 Bluetooth์—ฐ๊ฒฐ ๋’ค FILE_SEND_MODE ๋ฉ”์‹œ์ง€ ์ „์†ก. ์ •์ƒ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด ํŽ˜๋„ ์ „ํ™˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ. ํŒŒ์ผ ์„ ํƒ ๋ฒ„ํŠผ. ์„ ํƒ๋œ File๊ฐ์ฒด๋กœ ์ „์†ก ํ•  WriteObject๊ฐ์ฒด ์ƒ์„ฑ. ์ „์†ก ๋ฒ„ํŠผ. ์ƒ์„ฑ ๋œ WriteObject ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋กœ ์“ฐ๊ธฐ ์ˆ˜ํ–‰. Client Server ๋ณต์‚ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐฑ์‹  ๋  ๋•Œ ๋งˆ๋‹ค ProgressBar์— ์ž…๋ ฅ. ํ™”๋ฉด์˜ ์ƒํƒœ๋ฐ”๋ฅผ ์ง„ํ–‰์‹œํ‚ด.
  • 32. 2. ANDROID APPLICATION โ€ข ๊ตญ์ œํ™” ํ•œ๊ธ€ English Device ์–ธ์–ด ์„ค์ •์— ๋”ฐ๋ฅธ ๋ฆฌ์†Œ์Šค ๊ฐ’ ์ ์šฉ. ์ด๋ฏธ์ง€ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ๋ฌธ์ž์—ด ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ
  • 33. ํ”„๋กœ์ ํŠธ ์†Œ์Šค์ฝ”๋“œ ์†Œ์Šค์ฝ”๋“œ ๋งํฌ(Git) โ—‹ Homepage : https://github.com/byunghakjang1230/byunghakphoto.git โ—‹ Bluetooth Client(Android) : https://github.com/byunghakjang1230/BluetoothSender.git โ—‹ Bluetooth Server(PC) : https://github.com/byunghakjang1230/BluetoothServer.git