2023년 2월 3일 금요일

Getting Started with JavaScript: A Beginner's Guide

 Introduction:

JavaScript is a programming language that is widely used to build interactive and dynamic websites. It's a client-side scripting language that runs directly in the web browser and is an essential tool for web developers. In this guide, we will cover the basics of JavaScript and how to get started with writing your own scripts.


What is JavaScript?

JavaScript is a high-level, interpreted programming language that is primarily used to make websites more interactive. It's often used in combination with HTML and CSS to create dynamic and responsive user interfaces. JavaScript can be used to add interactivity to your website, such as displaying and hiding content, creating animations, and handling user input.


Getting Started:

To start writing JavaScript, you need a text editor and a web browser. You can use a simple text editor like Notepad or a more advanced editor like Visual Studio Code. Once you have your text editor set up, create a new file with a .js extension and start writing your code.


Variables:

In JavaScript, you can store values in variables. Variables are containers that hold values that can be used later in your code. To declare a variable, use the "var" keyword followed by the variable name. For example:


var message = "Hello, World!";

console.log(message);

Output: Hello, World!


Data Types:

JavaScript has several data types, including numbers, strings, booleans, and objects. For example:

var num = 42;

var str = "Hello, World!";

var bool = true;


Operators:

JavaScript has several operators that you can use to perform mathematical operations and comparisons. For example:

var num1 = 10;

var num2 = 20;

var result = num1 + num2;


console.log(result);

Output: 30


Functions:

Functions are blocks of code that perform specific tasks and can be reused throughout your code. For example:


function sayHello(name) {

console.log("Hello, " + name + "!");

}


sayHello("John");

Output: Hello, John!


Conclusion:

In this beginner's guide, we've covered the basics of JavaScript and how to get started with writing your own scripts. With these concepts under your belt, you can start experimenting and creating dynamic web pages. Stay tuned for more advanced topics and tutorials on JavaScript development.


Refrence Site:

https://javascript.info/

https://developer.mozilla.org/ko/docs/Web/JavaScript

2021년 7월 29일 목요일

My Simple App Privacy Policy

< My Company >('http://gwons.blogspot.com/'이하 'My Simple App')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다.

○ 이 개인정보처리방침은 2021년 7월 20부터 적용됩니다.

제1조(개인정보의 처리 목적)

< My Company >('http://gwons.blogspot.com/'이하 'My Simple App')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.

    1. 홈페이지 회원가입 및 관리

    만14세 미만 아동의 개인정보 처리 시 법정대리인의 동의여부 확인 목적으로 개인정보를 처리합니다.

    2. 재화 또는 서비스 제공

    콘텐츠 제공을 목적으로 개인정보를 처리합니다.

제2조(개인정보의 처리 및 보유 기간)① < My Company >은(는) 법령에 따른 개인정보 보유·이용기간 또는 정보주체로부터 개인정보를 수집 시에 동의받은 개인정보 보유·이용기간 내에서 개인정보를 처리·보유합니다.② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.

  • 1.<재화 또는 서비스 제공>
  • <재화 또는 서비스 제공>와 관련한 개인정보는 수집.이용에 관한 동의일로부터<지체없이 파기>까지 위 이용목적을 위하여 보유.이용됩니다.
  • 보유근거 : 서비스 제공
  • 관련법령 : 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
  • 예외사유 :

제3조(개인정보의 제3자 제공) ① < My Company >은(는) 개인정보를 제1조(개인정보의 처리 목적)에서 명시한 범위 내에서만 처리하며, 정보주체의 동의, 법률의 특별한 규정 등 「개인정보 보호법」 제17조 및 제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.

② 은(는) 다음과 같이 개인정보를 제3자에게 제공하고 있습니다.

  • 1. <>
  • 개인정보를 제공받는 자 :
  • 제공받는 자의 개인정보 이용목적 : 이메일
  • 제공받는 자의 보유.이용기간: 지체없이 파기

제4조(개인정보처리 위탁) ① < My Company >은(는) 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.

  • 1. <>
  • 위탁받는 자 (수탁자) :
  • 위탁하는 업무의 내용 :
  • 위탁기간 :

