2020년 3월 29일 일요일

[App 만들기] 첫번째 코딩 결과물

Webview app을 제작하기로 했으니, 이제 HTML,CSS,Javascript만 공부하면 된다.

app으로 구현하려는 idea는 있으나, 그건 한참 배움이 필요한 내용이겠고, 첫번째 app으로 '회사내 사전'을 만들기로 했다.
회사의 모든 정보를 한 곳에 모아놓고 그걸 검색해서 보여줄 수 있는 기능이다.
실제로 회사 내부의 수많은 정보들이 곳곳에 흩어져있어서 참고가 안되거나, 찾는데에 많은 시간을 소비하는 경우가 많다. 휴가,복지와 같은 규정들, 문서 양식, 업무 담당자 목록 등 관련은 없지만 그런 내용들을 한 곳에서 참고할 수 있으면 좋을 것이다.
물론 대기업들은 '챗봇'이라는 인공지능까지 결합된 서비스를 사용하지만, 작은 기업에 그럴 필요까지 있겠나. 그래서 내가 만들어보기로 했다.

현대모비스, AI 챗봇 도입 ‘1000만 사내 정보’ 업무 활용

기능은 간단하다.  찾을 정보들의 리스트를 만들고, 그 안에서 제목을 검색하고 그에 맞는 내용들을 보여주면 된다. 즉 검색 기능만 javascript로 구현하면 되겠다.

첫번째 version의 모습.


간단한 기능이지만, 코딩 초보자에게는 절대 쉽지 않다.

] 첫번째 문제: html input창에 입력한 값을 어떻게 javascript로 보내고, 그 결과를 어떻게 html에 다시 표시할까?

] 두번째 문제 : 검색 기능을 어떻게 구현할까?

아래에 하나씩 설명하겠다.
 <div class="input">
      <input type="textplaceholder="용어를 입력하세요id="inputonKeypress="javascript:if(event.keyCode==13) {search()}" />
      <button onclick="search()">찾아보기</button>
    </div>

  html에 검색창을 넣고, enter키(keyCode 13번)가 눌리거나 검색버튼이 클릭되면 javascript의 search()라는 함수를 실행한다.

javascrit에 dic이라는 배열함수를 설정하고, 그 배열 안에 검색할 항목(name)과 그 내용(desc)들을 다 입력했다. 
검색할 데이터들을 javascript 코딩 내용에 다 때려넣었다는 말이다. 엄~청 무식한 방법이다.  초보때는 이런 것도 과정이다. 

 function search(){
      var input=document.getElementById("input").value; //html input에서 입력한 값을 javascript의 input이라는 변수에 입력한다.
      var index = dic.findIndex(i => i.name == input);  // input값과 dic 배열의 name이 같은 객채를 찾아서 그 내용을 통째로 index라는 변수에 넣는다. 
      document.getElementById("output").value=dic[index].catego; // 반환된 dic배열의 값에서 catego의 내용을 html 의 output이라는 id를 가진 곳에 표시한다.
      document.getElementById("output2").value = dic[index].desc1; // 반환된 dic배열의 값에서 desc1의 내용을 html의 output2라는 id를 가진 곳에 표시한다.
      document.getElementById("output3").value = dic[index].desc2; // 반환된 dic배열의 값에서 desc2의 내용을 html의 output3라는 id를 가진 곳에 표시한다.
    }
여기서 이해가 어려운 부분은, index라는 변수에 들어가는게, 1개 값이 들어가는게 아니라(사실, 이게 변수의 상식적인 의미잖아!) ,
배열의 1개 항목이 통째로 들어간다.
index변수의 내용이, "name : 어쩌고, catego : 저쩌고, desc1: 이것저것" 이렇게 다 들어간다.
그것에서 output1,2,3에 각각의 항목을 나눠서 넣어주는 것이다.

