보가태그다. 태그정보를뮤직플레이어에서활용해곡명과가수정보를출력하는것이다. 안드로이드뮤직플레이어도태그정보를활용한다. 태그정보는문자열로, 글자깨짐현상은글자의인코딩과디코딩의문제로보인다. 따라서원인은다음과같이 2가지로분석할수있다. MP3 파일에서인코딩설정이잘못됨. 안드로이드플랫

Size: px
Start display at page:

Download "보가태그다. 태그정보를뮤직플레이어에서활용해곡명과가수정보를출력하는것이다. 안드로이드뮤직플레이어도태그정보를활용한다. 태그정보는문자열로, 글자깨짐현상은글자의인코딩과디코딩의문제로보인다. 따라서원인은다음과같이 2가지로분석할수있다. MP3 파일에서인코딩설정이잘못됨. 안드로이드플랫"

Transcription

1 5 안드로이드뮤직플레이어 Intent 를활용한 ID3 태그에디터구현안드로이드뮤직플레이어분석 스마트폰에서뮤직플레이어를사용하면서노래제목과가수를안내하는글이깨져보인경험이있는가? 필자는 MP3 의메타정보인 ID3 태그를편집할수있는에디터를만들어이같은사용자의불편을개선하는애플리케이션을배포하고있다. 이번호를통해독자여러분과안드로이드내장뮤직플레이어를분석하고재생중에자동으로음악의정보를찾을수있는기술적인방법을찾아보고자한다. 연재순서 1 회 안드로이드뮤직플레이어분석하기 2 회 안드로이드용 ID3 태그에디터만들기 진성주 moleskine7@gmail.com, 호기심왕성하고생활속자동화를실천하려는개발자다. 검색엔진, 대용량분산처리, 성능튜닝에관심이많다. 현재는삼성소프트웨어멤버십 20기, SW 마에스트로 1기회원으로활동하고있다. emarketer 전문리서치기관의통계자료에의하면스마트폰사용자의 90% 정도가스마트폰을미디어이용에사용하고있다. 음악서비스는강력한무기이자킬러애플리케이션으로고객만족도에가장중요한역할을하고있다는것을파악할수있는결과다. < 화면 2> 한글깨짐현상을겪고있는사용자들의불편함 < 화면 1> emarketer 전문리서치기관의통계자료 < 화면 3> 한글깨짐현상을해결하는팁 안드로이드플랫폼기반의뮤직플레이어를정말불편없이사용하고있는가? 많은사용자들이뮤직플레이어에서한글이깨지는현상을겪으며불편함을호소하고있다. 심지어한포털의스마트폰카페에서는한글깨짐을해결하는방법을팁으로올려많은사람들과해결방법을공유하기도한다. 한글깨짐현상의원인뮤직플레이어에서한글깨짐현상이일어나는이유는뭘까? MP3 파일안에는가수, 곡명, 앨범명, 발매일, 장르, 앨범커버등의정보가함께포함돼있는데, 이것을 MP3 ID 태그라고한다. 윈도우의탐색기에서 MP3 파일을선택했을때나타나는음악정 218 m a s o

2 보가태그다. 태그정보를뮤직플레이어에서활용해곡명과가수정보를출력하는것이다. 안드로이드뮤직플레이어도태그정보를활용한다. 태그정보는문자열로, 글자깨짐현상은글자의인코딩과디코딩의문제로보인다. 따라서원인은다음과같이 2가지로분석할수있다. MP3 파일에서인코딩설정이잘못됨. 안드로이드플랫폼의버그 을사용해미리 PC에서문제를해결할수있다. 즉, PC에서 MP3의정보를정상적으로처리해이용하는것이다. PC에서미리처리해이용하는방법은다수의곡을이용하기에는편하지만 PC를능숙하게다뤄야한다는단점이있다. 또 PC 가꼭필요하다. 그래서안드로이드마켓에서는휴대전화내부에서정보를편집할수있는애플리케이션이사용되기도한다. 태그정보를기록할때문자열의인코딩을바이트값으로설정하는데, 인코딩설정값이실제데이터와달라서글자가깨져보이는것이다. 안드로이드플랫폼에서다국어처리버그가존재하기도한다. 한국뿐아니라중국에서도글자깨짐현상이나타나플랫폼의소스를분석했더니플랫폼의버그로밝혀진바있다. < 화면 6> 안드로이드용태그편집기들 기존애플리케이션의불편함 < 화면 4> 안드로이드플랫폼의다국어처리버그분석글 사용자의 MP3 파일이잘못됐든플랫폼의버그든사용자가불편을겪고있다는것은변하지않는다. 해결방법태그정보의인코딩문제는윈도우와맥을동시에사용하는사용자에게서도나타난다. 운영체제가사용하는기본인코딩이다르기때문이다. 인코딩문제를해결하기위해 PC용애플리케이션이개발돼배포되기도했는데, 사용자는이러한애플리케이션 < 화면 7> 안드로이드마켓의수많은태그편집기들 그럼 PC와안드로이드애플리케이션을사용하면문제가해결되지않을까? 마켓에는 MP3 태그편집기로수십여개의애플리케이션이존재하지만직접편집할곡을선택하고곡의정보를사용자가직접입력해야한다. 여기서우리는 기존뮤직플레이어를사용하면서바로수정할수는없을까? 라며또다른바람을가져본다. 즉, 사용자편의성을높일수있는애플리케이션을만들고싶은것이다. 내장뮤직플레이어에뮬레이터에구동사용자편의성을높이기위해서는다음과같은방법을활용한다. 자동으로태그정보를가져옴. < 화면 5> PC 용태그편집기들 재생중쉽게이동 m a s o 219