② 은(는) 위탁계약 체결시 「개인정보 보호법」 제26조에 따라 위탁업무 수행목적 외 개인정보 처리금지, 기술적․관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리․감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다.

③ 위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.



제5조(정보주체와 법정대리인의 권리·의무 및 그 행사방법)



① 정보주체는 My Company에 대해 언제든지 개인정보 열람·정정·삭제·처리정지 요구 등의 권리를 행사할 수 있습니다.

② 제1항에 따른 권리 행사는My Company에 대해 「개인정보 보호법」 시행령 제41조제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 My Company은(는) 이에 대해 지체 없이 조치하겠습니다.

③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다.이 경우 “개인정보 처리 방법에 관한 고시(제2020-7호)” 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.

④ 개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.

⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.

⑥ My Company은(는) 정보주체 권리에 따른 열람의 요구, 정정·삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.

제6조(처리하는 개인정보의 항목 작성) ① < My Company >은(는) 다음의 개인정보 항목을 처리하고 있습니다.

  • 1< 재화 또는 서비스 제공 >
  • 필수항목 : 이메일
  • 선택항목 :

제7조(개인정보의 파기)

① < My Company > 은(는) 개인정보 보유기간의 경과, 처리목적 달성 등 개인정보가 불필요하게 되었을 때에는 지체없이 해당 개인정보를 파기합니다.② 정보주체로부터 동의받은 개인정보 보유기간이 경과하거나 처리목적이 달성되었음에도 불구하고 다른 법령에 따라 개인정보를 계속 보존하여야 하는 경우에는, 해당 개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관장소를 달리하여 보존합니다.1. 법령 근거 :2. 보존하는 개인정보 항목 : 계좌정보, 거래날짜③ 개인정보 파기의 절차 및 방법은 다음과 같습니다.1. 파기절차 < My Company > 은(는) 파기 사유가 발생한 개인정보를 선정하고, < My Company > 의 개인정보 보호책임자의 승인을 받아 개인정보를 파기합니다.

제8조(개인정보의 안전성 확보 조치)< My Company >은(는) 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취하고 있습니다.

1. 내부관리계획의 수립 및 시행 개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.

제9조(개인정보 자동 수집 장치의 설치•운영 및 거부에 관한 사항)



My Company 은(는) 정보주체의 이용정보를 저장하고 수시로 불러오는 ‘쿠키(cookie)’를 사용하지 않습니다.

제10조 (개인정보 보호책임자)

① My Company 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.

  • ▶ 개인정보 보호책임자
  • 성명 :Jungjiwon
  • 직책 :Manager
  • 직급 :Developer
  • 연락처 : stopone77@gmail.com,

※ 개인정보 보호 담당부서로 연결됩니다.

  • ▶ 개인정보 보호 담당부서
  • 부서명 :
  • 담당자 :
  • 연락처 :, ,

② 정보주체께서는 My Company 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. My Company 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.

제11조(개인정보 열람청구) 정보주체는 「개인정보 보호법」 제35조에 따른 개인정보의 열람 청구를 아래의 부서에 할 수 있습니다.

은(는) 정보주체의 개인정보 열람청구가 신속하게 처리되도록 노력하겠습니다.
  • ▶ 개인정보 열람청구 접수·처리 부서
  • 부서명 :
  • 담당자 :
  • 연락처 : , ,

제12조(권익침해 구제방법)



정보주체는 개인정보침해로 인한 구제를 받기 위하여 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보침해신고센터 등에 분쟁해결이나 상담 등을 신청할 수 있습니다. 이 밖에 기타 개인정보침해의 신고, 상담에 대하여는 아래의 기관에 문의하시기 바랍니다.

1. 개인정보분쟁조정위원회 : (국번없이) 1833-6972 (www.kopico.go.kr)
2. 개인정보침해신고센터 : (국번없이) 118 (privacy.kisa.or.kr)
3. 대검찰청 : (국번없이) 1301 (www.spo.go.kr)
4. 경찰청 : (국번없이) 182 (cyberbureau.police.go.kr)