이제 html에 script의 내용들이 표시될 곳에 id를 입력해준다. 
  <div class="div3">
        <textarea id="outputstyle="border: none;cols="30rows="2"></textarea>
      </div>
      <div class="div4">
        <textarea id="output2style="border: none;cols="60rows="6"></textarea>
      </div>
      <div class="div5">
        <textarea id="output3style="border: none;cols="60rows="6"></textarea>
      </div>

이렇게 완성이다. 

뭐든지 해놓고나면 간단하지만, 모를때는 깜깜하다. 

더 효율적인 방법으로 version up을 하게된다. 다음 포스트에...





2020년 3월 22일 일요일

[Work Smart] 원노트를 업무 다이어리로 사용하기 (paperless work)

저는 원노트(One note)를 4년째 종이 다이어리 대신에 사용하고 있습니다.
어느날 서랍에 쌓여있는 과거 종이다이어리를 보고는, '언제 열어볼지도 모르는 종이덩어리를 계속 가지고 있어야되나?'라는 생각이 들었고, 그러던 중에 필기를 할 수 있는 태블릿을 발견하면서, 바로 원노트로 다이어리를 바꾸고 paperless 생활에 돌입하게 됩니다.

원노트를 다이어리로 사용하는 장점
 - 종이 다이어리가 차지하는 부피가 없어진다.
    과거 자료를 혹시 찾아볼 일이 있지 않을까 걱정하면서 다이어리를 꾸역꾸역 보관할 필요가 없다.
    혹시 메모를 많이해서 다이어리를 1년에 몇 권씩 사용하는 경우라면 더더욱...
 - 내 모든 데이터를 저장할 수 있다. 
   참고할 데이터를 프린트해서 다이어리에 붙이다보면 뚱뚱해진 다이어리의 경험은 없는지?
 - 다이어리가 바껴도 유지할 자료는 쉽게 옮겨진다.
   정초에 다이어리가 바꼈다고 먼저번 다이어리에서 속지를 옮겨가거나 할 필요가 없다.
   다이어리를 분실해서 기록을 날려먹을 일이 없다. 혹시 태블릿을 잃어버려도 원노트의 자료는 클라우드에 잘 살아있다.
 - 태블릿,노트북,휴대폰의 자료가 동일하게 유지된다.
   내가 고객과 미팅 내용을 써놓고, 자리로 와서 노트북을 열면 그 미팅 내용이 그대로 옮겨져있다.
   고객사 미팅 나가기전에 노트북에서 관련자료를 붙여넣어두면, 미팅할 때 태블릿에서 그 내용을 확인할 수 있다. 이메일이나 문서 폴더를 뒤젂일 필요가 없다.

처음 원노트를 사용하려고하면 막막하긴 하다. 뭐부터 써야하나... 정답은 '그냥 써보는 것'이다. 아무것이나 기록하고 이리저리 분류하면서 본인에게 맞는 방법을 찾아가면 된다.

원노트의 영역은 세 가지로 구분된다. 전자필기장, 섹션, 페이지
   전자필기장 : 다이어리 1권의 개념
   섹션 : 생긴 것처럼 다이어리의 바인더 개념
   페이지 : 기록하는 페이지

나는 직관적으로 년도,월,일로 다이어리를 꾸몄다.
보관해야할  자료들은 별도 섹션을 꾸며놓으면, 필요할때 쉽게 찾아볼 수 있다.
사람에따라 섹션을 관리하는고객사로 만들고 페이지에는 해당 고객사에 관련된 내용만 기입하는 식으로 사용할 수도 있을 것이다.

업무와는 상관없는 개인적인 필기장을 따로 만들어서 관심사들을 따로 스크랩하기에도 좋다.
휴대폰 인터넷에서 찾은 좋은 자료를 '공유하기'로 원노트에 손쉽게 스크랩할 수 있고,
윈도우라면 크롬의 확장프로그램 'OnenNote Web Clipper'가 아주 도움이 된다.



나는 필기할 수 있는(stylus펜이 있는) 태블릿이 있어서 태블릿에 바로 미팅내용들을 기입하지만, 그런 태블릿이 없는 경우에도 난 원노트를 강추한다. 종이에 기입한 내용들을 사진찍r고 위와 같이 원노트로 옮기면 된다.

