iOS의 MKMapView 정리하기

Size: px
Start display at page:

Download "iOS의 MKMapView 정리하기"

Transcription

1 by Geunwon,Mo Android 의 MapView (Google API) 정리하기에이은 ios (iphone,ipod touch) 의 MKMapView 정리하기. 저번엔안드로이드용위치기반지점찾기 (LBS) 를구현하였고, 이번에아이폰용뱅킹어플을만들면서아이폰용도지점찾기를어플로구현할필요가생겼다. 이번엔계속써와서익숙한 Java 가아니라 Objective C 여서시작하기가막막했다. 배우면서, 삽질하며완성시킨거라버그도있을것이고여러부분에서미숙한점이있을테지만마찬가지로까먹지않기위하여정리를해둔다. 1. 프로젝트에프레임웍추가하기. 프로젝트의프레임웍에서마우스오른쪽버튼 ( 또는옵션클릭 ) 을하여프레임웍을추가해준다. 사용자위치정보를가져올 CoreLocation.framework 와지도표시에필요한 MapKit.framework 을추가해준다. 추가가된것을확인하면성공.

2 2. 뷰에서사용할마커 ( 어노테이션 ) 준비하기. 지도앱들을보면다음과같은핀이있는데이것이안드로이드에서는마커, ios 에서는어노테이션이라고불리우는드랍핀이다. 그냥써도되지만지점찾기앱에서는각마커마다지점의정보를가지고있기때문에 MKAnnotation 을구현하여커스텀어노테이션을만들어쓰기로했다. // BranchMarker.h // 마커 ( 어노테이션 ) 에쓰일객체. #import <Foundation/Foundation.h> #import BranchMarker : NSObject <MKAnnotation>{ // 요거세개는어노테이션에필수로구현해줘야동작한다. CLLocationCoordinate2D coordinate; NSString *title; NSString *subtitle; // 요아래는추가로필요해서변수준비. NSString *bussbrnm;// 영업점명 NSString *bussbrtelno; // 영업점전화번호 NSString *bussbradr; // 영업점주소 ( 찾아오시는길 ) NSString *trscdrtm;// 거래시간 NSString *bussbradr2; // 영업점주소 ( 주소 ) NSString *markertype; // 마커타입 (0: 지점, (nonatomic,assign) CLLocationCoordinate2D (nonatomic,copy) NSString (nonatomic,copy) NSString (nonatomic,retain) NSString (nonatomic,retain) NSString (nonatomic,retain) NSString (nonatomic,retain) NSString (nonatomic,retain) NSString (nonatomic,retain) NSString 헤더에서는 coordinate, title, subtitle 을필수로구현해줘야 MKAnnotation 이멀쩡히돌아간다. // BranchMarker.m #import coordinate, title, bussbrnm,bussbrtelno,bussbradr,trscdrtm,bussbradr2,markertype; -(void) dealloc{ [title release]; [subtitle release]; [super 구현파일에서는특별히구현할것이없고 synthesize 만충실히해주도록한다.

3 3. 뷰컨트롤러준비하기. 이제실제지도를구현해본다. 이번어플에서는크게다음과같이네개의뷰가겹쳐져있다. 맨아래에지도를표시하는 MKMapView 가깔리고그위로서브뷰로아이콘버튼들이있는툴바, 그리고툴바위에역지오코딩 ( 위도, 경도를가지고주소를추적해내는기술 ) 한스트링이 UILabel 로뿌려지고, 마지막으로그위에어플이로딩상태일때로딩을표시할스피너가올려져있다. // BranchMapViewController.h // 지점찾기뷰컨트롤러. #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> // 위치관리자, 맵뷰, BranchMapViewController : UIViewController <CLLocationManagerDelegate, MKMapViewDelegate, MKReverseGeocoderDelegate>{ NSString *searchtype; // 지점,ATM의검색타입 MKMapView *mapview; // 지도 // 위, 경도를가지고해당위치의주소를가지고오는리버스지오코더 MKReverseGeocoder *reversegeocoder; // 위지관리자. GPS,wifi 등으로현재기기의위치를가져온다. CLLocationManager *locationmanager; CLLocation *lastscannedlocation; // 마지막으로검색된위치를저장할객체. UIActivityIndicatorView * spinner; // 화면의로딩스피너. UILabel *geolabel; // (retain, nonatomic) NSString (retain, nonatomic) MKMapView (nonatomic, retain) MKReverseGeocoder (nonatomic, retain) CLLocationManager (nonatomic, retain) CLLocation (nonatomic, retain) UIActivityIndicatorView * (nonatomic, retain) UILabel *geolabel; // 뷰컨트롤러를만들때검색타입을지정한다. BRANCH/ATM - (id)initwithshowtype:(nsstring *)showtype; // 지점정보를 HTTP 통신으로가지고온다. - (void)getbranchdatawithlocation:(cllocation

4 메인구현파일이라엄청길다. 몇페이지에걸쳐나오니주의. // BranchMapViewController.m #import "BranchMapViewController.h" #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> #import "BranchMarker.h" #import spinner; - (id)initwithshowtype:(nsstring *)showtype { if ((self = [super init])) { // Custom initialization self.searchtype = showtype; NSLog(@"initWithShow %@",self.searchtype); return self; // 이미지로된커스텀뷰를만들어준다. //_normalimg : 버튼이미지, _touchimg : 눌럿을때바뀔이미지, _width : 이미지버튼의가로길이, _height : 이미지버튼의세로길이, _sel : 버튼눌렀을때할액션 -(UIButton*) createcustomimagebuttonwithnormalimgnm:(nsstring*)_normalimg andtouchimg:(nsstring*)_touchimg andwidth:(float)_width andheight:(float)_height andsel:(sel)_sel{ // 버튼배경에사용할이미지준비. UIImage *normalimage = [UIImage imagenamed:_normalimg]; UIImage *touchimage = [UIImage imagenamed:_touchimg]; // 버튼생성 //x,y,width,height CGRect buttonrect = CGRectMake(0.0f, 0.0f, _width, _height); UIButton *button = [[[UIButton alloc] initwithframe:buttonrect] autorelease]; // 버튼의배경이미지설정 [button setbackgroundimage:normalimage forstate:uicontrolstatenormal]; [button setbackgroundimage:touchimage forstate:uicontrolstatehighlighted]; // 버튼에액션설정 [button addtarget:self action:_sel forcontrolevents:uicontroleventtouchupinside]; return button; - 다음페이지에계속