「개인정보보호법」제35조(개인정보의 열람), 제36조(개인정보의 정정·삭제), 제37조(개인정보의 처리정지 등)의 규정에 의한 요구에 대 하여 공공기관의 장이 행한 처분 또는 부작위로 인하여 권리 또는 이익의 침해를 받은 자는 행정심판법이 정하는 바에 따라 행정심판을 청구할 수 있습니다.

※ 행정심판에 대해 자세한 사항은 중앙행정심판위원회(www.simpan.go.kr) 홈페이지를 참고하시기 바랍니다.

제13조(개인정보 처리방침 변경)


① 이 개인정보처리방침은 2021년 7월 20부터 적용됩니다.

② 이전의 개인정보 처리방침은 아래에서 확인하실 수 있습니다.

2020년 2월 13일 목요일

Rust에서 소유권의 이동

Rust에서 소유권의 이동 (move)



let a = String::from("hello");
let b = a;

println!("{}", a);  // error

에러가 발생되는데 이유는 a의 소유권이 b로 이전된후 a는 메모리에서 해제 되었기 때문이다.

2019년 12월 16일 월요일

앞으로 우보천리(牛步千里) 마음가짐으로...

그동안 나 자신에게 바쁘다는 핑계로 블로그 작성을 소홀 하였지만
앞으로 한걸음씩 나간다는 생각으로 우보천리(牛步千里)의 마음가짐으로
다시 시작하려 한다...

2018년 6월 15일 금요일

Machine Learning Study

Machine Learning 공부할겸 정리 해봅니다.


  • 기계 학습(Machine Learning)이란 무엇인가?

기계 학습은 문제를 해결하기 위한 맞춤 코드(custom code)를 작성하지 않고도 일련의 데이터에 대해 무언가 흥미로운 것을 알려줄 수 있는 일반 알고리즘(generic algorithms)이 있다는 아이디어입니다.







2018년 3월 28일 수요일

Tell, don’t Ask

요구하지 말고 설명해라. Tell don't ask.

요구하는 식으로 프로그래밍 하지말고 설명하는 방식으로
프로그래밍 하라.

참고 사이트
https://martinfowler.com/bliki/TellDontAsk.html
https://pragprog.com/articles/tell-dont-ask
https://robots.thoughtbot.com/tell-dont-ask

심플 예제 설명
http://www.tzavellas.com/techblog/2007/02/17/a-simple-example-of-tell-dont-ask/

데미테르의 법칙 (Law of demeter).
http://blog.aliencube.org/ko/2013/12/06/law-of-demeter-explained/

함수형 프로그래밍 관련 용어 공부 정리

다형성이란 (polymorphic) ?

다형성이란 상위클래스 타입의 변수에 여러개의 하위클래스의 객체를 참조할 수 있도록 하는것을 이야기 한다.  즉 같은 타입이지만 오른쪽에 실제 런타임중에 new되는 객체(하위클래스)의
메소드가 실행되어 동일한 메소드가 다양한 형태를 표출한다는 것 이다.

다음과 같은 장점이 있다.

1. 여러 타입의 객체를 하나의 타입으로 관리하니 유지보수가 좋다.
(변경 사항 발생시 다형성으로 구현하지 않았을 때의 절반이상 코딩양 준다.)

2. 메속드의 매개변수(인자)로 상위 클래스, 추상 클래스, 인터페이스등이 온다면
그 하위클래스, 인터페이스를 구현한 클래스등이 인자로 들어 갈 수 있어 좀 더
유연한 프로그래밍을 할 수 있다. (당연히 이부분도 프로그램의 유지보수 차원에서 좋다)

3. 확장성이 좋은 코드를 작성할 수 있고, 결합도가 강하지 않은 프로그래밍을 할 수 있다.

참조 사이트
http://whatisthenext.tistory.com/34
http://asfirstalways.tistory.com/168
https://brunch.co.kr/@kd4/4