스타일러스 펜으로 원노트에 필기는 아래의 링크로 대신한다.
https://www.clien.net/service/board/park/9648249


원노트 이외에 노트프로그램의 강자는 에버노트(Evernote)가 있으나, 내 선택은 원노트!
 - 어쩔수 없이 사용할 수 밖에 없는 오피스 프로그램과의 호환이 좋다.
 - 자유로운 필기가 가능하다. (에버노트는 필기 영역과 타이프 영역이 구분된다.)
 - 여러 기기간에 동기화가 훌륭하다.

이 글을 읽고 혹시 필기가 가능한 태블릿을 구입해야겠다 하는 생각이 들었다면, 이제는 또 다른 고민이 시작된다.
윈도우 태블릿이냐, 안드로이드냐, 아이패드냐.... 각 기기의 필기감은 어쩌고저쩌고....
이 내용은 다른 글로 올리기로 하자.

[App만들기] Web view app 만들기

이 블로그를 작성하는 목적은, 전문지식을 알리기 위함이 아니다.
이런 목적으로는 훌륭하신 분들의 사이트가 이미 많다.
나 같이 완전한 비전공자가 App을 만들어 가는 과정을 공유해서, 나처럼 시간,노력을 낭비하지 않게 하기 위함이다.
-------------------------------------------------------------------------------------------------

나는 하이브리드 웹뷰App을 만들어야 한다.
native앱을 만들 능력,시간은 없고, 단순한 웹앱으로 해서는 뽀다구도 안나거니와 구글스토어 등록도 안된다.
하이브리드 웹뷰앱이나 웹앱이나 인터넷 사이트를 보여준다는 건 동일하다.

외관적으로는, 아래처럼 인터넷 주소창이 보이면 웹앱, 안보이면 하이브리드 앱이라고 해도 된다.

하이브리드앱은 프레임워크를 통해서 제작해야하고, 그래서 휴대폰에 apk파일로 설치가 된다. 나중에 개발실력이 좋아지면, 네이티브앱처럼 휴대폰의 센서,카메라 등과 연결되서 활용이 가능하다.

하이브리드 웹뷰앱을 만들면, 나는 웹사이트만 관리하면 된다. 웹사이트의 디자인과 컨텐츠만 변경하면 휴대폰에 설치가 된 app의 내용도 바뀐다. 그러니 HTML,CSS,Javascript만 공부하면 app을 운영할 수 있는거다.

안드로이드스튜디오로 웹뷰를 만들기까지도 한참이나 헤맸다. 이전에 고수들의 블로그 내용이 안드로이드스튜디오가 업데이트 되면서 적용이 안되는 것도 있고, 코드들을 간단히 복붙했더니 중간에 내용을 import 어쩌고 해야되는 것도 있고해서 안됬다.

서론이 길었는데, 아래와 같이 구현했다.
-----------------------------------------------------------------------

] 안드로이드스튜디오에서 새로운 프로젝트를 생성한다.
  Project template는 Empty Activity로 선택



] 생성된 초기화면에서 activity_main.xml로 이동. 아래의 선택 부분을 LinearLayout으로 변경.

] TextView 부분은 삭제하고, WebView 입력


입력라인 :
<WebView    
android:id="@+id/webview"    
android:layout_width="match_parent"    
android:layout_height="match_parent"></WebView>

] MainActivity.java로 이동해서 private 2개 라인 입력


입력라인 :
private WebView webview;
private String url="https://(화면에 보일 인터넷 주소)";

위에서 WebView가 빨간색이면 그 단어에 커서를 두고 alt+enter를 쳐서 import class 실시해주면 빨간색이 없어진다.

] @Override 아래로 입력


입력라인 :
webview=(WebView)findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl(url);
webview.setWebChromeClient(new WebChromeClient());
webview.setWebViewClient(new WebViewClientClass());