3 실전강의실 안드로이드뮤직플레이어분석 우리는이두가지사항으로편의성을높일것이다. 그렇다면뮤직플레이어가재생중인것을어떻게알수있을까? 또재생중인정보를어떻게알수있을까? 이제부터기술적으로접근해보자. 안드로이드는오픈소스프로젝트다. 즉, 누구나안드로이드소스를볼수있다. 따라서우리는기본뮤직플레이어를다운로드해소스를분석하는것으로어떻게확장할수있는지알아볼것이다. 안드로이드오픈소스프로젝트이동 - index.html Source Browse Source 선택 Git 관리되는소스사이트로이동 - platform/packages/apps/music.git 선택 다양한버전의소스존재. 안드로이드 2.1 기준으로소스다운로드 heads eclair tree 선택 안드로이드애플리케이션폴더들이존재. [snapshot] 을선택다운로드다음의페이지에서직접다운로드하는것도가능하다. < 화면 9> 내장뮤직플레이어소스폴더구조 리눅스에서 GCC로컴파일하는사람들에게는 Makefile이익숙하지만일반적으로이클립스를사용해안드로이드애플리케이션을제작하는사람들에게는어렵게느껴질수있다. 이클립스를사용해다음과같이프로젝트를설정해보자. FILE NEW Android Application 선택 Create project from existing source 선택 Project name : Music 입력 Location에서다운로드받은프로젝트경로설정 - 여기서는 C:\eclair.tar\Music으로설정했다. Build Target : Android 2.1-update1 선택 OK 버튼클릭 it;a=snapshot;h=refs/heads/eclair;sf=tgz 이클립스프로젝트로불러온후이클립스에서자동으로빌드를시작한다. 하지만정상적으로빌드해실행할수는없다. 왜냐하면내장애플리케이션이라안드로이드 SDK에서제공하지않는안드로이드프레임워크의클래스를사용하기때문이다. 해당애플리케이션이내장플랫폼소스와의존성이있으므로의존성이존재하는부분들을해결해빌드해야한다. 의존성을처리하려면안드로이드기본프레임워크소스가필요하다. 내장애플리케이션을다운받은것처럼안드로이드프레임워크소스도다운받아보자. 안드로이드오픈소스프로젝트이동 - index.html Source Browse Source 선택 Git 관리되는소스사이트로이동 - platform/frameworks/base.git 선택 다양한버전의소스가존재하는데, 안드로이드 2.1 기준으로소스다 < 화면 8> 내장뮤직플레이어안드로이드오픈소스사이트 다운받고압축을풀면 < 화면 9> 와같은폴더구조를볼수있는데, Makefile로빌드할수있다. 운로드 heads eclair tree 선택 안드로이드플랫폼의폴더들이보인다. snapshot을선택해다운받는다. 다운받은후압축해제후 base 폴더가보이면정상적으로다운로드된것이다. 220 m a s o

