GiGA Genie AI API 서비스가이드 <GiGA Genie AI 영상분석 API> 1 / 33

Size: px
Start display at page:

Download "GiGA Genie AI API 서비스가이드 <GiGA Genie AI 영상분석 API> 1 / 33"

Transcription

1 GiGA Genie AI API 서비스가이드 <GiGA Genie AI 영상분석 API> 1 / 33

2 GiGA Genie AI API 신청방법 회원가입방법 1. ucloud biz 포탈메인페이지에서회원가입이가능합니다 2. 자세한방법은고객센터 > 매뉴얼 > Server > 사용자가이드중첫걸음떼기의 내용을참조하시기바랍니다 사전준비사항 1. 상품 > 컴퓨팅 > Server 항목에서 ucloud server 상품을먼저신청합니다 GiGA Genie AI API 은 Running 상태인 VM(Virtual Machine) 이최소 1 대는존재해야 신청가능하도록제한하고있습니다. 이미 ucloud server 상품을사용하고계신사용자라면, 본과정을넘어가면됩니다. 2 / 33

3 2. ucloud server 상품신청후클라우드콘솔에접속합니다 3. 클라우드콘솔에서서버를 1 개생성합니다 3 / 33

4 4. 서버생성후상품 > GiGA Genie AI API 항목으로이동하여, 상품신청을진행합니다 GiGA Genie AI API 상품신청 1. 상품 > GiGA Genie AI API 을선택하여해당페이지로접근합니다 2. 우측플로팅버튼 [ 상품신청하기 ] 를클릭하여, 상품신청을진행합니다 3. ucloud biz 포탈에서의상품신청으로, 기가지니개발자센터 ( 의회 원가입처리가자동으로이루어집니다. 4 / 33

5 사용자는두개의웹사이트에별도로회원가입하실필요가없습니다. 기가지니개발자센터의회원가입이자동처리되는만큼, 해당사이트의약관을제 공하고있습니다. 약관확인후동의하셔야다음단계가진행됩니다 4. 상품가입이완료되면, 기가지니개발자포탈 ( 에서해당사이트의 임시비밀번호를메일로전달합니다. 해당임시비밀번호는기가지니개발자포탈 에로그인할때필요합니다 5 / 33

6 GiGA Genie AI API 서비스생성 1. 클라우드콘솔 > AI API Cloud 아이콘을선택합니다. 2. GiGA Genie AI API를사용하기위해선서비스생성이필요합니다. 서비스란 AI API를통해개발하는새로운서비스프로젝트개념에가깝습니다. 1개계정에는하나의 GiGA Genie AI 서비스만생성가능합니다. 서비스마다키가부여되어 AI API를호출할수있게됩니다. 3. [GiGA Genie AI 서비스생성 ] 버튼을클릭합니다 6 / 33

7 서비스명 : GiGA Genie AI를활용하기위한프로젝트명칭입니다. 개발시작일 : YYYY-MM-DD 형식으로 API를사용할시점을입력합니다. 개발종료일 : YYYY-MM-DD 형식으로 API 사용을종료할시점을입력합니다. 앱명 : 서비스의하위개념으로, 앱설명 : 해당앱의관리를위해필요한정보를텍스트로기술하시면됩니다사용자ID: ucloud biz 계정정보가노출됩니다. 위정보를입력한후신청버튼을클릭합니다. GiGA Genie AI API는 API 호출건수를기준으로사용한만큼과금됩니다. 서비스생성시개발시작일과개발종료일을입력할때요금때문에종료일을짧게설정하실필요는없습니다. GiGA Genie AI API 키확인 1. [GiGA Genie AI 키보기 ] 버튼을클릭합니다. 2. API 호출을위한 Client Key, Client ID, Client Secret 값을확인하실수있습니다. 7 / 33

8 3. API Key 가타인에게유출되지않도록유의하시기바랍니다. GIGA Genie AI API 사용전준비 키확인및파일다운로드 1. GiGA Genie AI API 키보기버튼을클릭합니다. 2. API 호출을위한 Client Key, Client ID, Client Secret값을확인하실수있습니다. Signature 생성 1. Signature는발급받은 client_id와 client_secret을이용해서생성합니다. 2. Signature는 timestamp를생성하고 client_id, timestamp을조합한 Text를 client_secret으로 sign 하는방식으로 digest 합니다. 3. timestamp 형식은 YYYYMMDD24hhmmssSSS 입니다. (milliseconds 3자리까지 ) ex) Signature는 hex string으로최종생성합니다. Signature=HMAC-SHA256(client_secret, client_id+ : +timestamp) GiGA Genie AI 영상분석 API 개요및안내사항영상분석 API는이미지파일에서얼굴을검출후검출된얼굴에대한분석을통하여연령, 성별, 표정, 특징값을제공하고특징값비교로두얼굴간의유사율을제공하는 HTTP 기반 REST API입니다. * 이미지업로드후이미지에대한검출 / 분석 / 인식요청이가능하며업로드된이미지의 8 / 33

9 유효시간은 30분입니다. * 얼굴분석 / 인식을위해이미지내얼굴이너무작거나정면에서촬영된얼굴이아닐경우검출이되지않습니다. * 지원하는이미지포멧은 JPEG, BMP, PNG 이며파일사이즈는 5MByte까지허용됩니다. * 지원하는이미지해상도는 320 * 240 이상 1920 * 1080 이하입니다. GiGA Genie AI 영상분석이미지업로드 API 명세 BaseURL Method Request Params POST Method Name Desc command Upload 고정 client_id 발급받은 client_id timestamp Signature 생성 Timestamp signature Signature 값 imagecontent 이미지파일 (multipart/form) JSON 규격의이미지등록결과및이미지ID Response Body Response Params ex> { resultcode: 0000, resultmessage: success, imageuuid: 8fdee9b1e8434aaeb0ae92c77bde79631 Name Desc resultcode 결과코드 0000: 정상, 그외오류 resultmessage 결과메시지 imageuuid 업로드한이미지의 ID Sample Code 1. node.js const crypto = require('crypto'); const fs = require('fs'); const request = require('request'); const http = require('http'); const dateformat = require('dateformat'); function gettimestamp(){ 9 / 33

10 return dateformat(new Date(),'yyyymmddHHmmssl'); ; function createsignature(id, timestamp, secret){ return crypto.createhmac('sha256', secret).update(id + ':' + timestamp).digest('hex'); ; const command = 'Upload'; const baseurl = ' const client_id = '[YOUR_CLIENT_ID]'; const client_secret = '[YOUR_CLIENT_SECRET]'; const timestamp = gettimestamp(); const signature = createsignature(client_id, timestamp, client_secret); const filepath = '[IMAGE_FILE_PATH]'; var requestparam = { 'client_id' : client_id, 'signature' : signature, 'timestamp' : timestamp, 'command' : command, 'imagecontent' : fs.createreadstream(filepath) ; request.post({ url: baseurl, formdata: requestparam, function(error, response, body) { if(error) { console.log(err); return; if (response.statuscode == '200') { var parsed = JSON.parse(body); console.log('resultcode : ' + parsed.resultcode); console.log('resultmessage : ' + parsed.resultmessage); if (parsed.resultcode == '0000') { console.log('imageuuid : ' + parsed.imageuuid); ); 2. Python import requests import datetime import hmac import hashlib import json 10 / 33

11 command = 'Upload' url = ' client_id = '[YOUR_CLIENT_ID]' client_secret = '[YOUR_CLIENT_SECRET]' timestamp = datetime.datetime.now().strftime("%y%m%d%h%m%s%f")[:-3] imagecontent = {'imagecontent': open('image_file_path', 'rb') #python 2.x signature = hmac.new(client_secret, client_id + ':' + timestamp, hashlib.sha256).hexdigest() #python 3.x #signature = hmac.new(bytes(client_secret, 'utf8'), bytes(client_id + ':' + timestamp, 'utf8'), hashlib.sha256).hexdigest() requestparam = { 'client_id':client_id, 'signature':signature, 'timestamp':timestamp, 'command':command response = requests.post(baseurl, params=requestparam, files=imagecontent) print(response.text) 3. JAVA import java.io.file; import java.io.ioexception; import java.io.unsupportedencodingexception; import java.net.httpurlconnection; import java.security.invalidkeyexception; import java.security.nosuchalgorithmexception; import java.text.simpledateformat; import java.util.date; import java.util.locale; import javax.crypto.mac; import javax.crypto.spec.secretkeyspec; import org.apache.http.httpentity; import org.apache.http.client.methods.closeablehttpresponse; import org.apache.http.client.methods.httppost; import org.apache.http.entity.contenttype; import org.apache.http.entity.mime.multipartentitybuilder; import org.apache.http.impl.client.closeablehttpclient; import org.apache.http.impl.client.httpclients; import org.apache.http.util.entityutils; 11 / 33

12 public class ImageUploadTest { public static void main(string[] args) { boolean iserror = false; SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.KOREA); String command = "Upload"; String baseurl = " String clientid = "[YOUR_CLIENT_ID]"; String clientsecret = "[YOUR_CLIENT_SECRET]"; String timestamp = dateformat.format(new Date()); String signature = null; try { signature = hmacdigest(clientid, timestamp, clientsecret); catch (InvalidKeyException UnsupportedEncodingException NoSuchAlgorithmException e) { e.printstacktrace(); iserror = true; if (!iserror) { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpEntity entity = MultipartEntityBuilder.create().addTextBody("command", command).addtextbody("client_id", clientid).addtextbody("timestamp", timestamp).addtextbody("signature", signature).addbinarybody("imagecontent", new File("[IMAGE_FILE_PAHT]"),ContentType.MULTIPART_FORM_DATA, "[IMAGE_FILE_NAME]").build(); HttpPost httppost = new HttpPost(baseURL); httppost.setentity(entity); CloseableHttpResponse response = null; try { response = httpclient.execute(httppost); if (response!= null && response.getstatusline()!= null) { if (response.getstatusline().getstatuscode() == HttpURLConnection.HTTP_OK) { String resultstr = EntityUtils.toString(response.getEntity()); System.out.println(resultStr); else { System.out.println("Error : HTTP StatusCode is " + response.getstatusline().getstatuscode()); catch (IOException e) { e.printstacktrace(); 12 / 33

13 finally { if (response!= null) { try { response.close(); catch (IOException e) { e.printstacktrace(); response = null; if (httpclient!= null) { try { httpclient.close(); catch (IOException e) { e.printstacktrace(); httpclient = null; private static String hmacdigest(string clientid, String timestamp, String secret) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException { String digest = null; SecretKeySpec key = new SecretKeySpec((secret).getBytes("UTF-8"), "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(key); String digesttarget = clientid + ":" + timestamp; byte[] bytes = mac.dofinal(digesttarget.getbytes("ascii")); StringBuffer hash = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xFF & bytes[i]); if (hex.length() == 1) { hash.append('0'); hash.append(hex); digest = hash.tostring(); hash = null; return digest; 13 / 33

14 GiGA Genie AI 영상분석얼굴검출 API 명세 * 사전조건 - GiGA Genie AI 영상분석이미지업로드 API 를통하여응답받은 imageuuid BaseURL Method Request Params Response Body Response Params POST Method Name Desc command Detection ( 고정 ) client_id 발급받은 client_id timestamp Signature 생성 Timestamp signature Signature 값 imageuuid 이미지등록후응답받은 imageuuid JSON 규격의얼굴검출결과 ex> { resultcode: 0000, resultmessage: Success, analysisresult: [ { faceid: xxxxx-xxxxx-xxxxx-xxxxxx-xxxxxxxx, facerectangle: {x: 10, y: 10, width: 20, heigth: 30, faceattribute: { landmark: [ {x: 1.22, y: 3.32,..., {x: 1.22, y: 3.32 ],... Name Desc 자료형 resultcode 결과코드 0000: 정상, 그외오류 String resultmessage 결과메시지 String analysisresult 얼굴검출결과목록 AnalysisResult Request/Response 자료형정의 Name Desc 자료형 AnalysisResult 검출된얼굴에부여된 1회성아 faceid 이디로영상분석서버로얼굴분석 String 요청시사용 14 / 33

15 FaceRectangle FaceAttribute Location facerectangle 검출된얼굴의영역 (x, y, w, h) FaceRectangle Name Desc 자료형 x 검출된얼굴의 X 좌표 int y 검출된얼굴의 Y 좌표 int width 검출된얼굴의너비 int height 검출된얼굴의높이 int Name Desc 자료형 landmark 70개로구성된얼굴과눈 / 코 / 입에대한경계선좌표 (x, y) 값목록 Location[] Name Desc 자료형 x 얼굴 X 좌표 float y 얼굴 Y 좌표 float Sample Code 1. node.js const crypto = require('crypto'); const request = require('request'); const http = require('http'); const dateformat = require('dateformat'); function gettimestamp(){ return dateformat(new Date(),'yyyymmddHHmmssl'); ; function createsignature(id,timestamp,secret){ return crypto.createhmac('sha256',secret).update(id+':'+timestamp).digest('hex'); ; const command = 'Detection'; const url = ' const client_id = '[YOUR_CLIENT_ID]'; const client_secret = '[YOUR_CLIENT_SECRET]'; const timestamp = gettimestamp(); const signature = createsignature(client_id, timestamp, client_secret); const imageuuid = '[ 이미지등록후응답받은 imageuuid]'; var requestjson = { 'client_id':client_id, 'signature':signature, 'timestamp':timestamp, 'command': command, 'imageuuid': imageuuid ; 15 / 33

16 request.post({ url:url, json:requestjson, function(err, response, body) { if(err) { console.log(err); return; if (response.statuscode == '200') { console.log('resultcode : ' + body.resultcode); console.log('resultmessage : ' + body.resultmessage); if (body.resultcode == '0000') { console.log('analysisresult[0].faceid : ' + body.analysisresult[0].faceid); console.log('analysisresult[0].facerectangle : ' + body.analysisresult[0].facerectangle.x + ',' + body.analysisresult[0].facerectangle.y+ ',' + body.analysisresult[0].facerectangle.width + ',' + body.analysisresult[0].facerectangle.height); ); 2. Python import requests import datetime import hmac import hashlib import json command = 'Detection' url = ' client_id = '[YOUR_CLIENT_ID]' client_secret = '[YOUR_CLIENT_SECRET]' timestamp = datetime.datetime.now().strftime("%y%m%d%h%m%s%f")[:-3] imageuuid = '[ 이미지등록후응답받은 imageuuid]' #python 2.x signature = hmac.new(client_secret, client_id + ':' + timestamp, hashlib.sha256).hexdigest() #python 3.x #signature = hmac.new(bytes(client_secret, 'utf8'), bytes(client_id + ':' + timestamp, 'utf8'), hashlib.sha256).hexdigest() requestparam = { 'client_id':client_id, 'signature':signature, 'timestamp':timestamp, 'command':command, 16 / 33

17 'imageuuid':imageuuid response = requests.post(baseurl, json=requestparam) print response.text 3. JAVA import java.io.ioexception; import java.io.unsupportedencodingexception; import java.net.httpurlconnection; import java.security.invalidkeyexception; import java.security.nosuchalgorithmexception; import java.text.simpledateformat; import java.util.date; import java.util.hashmap; import java.util.locale; import java.util.map; import javax.crypto.mac; import javax.crypto.spec.secretkeyspec; import org.apache.http.client.methods.closeablehttpresponse; import org.apache.http.client.methods.httppost; import org.apache.http.entity.stringentity; import org.apache.http.impl.client.closeablehttpclient; import org.apache.http.impl.client.httpclients; import org.apache.http.util.entityutils; import com.google.gson.gson; public class FaceDetectionTest { public static void main(string[] args) { boolean iserror = false; SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.KOREA); String command = "Detection"; String baseurl = " String clientid = "[YOUR_CLIENT_ID]"; String clientsecret = "[YOUR_CLIENT_SECRET]"; String timestamp = dateformat.format(new Date()); String signature = null; String imageuuid = "[ 이미지등록후응답받은 imageuuid]"; try { signature = hmacdigest(clientid, timestamp, clientsecret); catch (InvalidKeyException UnsupportedEncodingException NoSuchAlgorithmException e) { e.printstacktrace(); iserror = true; 17 / 33

18 if (!iserror) { Map<String, String> parammap = new HashMap<String, String>(); parammap.put("command", command); parammap.put("client_id", clientid); parammap.put("timestamp", timestamp); parammap.put("signature", signature); parammap.put("imageuuid", imageuuid); Gson gson = new Gson(); String jsonstr = gson.tojson(parammap); gson = null; StringEntity postingstring = new StringEntity(jsonStr, "UTF-8"); CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost http = new HttpPost(baseURL); http.setheader("content-type", "application/json"); http.setentity(postingstring); CloseableHttpResponse response = null; try { response = httpclient.execute(http); if (response!= null && response.getstatusline()!= null) { if (response.getstatusline().getstatuscode() == HttpURLConnection.HTTP_OK) { String resultstr = EntityUtils.toString(response.getEntity()); System.out.println(resultStr); else { System.out.println("Error : HTTP StatusCode is " + response.getstatusline().getstatuscode()); catch (IOException e) { e.printstacktrace(); finally { if (response!= null) { try { response.close(); catch (IOException e) { e.printstacktrace(); response = null; if (httpclient!= null) { try { httpclient.close(); catch (IOException e) { 18 / 33

19 e.printstacktrace(); httpclient = null; private static String hmacdigest(string clientid, String timestamp, String secret) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException { String digest = null; SecretKeySpec key = new SecretKeySpec((secret).getBytes("UTF-8"), "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(key); String digesttarget = clientid + ":" + timestamp; byte[] bytes = mac.dofinal(digesttarget.getbytes("ascii")); StringBuffer hash = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xFF & bytes[i]); if (hex.length() == 1) { hash.append('0'); hash.append(hex); digest = hash.tostring(); hash = null; return digest; 19 / 33

20 GiGA Genie AI 영상분석얼굴분석 API 명세 * 사전조건 - GiGA Genie AI 영상분석이미지업로드 API를통하여응답받은 imageuuid - GiGA Genie AI 영상분석얼굴검출 API의결과로응답받은 landmark가존재하는 faceid BaseURL Method Request Params POST Method Name Desc command Analysis ( 고정 ) client_id 발급받은 client_id timestamp Signature 생성 Timestamp signature Signature 값 imageuuid 이미지등록후응답받은 imageuuid 이미지검출시응답값으로받은 faceid를전달 faceid * imageuuid 내여러얼굴에대한분석을요청 시 faceid들을콤마 (,) 로연결하여전달 expressionyn 얼굴표정결과검출요청여부 (Y or N) ageyn 연령결과검출요청여부 (Y or N) genderyn 성별결과검출요청여부 (Y or N) featureyn 얼굴특징값검출요청여부 (Y or N) JSON 규격의얼굴분석결과 Response Body ex> { resultcode: 0000, resultmessage: Success, analysisresult: [ { faceid: xxxxx-xxxxx-xxxxx-xxxxxx-xxxxxx, faceattribute: { expression: 1, age: 10, gender: 1, feature: [ , ,..., ],. ] 20 / 33

21 Response Params Name Desc 자료형 resultcode 결과코드 0000: 정상, 그외오류 String resultmessage 결과메시지 String analysisresult 얼굴검출결과목록 AnalysisResult 자료형정의 AnalysisResult FaceAttribute Name Desc 자료형 faceid 검출된얼굴에부여된 1회성아이디로영상분석서버로얼굴분석 String 요청시사용 faceattribute 검출된얼굴의속성 FaceAttribute Name Desc 자료형 표정코드 (-1: unknown, 1: expression neutral, 2: surprise, 3: angry, 4: int smile) age 분석된얼굴의연령 int gender 분석된얼굴의성별 (1: male, 2: female, 3: unknown) int feature 500개로구성된얼굴특징값 float[] Sample Code 1. node.js const crypto = require('crypto'); const request = require('request'); const http = require('http'); const dateformat = require('dateformat'); function gettimestamp(){ return dateformat(new Date(),'yyyymmddHHmmssl'); ; function createsignature(id,timestamp,secret){ return crypto.createhmac('sha256',secret).update(id+':'+timestamp).digest('hex'); ; const command = 'Analysis'; const url = ' const client_id = '[YOUR_CLIENT_ID]'; const client_secret = '[YOUR_CLIENT_SECRET]'; const timestamp = gettimestamp(); const signature = createsignature(client_id, timestamp, client_secret); const imageuuid = '[ 이미지등록후응답받은 imageuuid]'; 21 / 33

22 const faceid = '[ 얼굴검출후응답받은 faceid]'; var requestjson = { 'client_id':client_id, 'signature':signature, 'timestamp':timestamp, 'command': command, 'imageuuid': imageuuid, 'faceid': faceid, 'expressionyn': 'Y', 'ageyn': 'Y', 'genderyn': 'Y', 'featureyn': 'Y' ; request.post({ url:url, json:requestjson, function(err, response, body) { if(err) { console.log(err); return; if (response.statuscode == '200') { console.log('resultcode : ' + body.resultcode); console.log('resultmessage : ' + body.resultmessage); if (body.resultcode == '0000') { console.log('faceid : ' + body.analysisresult[0].faceid); console.log('faceattribute : ' + body.analysisresult[0].faceattribute.expression); console.log('age : ' + body.analysisresult[0].faceattribute.age); console.log('gender : ' + body.analysisresult[0].faceattribute.gender); console.log('feature : ' + body.analysisresult[0].faceattribute.feature); ); 2. Python import requests import datetime import hmac import hashlib import json command = 'Analysis' url = ' 22 / 33

23 client_id = '[YOUR_CLIENT_ID]' client_secret = '[YOUR_CLIENT_SECRET]' timestamp = datetime.datetime.now().strftime("%y%m%d%h%m%s%f")[:-3] imageuuid = '[ 이미지등록후응답받은 imageuuid]' faceid = '[ 얼굴검출후응답받은 faceid]' #python 2.x signature = hmac.new(client_secret, client_id + ':' + timestamp, hashlib.sha256).hexdigest() #python 3.x #signature = hmac.new(bytes(client_secret, 'utf8'), bytes(client_id + ':' + timestamp, 'utf8'), hashlib.sha256).hexdigest() requestparam = { 'client_id': client_id, 'signature': signature, 'timestamp': timestamp, 'command': command, 'imageuuid': imageuuid, 'faceid': faceid, 'expressionyn': 'Y', 'ageyn': 'Y', 'genderyn': 'Y', 'featureyn': 'Y' response = requests.get(baseurl, json=requestparam) print response.text 3. JAVA import java.io.ioexception; import java.io.unsupportedencodingexception; import java.net.httpurlconnection; import java.security.invalidkeyexception; import java.security.nosuchalgorithmexception; import java.text.simpledateformat; import java.util.date; import java.util.hashmap; import java.util.locale; import java.util.map; import javax.crypto.mac; import javax.crypto.spec.secretkeyspec; import org.apache.http.client.methods.closeablehttpresponse; import org.apache.http.client.methods.httppost; import org.apache.http.entity.stringentity; import org.apache.http.impl.client.closeablehttpclient; 23 / 33

24 import org.apache.http.impl.client.httpclients; import org.apache.http.util.entityutils; import com.google.gson.gson; public class FaceAnalysisTest { public static void main(string[] args) { boolean iserror = false; SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.KOREA); String command = "Analysis"; String baseurl = " String clientid = "[YOUR_CLIENT_ID]"; String clientsecret = "[YOUR_CLIENT_SECRET]"; String timestamp = dateformat.format(new Date()); String signature = null; String imageuuid = "[ 이미지등록후응답받은 imageuuid]"; // imageuuid 내여러얼굴의 faceid 를콤마 (,) 구분자로연결하여여러얼굴분석가능 String faceid = "[ 얼굴검출후응답받은 faceid]"; try { signature = hmacdigest(clientid, timestamp, clientsecret); catch (InvalidKeyException UnsupportedEncodingException NoSuchAlgorithmException e) { e.printstacktrace(); iserror = true; if (!iserror) { Map<String, String> parammap = new HashMap<String, String>(); parammap.put("command", command); parammap.put("client_id", clientid); parammap.put("timestamp", timestamp); parammap.put("signature", signature); parammap.put("imageuuid", imageuuid); parammap.put("faceid", faceid); parammap.put("expressionyn", "Y"); parammap.put("ageyn", "Y"); parammap.put("genderyn", "Y"); parammap.put("featureyn", "Y"); Gson gson = new Gson(); String jsonstr = gson.tojson(parammap); gson = null; StringEntity postingstring = new StringEntity(jsonStr, "UTF-8"); CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost http = new HttpPost(baseURL); http.setheader("content-type", "application/json"); 24 / 33

25 http.setentity(postingstring); CloseableHttpResponse response = null; try { response = httpclient.execute(http); if (response!= null && response.getstatusline()!= null) { if (response.getstatusline().getstatuscode() == HttpURLConnection.HTTP_OK) { String resultstr = EntityUtils.toString(response.getEntity()); System.out.println(resultStr); else { System.out.println("Error : HTTP StatusCode is " + response.getstatusline().getstatuscode()); catch (IOException e) { e.printstacktrace(); finally { if (response!= null) { try { response.close(); catch (IOException e) { e.printstacktrace(); response = null; if (httpclient!= null) { try { httpclient.close(); catch (IOException e) { e.printstacktrace(); httpclient = null; private static String hmacdigest(string clientid, String timestamp, String secret) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException { String digest = null; SecretKeySpec key = new SecretKeySpec((secret).getBytes("UTF-8"), "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(key); String digesttarget = clientid + ":" + timestamp; byte[] bytes = mac.dofinal(digesttarget.getbytes("ascii")); StringBuffer hash = new StringBuffer(); 25 / 33

26 for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xFF & bytes[i]); if (hex.length() == 1) { hash.append('0'); hash.append(hex); digest = hash.tostring(); hash = null; return digest; 26 / 33

27 GiGA Genie AI 영상분석얼굴인식 API 명세 * 사전조건 - GiGA Genie AI 영상분석얼굴분석 API를통하여응답받은 feature 값 - feature 값은이미지이미지등록 얼굴검출 얼굴분석을통하여얻을수있으며검출된 feature 값을통하여얼굴간의유사도분석에사용함 BaseURL Method Request Params POST Method Name Desc command Recognition ( 고정 ) client_id 발급받은 client_id timestamp Signature 생성 Timestamp signature Signature 값얼굴인식을비교할첫번째 Feature 값 ( 얼굴분석요청을통하여응답받은값을사용 ) feature * feature 값을 JSON 형식의스트링으로변환후 Base64로인코딩하여전달얼굴인식을비교할두번째 Feature 값 ( 얼굴분석요청을통하여응답받은값을사용 ) comparefeature * feature 값을 JSON 형식의스트링으로변환후 Base64로인코딩하여전달 JSON 규격의얼굴분석결과 Response Body Response Params ex> { resultcode: 0000, resultmessage: Success, matchscore: , matchpercent: Name Desc 자료형 resultcode 결과코드 0000: 정상, 그외오류 String resultmessage 결과메시지 String matchscore 두얼굴간분석된유사도점수 float matchpercent 두얼굴간분석된특징값의유사도백분율 float 27 / 33

28 Sample Code 1. node.js const crypto = require('crypto'); const request = require('request'); const http = require('http'); const dateformat = require('dateformat'); function gettimestamp(){ return dateformat(new Date(),'yyyymmddHHmmssl'); ; function createsignature(id,timestamp,secret){ return crypto.createhmac('sha256',secret).update(id+':'+timestamp).digest('hex'); ; const command = 'Recognition'; const url = ' const client_id = '[YOUR_CLIENT_ID]'; const client_secret = '[YOUR_CLIENT_SECRET]'; const timestamp = gettimestamp(); const signature = createsignature(client_id, timestamp, client_secret); // feature, comparefeature= [ 얼굴분석요청을통하여응답받은특징값 ] ; const feature = "{feature:[ , ,.., , ]"; const comparefeature = "{feature:[ , ,.., , ]"; var requestjson = { 'client_id':client_id, 'signature':signature, 'timestamp':timestamp, 'command': command, 'feature': Buffer.from(feature).toString('base64'), 'comparefeature':buffer.from(comparefeature).tostring('base64') ; request.post({ url:url, json:requestjson, function(err, response, body) { if(err) { console.log(err); return; if (response.statuscode == '200') { console.log('resultcode : ' + body.resultcode); console.log('resultmessage : ' + body.resultmessage); if (body.resultcode == '0000') { 28 / 33

29 ); console.log('matchscore : ' + body.matchscore); console.log('matchpercent : ' + body.matchpercent); 2. Python import requests import datetime import hmac import hashlib import json import base64 command = 'Recognition' url = ' client_id = '[YOUR_CLIENT_ID]' client_secret = '[YOUR_CLIENT_SECRET]' timestamp = datetime.datetime.now().strftime("%y%m%d%h%m%s%f")[:-3] #python 2.x signature = hmac.new(client_secret, message, hashlib.sha256).hexdigest() #python 3.x #signature = hmac.new(bytes(client_secret, 'utf8'), bytes(message, 'utf8'), hashlib.sha256).hexdigest() feature = '{feature:[ , ,., , ]'; comparefeature = '{feature:[ , ,., , ]'; feature_encode = base64.b64encode(feature) comparefeature_encode = base64.b64encode(comparefeature) requestparam = { 'client_id':client_id, 'signature':signature, 'timestamp':timestamp, 'command':command, 'feature': feature_encode, 'comparefeature':comparefeature_encode response = requests.post(baseurl, json=requestparam) print(response.text) 3. JAVA import java.io.ioexception; import java.io.unsupportedencodingexception; import java.net.httpurlconnection; 29 / 33

30 import java.nio.charset.standardcharsets; import java.security.invalidkeyexception; import java.security.nosuchalgorithmexception; import java.text.simpledateformat; import java.util.date; import java.util.hashmap; import java.util.locale; import java.util.map; import java.util.base64; import java.util.base64.encoder; import javax.crypto.mac; import javax.crypto.spec.secretkeyspec; import org.apache.http.client.methods.closeablehttpresponse; import org.apache.http.client.methods.httppost; import org.apache.http.entity.stringentity; import org.apache.http.impl.client.closeablehttpclient; import org.apache.http.impl.client.httpclients; import org.apache.http.util.entityutils; import com.google.gson.gson; public class FaceRecognitionTest { public static void main(string[] args) { boolean iserror = false; SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.KOREA); Encoder encoder = Base64.getEncoder(); String command = "Recognition"; String baseurl = " String clientid = "[YOUR_CLIENT_ID]"; String clientsecret = "[YOUR_CLIENT_SECRET]"; String timestamp = dateformat.format(new Date()); String signature = null; // 얼굴분석요청을통하여응답받은 json형태의 feature 값을 Base64로인코딩 String feature = new String(encoder.encode("{feature:[ E7,..., ]".getBytes(StandardCharsets.UTF_8))); String comparefeature = new String(encoder.encode("{feature:[ E7,..., , ]".getBytes(StandardCharsets.UTF_8))); try { signature = hmacdigest(clientid, timestamp, clientsecret); catch (InvalidKeyException UnsupportedEncodingException NoSuchAlgorithmException e) { e.printstacktrace(); iserror = true; 30 / 33

31 if (!iserror) { Map<String, String> parammap = new HashMap<String, String>(); parammap.put("command", command); parammap.put("client_id", clientid); parammap.put("timestamp", timestamp); parammap.put("signature", signature); parammap.put("feature", feature); parammap.put("comparefeature", comparefeature); Gson gson = new Gson(); String jsonstr = gson.tojson(parammap); gson = null; StringEntity postingstring = new StringEntity(jsonStr, "UTF-8"); CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost http = new HttpPost(baseURL); http.setheader("content-type", "application/json"); http.setentity(postingstring); CloseableHttpResponse response = null; try { response = httpclient.execute(http); if (response!= null && response.getstatusline()!= null) { if (response.getstatusline().getstatuscode() == HttpURLConnection.HTTP_OK) { String resultstr = EntityUtils.toString(response.getEntity()); System.out.println("result is " + resultstr); else { System.out.println("Error : HTTP StatusCode is " + response.getstatusline().getstatuscode()); catch (IOException e) { e.printstacktrace(); finally { if (response!= null) { try { response.close(); catch (IOException e) { e.printstacktrace(); response = null; if (httpclient!= null) { try { httpclient.close(); catch (IOException e) { e.printstacktrace(); 31 / 33

32 httpclient = null; private static String hmacdigest(string clientid, String timestamp, String secret) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException { String digest = null; SecretKeySpec key = new SecretKeySpec((secret).getBytes("UTF-8"), "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(key); String digesttarget = clientid + ":" + timestamp; byte[] bytes = mac.dofinal(digesttarget.getbytes("ascii")); StringBuffer hash = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xFF & bytes[i]); if (hex.length() == 1) { hash.append('0'); hash.append(hex); digest = hash.tostring(); hash = null; return digest; Result Code resultcode Code Desc 0000 success 1001 missing mandatory parameter 1002 parameter value error 1003 unsupported protocols 1004 non-existent image UUID 1005 non-existent face ID 32 / 33

33 1006 Base64 decoding error 1007 json grammar error 1008 unsupported image resolution 1009 unsupported image format 1010 over file capacity 2001 no detected faces 2002 facial analysis failure 2003 feature similarity analysis failure 3001 Signature 불일치 3002 존재하지않는 ClientID 3003 호출제한초과 3004 시스템에러 33 / 33

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

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공 메신저의새로운혁신 채팅로봇 챗봇 (Chatbot) 입문하기 소 이 메 속 : 시엠아이코리아 름 : 임채문 일 : soulgx@naver.com 1 목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper

More information

GiGA Genie AI API 서비스가이드 <GiGA Genie AI 음성인식 API> 1 / 21

GiGA Genie AI API 서비스가이드 <GiGA Genie AI 음성인식 API> 1 / 21 GiGA Genie AI API 서비스가이드 1 / 21 GiGA Genie AI API 신청방법 회원가입방법 1. ucloud biz 포탈메인페이지에서회원가입이가능합니다 2. 자세한방법은고객센터 > 매뉴얼 > Server > 사용자가이드중첫걸음떼기의 내용을참조하시기바랍니다 사전준비사항 1. 상품 > 컴퓨팅 > Server

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

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

12-file.key

12-file.key 11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,

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

신림프로그래머_클린코드.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

KT AI MAKERS KIT 사용설명서 (Node JS 편).indd

KT AI MAKERS KIT 사용설명서 (Node JS 편).indd KT AI MAKERS KIT 03 51 20 133 3 4 5 6 7 8 9 1 2 3 5 4 11 10 6 7 8 9 12 1 6 2 7 3 8 11 12 4 9 5 10 10 1 4 2 3 5 6 1 4 2 5 3 6 12 01 13 02 03 15 04 16 05 17 06 18 07 19 08 20 21 22 23 24 25 26 27 28 29

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

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

gcloud storage 사용자가이드 1 / 17

gcloud storage 사용자가이드 1 / 17 gcloud storage 사용자가이드 1 / 17 문서버전및이력 버전 일자 이력사항 1.0 2016.12.30 신규작성 1.1 2017.01.19 gcloud storage 소개업데이트 1.2 2017.03.17 Container 공개설정업데이트 1.3 2017.06.28 CDN 서비스연동추가 2 / 17 목차 1. GCLOUD STORAGE 소개... 4

More information

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi 5 주차 - AWS 실습 - SNS 시나리오 1. SNS Topic 생성 2. 3. 4. 5. Subscriptions 생성및 Confirm [ Email Test ] Message 발송 코드로보기 번외 ) SMS 발송하기 실습준비 HTML 파일, AWS 계정및 secretaccesskey, accesskeyid 간단설명 1. 2. 3. 4. SNS : 이메일,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 1,..... @ 1 Green Project 1991 Oak Java 1995. 5 December '90 by Patrick Naughton, Mike Sheridan and James Gosling Embedded in various consumer electronic device 1992. 9. 3 Star 7 1993 www portability

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

비긴쿡-자바 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

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

PowerPoint Presentation

PowerPoint Presentation Package Class 1 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

자바-11장N'1-502

자바-11장N'1-502 C h a p t e r 11 java.net.,,., (TCP/IP) (UDP/IP).,. 1 ISO OSI 7 1977 (ISO, International Standards Organization) (OSI, Open Systems Interconnection). 6 1983 X.200. OSI 7 [ 11-1] 7. 1 (Physical Layer),

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException

More information

Modern Javascript

Modern Javascript ES6 - Arrow Function Class Template String Destructuring Default, Rest, Spread let, const for..of Promises Module System Map, Set * Generator * Symbol * * https://babeljs.io/ Babel is a JavaScript compiler.

More information

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx 과목명: 웹프로그래밍응용 교재: 모던웹을 위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch19. node.js 기본 2014년 1학기 Professor Seung-Hoon Choi 19 node.js 기본 이 책에서는 서버 구현 시 node.js 를 사용함 자바스크립트로 서버를 개발 다른서버구현기술 ASP.NET, ASP.NET

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

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

PowerPoint Template

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

More information

Java

Java Java http://cafedaumnet/pway Chapter 1 1 public static String format4(int targetnum){ String strnum = new String(IntegertoString(targetNum)); StringBuffer resultstr = new StringBuffer(); for(int i = strnumlength();

More information

05-class.key

05-class.key 5 : 2 (method) (public) (private) (interface) 5.1 (Method), (public method) (private method) (constructor), 3 4 5.2 (client). (receiver)., System.out.println("Hello"); (client object) (receiver object)

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

매뉴얼

매뉴얼 채널연동메뉴얼 1.1. 엠싱크채널개요 MThink ( 엠씽크 ) 는채널 API 를제공하여 Legacy System 에서발생하는정보및메시지를채널을통해공유함으로써 Mobile Single View 를제공합니다. IT Monitoring Legacy System e-mail Cloud GroupWar e SMS, DB Mon, NMS DR Sol. APM ERP

More information

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 24 장입출력 이번장에서학습할내용 스트림이란? 스트림의분류 바이트스트림 문자스트림 형식입출력 명령어행에서입출력 파일입출력 스트림을이용한입출력에대하여살펴봅시다. 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 스트림들은연결될수있다. 중간점검문제 1. 자바에서는입출력을무엇이라고추상화하는가?

More information

ibmdw_rest_v1.0.ppt

ibmdw_rest_v1.0.ppt REST in Enterprise 박찬욱 1-1- MISSING PIECE OF ENTERPRISE Table of Contents 1. 2. REST 3. REST 4. REST 5. 2-2 - Wise chanwook.tistory.com / cwpark@itwise.co.kr / chanwook.god@gmail.com ARM WOA S&C AP ENI

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

자바 프로그래밍

자바 프로그래밍 5 (kkman@mail.sangji.ac.kr) (Class), (template) (Object) public, final, abstract [modifier] class ClassName { // // (, ) Class Circle { int radius, color ; int x, y ; float getarea() { return 3.14159

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 배효철 th1g@nate.com 1 목차 표준입출력 파일입출력 2 표준입출력 표준입력은키보드로입력하는것, 주로 Scanner 클래스를사용. 표준출력은화면에출력하는메소드를사용하는데대표적으로 System.out.printf( ) 를사용 3 표준입출력 표준출력 : System.out.printlf() 4 표준입출력 Example 01 public static void

More information

mytalk

mytalk 한국정보보호학회소프트웨어보안연구회 총괄책임자 취약점분석팀 안준선 ( 항공대 ) 도경구 ( 한양대 ) 도구개발팀도경구 ( 한양대 ) 시큐어코딩팀 오세만 ( 동국대 ) 전체적인 그림 IL Rules Flowgraph Generator Flowgraph Analyzer 흐름그래프 생성기 흐름그래프 분석기 O parser 중간언어 O 파서 RDL

More information

MasoJava4_Dongbin.PDF

MasoJava4_Dongbin.PDF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr

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

Polly_with_Serverless_HOL_hyouk

Polly_with_Serverless_HOL_hyouk { } "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "polly:synthesizespeech", "dynamodb:query", "dynamodb:scan", "dynamodb:putitem", "dynamodb:updateitem", "sns:publish", "s3:putobject",

More information

14-Servlet

14-Servlet JAVA Programming Language Servlet (GenericServlet) HTTP (HttpServlet) 2 (1)? CGI 3 (2) http://jakarta.apache.org JSDK(Java Servlet Development Kit) 4 (3) CGI CGI(Common Gateway Interface) /,,, Client Server

More information

ch09

ch09 9 Chapter CHAPTER GOALS B I G J A V A 436 CHAPTER CONTENTS 9.1 436 Syntax 9.1 441 Syntax 9.2 442 Common Error 9.1 442 9.2 443 Syntax 9.3 445 Advanced Topic 9.1 445 9.3 446 9.4 448 Syntax 9.4 454 Advanced

More information

슬라이드 1

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

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

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

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

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

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

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

PowerPoint Presentation

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

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

대량문자API연동 (with directsend)

대량문자API연동 (with directsend) 1 삼정데이타서비스 DIRECTSEND 제공 [ 저작권안내 ] 본문서는삼정데이타서비스 ( 주 ) 에서고객의원활한업무지원을위하여무상으로배포하는사용자매뉴얼및가이드로써저작권과전송권은삼정데이타서비스 ( 주 ) 에있습니다. 따라서당사고객이이를이러한용도로사용하는것에는제한이없으나저작권자에대한허락및표시없이이를제 3 자에게재전송하거나복사및무단전제할때는국내및국제저작권법에의하여서비스이용이제한되고법적인책임이따를수있습니다.

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 파이썬을이용한빅데이터수집. 분석과시각화 Part 2. 데이터시각화 이원하 목 차 1 2 3 4 WordCloud 자연어처리 Matplotlib 그래프 Folium 지도시각화 Seabean - Heatmap 03 07 16 21 1 WORDCLOUD - 자연어처리 KoNLPy 형태소기반자연어처리 http://www.oracle.com/technetwork/java/javase/downloads/index.html

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

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

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

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

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 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

Office 365 사용자 가이드

Office 365 사용자 가이드 [ 여기에입력 ] Office 365 사용자가이드 OFFICE 365 모바일설정 목차 1. 모바일에메일계정추가하기... 2 2. Lync 2013 App 설치하기... 7 3. Office Mobile App 설치하기... 10 4. Office for ipad 설치하기... 16-1 - 모바일기기에 Office 365 를설정해보세요. 모바일기기에 Office

More information

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f… Command JSTORM http://www.jstorm.pe.kr Command Issued by: < > Revision: Document Information Document title: Command Document file name: Revision number: Issued by: Issue

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache

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

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture4-1 Vulnerability Analysis #4-1 Agenda 웹취약점점검 웹사이트취약점점검 HTTP and Web Vulnerability HTTP Protocol 웹브라우저와웹서버사이에하이퍼텍스트 (Hyper Text) 문서송수신하는데사용하는프로토콜 Default Port

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

3장

3장 C H A P T E R 03 CHAPTER 03 03-01 03-01-01 Win m1 f1 e4 e5 e6 o8 Mac m1 f1 s1.2 o8 Linux m1 f1 k3 o8 AJAX

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

초보자를 위한 C# 21일 완성

초보자를 위한 C# 21일 완성 C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 13 5 5 5 6 6 6 7 7 8 8 8 8 9 9 10 10 11 11 12 12 12 12 12 12 13 13 14 14 16 16 18 4 19 19 20 20 21 21 21 23 23 23 23 25 26 26 26 26 27 28 28 28 28 29 31 31 32 33 33 33 33 34 34 35 35 35 36 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

歯JavaExceptionHandling.PDF

歯JavaExceptionHandling.PDF (2001 3 ) from Yongwoo s Park Java Exception Handling Programming from Yongwoo s Park 1 Java Exception Handling Programming from Yongwoo s Park 2 1 4 11 4 4 try/catch 5 try/catch/finally 9 11 12 13 13

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

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

PowerPoint Presentation

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

More information

3ÆÄÆ®-14

3ÆÄÆ®-14 chapter 14 HTTP >>> 535 Part 3 _ 1 L i Sting using System; using System.Net; using System.Text; class DownloadDataTest public static void Main (string[] argv) WebClient wc = new WebClient(); byte[] response

More information

슬라이드 1

슬라이드 1 UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...

More information

4장.문장

4장.문장 문장 1 배정문 혼합문 제어문 조건문반복문분기문 표준입출력 입출력 형식화된출력 [2/33] ANSI C 언어와유사 문장의종류 [3/33] 값을변수에저장하는데사용 형태 : < 변수 > = < 식 > ; remainder = dividend % divisor; i = j = k = 0; x *= y; 형변환 광역화 (widening) 형변환 : 컴파일러에의해자동적으로변환

More information

2015_핀업_작품접수매뉴얼

2015_핀업_작품접수매뉴얼 Home 및 확인 이메일 확인 Login 비밀번호 찾기 리스트 출품 및 차 심사료 차 심사료, WINNER SERVICE 추가 도록용 데이터 제출 C 출품 및 차 심사료 입금/확인 차 통과작 발표 차 심사료 입금/확인 상격 발표 WINNER SERVICE 입금/확인 도록용 데이터 제출 ❶ 매년 정보가 리셋되므로 전년도 참가기업도 새로 을 완료 해야합니다. Applicant

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

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

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

Chap12

Chap12 12 12Java RMI 121 RMI 2 121 RMI 3 - RMI, CORBA 121 RMI RMI RMI (remote object) 4 - ( ) UnicastRemoteObject, 121 RMI 5 class A - class B - ( ) class A a() class Bb() 121 RMI 6 RMI / 121 RMI RMI 1 2 ( 7)

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

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

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다 공유기사용환경에서 MNC-V100 환경설정하기 다음설명은 AnyGate GW-400A (Http://www.anygate.co.kr) 를사용하는네트워크환경에서 MNC-V100 을연결하여사용하는법을설명합니다. 공유기내부네트워크환경설정공유기를사용하는환경에서공유기의설정을아래그림과같이설정하시면 MNC-V100의설정을변경하지않아도모비캠과연결할수있습니다. ( 공유기의환경을변경하기어려운경우에는

More information

Java XPath API (한글)

Java XPath API (한글) XML : Elliotte Rusty Harold, Adjunct Professor, Polytechnic University 2006 9 04 2006 10 17 문서옵션 제안및의견 XPath Document Object Model (DOM). XML XPath. Java 5 XPath XML - javax.xml.xpath.,? "?"? ".... 4.

More information

Web Scraper in 30 Minutes 강철

Web Scraper in 30 Minutes 강철 Web Scraper in 30 Minutes 강철 발표자 소개 KAIST 전산학과 2015년부터 G사에서 일합니다. 에서 대한민국 정치의 모든 것을 개발하고 있습니다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 스크래퍼/크롤러의 작동 원리를 이해한다. 목표

More information

메뉴얼41페이지-2

메뉴얼41페이지-2 데이터 기반 맞춤형 성장관리 솔루션 스마트빌 플러스 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여 등록합니다. 금융정보 자동수집을 위하여 인증서이름, 아이디, 비밀번호를 등록합니다. 통합 자동 수집 금융정보 통합 자동수집을 실행합니다 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여

More information

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker 15 ODBC 및 JDBC 설명서 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

untitled

untitled CAN BUS RS232 Line Ethernet CAN H/W FIFO RS232 FIFO IP ARP CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter ICMP TCP UDP PROTOCOL Converter TELNET DHCP C2E SW1 CAN RS232 RJ45 Power

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

More information