5 - (void)viewdidload { [super viewdidload]; //searchtype 이널탕이들어오면기본적으로지점검색으로한다. if (self.searchtype == nil) self.searchtype // 위치관리자를초기화한다. self.locationmanager = [[[CLLocationManager alloc] init] autorelease]; // 딜리게이트는 self로설정후하단에서딜리게이트구현. self.locationmanager.delegate = self; // 측정방법은가장좋게. self.locationmanager.desiredaccuracy = kcllocationaccuracybest; //2000m 이상위치가변경되면노티를줌. self.locationmanager.distancefilter = f; [self.locationmanager startupdatinglocation]; // 현재위치가져오기시작 ~ // 지도뷰를만든다. // 뷰의크기만큼지도를채운다. mapview = [[MKMapView alloc] initwithframe:self.view.bounds]; mapview.showsuserlocation = YES; // 내위치표시. [mapview setmaptype:mkmaptypestandard]; // 지도형태는기본. [mapview setzoomenabled:yes]; // 줌가능 [mapview setscrollenabled:yes];// 스크롤가능 mapview.delegate = self; // 딜리게이트설정 (anotation 의메소드를구현한다.) MKCoordinateRegion region; MKCoordinateSpan span; // 보여줄지도가처리하는넓이정의. span.latitudedelta = 0.02; // 숫자가적으면좁은영역까지보임. span.longitudedelta = 0.02; CLLocationCoordinate2D location = mapview.userlocation.coordinate; // 위치정보를못가져왔을때기본으로보여줄위치. location.latitude = ; // 이건우리집 location.longitude = ; // region.span = span; // 크기설정. region.center = location; // 위치설정. [mapview setregion:region animated:true]; // 지도뷰에지역설정. [mapview regionthatfits:region]; // 지도화면에맞게크기조정. [self.view addsubview:mapview]; // 서브뷰로지도를추가함. // 하단에버튼들 toolbar 추가 // 현재뷰의크기를가져와서상단바의길이가조정되면하단바가잘리는것을방지하기위함. float heightpos = self.view.bounds.size.height; UIToolbar *toolbar = [[UIToolbar alloc] initwithframe:cgrectmake(0.0, heightpos f, 320.0, 50.0)]; toolbar.barstyle = UIBarStyleBlackTranslucent; // 툴바스타일은까만투명색 // 빈영역잡아주는버튼아이템. 왼쪽에빈영역두고, 오른쪽으로버튼들을배치하기위함. UIBarButtonItem *flexiblespace = [[UIBarButtonItem alloc] initwithbarbuttonsystemitem:uibarbuttonsystemitemflexiblespace target:nil action:nil]; - 다음페이지에 viewdidload 메소드계속

6 // 이미지커스텀버튼. UIBarButtonItem *herebtn = [[UIBarButtonItem alloc] initwithcustomview:[self createcustomimagebuttonwithnormalimgnm:@"here.png" andtouchimg:@"here_pressed.png" andwidth:40.0f andheight:40.0f andsel:@selector(setsearchtypetohere)]]; // 현위치 UIBarButtonItem *branchbtn = [[UIBarButtonItem alloc] initwithcustomview:[self createcustomimagebuttonwithnormalimgnm:@"atm_btn.png" andtouchimg:@"atm_btn_pressed.png" andwidth:40.0f andheight:40.0f andsel:@selector(setsearchtypetoatm)]]; //ATM검색 UIBarButtonItem *atmbtn = [[UIBarButtonItem alloc] initwithcustomview:[self createcustomimagebuttonwithnormalimgnm:@"hana_btn.png" andtouchimg:@"hana_btn_pressed.png" andwidth:40.0f andheight:40.0f andsel:@selector(setsearchtypetobranch)]]; // 지점검색 // 툴바아이템배치 toolbar.items = [NSArray arraywithobjects:flexiblespace,herebtn,atmbtn,branchbtn,nil]; // 툴바를뷰에추가. [self.view addsubview:toolbar]; // 툴바에쓰인버튼들릴리즈. [flexiblespace release]; [herebtn release]; [branchbtn release]; [atmbtn release]; [toolbar release]; // 화면스피너셋팅. 로딩중을표시하기위함. self.spinner = [[UIActivityIndicatorView alloc] initwithactivityindicatorstyle:uiactivityindicatorviewstylewhitelarge]; // 화면중간에위치하기위한포인트. [self.spinner setcenter:cgpointmake(320.0f/2.0, 480.0f/2.0)]; [self.view addsubview:spinner]; // 스피너를뷰에추가하고필요시에 start //geocoder 라벨셋팅. ' 서울시송파구신천동 ' 따위를툴바에표시한다. geolabel = [[UILabel alloc] initwithframe:cgrectmake(5.0, heightpos f, 160.0, 40.0)]; geolabel.backgroundcolor = [UIColor clearcolor]; geolabel.highlighted = YES; geolabel.highlightedtextcolor = [UIColor whitecolor]; geolabel.shadowcolor = [UIColor blackcolor]; geolabel.textcolor = [UIColor whitecolor]; geolabel.textalignment = UITextAlignmentLeft; geolabel.numberoflines = 2; // 두줄표시가능. [self.view addsubview:geolabel]; // 뷰에라벨추가. // 초기환영메세지. UIAlertView *alert = [[UIAlertView alloc]initwithtitle:@" 위치기반지점찾기 " message:@" 위치정보를가져오는데기기, 통신상태에따라시간이걸릴수있으며일부동작하지않는기기 도있습니다.\n\n하단의아이콘을이용하여현재지도가표시하고있는지역을중심으로지점 /ATM을검 색하실수있습니다." delegate:nil cancelbuttontitle:nil otherbuttontitles:@" 확인 ",nil]; [alert show]; [alert release]; - 다음페이지에계속

7 // 검색타입 ATM으로셋팅. -(void)setsearchtypetoatm{ // 현재지도가위치하는곳을중심으로. CLLocation *customlocation = [[CLLocation alloc] initwithlatitude:mapview.centercoordinate.latitude longitude:mapview.centercoordinate.longitude]; self.searchtype [self getbranchdatawithlocation:customlocation]; //HTTP 통신 [customlocation release]; // 검색타입지점으로셋팅. -(void)setsearchtypetobranch{ // 현재지도가위치하는곳을중심으로. CLLocation *customlocation = [[CLLocation alloc] initwithlatitude:mapview.centercoordinate.latitude longitude:mapview.centercoordinate.longitude]; self.searchtype [self getbranchdatawithlocation:customlocation]; //HTTP 통신 [customlocation release]; // 현위치 -(void)setsearchtypetohere{ [self.locationmanager startupdatinglocation]; // 로케이션메니저다시시작 ~ // 문자열치환메소드. source : 원본, 찾을문자열, 바꿀문자열. -(NSString*)replaceStrSource:(NSString*)sourceStr strfrom:(nsstring*)_from strto:(nsstring*)_to{ NSMutableString *mstr = [NSMutableString stringwithstring:sourcestr]; NSRange substr = [mstr rangeofstring: _from]; while (substr.location = NSNotFound) { [mstr replacecharactersinrange: substr withstring:_to]; substr = [mstr rangeofstring: _from]; return mstr; - 다음페이지에계속

8 // 지도데이터를 HTTP통신을통해받아와서표시해준다. - (void)getbranchdatawithlocation:(cllocation *)location{ NSLog(@"getBranchDataWithLatitude:%f andlongitude:%f", location.coordinate.latitude,location.coordinate.longitude); // 화면에로딩스피너스타트. [self.spinner startanimating]; //HTTP통신에 ContentProvide server와규격을맞추기위해, 위도, 경도에서콤마 (.) 를제거해서보내야한다. NSString *lat = [self replacestrsource: [NSString stringwithformat:@"%f",location.coordinate.latitude] strfrom:@"." strto:@""]; NSString *lng = [self replacestrsource: [NSString stringwithformat:@"%f",location.coordinate.longitude] strfrom:@"." strto:@""]; NSString *range // 기본 3Km반경지점을검색해오게만든다. NSString *stype //ATM = 1, 지점 = 0 if ([self.searchtype isequaltostring:@"atm"]) stype else stype //HTTP통신으로지점정보가져오는액션초기화. BranchMapGetDataAction *getaction = [[BranchMapGetDataAction alloc] initwithsearchtype:stype andreqlat:lat andreqlng:lng andreqrange:range]; //HTTP통신으로지점정보를가져온다. NSMutableArray *branchmarkerary = [getaction getdata]; // 마커를새로찍기전에기존에지도에있던마커 (annotation) 를전부지운다. NSMutableArray *toremove = [NSMutableArray arraywithcapacity:1]; for(id annotation in mapview.annotations){ if (annotation = mapview.userlocation){ [toremove addobject:annotation]; NSLog(@"remove %d annotations.",[toremove count]); [mapview removeannotations:toremove]; // 받아온마커 (annotation) 를맵에찍어낸다. NSLog(@"branch marker count : %d",[branchmarkerary count]); if([branchmarkerary count] > 0){ for (BranchMarker* marker in branchmarkerary){ if (marker = nil) [mapview addannotation:marker]; //reversegeocoding 시작. self.reversegeocoder = [[[MKReverseGeocoder alloc] initwithcoordinate:location.coordinate] autorelease]; reversegeocoder.delegate = self; [reversegeocoder start]; // 화면의로딩스피너없애기. [self.spinner stopanimating]; - 다음페이지에계속

9 // 메모리부족을받았을때. - (void)didreceivememorywarning { // Releases the view if it doesn't have a superview. [super didreceivememorywarning]; NSLog(@"branchmap memory warning."); // Release any cached data, images, etc that aren't in use. // 뷰내릴때. - (void)viewdidunload { NSLog(@"branchmap viewdidunload"); [self.locationmanager stopupdatinglocation]; self.locationmanager = nil; self.reversegeocoder = nil; self.mapview = nil; self.searchtype = nil; self.lastscannedlocation = nil; self.spinner = nil; [super viewdidunload]; // 객체내려갈때. - (void)dealloc { NSLog(@"branchmap dealloc"); // 사용한객체들릴리즈. [mapview release]; [reversegeocoder release]; [locationmanager release]; [searchtype release]; [lastscannedlocation release]; [spinner release]; [super dealloc]; - 다음페이지에계속

10 #pragma mark MKMapViewDelegate NSString *temptelno; // 어노테이션의더보기에서전화걸기를누를때임시로전화번호를저장할변수. // 맵의어노테이션 ( 마커 ) 표시. - (MKAnnotationView *)mapview:(mkmapview *)mv viewforannotation:(id <MKAnnotation>)annotation{ if (annotation==self.mapview.userlocation){ [mv.userlocation settitle:@" 현재위치 "]; // 현재위치마커에표시할타이틀. return nil; // 현재위치마커일경우커스텀마커를사용하지않는다. // 현재위치마커가아닐때에는지점마커이다. BranchMarker *mk = (BranchMarker *) annotation; MKPinAnnotationView *droppin = nil; // 마커준비 static NSString *reusepinid // 마커객체를재사용하기위한 ID // 마커초기화 droppin = (MKPinAnnotationView *)[mapview dequeuereusableannotationviewwithidentifier:reusepinid]; if ( droppin == nil ) droppin = [[[MKPinAnnotationView alloc] initwithannotation:annotation reuseidentifier:reusepinid] autorelease]; // 핀이떨어지는애니메이션 droppin.animatesdrop = YES; // 마커오른쪽에 (>) 모양버튼초기화. UIButton *infobtn = [UIButton buttonwithtype:uibuttontypedetaildisclosure]; droppin.userinteractionenabled = TRUE; droppin.canshowcallout = YES; droppin.rightcalloutaccessoryview = infobtn; // 마커왼쪽에표시할지점,ATM 아이콘 NSString* markerimg = nil; if ([mk.markertype isequaltostring:@"0"]){ markerimg droppin.pincolor = MKPinAnnotationColorGreen; else { markerimg droppin.pincolor = MKPinAnnotationColorRed; droppin.leftcalloutaccessoryview = [[[UIImageView alloc] initwithimage:[uiimage imagenamed:markerimg]] autorelease]; // 마커리턴 return droppin; - 다음페이지에계속

11 // 어노테이션의더보기 - (void)mapview:(mkmapview *)mapview annotationview:(mkannotationview *)view calloutaccessorycontroltapped:(uicontrol *)control{ BranchMarker *mk = (BranchMarker *) view.annotation; temptelno = nil; // 얼럿메세지초기화 NSString *alertmessage = [mk.title stringbyappendingstring:@"\n"]; if ([mk.bussbradr length] > 1) // 주소 alertmessage = [[alertmessage stringbyappendingstring:@"\n"] stringbyappendingstring:mk.bussbradr]; if ([mk.trscdrtm length] > 1) //ATM운영시간 alertmessage = [[alertmessage stringbyappendingstring:@"\natm : "] stringbyappendingstring:mk.trscdrtm]; NSString* teltitle = nil; // 전화걸기버튼타이틀. if ([mk.bussbrtelno length] > 1){ // 전화번호 alertmessage = [[alertmessage stringbyappendingstring:@"\n대표전화 : "] stringbyappendingstring:mk.bussbrtelno]; teltitle 전화걸기 "; temptelno = mk.bussbrtelno; // 얼럿뷰표시 UIAlertView *confirmdiag = [[UIAlertView alloc] initwithtitle:nil message:alertmessage delegate:self cancelbuttontitle:@" 닫기 " otherbuttontitles:teltitle, nil]; [confirmdiag show]; [confirmdiag release]; // 어노테이션의더보기 ( 얼럿뷰 ) 에서버튼클릭. - (void)alertview:(uialertview *)alertview clickedbuttonatindex:(nsinteger)buttonindex{ if (buttonindex == 1){ NSLog(@" 전화걸기 : %@",temptelno); if (temptelno = nil){ [[UIApplication sharedapplication] openurl:[nsurl URLWithString:[@"tel:" stringbyappendingstring:temptelno]]]; else if (buttonindex == 0) { NSLog(@" 닫기 "); - 다음페이지에계속

12 #pragma mark LocationManager // 위치가변경되었을때호출. - (void)locationmanager:(cllocationmanager *)manager didupdatetolocation:(cllocation *)newlocation fromlocation:(cllocation *)oldlocation { NSString *strinfo = [NSString stringwithformat:@"didupdatetolocation: latitude = %f, longitude = %f", newlocation.coordinate.latitude, newlocation.coordinate.longitude]; NSLog(@"%@",strInfo); MKCoordinateRegion region; // 레젼설정 region = MKCoordinateRegionMakeWithDistance(newLocation.coordinate, 2000, 2000); MKCoordinateRegion adjustedregion = [mapview regionthatfits:region]; [mapview setregion:adjustedregion animated:yes]; // 마지막으로검색된위치를다른곳에서활용하기위하여설정. self.lastscannedlocation = newlocation; // 한번위치를잡으면로케이션매니저정지. [self.locationmanager stopupdatinglocation]; [self getbranchdatawithlocation:self.lastscannedlocation]; // 화면에마커찍기 // 위치를못가져왔을때에러호출. - (void)locationmanager:(cllocationmanager *)manager didfailwitherror:(nserror *)error{ NSLog(@"locationManager error"); // 위치를못가져왔을땐현재지도에표시된지역기준으로지점검색들어간다 ~ [self setsearchtypetobranch]; // 에러다이얼로그표시. UIAlertView *alert = [[UIAlertView alloc]initwithtitle:@" 위치기반지점찾기 " message:@" 현재위치를검색할수없습니다.\n설정 > 일반 > 위치서비스가활성화되어있는지확인해주 세요.\n\n위치정보를가져올수없어도하단의아이콘을통하여현재지도의 \n영업점/atm 위치는검색하 실수 \n있습니다." delegate:nil cancelbuttontitle:nil otherbuttontitles:@" 확인 ",nil]; [alert show]; [alert release]; - 다음페이지에계속

13 #pragma mark reversegeocoder // 역지오코더검색되었을때 UILabel 에역지오코딩내용표시 - (void)reversegeocoder:(mkreversegeocoder *)geocoder didfindplacemark:(mkplacemark *)placemark{ if (geolabel = nil){ // 혹시몰라한번 { NSString *geostring //locality 서울특별시 sublocality 송파구 thoroughfare 신천동 // 지역에따라특정파라메터에값이없을수있음. nil체크하여표시함. if (placemark.locality = nil) geostring = [[geostring stringbyappendingstring:placemark.locality] stringbyappendingstring:@" "]; if (placemark.sublocality = nil) geostring = [[geostring stringbyappendingstring:placemark.sublocality] stringbyappendingstring:@"\n"]; if (placemark.thoroughfare = nil) geostring = [geostring stringbyappendingstring:placemark.thoroughfare]; // 아무정보도받아올수없으면나라이름이라도표시. if ([geostring length] < 1 && placemark.country = nil) geostring = placemark.country; geolabel.text = geostring; (NSException * e) { // 오류발생하면 UILabel 비워줌. NSLog(@"reverse GeoCoding error : %@",e); geolabel.text = { // 역지오코더에러발생시그냥로그. - (void)reversegeocoder:(mkreversegeocoder *)geocoder didfailwitherror:(nserror *)error{ NSLog(@"MKReverseGeocoder has - BranchMapViewController.m 끝.

14 4. 데이터받아오는액션준비하기. 지점데이터는 HTTP 통신으로받아오게된다. 예를들어 이런식으로 URL 을호출하게되면서버에서리턴값이스트링으로 S;10; 테스트지점 ; ; 서울시구로구개봉동 ;... 이런식으로세미콜론 (;) 으로구분된문자로내려오게된다. 그러면프로그램에서해당스트링을잘라서객체에잘집어넣으면된다. 이것은컨덴트서버와규격을맞추어프로그래밍을해야한다. 하나은행에서쓰이는지점정보서버와의통신은대외비이므로지도구현과관계없는부분은생략하여정리한다. // BranchMapGetDataAction.h // HTTP 통신으로컨덴츠서버에서데이터를받아서어노테이션에셋팅하는액션 #import BranchMapGetDataAction : NSObject{ NSString *searchtype; // 검색조건 NSString *reqlat; // 요청위도 NSString *reqlng; // 요청경도 NSString *reqrange;// 요청범위 ( 메타 m 단위 (nonatomic,retain) NSString (nonatomic,retain) NSString (nonatomic,retain) NSString (nonatomic,retain) NSString *reqrange; - (id)initwithsearchtype:(nsstring *)_searchtype andreqlat:(nsstring *) _reqlat andreqlng:(nsstring *)_reqlng andreqrange:(nsstring*) _reqrange; // 초기화메소드 - (NSMutableArray*)getData; // 데이터를가져오는메소드 - (NSString*)generateGeoCode:(NSString*)str; // // BranchMapGetDataAction.m #import "BranchMapGetDataAction.h" #import "BranchMarker.h" #import searchtype,reqlat,reqlng,reqrange; // 초기화메소드. - (id)initwithsearchtype:(nsstring *)_searchtype andreqlat:(nsstring *)_reqlat andreqlng:(nsstring *)_reqlng andreqrange:(nsstring*)_reqrange { if ((self = [super init])) { // Custom initialization self.searchtype = _searchtype; self.reqlat = _reqlat; self.reqlng = _reqlng; self.reqrange = _reqrange; return self; - 다음페이지에계속

15 // 결과값받아다가어노테이션 ( 마커 ) 배열로리턴. - (NSMutableArray *)getdata{ // 스테이더스바에로딩표시. ( 데이터가져오는네트워크상태표시 ) [UIApplication sharedapplication].networkactivityindicatorvisible = YES; // 요청타입이널탕이면기본적으로지점검색으로셋팅. if (self.searchtype == nil [self.searchtype isequaltostring:@""]){ self.searchtype // 요청 URL NSString *urlstring urlstring = [[urlstring stringbyappendingstring:self.reqrange] stringbyappendingstring:@"&map_x="]; urlstring = [[urlstring stringbyappendingstring:self.reqlng] stringbyappendingstring:@"&map_y="]; urlstring = [[urlstring stringbyappendingstring:self.reqlat] stringbyappendingstring:@"&svc_type="]; urlstring = [urlstring stringbyappendingstring:self.searchtype]; NSURL *url = [NSURL URLWithString:urlString]; NSLog(@"url : %@", urlstring); // 리퀘스트객체. NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] initwithurl:url] autorelease]; // 레스폰스객체, 에러객체준비. NSURLResponse *response = nil; NSError *error = nil; // 데이터받아오기. NSData* receivedata = [NSURLConnection sendsynchronousrequest:request returningresponse:&response error:&error]; // 받아온데이터파싱. NSString *str = [[NSString alloc] initwithdata:receivedata encoding:0x kcfstringencodingdoskorean]; str = [str stringbyreplacingpercentescapesusingencoding: 0x kcfstringencodingdoskorean]; //NSLog(@"DATA GETTED : %@",str); // 에러가발생하였으면에러표시. if(error = nil) { NSLog(@"%@", [error localizeddescription]); UIAlertView *alert = [UIAlertView alloc]; [alert initwithtitle:@" 에러 " message:[nsstring stringwithformat:@" 서버에접속할수없습니다.\n%@", [error localizeddescription]] delegate:self cancelbuttontitle:@" 확인 " otherbuttontitles:nil]; [alert show]; [alert release]; - 다음페이지에 getdata 메소드계속

16 // 마커배열준비. // 받아온스트링을세미콜론으로잘라서배열로넣어버린다. NSArray *brancharray = [str componentsseparatedbystring:@";"]; NSMutableArray *returnary = [[NSMutableArray alloc] init]; // 리턴할배열준비. NSLog(@"getted branch array size : %d",[brancharray { //i=2 로준것은첫번째배열엔성공여부 (S) 두번째배열엔받아온지점갯수 (int#) 이다. 안쓰이므로무시하고세번째배열원소부터사용하도록한다. for (int i=2; i<([brancharray count]-1); i+=7) { // 마커준비. BranchMarker *marker = [[BranchMarker alloc] init]; // 값셋팅. marker.bussbrnm = [brancharray objectatindex:i]; marker.bussbrtelno = [brancharray objectatindex:i+1]; marker.bussbradr = [brancharray objectatindex:i+3]; marker.bussbradr2 = [brancharray objectatindex:i+2]; marker.trscdrtm = [brancharray objectatindex:i+4]; // 마커에위도, 경도정보셋팅. MKCoordinateRegion region = { {0.0, 0.0, { 0.0, 0.0 ; region.center.latitude = [[self generategeocode: [brancharray objectatindex:i+6]] floatvalue]; region.center.longitude = [[self generategeocode: [brancharray objectatindex:i+5]] floatvalue]; region.span.longitudedelta = 0.01f; region.span.latitudedelta = 0.01f; marker.coordinate = region.center; // 셋팅 // 찾아오시는길은값이있을때에만셋팅. if ([ marker.bussbradr length] > 1) marker.subtitle = marker.bussbradr; marker.markertype = self.searchtype; // 마커타입 ( 지점 /ATM) if ([self.searchtype isequaltostring:@"0"]){ // 지점이면이름에다가 " 지점 " 이라는글씨추가로셋팅. marker.title = [marker.bussbrnm stringbyappendingstring:@" 지점 "]; else { marker.title = marker.bussbrnm; // 배열에추가. [returnary addobject:marker]; // 마커릴리즈. [marker (NSException * e) { // 가끔컨덴츠서버에서오류가난데이터를내리는경우가있다. 에러, 보정처리는알아서 ~... { - 다음페이지에 getdata 메소드계속

17 // 검색결과가없을때오류표시. if ([returnary count] == 0){ NSString *errortitle = nil; NSString *errormsg 또는 지도를확대하여 \n검색하시거나잠시후다시시도해주세요."; if ([self.searchtype isequaltostring:@"0"]){ errortitle 영업점검색오류 "; errormsg = [[NSString 해당지역에 ' 영업점 ' 검색결과가 \n없습니다."] stringbyappendingstring:errormsg]; else { errortitle 검색오류 "; errormsg = [[NSString 해당지역에 'ATM' 검색결과가 \n없습니다."] stringbyappendingstring:errormsg]; UIAlertView *alert = [[UIAlertView alloc]initwithtitle:errortitle message:errormsg delegate:nil cancelbuttontitle:nil otherbuttontitles:@" 확인 ",nil]; [alert show]; [alert release]; // 스테이더스바로딩끄기. [UIApplication sharedapplication].networkactivityindicatorvisible = NO; // 배열리턴. return returnary; // 위도경도에콤마붙이기. ex( > ) -(NSString*)generateGeoCode:(NSString*)str { if (str = nil && [str length] >= 8) { int lastidx = [str length]; int middidx = lastidx - 6; NSString* s1 =[str substringwithrange: NSMakeRange (0,middIdx)]; // 콤마앞의스트링 NSString* s2 =[str substringwithrange: NSMakeRange (middidx,6)]; // 콤마뒤의스트링 NSString *output = [[s1 stringbyappendingstring:@"."] stringbyappendingstring:s2]; // 콤마붙여서리턴 return output; return - BranchMapGetDataAction.m 끝.

18 5. 실행스크린샷. 최초실행하면안내문구가나오고, 현재위치를표시하며, 현재위치기준으로지점을찾아서마커를주루룩찍어낸다. 현재위치마커를누르면 현재위치 라는타이틀이나타난다. 지점 /ATM 마커를누르면간단한정보가나온다.

19 마커의간단한정보에서오른쪽의버튼을누르면상세정보가나오고, 창을닫거나, 전화를걸수있다. 현위치말고도원하는지역으로가서하단의아이콘을누르면해당지역을기준으로지점 /ATM 정보가나오게된다.

20 6. 해결하지못한부분 - MKMapview 의지도화면에특정지점을눌러서뭔가액션을해주고싶어 MKMapview 를상속하여커스텀맵뷰를구현했는데터치이벤트에서오류작렬 그리고줌인줌아웃시에오류가난다.. ㅠ - ios 4 부터는스테이터스바에위치서비스사용아이콘이나오는데분명 LocationManager 를 stop 시켜주었는데도아이콘이계속떠있다. Tweeter 어플등을보면현위치를가져오고난뒤에는아이콘이사라지는것같은데.. - 3G 네트워크등. 인터넷상태가불안정할때처리에오래걸리는문제. 데이터를받아오는순간에프로그램이정지된것처럼보인다. ios 도스레드를돌려서백그라운드로돌려야하나? 이건다음버전에서고민 모근원 (Geunwon,Mo) mokorean@gmail.com twitter

iOS4_13

iOS4_13 . (Mail), (Phone), (Safari), SMS, (Calendar).. SDK API... POP3 IMAP, Exchange Yahoo Gmail (rich) HTML (Mail). Chapter 13.... (Mail)., (Mail).. 1. Xcode View based Application (iphone) Emails. 2. EmailsViewController.xib.

More information

05-06( )_¾ÆÀÌÆù_ÃÖÁ¾

05-06( )_¾ÆÀÌÆù_ÃÖÁ¾ 6 T o u c h i n g t h e i P h o n e S D K 3. 0 6.1 01: -(void) touchesbegan:(nsset * ) touches withevent:(uievent * )event { 02: NSSet * alltouches = [event alltouches]; 03: if ([alltouches count]>1)

More information

Microsoft PowerPoint - 4-UI 애플리케이션

Microsoft PowerPoint - 4-UI 애플리케이션 UIApplication 클래스 UIApplicationDelegate 프로토콜 순천향대학교 컴퓨터공학과 이 상 정 1 UIApplication 클래스 순천향대학교 컴퓨터공학과 이 상 정 2 UIApplication 클래스 개요 이 장에서는 UIApplication 클래스를 기본으로 하여 아이폰 프 로그램 동작 과정을 이해 인터페이스 빌더를 사용하지 않는 아이폰

More information

캐빈의iOS프로그램팁01

캐빈의iOS프로그램팁01 캐빈의 ios 프로그램팁 글쓴이 : 안경훈 (kevin, linuxgood@gmail.com) ios 로프로그램을만들때사용할수있는여러가지팁들을모아보았다. 이글을읽는독자는처음으로 Objective-C 를접하며, 간단한문법정도만을알고있다고생각하여되도록그림과함께설명을하였다. 또한, 복잡한구현방법보다는매우간단하지만, 유용한프로그램팁들을모아보았다. 굳이말하자면 ios

More information

2ndWeek_Introduction to iPhone OS.key

2ndWeek_Introduction to iPhone OS.key Introduction to iphone OS _2 Dept. of Multimedia Science, Sookmyung Women s University. Prof. JongWoo Lee Index iphone SDK - - - Xcode Interface Builder Objective-C Dept. of Multimedia Science, Sookmyung

More information

SGIS 오픈플랫폼 지도제공 API 정의 ios Version 1.0 1

SGIS 오픈플랫폼 지도제공 API 정의 ios Version 1.0 1 SGIS 오픈플랫폼 지도제공 API 정의 ios Version 1.0 1 목 차 1. 개요... 3 1.1. 목적... 3 1.2. 고려사항... 3 1.3. 서비스개요... 3 1.3.1. 서비스요약... 3 2. API... 4 2.1. API 목록... 4 2.2. API 정의... 6 2.2.1. 지도생성... 6 2.2.1.1. MapView...

More information

자바 웹 프로그래밍

자바 웹 프로그래밍 Chapter 00. 강의소개 Chapter 01. Mobile Application Chapter 02. 기본프로그래밍 강의내용최근큰인기를끌고있는 Mobile Application 에관한소개및실제이를위한개발방법을소개하며, Application 개발에관한프로그래밍을간략히진행 강의목표 - 프로그래밍의기본흐름이해 - 창의 SW 설계에서프로그래밍을이용한프로젝트진행에도움을주기위함

More information

Microsoft PowerPoint - 2-Objective-C 기초

Microsoft PowerPoint - 2-Objective-C 기초 클래스와오브젝트 메모리관리 순천향대학교컴퓨터공학과이상정 1 Objective-C 소개 C 언어에 Smalltalk 스타일의메시지전달을결합한객체지향프로그래밍언어 Objective-C 와코코아는 Mac OS X 운영체제의핵심 개발역사 1980 년대초에 Stepstone 사의 Brad Cox 와 Tom Love 가개발 1985년에 Steve Jobs가저렴한워크스테이션개발을위해

More information

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas 플랫폼사용을위한 ios Native Guide - 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager class 개발. - Native Controller에서

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

iOS의 GameCenter를 내어플에 붙여보자

iOS의 GameCenter를 내어플에 붙여보자 http://lomohome.com/357 mokorean@gmail.com 어플에 GameCenter 를붙이자! (+ 겜센터스타일의알림창 Notification 도붙이자!) - 개인적인용도로요약한글이라글에서는경어체를사용하지않습니다. 양해부탁드립니다. - 회사에서진행하고있는프로젝트와관련이있어과도한모자이크가있습니다. 양해부탁드립니다. ios 4.1 부터지원하기시작한

More information

슬라이드 1

슬라이드 1 LG U + 고객안내用 신한카드모바일 App. 결제서비스출시와관련한고객사안내 2012. 11. LG U + 전자결제서비스 1. 기본개요 최근적용된 [ 신한카드모바일 App. 결제서비스 ] 와관련하여 1 서비스개요및 2 고객사변경필요사항을정리하여안내드립니다. 서비스개요 : 신한카드가제공하는결제 App. 을사용해사전등록한신한카드정보를선택한후결제비밀번호를입력하여결제하는서비스

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

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

슬라이드 1

슬라이드 1 모바일소프트웨어프로젝트 지도 API 1 조 20070216 김성수 20070383 김혜준 20070965 이윤상 20071335 최진 1 매시업? 공개 API? 2 매시업 웹으로제공하고있는정보와서비스를융합하여새로운소프트웨어나서비스, 데이터베이스등을만드는것 < 최초의매시업 > 3 공개 API 누구나사용할수있도록공개된 API 지도, 검색등다양한서비스들에서제공 대표적인예

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

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.

More information

iphone 개발자의 SQLite 다루기 개발 Xcode Version : 4.5 작성 서경덕 환경 시뮬레이터 : iphone Simulator 6.0 일시 2013 년 1 월 3 일 시나리오 1. FireFox의플러그인을통해 SQLite파일을맊든다. 2. 어플에서이

iphone 개발자의 SQLite 다루기 개발 Xcode Version : 4.5 작성 서경덕 환경 시뮬레이터 : iphone Simulator 6.0 일시 2013 년 1 월 3 일 시나리오 1. FireFox의플러그인을통해 SQLite파일을맊든다. 2. 어플에서이 iphone 개발자의 SQLite 다루기 개발 Xcode Version : 4.5 작성 서경덕 환경 시뮬레이터 : iphone Simulator 6.0 일시 2013 년 1 월 3 일 시나리오 1. FireFox의플러그인을통해 SQLite파일을맊든다. 2. 어플에서이 SQLite( 외부 ) 파일을읽어서출력한다. (viewdidload) 3. 버튼을누를때마다

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

어댑터뷰

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

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

찾아보기 Index 기호및숫자!( 논리부정 ) 연산자 31!=( 같지않음 ) 연산자 30 #define #define과전역변수 #import #include %( 나머지연산자 ) 63 ( 토큰참고 ) 159

찾아보기 Index 기호및숫자!( 논리부정 ) 연산자 31!=( 같지않음 ) 연산자 30 #define #define과전역변수 #import #include %( 나머지연산자 ) 63 ( 토큰참고 ) 159 찾아보기 Index 기호및숫자!( 논리부정 ) 연산자 31!=( 같지않음 ) 연산자 30 #define 193-197 #define과전역변수 200-201 #import 194-195 #include 194-195 %( 나머지연산자 ) 63 ( 토큰참고 ) %@ 159 %= 연산자 65 %d 58 %e 66 %f 66 %p 80 %s 58 %u 62 %zu

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-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 학습목표 을 작성하면서 C 프로그램의

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

[ 그림 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

슬라이드 1

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

More information

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사 IDIS Mobile Android 사용설명서 Powered by 사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사양 및 버전에 따라 일부

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 13. HTML5 위치정보와드래그앤드롭 SVG SVG(Scalable Vector Graphics) 는 XML- 기반의벡터이미지포맷 웹에서벡터 - 기반의그래픽을정의하는데사용 1999 년부터 W3C 에의하여표준 SVG 의장점 SVG 그래픽은확대되거나크기가변경되어도품질이손상되지않는다. SVG 파일에서모든요소와속성은애니메이션이가능하다. SVG 이미지는어떤텍스트에디터로도생성하고편집할수있다.

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

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

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

IAP-Guide

IAP-Guide M2US52D6AA.com.yourcompany.yourapp M2US52D6AA.com.yourcompany.* M2US52D6AA.com.yourcompany.yourapp com.yourcompany.yourapp InAppPurchaseManager.h #import #define kinapppurchasemanagerproductsfetchednotification

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

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

자바 웹 프로그래밍

자바 웹 프로그래밍 Location Based Service Application 위치기반서비스 (LBS : Location based services) 이동통신망이나위성항법장치등을통해얻은위치정보를바탕으로이용자에게여러서비스를제공하는서비스들 위치정보 좌표체계 Geocoding Map API Android: Google map ios: MKMapkit, CoreLocation framework

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

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

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

슬라이드 1

슬라이드 1 10. 위치기반서비스 시작하면서 2 목차 위치정보출력 요구기준에의한위치정보조회 지오코딩 MapView와 MapActivity Maps API 키발급 위치정보출력 위치정보출력 4 위치정보제공 GPS 무선 LAN 이동통신망 위치기반서비스 android.location 패키지 휴대단말의위치를얻기위한클래스를포함 위치정보는지리적좌표 ( 위도와경도 ) 사용 위치정보와주소정보를변환하는

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

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 - 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

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

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

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

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2 DB 와 WEB 연동 (1) [2-Tier] Java Applet 이용 웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2 JAVA Applet 을이용한 Client Server 연동기법 } Applet

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

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

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

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

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 [ 그림 9-1] 시간예약앱 활동과정 - 2 - [ 그림 9-2] 안드로이드 SDK Manager [ 예제 9-1]main.xml 1

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 HTML5 웹프로그래밍입문 12 장. 인터페이스관련 API 목차 12.1 위치정보사용하기 12.2 드래그앤드롭사용하기 12.3 오디오및비디오제어하기 2 12.1 위치정보사용하기 12.1.1 지오로케이션 API의개요 12.1.2 단발성위치요청하기 12.1.3 반복적위치요청하기 3 위치정보 (geolocation) 위치정보 GPS 가내장된모바일기기에서정확한위치파악가능

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

슬라이드 1

슬라이드 1 TortoiseSVN 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 Tortoise SVN (http://tortoisesvn.net) 라이선스 GNU GPL v2.0 소개 Subversion 를통해서소스버전관리를할수있게하는클라이언트도구 특징 Windows Explorer 에서곧바로 Subversion 를사용하여버전컨트롤가능

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

슬라이드 1

슬라이드 1 첨부 4 리모콘별 TV 셋팅방법 2011. 1 전략서비스본부서비스지원팀 1 경제형 2002년개발쌍방향단순-2007년개발경제형 /PVR-2007년개발 2002 년 02 월 ~ 2003 년 08 월 85 만 (40 만은 TV 설정불가 ) 선호채널 도움말 만가능 1) TV 전원을키고 2) 0( 숫자 )+ 음소거동시에누름 -> LED ON 3) 리모콘 LED 주황색불확인후제조사코드입력

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