2016년 1월 29일 금요일

훌륭한 프로그래머 되는법 PART 1

Chapter 1. 코드에 신경 쓰기

- 좋은 코드를 작성하려면 코드에 신경을 써야 한다. 훌륭한 프로그래머가 되려면 시간과 노력을 투자해야 한다.

- 코드에 대한 감정적 반응은 잘못된 것이 아니다. 훌륭한 결과물을 자랑스러워 하거나 더러운 코드에
혐오감을 느끼는 것은 건전하다는 증거다.


누군가가 작성한 프로그램 코드를 보다 보면 잘 짜여진 코드를 보면 왜이렇게 짜여져 있는지 이해하기도 쉽고 직관적이다. 하지만 반대의 경우에는 이해하기도 어렵고 짜증이 날때가 있다. 프로그램은 혼자서 만드는것이 아닌 타인을 위해서라도 작성하는 코드에 신경을 써야 한다.



2015년 11월 2일 월요일

Vi Editor Setting

.vimrc 파일

셋팅 내용

set number            " line 표시를 해줍니다.
set ai                    " auto index
set si                    " smart index
set cindent            " c style index
set shiftwidth=4      " shift를 4칸으로 ( >, >>, <, << 등의 명령어)
set tabstop=4         " tab을 4칸으로
set ignorecase      " 검색시 대소문자 구별하지않음
set hlsearch         " 검색시 하이라이트(색상 강조)
set expandtab       " tab 대신 띄어쓰기로
set background=dark  " 검정배경을 사용할 때, (이 색상에 맞춰 문법 하이라이트 색상이 달라집니다.)
set nocompatible   " 방향키로 이동가능
set fileencodings=utf-8,euc-kr    " 파일인코딩 형식 지정
set bs=indent,eol,start    " backspace 키 사용 가능
set history=1000    " 명령어에 대한 히스토리를 1000개까지
set ruler              " 상태표시줄에 커서의 위치 표시
set nobackup      " 백업파일을 만들지 않음
set title               " 제목을 표시
set showmatch    " 매칭되는 괄호를 보여줌
set nowrap         " 자동 줄바꿈 하지 않음
set wmnu           " tab 자동완성시 가능한 목록을 보여줌

syntax on        " 문법 하이라이트 on

2015년 10월 2일 금요일

JavaScript closures 기본 개념

JavaScript closures 개념


function add()
{
    var count = 0;
    function plus()
    {
       count += 1;
    }
    plus();
    return count;
}

add();
add();
add();

add() 함수를 호출하여 count 값을 출력해보면 항상 1 이 나온다.
count는 add() 함수 안에서 지역변수로 add()함수를 실행 하면 count = 0 으로 초기화 하기 때문이다.



function add()
{
    var count = 0;
    function plus()
    {
       return count += 1;
    }    
    return plus;
}

var myFun = add();
myFun();
myFun();
alert(myFun());

add()함수 내부에서 리턴값으로 plus함수 자체를 리턴해주면 외부에서 count값을 증가 시켜주는것이
가능하게 된다.
myFun 변수에 plus의 함수자체를 할당하여 외부에서 호출이 가능하게 된 것이다.
이로써 count값이 3으로 표시 될것이다. 이것을 활용하여 이벤트를 할당하거나 callback개념으로
JavaScript closures를 사용할 수도 있다. 자세한 사용방법은 아래 참조 사이트를 참조하기 바란다.


참조 사이트
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures

http://www.w3schools.com/js/js_function_closures.asp




2015년 8월 26일 수요일

Android dialog custom webview 적용..

String webViewString = yourMeta + yourCss + yourHtml;
yourCustomWebView.loadData(webViewString, "text/html; charset=UTF-8", null);
yourAlertDialog.setView(yourCustomWebView);

2015년 6월 28일 일요일

2015년 독서 노트

<끝까지 해내는 힘>
나카무라 슈지, 비즈니스북스
- 무엇보다 하나를 끝까지 해보는것이 중요하다.