빨간색 WebChromeClient()에 커서를 두고 alt+enter를 쳐서 import class 실시.
그 아래의 WebViewClientClass()는 잠시 대기

] 이제 휴대폰에서 뒤로가기를 터치했을때의 동작을 지정해줘야한다.
  첫번째 @Override 입력 완료한 아래에서

ctrl+O를 눌러서 onKeyDown을 입력하고 엔터키 누르면 아래에 새로운 @Override가 생성됨.
중간에 아래 두 개 행을 추가해줌. 뒤로가기를 눌렀을 때의 동작을 지정해주는 것임.



입력라인 :
if((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()){
    webview.goBack();    
return true;}

] 이제 아까 대기했던 빨간색 WebViewClientClass()으로 커서 이동.
  alt+enter를 쳐서 Create inner class 선택. 그러면 맨 아래에 새로운 class 지정라인이 생성된다.

] 생성된 라인에 추가 입력.
  명령을 닫는 } 마크는 항상 주의하자. 이 사소한 입력을 빼먹어서 동작 안되는 이유를 찾느라 많이 고생한다.

입력라인 :
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);    
return true;
}

] 이제 인터넷 권한설정이 필요하다.
app > manifests > AndroidManifest.xml 을 열고 입력해준다.

입력문구 :
<uses-permission android:name="android.permission.INTERNET"/>

자 여기까지 하고 build를 해보면 지정했던 web page가 휴대폰 안으로 들어온 것을 확인할 수 있다.

그런데, 화면 상단에 타이틀바가 있어서 그걸 없애야 한다면, res > values > styles.xml에 아래 두 줄을 추가하자. (왜 같은 내용 두 줄인지 모르겠다. ㅡㅡ;)


<item name="windowNoTitle">true</item>
<item name="windowNoTitle">true</item>


이제 우리는 WebView안에 들어갈 내용을 꾸미기 위해서, HTML,CSS,Javascript만 공부하면 된다.!!
그런데, 좀 더 기능을 넣으려면 Vue, 안드로이드스튜디오, Python ......  @_@



2020년 3월 18일 수요일

[App 만들기] 언어 익숙해지기

내가 글을 쓰는 목적은, 전문지식을 알리기 위함이 아니다.
이런 목적으로는 훌륭하신 분들의 사이트가 이미 많다.
나 같이 완전한 비전공자가 App을 만들어 가는 과정을 공유해서, 나처럼 시간,노력을 낭비하지 않게 하기 위함이다.
-------------------------------------------------------------------------------------------------
비전공자에게는 전공자가 아무리 쉽게 말해준다고 해도 어렵다. 객체,메쏘드,클래스,배열....
이공계 전공자가 뭔가를 설명해줄 때 가장 황당한 건, 갑자기 공식을 들이대면서 '그래서 이렇게 된다'라고 한 마디에 정의를 하는거다. 문돌이는 이해 못한다.








나는 HTML,CSS,Javascript를 배워야 하는데, 제대로 책 펴놓고 해서는 절대 오래 못간다.
옛날 성문영어(너무 오래된 비유....) '명사편'만 손 때 뭍은 그런 결과가 된다.
뭔가를 만들어가면서 결과물을 보고 흥미를 이어가야 한다.
그런 면에서 아래 유튜브가 좋았다. App을 만들어야겠다는 결심을 하게 된 것도, 이 영상들을 먼저보고 흥미가 생긴 영향이 크다.

 조코딩 https://www.youtube.com/channel/UCQNE2JmbasNYbjGAcuBiRRg/featured
 초보궁사 실전코딩 https://www.youtube.com/channel/UCVmD2eUTGL8Ac9fYcplrpgw

그리고, CSS 활용을 배울 수 있는 좋은 유튜브

 CodingNepal  https://www.youtube.com/channel/UCk7xIEmd3MeyhIu2StLX5yA

보기에는 엄청난 효과들을 몇 분만에 만들어내는 실력에 감탄...
네팔 사람인가본데, 지역적 구분을 의미없게 만들어버리는 온라인의 시대에 다시 한 번 감탄...

