본문 바로가기

분류 전체보기22

브로드캐스트 수신자(Broadcast Receiver) 안드로이드에서 브로드캐스팅(Broadcasting)은 시스템에서 발생한 이벤트나 사용자 정의 이벤트를 다른 앱이나 시스템 구성요소에 알리는 메커니즘이다. 예를들면 문자, 카카오톡, 배터리상태 등이 있다. 우리가 만든 앱에서 브로드캐스팅 메시지를 받고 싶다면 브로드캐스트 수신자를 만들어 앱에 등록하면 된다. 여기에선 문자 메시지를 앱으로 수신하는 방법을 예제로 작성해본다. 먼저 AndroidManifest.xml에 SMS를 수신하기위해서 receiver 태그를 추가해야 한다. 이후 SMS를 필터링 하기 위해 intent-filter 태그를 사용하여 액션 정보를 넣는다. 해당 코드는 SMS 수신만 받겠다는 의미가 된다. 또한, 이렇게 SMS를 수신하는 행위는 제한된 데이터에 추가로 액세스를 하는 것이므로 런.. 2024. 2. 19.
$.ajax 옵션 데이터 불러오기 url (URL 주소) 요청을 보낼 URL 주소를 지정합니다. 서버에 요청할 웹 리소스의 경로를 지정합니다. method (HTTP 요청 메서드) HTTP 요청 메서드를 지정합니다. 주로 "GET", "POST", "PUT", "DELETE" 등이 사용됩니다. data (요청 데이터) 서버로 보낼 데이터를 지정합니다. 이는 쿼리 문자열 또는 객체 형태가 될 수 있으며, 주로 POST 요청에 사용됩니다. contentType (요청 데이터 형식) 요청 데이터의 형식을 지정합니다. 예를 들어, JSON 데이터를 보내는 경우 "application/json"을 사용할 수 있습니다. dataType (응답 데이터 형식) 서버에서 반환되는 응답 데이터의 예상 형식을 지정합니다. 주로 "json",.. 2023. 11. 8.
$.each와 forEach $.each jQuery 객체 또는 DOM 요소 집합에 사용됩니다. jQuery 객체에 대한 반복 작업을 수행할 때 주로 사용 jQuery 라이브러리에서 제공하는 함수로, 배열 또는 객체의 각 요소에 대한 반복 작업을 수행하는 데 사용 $.each(collection, function(index, value) { // 각 요소에 대한 작업 수행 }); Apple Banana Cherry forEach JavaScript의 표준 배열 메서드 중 하나로, 배열의 각 요소에 대한 반복 작업을 수행하는 데 사용 JavaScript 배열의 각 요소에 대한 반복 작업을 수행할 때 사용 array.forEach(function(value, index) { // 각 요소에 대한 작업 수행 }); Apple Banana.. 2023. 11. 8.
클로저(Closeure) 클로저는 함수 내부에서 함수를 정의하고, 내부 함수에서 외부 함수의 변수에 접근할 수 있는 개념이다. function outerFunction() { const outerVar = 10; function innerFunction() { const innerVar = 5; return outerVar + innerVar; // innerVar와 outerVar에 접근 가능 } return innerFunction; } const closureFunc = outerFunction(); // outerFunction이 실행되고 innerFunction이 반환됨 console.log(closureFunc()); // 15를 출력 outerFunction 내부에 있는 innerFunction은 외부 함수인 out.. 2023. 11. 8.
OAuth를 설정하다가 에러가 발생했다. redirectUriTemplate cannot be empty 라는 에러가 발생해 해당 구간을 확인해봤다. redirectUriTemplate 를 비울 수 없다고 한다. 계속 따라가 본다. ClientRegistration 클래스 객체 생성 중 AuthorizationGrantType이 AUTHORIZATION_CODE 일때 redirectUriTemplte 속성값이 정의가 안되면 발생하는 exception 임을 알 수 있다. 그럼 ClientRegistration 클래스 객체는 왜 생성할까? 로그를 기반으로 조금 더 따라가보기로 한다. getClientRegistration 메소드가 호출 되고 있다. 더 따라가본다. getClientRegistrations 메소드가 호출 되고 있다. 계속 따라가본다... 2023. 8. 24.
Open API 가져오기 사용한 API : https://www.vworld.kr/dev/v4dv_baseguide_s001.do 공간정보 오픈플랫폼 오픈API 배경지도API 1.0 레퍼런스 배경지도API 1.0 레퍼런스입니다. 소개 오픈플랫폼이 제공하는 배경지도 및 영상지도, 하이브리드 지도를 제공합니다. 요청URL을 인증받은 키값과 함께 사용자 클라이언 www.vworld.kr 참고로 vworld의 API를 사용하기 위해선 회원가입 및 인증키를 발급받아야한다. 발급할때 URL은 경로를 다 적어야한다. 만약 아래처럼 localhost:3000을 통해 웹 서버를 실행할 경우 URL은 localhost:3000 까지 적어주면 된다. 통신할 수 있는 웹 서버를 만들어놓는다. 참고로 http 프로토콜을 사용해야 하므로 단순하게 htm.. 2021. 8. 8.
Node.js 웹서버 구축 nodejs의 http 모듈을 가져와 웹서버를 구축한다. 전체적인 흐름은 http.createServer 를 통해 서버를 생성하면서 listen 메소드를 통해 3000번의 포트를 사용한다. 웹서버는 listen(3000)을 통해 3000번 포트에서 읽을 준비를 하며 사용자는 URL에 localhost:3000을 입력하면 서버는 response.end 메소드를 통해 template의 데이터들을 읽어 브라우저로 전송시켜준다. 즉, 서버는 1. listen을 통해 요청 대기상테에 들어가고, 2. 요청이 들어오면 creaServer 코드를 읽고, 3. end를 통해 데이터를 웹브라우저로 전송하게 된다. var http = require('http'); var fs = require('fs'); var url =.. 2021. 8. 8.
JSON이란? 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 위와 같이 쓰면 무슨 소리인지 모르니 예제를 통해 설명하겠다. 아래는 서버 측에서 실행되는 언어인 PHP이다. 위의 PHP로 작성된 number 배열을 웹브라우져로 전송하고 싶지만 배열을 전송할 수 있는 방법은 없다. 하지만 JSON을 이용하면 배열도 객체도 전송할 수 있다. 또한 JSON은 C, JAVA, Perl 등 거의 모든 언어에서 사용할 수 있다. 만약 php의 배열을 자바스크립트에 전달하고 싶다면 아래와 같이 php함수인 implode 함수를 통해 문자열로 변경해준 후 자바스크립트에서 문자열을 받아 배열로 변환해 사용하면 된다. 위와 같이 JSON을 사용하지 않고도 php에서 문자.. 2021. 8. 4.
Ajax 통신이란? (PHP) Ajax를 통해 시간을 나타내는 코드를 구현한다. Ajax = Asynchronous JavaScript and XML의 약자로 비동기적으로 자바스크립트를 이용해서 서버와 통신하는 방식 어떤 페이지에 접속할 때, Ajax는 데이터를 가져오지 않고 사용자의 클릭과 같은 이벤트가 발생할 때, 데이터를 가져옴 아래 코드를 실행하면 실행버튼을 클릭할 때 php 데이터를 가져오는 것을 확인할 수 있다. TIME : Asia/Seoul America/NewYork Y-M-D H:i:s Y-m-d 2021. 8. 4.
정적 함수, 멤버 함수 포인터 함수 포인터 : 함수의 주소를 가지고 있는 변수 void function(int n); 의 함수 포인터 선언은 반환형과 매개변수형만 알면 된다. (단, 괄호를 추가해줘야 된다.) void (*ptr)(int); : 반환형이 void이고 매개변수가 int 하나인 함수 포인터 여기서 (*ptr)의 괄호를 빼면 함수의 선언이 돼버린다. ptr=function; // 주소 값 복사 사용은 function 함수를 사용하는 것처럼 똑같이 사용할 수 있다. ptr(10); // function(10); 과 동일 참고로 함수의 이름인 function 은 함수의 시작 주소이기 때문에 (*ptr)(10)과 ptr(10)은 같다. 정적 함수 포인터, 멤버 함수 포인터 선언 및 호출 방법 #include using names.. 2021. 1. 20.
함수 어댑터(function adaptor) 함수 어댑터 : 함수를 함수 객체로 변환해주는 역할을 한다. #include #include #include #include using namespace std; bool predfunc(int n) { return 30 2021. 1. 16.
바인더(binder) #include #include using namespace std; int main() { cout 2021. 1. 16.