2017년 3월 18일 토요일

우분투 서버 타임존 변경하기 ubuntu / server timezone

우분투 서버 타임존을 변경할 생각을 안하고
계속 숫자를 더해서 해결해 오다가
결국 날짜가 꼬여버려서 ㅎㅎ

결국 타임존을 변경하게 되었다 ㅎㅎ

방법은 단순하다

date

를 쳐서 타임존을 확인하고,
지금 우리 시간이랑 다르면 변경해야하는데

(
현재 서버 타임존이 뭔지 궁금하면 먼저 확인을 해볼 수도 있다
more /etc/timezone

나는 Etc/UTC로 나오더라
Asia/Seoul로 되어야 한다
)

아래 명령어로 변경한다
sudo dpkg-reconfigure tzdata

이건 나는 처음 보는 명령어였는데,
놀랍게도 인터럭티브 화면이 나오더라 ㅎㅎ
그냥 Asia 선택하고
South Korea를 선택하면 끝!

이제 서버는 우리나라 시간이 되었고,
나는 수많은 서버에서 돌아가는 봇들의 시간과....
크론잡을 수정해야된다 ㅎㅎ
기술 부채라니 ㅜㅠㅠ

2017년 2월 26일 일요일

동기적 vs 비동기적 ( Synchronous vs Asynchronous )

동기적 Synchronous

- 작업이 끝날 때까지 기다린 후 다음 작업 수행

비동기적 ASynchronous
 
 - 다른 작업을 하고 있다가, 요청했던 작업이 끝나면 추가 작업 수행

인데, 맨날 헷갈리고 아직도 잘 모르겠다

2017년 2월 9일 목요일

의대 과외, 페달링 프리미엄



이런저런 과외 사이트에 아무렇게나 등록된 선생님이 아닙니다.
상위 0.05%의 세계, 검증된 의대 선생님을 소개시켜드립니다.

2017년 1월 24일 화요일

구글 독스(Google Docs) 응답을 받을때 Slack으로 받기

사실 그 동안 google apps script를 써보고 싶었는데, (시도도 몇번했지만) 너무 귀찮고 꼭 받아봐야하는 응답들이 생겨서, 대충 구글링 하다가 성공해 버렸다.

오늘 할 것은 사용자가 설문을 제출 할 경우, 제출한 내용을 슬랙으로 보내는 아주 간단한 내용이지만, 스크립트의 함수를 어떻게 연결하는지에 대한 방법도 있으니, 어쩌면 이거 하나만 보면 앱스 스크립트는 다 쓸 줄 안다고 생각해도 될지 모르겠다.

일단 나는 그런 느낌이다.

1. 구글 폼을 제작한다. (원하시는 대로 알아서)
2. 우측 상단의 메뉴버튼을 눌러서, 스크립트 편집기를 연다

3.그럼 이런 친구가 우릴 반기는데


4. 이 function 위에 한줄을 입력하고,

var POST_URL = "https://hooks.slack.com/services/$@$@$!$(웹훅 주소)";

5. myFunction()안에 아래 내용을 입력한다

var response = form.response.getItemResponses();
 
  // 슬랙으로 보내고 싶은 문항을 정리한다
  var x = response[0].getItem().getTitle();
  var y = response[0].getResponse();
  var z = x + ' ' + y
  var msg =
      { "payload": '{"text": "' + z + '"}' }

   var options =
   {
     "method" : "post",
     "payload" : msg
   };

   UrlFetchApp.fetch(POST_URL, options);


 // Make a POST request with form data.
 var resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt');
 var formData = {
   'name': 'Bob Smith',
   'email': 'bob@example.com',
   'resume': resumeBlob
 };
 // Because payload is a JavaScript object, it will be interpreted as
 // as form data. (No need to specify contentType; it will automatically
 // default to either 'application/x-www-form-urlencoded'
 // or 'multipart/form-data')
 var options = {
   'method' : 'post',
   'payload' : formData
 };
 UrlFetchApp.fetch('https://httpbin.org/post', options);

response[]는 각 항의 질문과, 답변을 가지고 있으며, getItem().getTitle()로 제목을,  getResponse()로 답변을 가져올수 있다.

6. 이제 myFunction을, 트리거로 설정한다.

다음과 같이 위의 메뉴에서 [리소스] -> [현재 프로젝트의 트리거]를 누르고,
(파일이름이 저장 안되었다면 저장하고)

새 트리거를 추가한다.


그리고 아래와 같이 설정한다.
myFunction을 / 설문지에서 / 제출시에 실행한다는 얘기다!

쉽다! 이것까지만 이해하면 아주 쉽다!

이렇게 생각해보면 사실 안에다 코드를 안넣고, 구글링한 다른 이름의 function들로 덮어 씌워도 된다.
뭐가 메인함수인지만 안다면 말이다.

이름이 myFuncion()일때부터 알아서 하세요 라고 말했던거다.
심지어 저게 어떤 trigger의 default로 설정되어있지도 않아서 난 좀 불편하다고 여겼는데, 어떻게 보면 당연할지도.

이제 그러면 설문지를 제출할때마다! 슬랙으로 알림이 오게 된다!
구글 앱스 스크립트는 js니까, 이제 이것만알면 뭐든지 할 수 있을것 같은 기분이다 ㅎㅎ