좀 눈에 익숙해지면, 구체적인 강의들을 찾아보면 되는데, 공부하고 싶은 방향으로 검색어를 구체화시키면 동영상은 쉽게 찾을 수 있다.
Javascript, Android Studio, Cordova, Vue...

수많은 동영상을 올리신 분들에게 박수를 보내고, 꼭 돈 많이 버시기 바랍니다.

내가 이용한 몇 개는,

 센치한 개발자 https://www.youtube.com/channel/UCvb9oqG4CtZ5H4m_NSD1GYA
 개발하는 정대리 https://www.youtube.com/channel/UCutO2H_AVmWHbzvE92rpxjA
 Coding works https://www.youtube.com/channel/UCV5u_ZGPD6WPUPfjc1fPA3A/playlists

그냥 보려면 동영상이 너무 많아서 '재생목록'으로 등록하고 봐야된다.



정말 저 위에 올려진 동영상들만 잘 공부하면 초보app은 무난히 만들 수 있을 것 같다.
그런데, 편하게 동영상을 보면서 실습할 시간이 없다.... ㅠㅜ





2020년 3월 14일 토요일

[App만들기] 프레임워크 결정하기

이제 Javascript로 간단한 프로그램 몇 개를 구현해봤다.
이제 이런 것들을 제대로 된 app으로 만들야겠는데, 여기서 필요한게 프레임워크다.
프레임워크란,  소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합... 어쩌고 하는데, 난 그냥 'app을 만들기 위한 최종 tool'로 이해했다. 

HTML,CSS,Javascript로 만들어놓은 것들을 안드로이드 app으로 만들어야되서 검색하다가 Cordova를 발견했다.


HTML,CSS,JS를 가지고 안드로이드 앱은 물론이고, IOS 앱, 게다가 윈도우프로그램으로까지 만들 수 있다고?!?!  이 말에 뿅갔다.
설치는 쉽지 않다. (난 문돌이다!!)
어쨌든 따라해서 두 개 app을 만들기는 했는데, 이건 좀 아니다 싶은거다.
'내가 왜 도스창에서 낑낑대고 있지?'

그리고 cordova로 만든(사실은 '변환'했다는 표현이 맞다) app은 완전히 웹페이지를 그대로 옮겨놓은 app이었다.
'완전 web view앱은 플레이스토어 등록도 잘 안된다던데... 뭔가 native적인 기능도 필요한거 아닌가...'

그래서, 안드로이드앱을 만들려면 안드로이드스튜디오를 해야한다기에 안드로이드스튜디오를 배우기 시작했다.


뭐든지 처음은 쉽다. 그리고 도스창에서만 놀던 것에 비해서, 안드로이드스튜디오는 더 있어보인다.


화면 구성을 해보고, 버튼으로 동작도 시켜보고 하는데, 어째 기분이 이상하다. 내가 생각했던 Javascript에서 점점 멀어지고 있고, Java나 Kotlin을 배워야하는 분위기가 되간다. 즉, native app을 만들어야될 것 같이 흘러가는거다.

안된다. 내 목표는 웹페이지도 만들고, 그 기반으로 app까지 만드는 것이다.
그리고, 다른 언어를 배울 여유도 없다. Javascript도 초보인데...







아.. 다른 프레임워크를 찾아야겠구나.
검색을 해보는데, 프레임워크도 많고, 자기들이 선택한 프레임워크가 가장 좋다는 말 뿐이다. 아.. 머리 아프다.

2019년 최고의 하이브리드 앱 개발 프레임워크 5가지 - Wishket -

HTML, JavaScript, CSS의 조합으로 모바일 앱을 만들수 있다는 면에서 Ionic과 PhoneGap에 눈이 간다.
(PhoneGap은 일종의 Cordova의 공개 배포판이라고 한다!! PhoneGap이 Cordova의 모든 기능과 추가적인 기능들을 더 포함한다는데, Adobe가 후원한다는게 영 꺼림직하다)