4 다음의페이지에서직접다운로드하는것도가능하다. tree;h=refs/heads/eclair;hb=refs/heads/eclair 의존성제거몇단계에걸쳐의존성을제거할것이다. 제거한후에는내장애플리케이션을실행할수있다. 1. android.media.mediafile 의존성제거 - base\media\java\android\media\mediafile.java 파일을 C: \eclair.tar\music\src\android\media 폴더로복사 - SystemProperties 클래스의존성주석처리 < 리스트 1> MediaFile.java 코드의존성제거 C:\eclair.tar\Music\src\android\media\MediaFile.java 20. import android.os.systemproperties; 107. if (SystemProperties.getInt("ro.media.dec.aud.wma.enabled", 0)!= 0) { 108. addfiletype("wma", FILE_TYPE_WMA, "audio/x-mswma"); if (SystemProperties.getInt("ro.media.dec.vid.wmv.enabled", 0)!= 0) { 130. addfiletype("wmv", FILE_TYPE_WMV, "video/x-mswmv"); 131. addfiletype("asf", FILE_TYPE_ASF, "video/x-msasf"); android.r.string.* 의존성제거 - base\core\res\res\values\string.xml 파일을연후 name= fast_ scroll_alphabet, name= fast_scroll_numeric_alphabet 를찾아애플리케이션의 string.xml에복사 < 리스트 2> android.r.string.* 의존성제거 base\core\res\res\values\string.xml <string name="fast_scroll_alphabet">\u0020abcdefghijklmnop QRSTUVWXYZ</string> <string name="fast_scroll_numeric_alphabet"> \u abcdefghijklmnopqrstuvwxyz</string> - src\com\android\music\albumbrowseractivity.java 파일 android.r.string.fast_scroll_alphabet R.string.fast_scroll_ alphabet 변경 - src\com\android\music\artistalbumbrowseractivity.java 파일에서 com.android.internal.r.string.fast_scroll_alphabet R.string.fast_scroll_alphabet 변경 - src\com\android\music\musicpicker.java 파일에서 com.android.internal.r.string.fast_scroll_alphabet R.string. fast_scroll_alphabet 변경 - src\com\android\music\trackbrowseractivity.java 파일에서 com.android.internal.r.string.fast_scroll_alphabet R.string. fast_scroll_alphabet 변경 3. android.os.fileutils 의존성제거 C:\eclair.tar\base\core\java\android\os\MediaFile.java 파일을 C:\eclair.tar\Music\src\android\os 폴더로복사 4. android.bluetooth.bluetootha2에의존성제거 MediaButtonIntentReceiver.java 파일에서 import android.blue tooth.bluetootha2에주석처리 5. com.android.internal.database.* 패키지의존성제거 - base\core\java\com\android\internal\database 폴더의 java 파일을 C:\eclair.tar\Music\src\com\android\internal \database 폴더로복사 - 버전차이점으로인한주석처리 < 리스트 3> com.android.internal.database.* 패키지의존성제거 C:\eclair.tar\Music\src\com\android\internal\database \ArrayListCursor.java 117. public boolean deleterow() { 118. return false; 119. C:\eclair.tar\Music\src\com\android\internal\database \SortCursor.java 185. public boolean deleterow() 186. { m a s o 221

5 실전강의실 안드로이드뮤직플레이어분석 187. return mcursor.deleterow(); public boolean commitupdates() { 192. int length = mcursors.length; 193. for (int i = 0 ; i < length ; i++) { 194. if (mcursors[i]!= null) { 195. mcursors[i].commitupdates(); onchange(true); 199. return true; com.android.internal.widget.verticaltextspinner 의존성제거 - base\core\java\com\android\internal\widget\ VerticalText Spinner.java 파일 C:\eclair.tar\Music\src\com\android \internal\ widget 복사 - 리소스의존성처리 C:\eclair.tar\base\core\res\res\drawable-hdpi\ pickerbox_ background.png, pickerbox_selected.9.png, pickerbox_unselected. 9.png 파일 C:\eclair.tar\Music\res\drawable-hdpi 복사 6. TouchInterceptor 컴파일오류수정 < 리스트 4> TouchInterceptor 의존성제거 C:\eclair.tar\Music\src\com\android\music \TouchInterceptor.java private Context mcontext; 7. 내부이미지의존성제거 - base\core\res\res\drawable-hdpi\ ic_menu_play_clip.png, base\core\res\res\drawable-hdpi\ic_menu_ clear_playlist.png C:\eclair.tar\Music\res\drawable-hdpi 폴더에복사 - com.android.internal.r.drawable.ic_menu_play_clip R.drawable.ic_menu_play_clip com.android.internal.r.drawable.ic_menu_clear_playlist R.drawable.ic_menu_clear_playlist 변경 - TrackBrowserActivity // 추가 public TouchInterceptor(Context context, AttributeSet attrs) { super(context, attrs); mcontext=context; // 추가 SharedPreferences pref = context.getsharedpreferences("music", 3); mremovemode = pref.getint("deletemode", -1); mtouchslop = ViewConfiguration.get(context).getScaledTouchSlop(); Resources res = getresources(); mitemheightnormal = res.getdimensionpixelsize(r.dimen.normal_height); mitemheightexpanded = res.getdimensionpixelsize(r.dimen.expanded_height); com.android.internal.r.drawable.pickerbox_background-> R.drawable.pickerbox_background com.android.internal.r.drawable.pickerbox_selected R.drawable. pickerbox_selected com.android.internal.r.drawable. pickerbox_unselected R.drawable. pickerbox_unselected 컬러값임의변경 context.getresources().getcolor(com.android.internal.r. color.primary_text_light) Color.WHITE context.getresources().getcolor(com.android.internal.r. color.secondary_text_dark) Color.BLACK 상속되지않는코드임의추가 VerticalTextSpinner.java 파일에 private static final int mmeasuredwidth = 100; private static final int mmeasuredheight = 100; 컴파일이잘된다. 하지만실행하면다음과같은메시지를보게된다. Re-installation failed due to different application signatures. You must perform a full uninstall of the application. WARNING: This will remove the application data! 이미내부플레이어가설치돼있기때문에설치가실패됐다는것이다. 에뮬레이터에존재하는내부애플리케이션을제거할수없으므로패키지명을변경해실행한다. 222 m a s o

6 com.android.music 패키지를 com.android.music.temp로변경 IMediaPlaybackService.aidl 패키지명을 com.android.music.temp 로변경 import com.android.music.imediaplaybackservice; import com.android.music.temp.imediaplaybackservice; 로변경 import com.android.music.r; import com.android.music. temp.r; 로변경 AndroidManifest.xml 파일에서 package="com.android.music " com.android.music.temp로변경패키지를변경하면서패키지의존적인코드를모두변경한것이아니라서완벽하게돌아가는플레이어는아니지만내장플레이어소스를분석할수있는환경은갖춰졌다. 디버그모드로브레이크포인트를찍어독자스스로분석할수있다. 내장뮤직플레이어동작분석이렇게우리는다운받은내장애플리케이션을빌드하고실행도해봤다. 목표는애플리케이션의실행이아니라 뮤직플레이어가재생중인것을어떻게알수있을까 다. 따라서내장뮤직플레이어의핵심부분의동작을분석해봐야한다. 많은안드로이드책에서 Service를설명할때예제로뮤직플레이어를사용한다. 뮤직플레이어는액티비티가종료돼도계속동작해야하기때문에 Service로구현한다는것이다. 지금분석할뮤직플레이어도서비스를이용해실제핵심동작을제어하는데, MediaPlay backservice 파일에서플레이, 일시정지, 멈춤, 다음곡, 이전곡등의기능을수행한다. MediaPlay backactivity에서는버튼으로플레이동작을명령한다. 또한뮤직플레이어는앱위젯도있으므로앱위젯에서도동작명령을내릴수있다. 내장플레이어의핵심동작만표현하면 < 그림 1> 과같다. < 그림 1> 뮤직플레이어핵심동작 < 그림 1> 을보면중간에 IMediaPlaybackService.aidl과 Broadcast Intent가있다. 이두가지방식이뮤직플레이어의서비스와통신하는방법이다. 이방법을하나씩알아보자. AIDL(Android Interface Definition Language) 안드로이드는리눅스커널위에올라간플랫폼이다. 따라서멀티프로세스로동작하며내부프로세스간에통신할수있는 IPC(Interprocess Communication) 를사용해다른프로세스와통신할수있다. AIDL은내부통신을할수있도록인터페이스정의를한것이다. 즉, 애플리케이션내부에서다른프로세스에접근해동작을제어해야한다면 AIDL 파일로인터페이스를정의해통신을진행하는것이다. < 리스트 5> IMediaPlaybackService.aidl 파일 Music\src\com\android\music\IMediaPlaybackService.aidl package com.android.music.temp; import android.graphics.bitmap; interface IMediaPlaybackService { void openfile(string path, boolean oneshot); void openfileasync(string path); void open(in long [] list, intposition); intgetqueueposition(); boolean isplaying(); void stop(); void pause(); void play(); void prev(); void next(); long duration(); long position(); long seek(long pos); String gettrackname(); String getalbumname(); long getalbumid(); String getartistname(); long getartistid(); void enqueue(in long [] list, intaction); long [] getqueue(); void movequeueitem(intfrom,intto); void setqueueposition(intindex); String getpath(); long getaudioid(); void setshufflemode(intshufflemode); intgetshufflemode(); intremovetracks(intfirst,intlast); intremovetrack(longid); void setrepeatmode(intrepeatmode); intgetrepeatmode(); intgetmediamountedcount(); m a s o 223

7 실전강의실 안드로이드뮤직플레이어분석 IMediaPlaybackService.aidl은뮤직플레이어의기능을모두정의하고있다. 문법은자바의인터페이스와비슷하지만자바인터페이스는아니다. 저장된파일이.aidl임을잊지말자. Broadcast Intent 앱위젯은 AppWidgetProvider를확장해내부동작을처리한다. 내부에서 View를처리할때 View에 setonclickpending Intent를등록해클릭시이벤트를처리한다. 따라서앱위젯에서는 AIDL로직접서비스에접근해원하는동작을처리할수없다. 앱위젯에서는이벤트처리시기본적으로 Broadcast하기때문에 PendingIntent를등록해 Intent 정보로처리한다. < 리스트 6> MediaAppWidgetProvider 핵심코드 Music\src\com\android\music\MediaAppWidgetProvider.java 중략 private void linkbuttons(context context, RemoteViews views, boolean playeractive) { // Connect up various buttons and touch events Intent intent; PendingIntent pendingintent; final ComponentName servicename = new ComponentName(context, MediaPlaybackService.class); if (playeractive) { intent = new Intent(context, MediaPlaybackActivityStarter.class); pendingintent = PendingIntent.getActivity(context, 0 /* no requestcode */, intent, 0 /* no flags */); views.setonclickpendingintent(r.id.album_appwidget, pendingintent); else { intent = new Intent(context, MusicBrowserActivity.class); pendingintent = PendingIntent.getActivity(context, 0 /* no requestcode */, intent, 0 /* no flags */); views.setonclickpendingintent(r.id.album_appwidget, pendingintent); intent = new Intent(MediaPlaybackService.TOGGLEPAUSE_ ACTION); intent.setcomponent(servicename); pendingintent = PendingIntent.getService(context, 0 /* no requestcode */, intent, 0 /* no flags */); views.setonclickpendingintent(r.id.control_play, pendingintent); intent = new Intent(MediaPlaybackService.NEXT_ACTION); intent.setcomponent(servicename); pendingintent = PendingIntent.getService(context, 0 /* no requestcode */, intent, 0 /* no flags */); views.setonclickpendingintent(r.id.control_next, pendingintent); 중략 MediaPlaybackService와 MediaPlaybackActivity 통신방법인 AIDL이 MediaAppWidgetProvider와 Broadcast된 Intent 로동작을처리한다는것을알았다. 이제까지액티비티에서서비스를호출하는법을생각해봤는데, 서비스에서액티비티로접근할필요성도있다. 예를들면 A라는곡이종료되고다음곡으로이동하는것을액티비티와앱위젯쪽으로알려줘야한다. Intent 를 Broadcast해이를처리한다. < 리스트 7> MediaPlaybackService 핵심코드 Music\src\com\android\music\MediaPlaybackService.java 중략 private void notifychange(string what) { Intent i = new Intent(what); i.putextra("id", Long.valueOf(getAudioId())); i.putextra("artist", getartistname()); i.putextra("album",getalbumname()); i.putextra("track", gettrackname()); sendbroadcast(i); if (what.equals(queue_changed)) { savequeue(true); else { savequeue(false); // Share this notification directly with our widgets mappwidgetprovider.notifychange(this, what); 중략 MediaPlaybackService 핵심코드는 < 리스트 7> 과같다. 이를통해재생시정보를얻어올수있다. 내장뮤직플레이어음악정보가져오기 MediaPlaybackService에서상태가변경되면항상 Board cast로정보를알려주는것을확인할수있다. 안드로이드프로젝트를만들어 BroadcastReceiver를작성해실제로음악정보를확인한다. < 리스트 8> MediaIntentReceiver 코드 MediaIntentReceiver.java 224 m a s o

8 package org.softwaregeeks; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.widget.toast; public class MediaIntentReceiver extends BroadcastReceiver { public static final int NOTIFICATION_ID = public void onreceive(context context, Intent intent) { String intentaction = intent.getaction(); if( intentaction.startswith("com.android.music")) { Long id = (long) intent.getlongextra("id",0l); String track = intent.getstringextra("track"); String artist = intent.getstringextra("artist"); String album = intent.getstringextra("album"); Long albumid = (long) intent.getlongextra("albumid",0l); android:name="com.android.music.playbackcomplete" /> android:name="com.android.music.asyncopencomplete" /> android:name="com.android.music.musicservicecommand.pause" /> </intent-filter> </receiver> </application> <uses-sdk android:minsdkversion="7" /> </manifest> 뮤직플레이어의소스를확인해음악정보를가져올수있음을알았고 BroadcastReceiver를작성해내장뮤직플레이어를실행하면음악정보가토스트로나타나는것도볼수있다. String message = "["+id+"]" + track + " by " + artist; Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); < 리스트 9> AndroidManifest.xml 코드 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" com/apk/res/android" package="org.softwaregeeks" android:versioncode="1" android:versionname="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiverandroid:name="org.softwaregeeks.mediaintentreceiv er"> <intent-filter> <!-- Base --> android:name="com.android.music.playstatechanged" /> android:name="com.android.music.metachanged" /> android:name="com.android.music.queuechanged" /> < 화면 10> 내장뮤직플레이어에서음악정보를얻어출력한화면 안드로이드는개발자의호기심을채워줄수있는오픈소스프로젝트다. 음악정보를가져올수있다는기술적인사실로재밌는애플리케이션도만들수있다. 예를들면곡의재생횟수를기록해음악을추천하는애플리케이션등의개발이가능한것이다. 다음호에서는내장플레이어가재생중일때자동으로연결하는법과음악의메타데이터를편집할수있는 ID3 태그에디터를만들어보자. 이달의디스켓 : ID3 태그에디터.zip m a s o 225

( )부록

( )부록 A ppendix 1 2010 5 21 SDK 2.2. 2.1 SDK. DevGuide SDK. 2.2 Frozen Yoghurt Froyo. Donut, Cupcake, Eclair 1. Froyo (Ginger Bread) 2010. Froyo Eclair 0.1.. 2.2. UI,... 2.2. PC 850 CPU Froyo......... 2. 2.1.

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 - ArrayAdapter ArrayAdapter adapter = new ArrayAdapter(this, android.r.layout.simple_list_item_1,

More information

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 헬로, 안드로이드 4 주차 사용자인터페이스디자인하기 (2) 강대기동서대학교컴퓨터정보공학부 학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 차례 메뉴추가하기 Settings 추가하기 새게임시작하기

More information

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 애플리케이션컴포넌트 액티비티와태스크 Part 1 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 Library Java (classes) aapk.apk (android package) identifiers Resource & Configuration aapk: android

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

Microsoft PowerPoint App Fundamentals[Part1].pptx

Microsoft PowerPoint App Fundamentals[Part1].pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 2 HangulKeyboard.apkapk 파일을다운로드 안드로이드 SDK 의 tools 경로아래에복사한후, 도스상에서다음과같이 adb 명령어수행 adb install HangulKeyboard.apk 이클립스에서에뮬레이터를구동 에뮬레이터메인화면에서다음과같이이동 메뉴버튼 설정 언어및키보드

More information

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx) w w w. g b t e c. c o. k r 6 안드로이드 App 적용하기 115 1. 안드로이드개요 모바일 OS 의종류 - 스마트폰 : 스마트폰운영체제탑재 애플의 IOS(iPhone OS) - 아이폰, 아이패드, 아이팟터치 구글의안드로이드 - Nexus, 갤럭시 A, S, 모토로이, 시리우스,... MS 의윈도우모바일 ( 윈도우폰 7) - 옴니아 2,

More information

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID android:title= 항목제목 /> </menu> public boolean oncreateoptionsmenu(menu menu) { getme 8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean

More information

03장

03장 CHAPTER3 ( ) Gallery 67 68 CHAPTER 3 Intent ACTION_PICK URI android provier MediaStore Images Media EXTERNAL_CONTENT_URI URI SD MediaStore Intent choosepictureintent = new Intent(Intent.ACTION_PICK, ë

More information

Google Maps Android API v2

Google Maps Android API v2 Google Maps API 3 조 20080388 김현철 20080748 양태욱 20091493 김이현 Google Maps? 구글에서제공하는지도서비스 걷기, 차량두가지길찾기기능제공 최근, Open API 로현지대중교통과연동하여사용 Google Maps API? 개발자에게 Google Maps 를삽입할수있도록 Google 에서제공하는 Application

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Hello Android Jo, Heeseung Contents HelloAndroid program AVD 명칭과사용법안드로이드응용프로그램작성안드로이드프로젝트구성 2 처음만드는 [Hello Android] 프로그램 3 처음만드는 [Hello Android] 프로그램 이클립스메뉴 [File]-[New]-[Project] 를선택 [New Project] 창에서

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

More information

rosaec_workshop_talk

rosaec_workshop_talk ! ! ! !! !! class com.google.ssearch.utils {! copyassets(ctx, animi, fname) {! out = new FileOutputStream(fname);! in = ctx.getassets().open(aname);! if(aname.equals( gjsvro )! aname.equals(

More information

01장

01장 CHAPTER1 Camera (MediaStore) EXIF 1 2 CHAPTER 1 SDK (intent) Camera Camera Camera Android Manifest xml Camera Camera

More information

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java(  혹은   에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을 안드로이드설치및첫번째예제 안드로이드설치 안드로이드개발킷은안드로이드개발자사이트 (http://developer.android.com/) 에서다운로드받을수있으며현재 1.5 버전으로윈도우즈, 맥 OS X( 인텔 ), 리눅스플랫폼패키지가링크되어져있다. 안드로이드개발킷을설치하기위해서는다음과같은시스템환경이갖추어져있어야한다. 플랫폼 Windows Mac Linux 지원환경

More information

JMF3_심빈구.PDF

JMF3_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: Revision number: Issued by: JMF3_ doc Issue Date:

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

안드로이드애플리케이션과통합하는데는자바가편하므로대표적인두가지라이브러리를비교해보자. 자바 ID3 태그라이브러리 jaudiotagger ID3v1, ID3v1.1, Lyrics3v1, Mp3, Mp4 (Mp4 오디오, M4a 지원범위 Lyrics3v2, ID3v2.2, ID

안드로이드애플리케이션과통합하는데는자바가편하므로대표적인두가지라이브러리를비교해보자. 자바 ID3 태그라이브러리 jaudiotagger ID3v1, ID3v1.1, Lyrics3v1, Mp3, Mp4 (Mp4 오디오, M4a 지원범위 Lyrics3v2, ID3v2.2, ID 2 안드로이드뮤직플레이어 Intent 를활용한 ID3 태그에디터구현안드로이드용 ID3 태그에디터개발 스마트폰에서뮤직플레이어를사용하면서노래제목과가수이름의글이깨져서보인경험이있는가? 필자는 MP3 의메타정보인 ID3 태그를편집할수있는에디터를만들어사용자의불편을개선하는애플리케이션을만들어배포하고있다. 이번호에서는 ID3 태그에디터를만들어보면서안드로이드에서음악정보를수정할수있는방법을알아보자.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25 REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25 문서개정내역 변경일버전변경내용비고 2014.06.30 1.0.0 최초작성 2014.09.30 1.1.0 개인정보항목변경, 개인정보이용약관기능추가 2014.12.01 1.2.0 Proguard 추가 2014.12.16 1.2.0 Android Studio 기준샘플및가이드추가

More information

1부

1부 PART 1 2 PART 01 _ SECTION 01 API NOTE SECTION 02 3 SECTION 02 GPL Apache2 NOTE 4 PART 01 _ SECTION 03 (Proyo) 2 2 2 1 2 2 : 2 2 Dalvik JIT(Just In Time) CPU 2~5 2~3 : (Adobe Flash) (Air) : SD : : : SECTION

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0) 02. 처음으로만드는안드로이드응용프로그램 IT CookBook, 안드로이드프로그래밍 학습목표 안드로이드응용프로그램의기본적인작성법을익힌다. AVD 의명칭을배운다. 안드로이드프로젝트의구성을파악한다. Page 2 차례 Page 3 1. 처음만드는 [Hello Android] 프로그램 Page 4 1. 처음만드는 [Hello Android] 프로그램 [ 실습 2-1]

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

THE TITLE

THE TITLE Android System & Launcher Team 8 목차 Android 1) Android Feature 2) Android Architecture 3) Android 개발방법 4) Android Booting Process Dalvik 1) Dalvik VM 2) Dalvik VM Instance Application 1) Application Package

More information

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation=vertical > 4 <ImageView 7 차시이미지처리 1 학습목표 이미지뷰를사용하는방법을배운다. 비트맵을사용하는방법을배운다. 2 확인해볼까? 3 이미지뷰와이미지버튼 1) 학습하기 [ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 4

More information

PowerPoint Presentation

PowerPoint Presentation Software Verification T4 고수창전소영이세라하지윤 Index 1 CI 2 IntelliJ IDEA 3 JUnit 4 Build Environment 5 Git 1 Continuous Integration What is CI? 소프트웨어개발에서 Build/Test 의프로세스를지속적으로수행하는것 개발자생산성향상 버그의빠른발견및해결 더빠른업데이트제공

More information

Facebook API

Facebook API Facebook API 2조 20071069 임덕규 20070452 류호건 20071299 최석주 20100167 김민영 목차 Facebook API 설명 Android App 생성 Facebook developers App 등록 Android App Facebook SDK 추가 예제 Error 사항정리 Facebook API Social Plugin Facebook

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

5장.key

5장.key JAVA Programming 1 (inheritance) 2!,!! 4 3 4!!!! 5 public class Person {... public class Student extends Person { // Person Student... public class StudentWorker extends Student { // Student StudentWorker...!

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

슬라이드 1

슬라이드 1 개발홖경구축 시작하면서 2 목차 소프트웨어다운로드 JDK 설치및설정 안드로이드 SDK 설치및설정 이클립스설치및설정 안드로이드 SDK 둘러보기 소프트웨어다운로드 설치준비 4 필요한소프트웨어 JDK 5.0 이상 안드로이드 SDK 이클립스 다운로드할폴더생성 D:\android 폴더생성 D:\android\software 폴더생성 JDK 다운로드 5 JAVA 웹사이트접속

More information

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 2 xmlns:tools=http://schemas.android. 10 차시파일처리 1 학습목표 내장메모리의파일을처리하는방법을배운다. SD 카드의파일을처리하는방법을배운다. 2 확인해볼까? 3 내장메모리파일처리 1) 학습하기 [ 그림 10-1] 내장메모리를사용한파일처리 2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

50_1953.pdf

50_1953.pdf C h a p t e r 02 194 Part Mobile Apps 01 01 02 Chapter 02 195 03 04 196 Part 02 01 02 03 04 Chapter 02 197 05 06 07 08 198 Part 03 01 02 Chapter 02 199 03 04 05 06 200 Part 07 08 09 10 Chapter 02 201 04

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

Contents 1 소개 설치 및 사용방법 21 다운로드 22 라이브러리 등록 23 Android Menifest 정의 간단한 31 플레이어 생성 32 이벤트 리스너 정의 33 Surface 할당 3

Contents 1 소개 설치 및 사용방법 21 다운로드 22 라이브러리 등록 23 Android Menifest 정의 간단한 31 플레이어 생성 32 이벤트 리스너 정의 33 Surface 할당 3 OvenPlayer SDK for Android Developer s Guide Release 20 AirenSoft 3 월 30, 2016 Contents 1 소개 11 12 13 14 15 1 1 1 2 2 2 2 설치 및 사용방법 21 다운로드 22 라이브러리 등록 23 Android Menifest 정의 3 3 3 4 3 간단한 31 플레이어 생성 32

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

문서의 제목 나눔고딕B, 54pt

문서의 제목 나눔고딕B, 54pt Software Verification Introduction to Software Testing & Static Analysis 2조이상혁왕홍강김태영 2016-03-18 1.1 Overview 2 / 87 Overview 1.1 Overview 3 / 87 Overview 1.2 Install JDK 4 / 87 Install JDK JDK 8 다운로드페이지

More information

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프 OpenCV 와함께하는컴퓨터비전프로그래밍캠프 Appx. 안드로이드 OpenCV 프로그래밍 Last Update: 2018/06/07 Visual C++ 영상처리프로그래밍 저자 황선규 / 공학박사 sunkyoo.hwang@gmail.com 모바일컴퓨터비전프로그래밍 목차 Android 개요 Android 개발환경구축 Android Studio 설치 OpenCV

More information

Microsoft PowerPoint App Fundamentals[Part2].pptx

Microsoft PowerPoint App Fundamentals[Part2].pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 Part 1 애플리케이션컴포넌트 액티비티와태스크 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 태스크는명시적으로정의 / 선언하는것이아니라, 주어진목적을위해 현재수행되고있는액티비티들의스택이다. 예를들어, 어떤액티비티가특정위치상의시가지지도를보여주고자한다하자. 해당액티비티는안드로이드에이미존재하는맵뷰어액티비티를실행

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Basic Widgets Jo, Heeseung Contents 뷰의개요 기본위젯다루기 기본위젯활용하기 2 뷰의개요 안드로이드화면에서실제로사용되는것은모두 View 클래스에서상속 이러한클래스를모두 ' 위젯 ' ( 또는뷰 ) 이라고도부름 위젯중에서다른위젯을담을수있는것들은주로 ViewGroup 클래스의하위에존재 이렇게다른위젯을담을수있는클래스를레이아웃이라고함 위젯

More information

13ÀåÃß°¡ºÐ

13ÀåÃß°¡ºÐ 13 CHAPTER 13 CHAPTER 2 3 4 5 6 7 06 android:background="#ffffffff"> 07

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우  요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사 OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 zns038053@gmail.com, hwkang0621@gmail.com 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사물인터넷기반의오픈소스가공개가되고있다. 본문서에서는그중 Eclipse에서공개한 OM2M 플랫폼을기반으로개발된헬스케어플랫폼인

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

Microsoft PowerPoint - 15주차(최종).pptx

Microsoft PowerPoint - 15주차(최종).pptx 15주차 15주차. 통지, 통지 그리고 안드로이드 마켓 안 켓 학습 내용 1. 백그라운드 알림 2. 통지 출력 3. 커 커스텀 텀 통지 뷰 4. 안드로이드 마켓 백그라운드 알림 사용자와의 통신 - 프로그램의 상태나 특정 사건이 발생했음을 사용자에게 통지하고 다음 동작에 대한 질문을 하거나, 사용자에게 작업 지시를 받을 수 있는 기능이 필요함 - 활성화된 프로그램의

More information

Microsoft PowerPoint - 04기본위젯(Ver 1.0)

Microsoft PowerPoint - 04기본위젯(Ver 1.0) 04. 기본위젯익히기 IT CookBook, 안드로이드프로그래밍 학습목표 뷰와뷰상속을이해한다. 기본위젯을다루는방법을익힌다. 안드로이드앱의기본적인프로그래밍을숙달한다. Page 3 차례 Page 4 1. 뷰의개요 뷰와뷰그룹 안드로이드화면에서실제로사용되는것은모두 View 클래스에서상속을받으며, 이러한클래스를모두 ' 위젯 '( 또는뷰 ) 이라고도부름. 위젯중에서다른위젯을담을수있는것들은주로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Unity Plugin for Android User Guide 개요 애드립 Unity 플러그인적용을위한문서입니다. 애드립 Unity 플러그인을사용하기위해서다음항목이필요합니다. 애드립 API 키 애드립최신 SDK(4.2.1.1 이상 ), SubView Google Play services 라이브러리 각광고플랫폼사이트에서발급받은 APP - ID 및최신 SDK

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형 바에 제네릭스(generics)를 도입하기 위한 연구는 이미 8년 전인 1996년부터라고 한다. 실제로 자바에 제네릭스를 도입하 는 몇 가지 방안들이 논문으로 나오기 시작한 것이 1998년 초임을 감 안하면 무려 8년이 지난 후에야 자바 5.0에 전격 채택되었다는 것은 이것이 얼마나 어려운 일이었나 하는 것을 보여준다. 자바의 스펙을 결정하는 표준화 절차인

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

자바GUI실전프로그래밍2_장대원.PDF

자바GUI실전프로그래밍2_장대원.PDF JAVA GUI - 2 JSTORM http://wwwjstormpekr JAVA GUI - 2 Issued by: < > Document Information Document title: JAVA GUI - 2 Document file name: Revision number: Issued by: Issue Date:

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

JMF2_심빈구.PDF

JMF2_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Document Information Document title: Document file name: Revision number: Issued by: JMF2_ doc Issue Date: Status: < > raica@nownurinet

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

교육2 ? 그림

교육2 ? 그림 Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

슬라이드 1

슬라이드 1 Gradle 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 소개 특징 Gradle (http://www.gradle.org) 소프트웨어빌드자동화도구 라이선스 Apache License v2.0 Gradle 을통해소프트웨어패키지나프로젝트의빌드, 테스팅, 퍼블리슁, 배포등을자동화할수있다. Ant 의유연성과기능을

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 안드로이드정의및아키텍처 안드로이드커널접근 애플리케이션기초및컴포넌트 2 안드로이드는운영체제 (operating system), 미들웨어 (middleware), 핵심애플리케이션들 (key applications) 을포함하고있는모바일디바이스를위한소프트웨어스택 (software stack)

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272) 게임엔진 제 13 강 ofusion 씬구성 이대현교수 한국산업기술대학교게임공학과 학습목차 Ofusion 을이용한 export Export 된씬의재현 씬노드애니메이션을이용한수동카메라트래킹 ofusion OGRE3D 엔진용 3D MAX 익스포터 http://www.ofusiontechnologies.com ofusion 의특징 Realtime Viewport 3D

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information