<독서는 절대 나를 배신하지 않는다>
사이토 다카시, 걷는나무
- 독서를 통해서 삶의 지식, 지혜를 얻을수 있다. 꾸준히 독서를 하다보면 조금씩 내공이 쌓여 더욱 심도 있는 독서를 할수 있게된다. 독서를 통해서 삶을 변화시킬수 있는 힘을 가지게된다.

2015년 6월 27일 토요일

한가지 일을 끝까지 해내는 것

 지금 것 나는 어떤 한가지 일을 온전히 끝까지 해내온 것이 많지 않은것 같다.

 그것이 어떤 일이든 끝까지 해내어야지 교훈을 얻든 후회를 하든 온전한 자기 것이 되는 것이다.

 우리는 대부분 어려운 일에 부딧히거나 힘이들면 중도에 포기해버리는 일이 많을 것이다. 그러면 아무런 남는 것이 없을 것이고 어떠한 교훈도 얻을수 없다.

 온전히 자신의 노력으로 끝까지 해내는것이 중요하다.

 벽을 기어 올라가서라도 끝까지 해내라.
시간이 걸려도 상관없다. 멀리 돌아가도 좋다.
서툴러도 괜찮다.
어쨋든 하나를 완성하는 일.
이것이 가장 중요하다.




2015년 4월 22일 수요일

2015년 3월 27일 금요일

프로그래머로서 보다 나은 삶

프로그래머로 살아가면서 보다 나은 삶을 살려면 어떻게 해야되는가?

보다 나은 삶이란 무엇인가? 현재보다 좀더 나은 생활 경제적인 여건 등이 나아지는것을 말하는걸까?

내가 원하는 프로그래머로서의 삶은 하고싶은 일을 하면서 취미로 프로그램 개발을 하고 책도 쓰고, 다른 개발자들에게 조금이나마 도움이 되는 삶을 사는 것이다.

하지만, 현실은 삶을 살아가는 것 자체가 목적이 되어서 먹고 살기 위해서 일을 하며 개발이란 그저 현재 프로그램이 이상없이 돌아가기만을 바라는 것 같다.

이렇게 살아가는 것이 내가 원하던 것은 아니지만, 열악한 환경속에서 좀더 개발자로서 노력을 하며 자기계발도 꾸준히 해야겠다.

현실에 만족하면 더이상 발전은 없고, 꿈이 없으면 삶에 의미가 없다.










2014년 11월 21일 금요일

JAVA 한글 깨질경우 인코딩 확인하기

한글이 깨질경우 간단하게 자바에서 인코딩을 확인해본다.


String originalStr = "Å×½ºÆ®"; // 테스트 
String [] charSet = {"utf-8","euc-kr","ksc5601","iso-8859-1","x-windows-949"};
  