검색을 하다보니 VUE,js가 점점 눈에 띈다.
쉽고, 최근 사용자가 급증하고 있다는...

시간이 넉넉치 않은 취미 문돌이로서는 방향 하나 선택하기가 너무 부담이다.
결국 아래 글을 읽고 VUE로 결정했다.

프레임워크 선택하기 

이제와서 돌아보니 벌써 맛보고 지나온 것들이 몇 개나 된다.

App Inventor, Swing App, Cordova, Android Studio

이제는 정착할 수 있기를...


2020년 3월 12일 목요일

[App만들기] 어디서부터 시작해야 되나....

컴퓨터랑 좀 익숙하니까 App을 만들어봐야겠다 하고 나섰는데, 막막하다.
무슨 언어부터 배워야하나부터 모르겠다. 무슨 언어는 이렇게 많은지... Java, Javascript, C++, Python, Go...
Java와 Javascript가 아예 다른 언어라는 걸 알고 깜짝 놀랐었다. 이 둘의 관계에 대한 가장 명쾌한 설명은, '인도와 인도네시아의 관계'라는 것이었다. 그냥 이름만 비슷하지, 아예 다른 존재라는 것.
Python이 최근 핫한 언어라는 건 들었는데, 내 선택은 Javascript로 했다.
 ] 내가 그나마 친숙한 HTML과 같이 쓴다는 것
 ] 내가 native App을 만들것도 아니고, Webview 정도로 해야할텐데, Web에는 Javascript라는 것.
 ] Javascript 오픈소스가 많다는 것 (다른 언어들도 많겠지...)

옛날 같으면 책부터 샀겠지만, 유튜버의 조언대로 프로젝트를 꾸며가면서 필요한 부분만 배워가면서 하기로 했다.
내가 만들어야할 첫 번째 프로젝트를 결정했다. 회사Dictionary app!
회사의 모든 정보를 넣어놓은 사전이다. 실제로 필요하기도 하겠고, 사전 개념이니까 여러 메뉴가 필요한 것도 아니겠다 싶다.

인터넷에 Javascript를 검색했다. 와.... 이렇게 많은 무료강좌,블로그,유튜브 영상이 있음에 놀랐다. 내 앞에 새로운 세상의 문이 열리는 순간이었다.

목표를 정하고, 일단 Javascript의 기초는 알아야하니까 하나하나 강의를 본다.
엄청난 강의들을 무료로 올려주신 분들에게 감사를 드리고 싶다.

  생활코딩 : https://opentutorials.org/course/1
  TCP school : http://tcpschool.com/
  MDN web docs : https://developer.mozilla.org/ko/

강의에 올려진 소스들의 내용을 바꿔가면서 해보는데, 웹에서 바로 코딩을 해서 결과를 확인해볼 수 있는 것도 감동이었다.  아래의 사이트는 정말 편하게 이용하고 있다.
https://repl.it/~

그래도, 코든 에디터는 있어야지. 이것을 결정하는 것도 무지 고민이었다. 뭐 알아야 고르지...
Visual Studio code(VS code)와 ATOM, 둘 중에서 고민하다가 VS code로 정착할 것 같다.
내가 코딩하는 걸 바로 볼 수 있는 건 ATOM이 더 좋은데, 한 번 ATOM에서 길게 코딩해놓은 것이 뒤섞이는 걸 경험하고는 바로 VS code로 바꿔탔다.

VS code에 여러 add-on을 설치하고, 강의의 예제를 입력해보니  코드가 컬러풀하게 색깔도 변하고... 이미 프로그래머가 된 듯한 기분이...




2020년 3월 8일 일요일

[App만들기] 나도 App을 만들어봐야겠다!!