슬라이드 1

슬라이드 1 세모그래픽스 III. 게임프로그래밍에필요한 OpenGL Page 1 목차 1. 간단한 OBJ-C 2. IOS의 OGL VS Win32의 OGL 3. IOS개발환경설정 4. 뷰포트, 프로젝션, 모델뷰 ( 회전이먼저냐이동이먼저냐?) Page 2 세모그래픽스 간단한 OBJ-C 2011.07.16 김형석 Page 3 1. Obj-C (test2_cpp) #import

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

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

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

슬라이드 1

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

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

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

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

수업목차 1. Objective-C 기초 (1) Hello World 작성 (2) 기본클래스작성, property 변수, 메소드 (3) Wizard 게임 (4) Island Survival 게임 2. ios 앱프로그래밍기초 (1) Story Board 사용법 - Hel

수업목차 1. Objective-C 기초 (1) Hello World 작성 (2) 기본클래스작성, property 변수, 메소드 (3) Wizard 게임 (4) Island Survival 게임 2. ios 앱프로그래밍기초 (1) Story Board 사용법 - Hel 2013 여름방학부산광역시정보영재교육원강좌 스마트폰앱개발기초 교육자료및프로젝트결과보고서 기간 : 2013.7.20~7.26 대상 : 중 3 창의성반 지도 : 동의과학대학교김종현교수 1 수업목차 1. Objective-C 기초 (1) Hello World 작성 (2) 기본클래스작성, property 변수, 메소드 (3) Wizard 게임 (4) Island Survival