for (int i=0; i<charSet.length; i++) {
 for (int j=0; j<charSet.length; j++) {
  try {
   System.out.println("[" + charSet[i] +"," + charSet[j] +"] = " + new String(originalStr.getBytes(charSet[i]), charSet[j]));
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
 }
}


OutPut

[utf-8,utf-8] = Å×½ºÆ®
[utf-8,euc-kr] = ��쩍쨘�짰
[utf-8,ksc5601] = ��쩍쨘�짰
[utf-8,iso-8859-1] = Å×½ºÆ®
[utf-8,x-windows-949] = 횇횞쩍쨘횈짰
[euc-kr,utf-8] = ?����������
[euc-kr,euc-kr] = ?×½ºÆ®
[euc-kr,ksc5601] = ?×½ºÆ®
[euc-kr,iso-8859-1] = ?¡¿¨ö¨¬¨¡¢ç
[euc-kr,x-windows-949] = ?×½ºÆ®
[ksc5601,utf-8] = ?����������
[ksc5601,euc-kr] = ?×½ºÆ®
[ksc5601,ksc5601] = ?×½ºÆ®
[ksc5601,iso-8859-1] = ?¡¿¨ö¨¬¨¡¢ç
[ksc5601,x-windows-949] = ?×½ºÆ®
[iso-8859-1,utf-8] = �׽�Ʈ
[iso-8859-1,euc-kr] = 테스트
[iso-8859-1,ksc5601] = 테스트
[iso-8859-1,iso-8859-1] = Å×½ºÆ®
[iso-8859-1,x-windows-949] = 테스트
[x-windows-949,utf-8] = ?����������
[x-windows-949,euc-kr] = ?×½ºÆ®
[x-windows-949,ksc5601] = ?×½ºÆ®
[x-windows-949,iso-8859-1] = ?¡¿¨ö¨¬¨¡¢ç
[x-windows-949,x-windows-949] = ?×½ºÆ®


2014년 11월 17일 월요일

Android 웹 브라우저 링크로 앱 실행 방법

안드로이드 자체 브라우저로 특정 앱을 실행 하는 것이 가능하다.

이것은 안드로이드 OS가 가진 intent의 특징으로 가능 한것 같다.

Intent 의 자세한 내용은 안드로이드 API Guide에 있는  Intents and Intent Filters 를 보면 알수 있다.


1. 먼저 실행 하고자 하는 앱의 AndroidManifest.xml 파일에서 실행하고자 하는 Activity아래에 Intent-filter를 선언해준다.


<activity android:name="SearchActionActivity">
             <intent-filter>  
                <action android:name="android.intent.action.VIEW"/>  
                <category android:name="android.intent.category.DEFAULT"/>  
                <category android:name="android.intent.category.BROWSABLE"/>  
                <data android:scheme="callMyApp" android:host="search"/>  
            </intent-filter>
</activity>


2. 웹 브라우저 상에서 링크 설정 방법
- 웹에서 특정 URL형태로 설정을 해줘야 해당 앱이 호출되어 실행 되어 진다.

<a href="callMyApp://search"> 나의 앱 검색 실행 </a>

위와같이 웹페이지에서 링크를 설정해 두면 해당 앱이 설치되어 있으면 해당 SearchActionActivity가 바로 실행 되어지는 걸 알수 있다.

따라서, 다른 액션의 Activity를 실행하고 싶다면 다른 Activity에 intent-filter만 추가해주면 가능하다.

<activity android:name="TakePhotoActionActivity">
             <intent-filter>  
                <action android:name="android.intent.action.VIEW"/>  
                <category android:name="android.intent.category.DEFAULT"/>  
                <category android:name="android.intent.category.BROWSABLE"/>  
                <data android:scheme="callMyApp" android:host="takePhoto"/>  
            </intent-filter>
</activity>

웹에서 호출 방법은

<a href="callMyApp://takePhoto"> 나의 앱 사진 찍기 실행 </a>


3. 필요에 따라서 앱이 설치 되어 있으면 실행하고 설치 되어 있지 않으면 구글 플레이 마켓으로 이동 하고 싶다고 한다면 intent 전달 방식으로 호출 하면 된다.(Android Only)

기본 형식은 아래와 같다.

Intent://[host명]?파라미터=파리미터값
#Intent;scheme=callMyApp;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;package=com.test.myapp;end


간단한 호출 예
<a href="Intent://takePhoto#Intent;scheme=callMyApp;package=com.test.myapp;end">
나의 앱 사진 찍기 실행 </a>




3. 앱에서 파라메터 값 받아서 처리 하기
- 앱에서 호출되어진 Activity 에서 Intent를 통해서 들어온 데이터에서 파라메터 값을 받아서 처리 할수도 있다.

Uri uriData = getIntent().getData();
String photoNumber = uriData.getQueryParameter("photoNumber ");

웹에서 호출
<a href="callMyApp://takePhoto?photoNumber=1"> 나의 앱 1번 사진 보기 </a>


이상으로 웹에서 링크로 안드로이드 앱의 호출을 알아보았습니다.

이것이 되는 것은 Android OS상에서 기본적으로 Intent 호출 방식을 지원하기 때문에 가능하지 않나 생각됩니다.



참고 사이트
http://developer.android.com/guide/components/intents-filters.html
http://developer.naver.com/wiki/pages/UrlScheme