누구나 돈을 많이 갖고 싶다는 생각을 하고, 나도 그렇다.
그러면서 '내가 정말 하고 싶은게 뭐지?'라는 고민도 했다.
최고는 '내가 하고 싶은 일을 하면서 돈을 버는 것'인데, 나는 내가 뭘 하고 싶어하는지도 아직 잘 모르겠고, 부자가 되고 싶다고 생각하면서도 그에 대한 열정도 부족하다.
어쨌든 뭔가는 해야겠고.... (적당한게 없다고 가만히 있으면, 아무 일도 일어나지 않는다는 건 진리다.)
그러다가 작정한게 '나도 App을 만들어보자'다. 혹시 아나? 내가 세상을 놀랠 app을 만들게 될지도...

내가 생각하는 나는,
 - 부자가 되겠다고 생각하고 재테크 책을 읽고 있으나, 정작 돈에 대한 열망이 부족하고, 재테크 쪽에 영 흥미가 가지 않는다.
 - 컴퓨터 관련 IT를 좋아한다.
 - 뭔가를 만들어내서 보여주기(자랑하기?)를 좋아한다.
 - 과거에 내가 뭘 할 때 장시간 몰두했던가를 생각해보니, 옛날 윈도우를 몇 번씩 포맷하고 새로 설치할 때, 홈페이지 만들때, 동영상 제작할 때, 엑셀 가지고 고민할 때.... 몇 개 없지만 그래도 컴퓨터 관련이었을 때 몰두를 할 수 있었다.

그래서, App을 만들어보겠다고 결정했다.
 - 이전에 홈페이지를 만들어봐서 HTML에 조금 익숙하고, 엑셀 함수가지고 고민을 많이해서 코딩적 사고 방식에 좀 친숙하지 않을까...
 - 초반에 포기했었지만, 이전에 Java 공부해보겠다고 책 사놓고 한 챕터는 읽었다.
 - 내가 생각하는 아이디어를 내가 직접 구현해보고 싶다.
 - 지금 생각하는 아이디어를 구현한 app을 내놓고 나면, 분명히 수요는 있겠고, 다소 전문적이기도 하니까, $1에 유료버젼도 먹힐 수 있을 것 같다.
 - 내가 혹시 몇 년 뒤에까지 코딩을 계속 공부해서 일정 수준이 되면, 이것이 내 인생 후반기의 직업이 될 수도 있겠다. 90살이 되더라도 키보드 칠 힘은 남아 있겠지.
 - 코딩의 1인자가 될 필요는 없다. 아이디어를 구현할 수 있을 정도만 되면 된다.

30대 초반에 프로그래밍을 공부해보겠다고 사이버대학을 신청했다가 1학기 만에 집어던진 적이 있었다. 그럼에도 한 참 지난 지금에 다시 시작하려는 건, 아래의 글의 영향이 컸고,

<어느 95세 어른의 수기>

그래서, 피터드러커의 공부법을 이제서나마 실행에 옮기려고 한다.

“나는 3년 또는 4년마다 다른 주제를 선택한다. 그 주제는 통계학, 중세 역사, 일본 미술, 경제학 등 매우 다양하다.
3년 정도 공부한다고 해서 그 분야를 완전히 터득할 수는 없겠지만, 그 분야가 어떤 것인지를 이해하는 정도는 충분히 가능하다.
그런 식으로 나는 60여 년 이상 동안 3년 내지 4년마다 주제를 바꾸어 공부를 계속 해오고 있다."

2020년 3월 5일 목요일

[Work Smart] 아웃룩 메일 발송 지연 설정

바쁘게 돌아가는 하루에 메일을 정신없이 쓰다가 보내기 버튼을 눌러놓고 '아차!!!' 한 적은 일반 직장인이라면 없을 수 없을 것이다.
큰 실수까지는 아니어도, 수신인을 누락시켰거나, 해야될말이 보내놓고 막 생각나거나, 메일을 작성하는 도중에 보내기 버튼이 잘못 눌렸거나 등등...
이런 가벼운 실수를 만회해줄 수 있는 방법이, "아웃룩 보내기 지연".