More information

게임 기획서 표준양식 연구보고서

게임 기획서 표준양식 연구보고서 ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ

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

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

고객 카드 1588-7278

고객 카드 1588-7278 고객 카드 1588-7278 i 안전을 위한 경고사항 안전을 위한 주의사항 i 헤드유닛 DISP RADIO MEDIA PHONE SEEK TRACK 헤드유닛 FOLDER MUTE SCAN SETUP 스티어링 휠 리모트 컨트롤 + - MODE 기본모드 화면 Radio 모드 변경 RADIO 라디오 주파수 검색하기 SEEK TRACK 라디오 모드 사용하기 저장방송

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 4 장. JSP 의구성요소와스크립팅요소 제 4 장 스크립팅요소 (Scripting Element) 1) 지시문 (Directive) 1. JSP 구성요소소개 JSP 엔진및컨테이너, 즉 Tomcat 에게현재의 JSP 페이지처리와관련된정보를전달하는목적으로활용 (6 장 )

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft Word - 문필주.doc

Microsoft Word - 문필주.doc 포커스 포커스 모바일 광고기능을 갖는 아이폰 애플리케이션 문필주* 이요섭** 최근의 모바일 광고 시장은 이동통신사 중심의 SMS 발송 형태에서 아이폰의 등장과 앱 스토어(App Store)의 성공에 의한 콘텐츠 내의 플랫폼(App-vertising) 형태로 변해 가고 있다. 본 고에서는 모바일 광 고 아이폰 애플리케이션을 활용할 수 있는 방법에 대해 논의하고자

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

슬라이드 1

슬라이드 1 SW 개발도구연계 Jenkins - Redmine - Mylyn 목차 Intro Mylyn - Redmine 연계 Mylyn - Jenkins 연계및빌드실행 Mylyn에서 Redmine 일감처리 Intro 연계도구 웹기반의프로젝트관리도구 한글화가잘되어있어사용저변이넓음 플러그인을통해다양한도구와연계가능 Eclipse 용 ALM(Application Lifecycle

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

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\) Session 을이용한현재로그인한사용자의 숫자구하기 작성자 : 김성박 ( 삼성 SDS 멀티캠퍼스전임강사 ) email : urstory@nownuri.net homepage : http://sunny.sarang.net - 본문서는http://sunny.sarang.net JAVA강좌란 혹은 http://www.javastudy.co.kr 의 칼럼 란에서만배포합니다.

More information