tag:blogger.com,1999:blog-75066375302951511922024-02-08T04:57:30.834+09:00G Won's Programmer프로그래밍 관련 이야기DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-7506637530295151192.post-54994884554343634262023-02-03T14:22:00.002+09:002023-02-03T14:22:49.794+09:00Getting Started with JavaScript: A Beginner's Guide<p><span style="font-size: medium;"> Introduction:</span></p><p><span style="font-size: medium;">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.</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">What is JavaScript?</span></p><p><span style="font-size: medium;">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.</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Getting Started:</span></p><p><span style="font-size: medium;">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.</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Variables:</span></p><p><span style="font-size: medium;">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:</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">var message = "Hello, World!";</span></p><p><span style="font-size: medium;">console.log(message);</span></p><p><span style="font-size: medium;">Output: Hello, World!</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Data Types:</span></p><p><span style="font-size: medium;">JavaScript has several data types, including numbers, strings, booleans, and objects. For example:</span></p><p><span style="font-size: medium;">var num = 42;</span></p><p><span style="font-size: medium;">var str = "Hello, World!";</span></p><p><span style="font-size: medium;">var bool = true;</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Operators:</span></p><p><span style="font-size: medium;">JavaScript has several operators that you can use to perform mathematical operations and comparisons. For example:</span></p><p><span style="font-size: medium;">var num1 = 10;</span></p><p><span style="font-size: medium;">var num2 = 20;</span></p><p><span style="font-size: medium;">var result = num1 + num2;</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">console.log(result);</span></p><p><span style="font-size: medium;">Output: 30</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Functions:</span></p><p><span style="font-size: medium;">Functions are blocks of code that perform specific tasks and can be reused throughout your code. For example:</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">function sayHello(name) {</span></p><p><span style="font-size: medium;">console.log("Hello, " + name + "!");</span></p><p><span style="font-size: medium;">}</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">sayHello("John");</span></p><p><span style="font-size: medium;">Output: Hello, John!</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Conclusion:</span></p><p><span style="font-size: medium;">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.</span></p><p><span style="font-size: medium;"><br /></span></p><p><span style="font-size: medium;">Refrence Site:</span></p><p><span style="font-size: medium;">https://javascript.info/</span></p><p><span style="font-size: medium;">https://developer.mozilla.org/ko/docs/Web/JavaScript</span></p>DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-73073849237647286432021-07-29T02:37:00.001+09:002021-07-29T02:40:54.430+09:00My Simple App Privacy Policy <p> </p><p class="ls2 lh6 bs5 ts4"><em class="emphasis">< My Company >('http://gwons.blogspot.com/'이하 'My Simple App')</em>은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다.</p><p class="ls2">○ 이 개인정보처리방침은 <em class="emphasis">2021</em>년 <em class="emphasis">7</em>월 <em class="emphasis">20</em>부터 적용됩니다.</p><p class="lh6 bs4"><strong>제1조(개인정보의 처리 목적)<br /><br /><em class="emphasis">< My Company >('http://gwons.blogspot.com/'이하 'My Simple App')</em>은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.</strong></p><ul class="list_indent2 mgt10"><p class="ls2">1. 홈페이지 회원가입 및 관리</p><p class="ls2">만14세 미만 아동의 개인정보 처리 시 법정대리인의 동의여부 확인 목적으로 개인정보를 처리합니다.</p><p class="ls2">2. 재화 또는 서비스 제공</p><p class="ls2">콘텐츠 제공을 목적으로 개인정보를 처리합니다.</p></ul><p class="lh6 bs4"><strong>제2조(개인정보의 처리 및 보유 기간)</strong>① <em class="emphasis">< My Company ></em>은(는) 법령에 따른 개인정보 보유·이용기간 또는 정보주체로부터 개인정보를 수집 시에 동의받은 개인정보 보유·이용기간 내에서 개인정보를 처리·보유합니다.② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.</p><ul class="list_indent2 mgt10"><li class="tt">1.<재화 또는 서비스 제공></li><li class="tt"><재화 또는 서비스 제공>와 관련한 개인정보는 수집.이용에 관한 동의일로부터<지체없이 파기>까지 위 이용목적을 위하여 보유.이용됩니다.</li><li>보유근거 : 서비스 제공</li><li>관련법령 : 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년</li><li>예외사유 : </li></ul><p class="lh6 bs4"><strong>제3조(개인정보의 제3자 제공)</strong> ① <em class="emphasis">< My Company >은(는) 개인정보를 제1조(개인정보의 처리 목적)에서 명시한 범위 내에서만 처리하며, 정보주체의 동의, 법률의 특별한 규정 등 「개인정보 보호법」 제17조 및 제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.</em></p><p class="sub_p mgt10">② <span class="colorLightBlue"><my company=""></my></span>은(는) 다음과 같이 개인정보를 제3자에게 제공하고 있습니다.</p><ul class="list_indent2 mgt10"><li class="tt">1. <></li><li>개인정보를 제공받는 자 : </li><li>제공받는 자의 개인정보 이용목적 : 이메일</li><li>제공받는 자의 보유.이용기간: 지체없이 파기</li></ul><p class="lh6 bs4"><strong>제4조(개인정보처리 위탁)</strong> ① <em class="emphasis">< My Company ></em>은(는) 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.</p><ul class="list_indent2 mgt10"><li class="tt">1. <></li><li>위탁받는 자 (수탁자) : </li><li>위탁하는 업무의 내용 : </li><li>위탁기간 : </li></ul><p class="sub_p mgt10">② <span class="colorLightBlue"><my company=""></my></span>은(는) 위탁계약 체결시 「개인정보 보호법」 제26조에 따라 위탁업무 수행목적 외 개인정보 처리금지, 기술적․관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리․감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다.</p><p class="sub_p mgt10">③ 위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.</p><br /><br /><p class="lh6 bs4"><strong>제5조(정보주체와 법정대리인의 권리·의무 및 그 행사방법)</strong></p><p class="ls2"><br /><br />① 정보주체는 My Company에 대해 언제든지 개인정보 열람·정정·삭제·처리정지 요구 등의 권리를 행사할 수 있습니다.</p><p class="sub_p">② 제1항에 따른 권리 행사는My Company에 대해 「개인정보 보호법」 시행령 제41조제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 My Company은(는) 이에 대해 지체 없이 조치하겠습니다.</p><p class="sub_p">③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다.이 경우 “개인정보 처리 방법에 관한 고시(제2020-7호)” 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.</p><p class="sub_p">④ 개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.</p><p class="sub_p">⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.</p><p class="sub_p">⑥ My Company은(는) 정보주체 권리에 따른 열람의 요구, 정정·삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.</p><p class="lh6 bs4"><strong>제6조(처리하는 개인정보의 항목 작성) </strong> ① <em class="emphasis">< My Company ></em>은(는) 다음의 개인정보 항목을 처리하고 있습니다.</p><ul class="list_indent2 mgt10"><li class="tt">1< 재화 또는 서비스 제공 ></li><li>필수항목 : 이메일</li><li>선택항목 : </li></ul><p class="lh6 bs4"><strong>제7조(개인정보의 파기)<em class="emphasis"></em></strong></p><p class="ls2">① < My Company > 은(는) 개인정보 보유기간의 경과, 처리목적 달성 등 개인정보가 불필요하게 되었을 때에는 지체없이 해당 개인정보를 파기합니다.② 정보주체로부터 동의받은 개인정보 보유기간이 경과하거나 처리목적이 달성되었음에도 불구하고 다른 법령에 따라 개인정보를 계속 보존하여야 하는 경우에는, 해당 개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관장소를 달리하여 보존합니다.1. 법령 근거 :2. 보존하는 개인정보 항목 : 계좌정보, 거래날짜③ 개인정보 파기의 절차 및 방법은 다음과 같습니다.1. 파기절차 < My Company > 은(는) 파기 사유가 발생한 개인정보를 선정하고, < My Company > 의 개인정보 보호책임자의 승인을 받아 개인정보를 파기합니다.</p><p class="sub_p mgt10"></p><p class="lh6 bs4"><strong>제8조(개인정보의 안전성 확보 조치)<em class="emphasis">< My Company ></em>은(는) 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취하고 있습니다.</strong></p><p class="sub_p mgt10">1. 내부관리계획의 수립 및 시행 개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.</p><p class="lh6 bs4"><strong>제9조(개인정보 자동 수집 장치의 설치•운영 및 거부에 관한 사항)</strong></p><p class="ls2"><br /><br />My Company 은(는) 정보주체의 이용정보를 저장하고 수시로 불러오는 ‘쿠키(cookie)’를 사용하지 않습니다.</p><p class="sub_p mgt30"><strong>제10조 (개인정보 보호책임자) </strong></p><p class="sub_p mgt10"> ① <span class="colorLightBlue">My Company</span> 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.</p><ul class="list_indent2 mgt10"><li class="tt">▶ 개인정보 보호책임자 </li><li>성명 :Jungjiwon</li><li>직책 :Manager</li><li>직급 :Developer</li><li>연락처 : stopone77@gmail.com, </li></ul><p class="sub_p">※ 개인정보 보호 담당부서로 연결됩니다.</p><p> </p><ul class="list_indent2 mgt10"><li class="tt">▶ 개인정보 보호 담당부서</li><li>부서명 :</li><li>담당자 :</li><li>연락처 :, , </li></ul><p class="sub_p">② 정보주체께서는 My Company 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. My Company 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.</p><p class="sub_p mgt30"><strong>제11조(개인정보 열람청구) 정보주체는 「개인정보 보호법」 제35조에 따른 개인정보의 열람 청구를 아래의 부서에 할 수 있습니다.<br /><my company=""></my></strong></p><p></p><p></p><p></p><p></p>은(는) 정보주체의 개인정보 열람청구가 신속하게 처리되도록 노력하겠습니다. <ul class="list_indent2 mgt10"><li class="tt">▶ 개인정보 열람청구 접수·처리 부서 </li><li>부서명 : </li><li>담당자 : </li><li>연락처 : , , </li></ul><p class="lh6 bs4"><strong>제12조(권익침해 구제방법)<em class="emphasis"></em></strong></p><br /><br />정보주체는 개인정보침해로 인한 구제를 받기 위하여 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보침해신고센터 등에 분쟁해결이나 상담 등을 신청할 수 있습니다. 이 밖에 기타 개인정보침해의 신고, 상담에 대하여는 아래의 기관에 문의하시기 바랍니다.<br /><br />
1. 개인정보분쟁조정위원회 : (국번없이) 1833-6972 (www.kopico.go.kr)<br />
2. 개인정보침해신고센터 : (국번없이) 118 (privacy.kisa.or.kr)<br />
3. 대검찰청 : (국번없이) 1301 (www.spo.go.kr)<br />
4. 경찰청 : (국번없이) 182 (cyberbureau.police.go.kr)<br /><br />
「개인정보보호법」제35조(개인정보의 열람), 제36조(개인정보의 정정·삭제), 제37조(개인정보의 처리정지 등)의 규정에 의한 요구에 대 하여 공공기관의 장이 행한 처분 또는 부작위로 인하여 권리 또는 이익의 침해를 받은 자는 행정심판법이 정하는 바에 따라 행정심판을 청구할 수 있습니다.<br /><br />
※ 행정심판에 대해 자세한 사항은 중앙행정심판위원회(www.simpan.go.kr) 홈페이지를 참고하시기 바랍니다.<p class="lh6 bs4"><strong>제13조(개인정보 처리방침 변경)<em class="emphasis"></em></strong></p><br /><p class="sub_p">① 이 개인정보처리방침은 2021년 7월 20부터 적용됩니다.</p><p class="sub_p"></p><p class="sub_p"></p><p class="sub_p">② 이전의 개인정보 처리방침은 아래에서 확인하실 수 있습니다. </p>DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-8557986333985726822020-02-13T11:36:00.001+09:002020-02-13T11:40:50.497+09:00Rust에서 소유권의 이동Rust에서 소유권의 이동 (move)<br />
<br />
<br />
<pre><code class="rust">
let a = String::from("hello");
let b = a;
println!("{}", a); // error
</code></pre>
에러가 발생되는데 이유는 a의 소유권이 b로 이전된후 a는 메모리에서 해제 되었기 때문이다.
DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-53458071175806966732019-12-16T18:28:00.003+09:002019-12-16T18:29:21.811+09:00앞으로 우보천리(牛步千里) 마음가짐으로...그동안 나 자신에게 바쁘다는 핑계로 블로그 작성을 소홀 하였지만<br />
앞으로 한걸음씩 나간다는 생각으로 우보천리(牛步千里)의 마음가짐으로<br />
다시 시작하려 한다...DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-77162187397487689432018-06-15T16:05:00.001+09:002018-06-15T16:05:07.994+09:00Machine Learning StudyMachine Learning 공부할겸 정리 해봅니다.<br />
<br />
<ul>
<li><a href="https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471" target="_blank"> Machine Learning is Fun 원문사이트 </a></li>
</ul>
<ul>
<li><a href="https://medium.com/@jongdae.lim/%EA%B8%B0%EA%B3%84-%ED%95%99%EC%8A%B5-machine-learning-%EC%9D%80-%EC%A6%90%EA%B2%81%EB%8B%A4-part-1-9a0297198ad8" target="_blank">임종대님의 번역 사이트</a></li>
</ul>
<br />
<ul>
<li>기계 학습(Machine Learning)이란 무엇인가?</li>
</ul>
<br />
기계 학습은 문제를 해결하기 위한 맞춤 코드(custom code)를 작성하지 않고도 일련의 데이터에 대해 무언가 흥미로운 것을 알려줄 수 있는 일반 알고리즘(generic algorithms)이 있다는 아이디어입니다.<br />
<br />
<br />
<ul>
<li>좀더 공부해 볼것들</li>
<li><a href="https://www.coursera.org/learn/machine-learning" target="_blank">coursera Machine Learning 강좌 </a></li>
<li><a href="http://scikit-learn.org/stable/" target="_blank">파이선 프레임의 워크 기계학습 알고리즘</a> </li>
</ul>
<br />
<span style="background-color: white; color: rgba(0 , 0 , 0 , 0.84); font-family: , "georgia" , "cambria" , "times new roman" , "times" , serif; font-size: 21px; letter-spacing: -0.063px;"><br /></span>
<span style="background-color: white; color: rgba(0 , 0 , 0 , 0.84); font-family: , "georgia" , "cambria" , "times new roman" , "times" , serif; font-size: 21px; letter-spacing: -0.063px;"><br /></span>
<br />
<br />DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-22668929236227549072018-03-28T16:35:00.002+09:002018-06-15T16:04:41.198+09:00Tell, don’t Ask요구하지 말고 설명해라. Tell don't ask.<br />
<br />
요구하는 식으로 프로그래밍 하지말고 설명하는 방식으로<br />
프로그래밍 하라.<br />
<br />
참고 사이트<br />
https://martinfowler.com/bliki/TellDontAsk.html<br />
https://pragprog.com/articles/tell-dont-ask<br />
https://robots.thoughtbot.com/tell-dont-ask<br />
<br />
심플 예제 설명<br />
http://www.tzavellas.com/techblog/2007/02/17/a-simple-example-of-tell-dont-ask/<br />
<br />
데미테르의 법칙 (Law of demeter).<br />
http://blog.aliencube.org/ko/2013/12/06/law-of-demeter-explained/DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-7627359300255676382018-03-28T16:08:00.002+09:002018-03-28T16:08:13.965+09:00함수형 프로그래밍 관련 용어 공부 정리<b>다형성이란 (polymorphic) ?</b><br />
<br />
다형성이란 상위클래스 타입의 변수에 여러개의 하위클래스의 객체를 참조할 수 있도록 하는것을 이야기 한다. 즉 같은 타입이지만 오른쪽에 실제 런타임중에 new되는 객체(하위클래스)의<br />
메소드가 실행되어 동일한 메소드가 다양한 형태를 표출한다는 것 이다.<br />
<br />
다음과 같은 장점이 있다.<br />
<br />
1. 여러 타입의 객체를 하나의 타입으로 관리하니 유지보수가 좋다.<br />
(변경 사항 발생시 다형성으로 구현하지 않았을 때의 절반이상 코딩양 준다.)<br />
<br />
2. 메속드의 매개변수(인자)로 상위 클래스, 추상 클래스, 인터페이스등이 온다면<br />
그 하위클래스, 인터페이스를 구현한 클래스등이 인자로 들어 갈 수 있어 좀 더<br />
유연한 프로그래밍을 할 수 있다. (당연히 이부분도 프로그램의 유지보수 차원에서 좋다)<br />
<br />
3. 확장성이 좋은 코드를 작성할 수 있고, 결합도가 강하지 않은 프로그래밍을 할 수 있다.<br />
<br />
참조 사이트<br />
http://whatisthenext.tistory.com/34<br />
http://asfirstalways.tistory.com/168<br />
https://brunch.co.kr/@kd4/4<br />
<br />
<br />DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com1tag:blogger.com,1999:blog-7506637530295151192.post-58775127367072276992016-01-29T10:59:00.000+09:002016-01-29T11:05:03.687+09:00훌륭한 프로그래머 되는법 PART 1Chapter 1. 코드에 신경 쓰기<br />
<br />
- 좋은 코드를 작성하려면 코드에 신경을 써야 한다. 훌륭한 프로그래머가 되려면 시간과 노력을 투자해야 한다.<br />
<br />
- 코드에 대한 감정적 반응은 잘못된 것이 아니다. 훌륭한 결과물을 자랑스러워 하거나 더러운 코드에<br />
혐오감을 느끼는 것은 건전하다는 증거다.<br />
<br />
<br />
누군가가 작성한 프로그램 코드를 보다 보면 잘 짜여진 코드를 보면 왜이렇게 짜여져 있는지 이해하기도 쉽고 직관적이다. 하지만 반대의 경우에는 이해하기도 어렵고 짜증이 날때가 있다. 프로그램은 혼자서 만드는것이 아닌 타인을 위해서라도 작성하는 코드에 신경을 써야 한다.<br />
<br />
<br />
<br />DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-41557792444969613752015-11-02T13:09:00.003+09:002015-11-02T13:09:54.002+09:00Vi Editor Setting.vimrc 파일<br />
<br />
셋팅 내용<br />
<br />
set number " line 표시를 해줍니다.<br />
set ai " auto index<br />
set si " smart index<br />
set cindent " c style index<br />
set shiftwidth=4 " shift를 4칸으로 ( >, >>, <, << 등의 명령어)<br />
set tabstop=4 " tab을 4칸으로<br />
set ignorecase " 검색시 대소문자 구별하지않음<br />
set hlsearch " 검색시 하이라이트(색상 강조)<br />
set expandtab " tab 대신 띄어쓰기로<br />
set background=dark " 검정배경을 사용할 때, (이 색상에 맞춰 문법 하이라이트 색상이 달라집니다.)<br />
set nocompatible " 방향키로 이동가능<br />
set fileencodings=utf-8,euc-kr " 파일인코딩 형식 지정<br />
set bs=indent,eol,start " backspace 키 사용 가능<br />
set history=1000 " 명령어에 대한 히스토리를 1000개까지<br />
set ruler " 상태표시줄에 커서의 위치 표시<br />
set nobackup " 백업파일을 만들지 않음<br />
set title " 제목을 표시<br />
set showmatch " 매칭되는 괄호를 보여줌<br />
set nowrap " 자동 줄바꿈 하지 않음<br />
set wmnu " tab 자동완성시 가능한 목록을 보여줌<br />
<br />
syntax on " 문법 하이라이트 onDevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-22014370933880295502015-10-02T15:23:00.003+09:002015-10-02T15:26:21.327+09:00JavaScript closures 기본 개념JavaScript closures 개념<br />
<br />
<br />
<pre class="brush: javascript;">function add()
{
var count = 0;
function plus()
{
count += 1;
}
plus();
return count;
}
add();
add();
add();
</pre>
add() 함수를 호출하여 count 값을 출력해보면 항상 1 이 나온다.<br />
count는 add() 함수 안에서 지역변수로 add()함수를 실행 하면 count = 0 으로 초기화 하기 때문이다.<br />
<br />
<br />
<br />
<pre class="brush: javascript;">function add()
{
var count = 0;
function plus()
{
return count += 1;
}
return plus;
}
var myFun = add();
myFun();
myFun();
alert(myFun());
</pre>
add()함수 내부에서 리턴값으로 plus함수 자체를 리턴해주면 외부에서 count값을 증가 시켜주는것이<br />
가능하게 된다.<br />
myFun 변수에 plus의 함수자체를 할당하여 외부에서 호출이 가능하게 된 것이다.<br />
이로써 count값이 3으로 표시 될것이다. 이것을 활용하여 이벤트를 할당하거나 callback개념으로<br />
JavaScript closures를 사용할 수도 있다. 자세한 사용방법은 아래 참조 사이트를 참조하기 바란다.<br />
<br />
<br />
참조 사이트<br />
<a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures">https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures</a><br />
<br />
<a href="http://www.w3schools.com/js/js_function_closures.asp">http://www.w3schools.com/js/js_function_closures.asp</a><br />
<br />
<br />
<br />
<br />DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-300544776224186072015-08-26T17:11:00.001+09:002015-09-25T10:29:53.312+09:00Android dialog custom webview 적용..<pre class="brush: java;">
String webViewString = yourMeta + yourCss + yourHtml;
yourCustomWebView.loadData(webViewString, "text/html; charset=UTF-8", null);
yourAlertDialog.setView(yourCustomWebView);
</pre>DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-73179934065099581802015-06-28T00:27:00.001+09:002015-06-28T15:06:47.321+09:002015년 독서 노트<끝까지 해내는 힘><div>나카무라 슈지, 비즈니스북스<div>- 무엇보다 하나를 끝까지 해보는것이 중요하다.</div><div><br></div><div><독서는 절대 나를 배신하지 않는다></div><div>사이토 다카시, 걷는나무</div><div>- 독서를 통해서 삶의 지식, 지혜를 얻을수 있다. 꾸준히 독서를 하다보면 조금씩 내공이 쌓여 더욱 심도 있는 독서를 할수 있게된다. 독서를 통해서 삶을 변화시킬수 있는 힘을 가지게된다.</div></div>DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-76817158340425723752015-06-27T22:23:00.001+09:002015-06-27T22:28:52.267+09:00한가지 일을 끝까지 해내는 것 지금 것 나는 어떤 한가지 일을 온전히 끝까지 해내온 것이 많지 않은것 같다.<div><br></div><div> 그것이 어떤 일이든 끝까지 해내어야지 교훈을 얻든 후회를 하든 온전한 자기 것이 되는 것이다.</div><div><br></div><div> 우리는 대부분 어려운 일에 부딧히거나 힘이들면 중도에 포기해버리는 일이 많을 것이다. 그러면 아무런 남는 것이 없을 것이고 어떠한 교훈도 얻을수 없다.</div><div><br></div><div> 온전히 자신의 노력으로 끝까지 해내는것이 중요하다.</div><div><br></div><div> 벽을 기어 올라가서라도 끝까지 해내라.</div><div>시간이 걸려도 상관없다. 멀리 돌아가도 좋다.</div><div>서툴러도 괜찮다.</div><div>어쨋든 하나를 완성하는 일.</div><div>이것이 가장 중요하다.</div><div><br></div><div><br></div><div><br></div><br><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTpTSuSOvlUlCVl59HUBEQD7jlFzvRYYOAPT_HP48Pi8zl1pC_tO-5eB26D64ZZNlzTZkY5vBGVPLXwqqajk9c36Y4oxS3dFvs8j0iAClpl25Nv30rQvkpLsOu-6nXftBZjf_BrScUNFo/s640/blogger-image--26471834.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTpTSuSOvlUlCVl59HUBEQD7jlFzvRYYOAPT_HP48Pi8zl1pC_tO-5eB26D64ZZNlzTZkY5vBGVPLXwqqajk9c36Y4oxS3dFvs8j0iAClpl25Nv30rQvkpLsOu-6nXftBZjf_BrScUNFo/s640/blogger-image--26471834.jpg"></a></div>DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-65674053826228449752015-05-12T08:38:00.001+09:002015-09-02T10:18:03.209+09:00The lifecycle of an Android Activity<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ8jLRdHlYQrlgKaukqW9fFIXSYrUVa5nMiwbGuXwhIfKcdpFQx4DUK6ikuacssHkaGc2OQxnAe4zKqB_Cx_6DOLea68SZhul05_4mDo_uMwdY4YM4aJtxn8qFtjBFYZJonMq2v0BFB3Y/s1600/Android-Activity-Lifecycle.png" imageanchor="1"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ8jLRdHlYQrlgKaukqW9fFIXSYrUVa5nMiwbGuXwhIfKcdpFQx4DUK6ikuacssHkaGc2OQxnAe4zKqB_Cx_6DOLea68SZhul05_4mDo_uMwdY4YM4aJtxn8qFtjBFYZJonMq2v0BFB3Y/s640/Android-Activity-Lifecycle.png" width="496" /></a></div>
<div class="page" title="Page 137">
</div>
DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-51375608494847096652015-04-22T17:25:00.006+09:002015-04-22T17:25:59.045+09:00게임기획 관련 사이트 모음게임 기획 관련 사이트 링크 공유 합니다.<br />
<br />
관심 있으신분들은 한번쯤 보시면 좋을거 같습니다.<br />
<br />
<br />
<a href="https://docs.google.com/spreadsheets/d/1ilNZmmFuLGt0EPf0QMlygSo5KI9lDVPZ4P_Yin0ip9k/pubhtml">https://docs.google.com/spreadsheets/d/1ilNZmmFuLGt0EPf0QMlygSo5KI9lDVPZ4P_Yin0ip9k/pubhtml</a><br />
<br />DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-57418139510131592572015-03-27T17:36:00.000+09:002015-03-27T17:36:37.461+09:00프로그래머로서 보다 나은 삶프로그래머로 살아가면서 보다 나은 삶을 살려면 어떻게 해야되는가?<br />
<br />
보다 나은 삶이란 무엇인가? 현재보다 좀더 나은 생활 경제적인 여건 등이 나아지는것을 말하는걸까?<br />
<br />
내가 원하는 프로그래머로서의 삶은 하고싶은 일을 하면서 취미로 프로그램 개발을 하고 책도 쓰고, 다른 개발자들에게 조금이나마 도움이 되는 삶을 사는 것이다.<br />
<div>
<br /></div>
<div>
하지만, 현실은 삶을 살아가는 것 자체가 목적이 되어서 먹고 살기 위해서 일을 하며 개발이란 그저 현재 프로그램이 이상없이 돌아가기만을 바라는 것 같다.</div>
<div>
<br /></div>
<div>
이렇게 살아가는 것이 내가 원하던 것은 아니지만, 열악한 환경속에서 좀더 개발자로서 노력을 하며 자기계발도 꾸준히 해야겠다.</div>
<div>
<br /></div>
<div>
현실에 만족하면 더이상 발전은 없고, 꿈이 없으면 삶에 의미가 없다.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br />
<br /></div>
DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-63028891308240637412014-11-21T13:40:00.000+09:002014-11-26T13:22:48.255+09:00JAVA 한글 깨질경우 인코딩 확인하기한글이 깨질경우 간단하게 자바에서 인코딩을 확인해본다.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">String originalStr <span style="color: #333333;">=</span> <span style="background-color: #fff0f0;">"Å×½ºÆ®"</span><span style="color: #333333;">;</span> <span style="color: #888888;">// 테스트 </span>
String <span style="color: #333333;">[]</span> charSet <span style="color: #333333;">=</span> <span style="color: #333333;">{</span><span style="background-color: #fff0f0;">"utf-8"</span><span style="color: #333333;">,</span><span style="background-color: #fff0f0;">"euc-kr"</span><span style="color: #333333;">,</span><span style="background-color: #fff0f0;">"ksc5601"</span><span style="color: #333333;">,</span><span style="background-color: #fff0f0;">"iso-8859-1"</span><span style="color: #333333;">,</span><span style="background-color: #fff0f0;">"x-windows-949"</span><span style="color: #333333;">};</span>
<span style="color: #008800; font-weight: bold;">for</span> <span style="color: #333333;">(</span><span style="color: #333399; font-weight: bold;">int</span> i<span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span><span style="color: #333333;">;</span> i<span style="color: #333333;"><</span>charSet<span style="color: #333333;">.</span><span style="color: #0000cc;">length</span><span style="color: #333333;">;</span> i<span style="color: #333333;">++)</span> <span style="color: #333333;">{</span>
<span style="color: #008800; font-weight: bold;">for</span> <span style="color: #333333;">(</span><span style="color: #333399; font-weight: bold;">int</span> j<span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span><span style="color: #333333;">;</span> j<span style="color: #333333;"><</span>charSet<span style="color: #333333;">.</span><span style="color: #0000cc;">length</span><span style="color: #333333;">;</span> j<span style="color: #333333;">++)</span> <span style="color: #333333;">{</span>
<span style="color: #008800; font-weight: bold;">try</span> <span style="color: #333333;">{</span>
System<span style="color: #333333;">.</span><span style="color: #0000cc;">out</span><span style="color: #333333;">.</span><span style="color: #0000cc;">println</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"["</span> <span style="color: #333333;">+</span> charSet<span style="color: #333333;">[</span>i<span style="color: #333333;">]</span> <span style="color: #333333;">+</span><span style="background-color: #fff0f0;">","</span> <span style="color: #333333;">+</span> charSet<span style="color: #333333;">[</span>j<span style="color: #333333;">]</span> <span style="color: #333333;">+</span><span style="background-color: #fff0f0;">"] = "</span> <span style="color: #333333;">+</span> <span style="color: #008800; font-weight: bold;">new</span> String<span style="color: #333333;">(</span>originalStr<span style="color: #333333;">.</span><span style="color: #0000cc;">getBytes</span><span style="color: #333333;">(</span>charSet<span style="color: #333333;">[</span>i<span style="color: #333333;">]),</span> charSet<span style="color: #333333;">[</span>j<span style="color: #333333;">]));</span>
<span style="color: #333333;">}</span> <span style="color: #008800; font-weight: bold;">catch</span> <span style="color: #333333;">(</span>UnsupportedEncodingException e<span style="color: #333333;">)</span> <span style="color: #333333;">{</span>
e<span style="color: #333333;">.</span><span style="color: #0000cc;">printStackTrace</span><span style="color: #333333;">();</span>
<span style="color: #333333;">}</span>
<span style="color: #333333;">}</span>
<span style="color: #333333;">}</span>
</pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #333333;">
</span></pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #333333;">
</span></pre>
<pre style="line-height: 125%; margin: 0;"><span style="background-color: red; color: #333333;">OutPut</span></pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #333333;">
</span></pre>
<pre style="margin: 0px;"><span style="color: #333333;"><span style="line-height: 16.25px;">[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] = ��Ʈ
<span style="background-color: yellow;">[iso-8859-1,euc-kr] = 테스트</span>
<span style="background-color: yellow;">[iso-8859-1,ksc5601] = 테스트</span>
[iso-8859-1,iso-8859-1] = Å×½ºÆ®
<span style="background-color: yellow;">[iso-8859-1,x-windows-949] = 테스트</span>
[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] = ?×½ºÆ®</span></span></pre>
<pre style="margin: 0px;"><span style="color: #333333;"><span style="line-height: 16.25px;">
</span></span></pre>
<pre style="margin: 0px;"></pre>
</div>
DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-76850497349280487162014-11-20T17:28:00.001+09:002014-11-26T13:22:32.911+09:00Android 웹뷰에서 첨부파일처리1. 첨부 업로드<div><br></div><div>2. 첨부 다운로드</div>DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-9553297210985047252014-11-17T14:02:00.001+09:002014-11-26T13:22:10.509+09:00Android 웹 브라우저 링크로 앱 실행 방법안드로이드 자체 브라우저로 특정 앱을 실행 하는 것이 가능하다.<br />
<br />
이것은 안드로이드 OS가 가진 intent의 특징으로 가능 한것 같다.<br />
<br />
Intent 의 자세한 내용은 안드로이드 API Guide에 있는 <a href="http://developer.android.com/guide/components/intents-filters.html" target="_blank">Intents and Intent Filters</a> 를 보면 알수 있다.<br />
<br />
<br />
<b>1. 먼저 실행 하고자 하는 앱의 AndroidManifest.xml 파일에서 실행하고자 하는 Activity아래에 Intent-filter를 선언해준다.</b><br />
<br />
<br />
<activity android:name="SearchActionActivity"><br />
<b> <intent-filter> </b><br />
<b> <action android:name="android.intent.action.VIEW"/> </b><br />
<b> <category android:name="android.intent.category.DEFAULT"/> </b><br />
<b> <category android:name="android.intent.category.BROWSABLE"/> </b><br />
<b> <data android:scheme="callMyApp" android:host="search"/> </b><br />
<b> </intent-filter></b><br />
</activity><br />
<br />
<br />
<b>2. 웹 브라우저 상에서 링크 설정 방법</b><br />
- 웹에서 특정 URL형태로 설정을 해줘야 해당 앱이 호출되어 실행 되어 진다.<br />
<br />
<a href="callMyApp://search"> 나의 앱 검색 실행 </a><br />
<br />
위와같이 웹페이지에서 링크를 설정해 두면 해당 앱이 설치되어 있으면 해당 SearchActionActivity가 바로 실행 되어지는 걸 알수 있다.<br />
<br />
따라서, 다른 액션의 Activity를 실행하고 싶다면 다른 Activity에 intent-filter만 추가해주면 가능하다.<br />
<br />
<activity android:name="TakePhotoActionActivity"><br />
<b> <intent-filter> </b><br />
<b> <action android:name="android.intent.action.VIEW"/> </b><br />
<b> <category android:name="android.intent.category.DEFAULT"/> </b><br />
<b> <category android:name="android.intent.category.BROWSABLE"/> </b><br />
<b> <data android:scheme="callMyApp" android:host="takePhoto"/> </b><br />
<b> </intent-filter></b><br />
</activity><br />
<br />
웹에서 호출 방법은<br />
<br />
<a href="callMyApp://takePhoto"> 나의 앱 사진 찍기 실행 </a><br />
<br />
<br />
<b>3. 필요에 따라서 앱이 설치 되어 있으면 실행하고 설치 되어 있지 않으면 구글 플레이 마켓으로 이동 하고 싶다고 한다면 intent 전달 방식으로 호출 하면 된다.(Android Only)</b><br />
<br />
<b>기본 형식은 아래와 같다.</b><br />
<br />
Intent://[host명]?파라미터=파리미터값<br />
#Intent;scheme=callMyApp;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;package=com.test.myapp;end<br />
<br />
<br />
<b>간단한 호출 예</b><br />
<a href="Intent://takePhoto#Intent;scheme=callMyApp;package=com.test.myapp;end"><br />
나의 앱 사진 찍기 실행 </a><br />
<br />
<br />
<br />
<br />
<b>3. 앱에서 파라메터 값 받아서 처리 하기</b><br />
- 앱에서 호출되어진 Activity 에서 Intent를 통해서 들어온 데이터에서 파라메터 값을 받아서 처리 할수도 있다.<br />
<br />
Uri uriData = getIntent().getData();<br />
String photoNumber = uriData.getQueryParameter("photoNumber ");<br />
<br />
웹에서 호출<br />
<a href="callMyApp://takePhoto?photoNumber=1"> 나의 앱 1번 사진 보기 </a><br />
<br />
<br />
이상으로 웹에서 링크로 안드로이드 앱의 호출을 알아보았습니다.<br />
<br />
이것이 되는 것은 Android OS상에서 기본적으로 Intent 호출 방식을 지원하기 때문에 가능하지 않나 생각됩니다.<br />
<br />
<br />
<br />
<b>참고 사이트</b><br />
<a href="http://developer.android.com/guide/components/intents-filters.html">http://developer.android.com/guide/components/intents-filters.html</a><br />
<a href="http://developer.naver.com/wiki/pages/UrlScheme">http://developer.naver.com/wiki/pages/UrlScheme</a><br />
<br />
<br />DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com1tag:blogger.com,1999:blog-7506637530295151192.post-15611388934003445882014-10-20T17:25:00.001+09:002014-11-26T13:21:38.517+09:00Practicing programming site<a href="http://sites.google.com/site/steveyegge2/blog-rants">http://sites.google.com/site/steveyegge2/blog-rants</a><br />
<a href="http://sites.google.com/site/steveyegge2/practicing-programming">http://sites.google.com/site/steveyegge2/practicing-programming</a><br />
<a href="https://www.blogger.com/goog_1752875123"><br /></a>
<a href="http://www.sciam.com/article.cfm?id=the-expert-mind&print=true">http://www.sciam.com/article.cfm?id=the-expert-mind&print=true</a><br />
<a href="http://www.codinghorror.com/blog/archives/000300.html">http://www.codinghorror.com/blog/archives/000300.html</a><br />
<a href="http://www.codekata.com/">http://www.codekata.com</a><br />
<a href="https://www.blogger.com/goog_1752875141"><br /></a>
<a href="http://en.wikipedia.org/wiki/Kata_(martial_arts)">http://en.wikipedia.org/wiki/Kata_(martial_arts)</a><br />
<a href="http://codingdojo.org/">http://codingdojo.org</a>DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0tag:blogger.com,1999:blog-7506637530295151192.post-20694659743717125912014-10-20T11:34:00.000+09:002014-10-22T10:19:25.150+09:00프로그래머로 살아가기 프로그래머로 살아가면서 나의 생각들을 블로그에 정리해본다.DevJhttp://www.blogger.com/profile/11185337143635365558noreply@blogger.com0