나는 1~2분 정도 보내기 지연을 해놓는다.
그러면, 의외로 위와 비슷한 실수 때문에 아직 발송대기 상태의 메일을 수정하는 일이 종종 있다. 이미 발송되버렸으면 포기하겠으나, 조금이라도 메일을 완전하게 할 수 있다면 수정하는게 마땅하지 않겠나.
--------------------------------------------

먼저 규칙마법사를 실행해야되는데, 이게 항상 하는 '규칙만들기'로 들어가서는 안된다.
우리는 받는 메일이 아니라, 보내는 메일에 대해서 규칙을 지정해야 하기 때문에, '규칙 및 알람 관리'로 들어가서 '새규칙'으로 들어간다.








맨 아래쪽에 '보낸 메시지에 규칙 적용'






























첫번째 메뉴에서 '이 컴퓨터에서만' 선택,
두번째 메뉴에서 '몇 분 동안 배달 지연'을 선택하고 아래 창에서 몇 분동안 지연시킬지 클릭,입력해준다.

















그리고 규칙의 이름 지정하고 저장해주면 끝.







------------------------------------------------------------

대부분의 일이 그렇듯 방법은 간단하다. 그걸 해야겠다고 생각하지 못하는게 첫번째 문제이고, 실행에 옮기지 않는게 두 번째 문제이다. 개선을 해야겠다고 생각하면, 이미 누군가가 고민해서 인터넷에 다~~ 올려놨다.
뉴턴이 말했다는 “내가 더 멀리 보았다면 이는 거인들의 어깨 위에 올라서 있었기 때문이다.”라는 문구가 인터넷을 검색할때마다 실감난다. (저 말은 뉴턴이 독창적으로 한 말이아니고 그 전부터 일반적으로 표현하던 문구라고 한다.)

2020년 3월 1일 일요일

[Work Smart] 마우스 제스쳐 프로그램 StrokeIt

우리는 하루 업무의 대부분을 컴퓨터와 함께 보내면서 손에 꼭 쥐고 있는 것이 마우스다.
손목에 가는 무리를 줄여보려고 여러가지 편안한 마우스를 비싼 돈 주고 사는데.....







마우스 움직이는 걸 한 번이라도 줄이는게 더 좋지 않겠나?
윈도우 창 닫으려고 구석의 X표까지 마우스로 왔다갔다하는 것을 줄이고, 마우스를 살짝 움직여서 윈도우 창을 닫거나 탭을 이동할 수 있으면 업무 속도도 확 올라간다.

마우스 제스쳐 프로그램으로 몇 가지가 있는데, 나는 StrokeIt으로 정착했다.
StrokeIt의 가장 큰 장점은, 무료다. ㅎㅎ
기능적으로는 윈도우의 모든 프로그램에서 돌아간다. (일부 제스쳐 프로그램은, 크롬에서 사용이 안된다는....)

아래와 같은 다양한 제스쳐에 동작들을 지정해서 사용할 수 있다.
















그러나, 기본 설정된대로 사용해도 충~~분하다. 그마저도 일부만 써도 역시 충~~분하다.
다만, 크롬 사용을 위해서는 추가등록이 필요한데,
















Google Chrome을 선택하고 Application identifiers에서 CLASS:Chrome_WidgetWin_0을 1로 변경해주면 된다.

이제 사용하면 되는데, 나는 아래의 제스쳐 정도만 쓴다.

















혹시 별 것 아니라고 생각한다면, 하루에 저 동작을 몇 번이나 하는지 가만히 생각해보라.
그리고, 탭이나 프로그램을 닫으려고 구석의 작은 X표시에 마우스를 반복해서 가져가는데 잘 클릭이 안될때도 많다.

일단 저 동작에 익숙해지면, 업무능률 10% 이상 향상은 보장한다.

마우스 몇 번 클릭? 그게 쌓여서 업무시간을 아끼고 더 창조적인 시간 활용을 만들어낼 수 있다.

단, 어쩌다가 남의 컴퓨터를 만질 때 제스쳐 프로그램이 없어서 없던 짜증이 올라오는 단점은 있다.