<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="https://dev-eunji.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://dev-eunji.github.io/" rel="alternate" type="text/html" /><updated>2022-01-19T09:21:43+00:00</updated><id>https://dev-eunji.github.io/feed.xml</id><title type="html">EJ’s Dev Blog</title><subtitle>An amazing website.</subtitle><author><name>HELLO :)</name></author><entry><title type="html">[TIL] 202201 - 3</title><link href="https://dev-eunji.github.io/til/2022/01/17/TIL/" rel="alternate" type="text/html" title="[TIL] 202201 - 3" /><published>2022-01-17T00:00:00+00:00</published><updated>2021-01-19T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2022/01/17/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2022/01/17/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;알고리즘 3문제&lt;/p&gt;

    &lt;ul class=&quot;task-list&quot;&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43164&quot;&gt;43164, 여행경로&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/60057&quot;&gt;60057, 문자열 압축&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/92334&quot;&gt;92334, 신고 결과 받기&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;‘인공지능 개론’ 읽기 (4장~5장)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;딥러닝 첫걸음 정리하기&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;출퇴근 길에 책을 읽고 있다. 생각보다 훨씬 많은 양을 읽을 수 있다는 것을 알게 되었다.
(매주 한 권 이상을 읽을 수 있었다 -&amp;gt; 철학은 어떻게 삶의 무기가 되는가, 딥러닝 첫걸음, 요가 매트만큼의 세계)&lt;/li&gt;
&lt;/ul&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[TIL] 202201 - 1</title><link href="https://dev-eunji.github.io/til/2022/01/03/TIL/" rel="alternate" type="text/html" title="[TIL] 202201 - 1" /><published>2022-01-03T00:00:00+00:00</published><updated>2021-01-03T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2022/01/03/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2022/01/03/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;알고리즘 7문제&lt;/p&gt;

    &lt;ul class=&quot;task-list&quot;&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/68936&quot;&gt;68936, 쿼드압축 후 개수 세기&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/77885&quot;&gt;77885, 2개 이하로 다른 비트&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/87946&quot;&gt;87946, 피로도&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/87390&quot;&gt;77885, n^2 배열 자르기&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42587&quot;&gt;42587, 프린터&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43164&quot;&gt;43164, 여행경로&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43162&quot;&gt;43162, 네트워크&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12905&quot;&gt;12905, 가장 큰 정사각형 찾기&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42584&quot;&gt;42584, 주식가격&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/60057&quot;&gt;60057, 문자열 압축&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;‘인공지능 개론’ 읽기 (1장~3장)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;쿼드트리(Quad Tree)&lt;/code&gt;란, 하나의 부모 노드 아래 자식 노드를 4개씩 가지는 트리.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;덱(Deque)&lt;/code&gt;은 양뱡향 큐로, 시작/끝에 값을 넣거나 빼는데 최적화되어있다: O(1)&lt;/li&gt;
  &lt;li&gt;DFS/BFS로 풀 때 시간초과가 나는 문제들 중 DP 로 풀 수 있는 경우가 있다.
    &lt;ul&gt;
      &lt;li&gt;DP는 작은 문제를 쌓아서 풀 수 있을 때 사용할 수 있다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[TIL] 2021.11.15 - 2021.11.21</title><link href="https://dev-eunji.github.io/til/2021/11/15/TIL/" rel="alternate" type="text/html" title="[TIL] 2021.11.15 - 2021.11.21" /><published>2021-11-15T00:00:00+00:00</published><updated>2021-11-15T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2021/11/15/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2021/11/15/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;programmers&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;TODO: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12914&quot;&gt;12914&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42895&quot;&gt;42895&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/60059&quot;&gt;60059&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;Compose week2 done&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;Compose week3 1/2&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;h3 id=&quot;fork-한-메인-respository와-sync-맞추기&quot;&gt;Fork 한 메인 respository와 sync 맞추기.&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;나의 remote 브랜치 확인하기
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ git remote -v&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;upstream 으로 메인 respository 추가하기
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ git remote add upstream [메인 respository 주소]&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;upstream 의 최신 업데이트 확인하기
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ git featch upstream&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;나의 remote 브랜치와 merge 하기
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ git merge upstream/main&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;변경사항이 있다면 push 하기
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$ git push origin main&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;life&quot;&gt;Life&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Window pc 를 저번 주부터 세팅하고 있다. IDE들도 설치하고, 크롬과 소스트리 등도 설치하고 있다. 몇 년 만에 Window pc를 세팅해본다. 이번에는 Window와 기본 드라이버들도 처음으로 설치해보았는데, 새로운 기술 하나가 생긴 것 같아서 뿌듯했다. pc 를 원하는 사양으로 과감하게 샀더니 쾌적하고 좋다.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[TIL] 2021.10.18 - 2021.10.24</title><link href="https://dev-eunji.github.io/til/2021/10/18/TIL/" rel="alternate" type="text/html" title="[TIL] 2021.10.18 - 2021.10.24" /><published>2021-10-18T00:00:00+00:00</published><updated>2021-10-21T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2021/10/18/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2021/10/18/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;programmers&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;TODO: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/67257&quot;&gt;67257&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;DONE: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12978&quot;&gt;12978&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;‘파이썬 증권 데이터 분석’ 1/2&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;파이썬 프로그램 자동화 세팅 및 포스팅&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://diana-lab.tistory.com/3&quot;&gt;crontab을 이용하여 파이썬 프로그램을 자동 스케줄링하는&lt;/a&gt;
방법을 배웠다. 하고 싶은게 있으면 방법은 찾아진다 ㅎㅎ&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;장소를 바꿔 upbit API 중 private API를 호출하니, 에러가 발생했다. (인증된IP가 아닙니다.) -&amp;gt; 해결: upbit &amp;gt; open API 관리 &amp;gt; IP 추가&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/8081545/how-to-convert-list-of-tuples-to-multiple-lists&quot;&gt;python 튜플을 여러개의 리스트로 변환하는 방법&lt;/a&gt; : &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zip()&lt;/code&gt; 사용&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;main -&amp;gt; exception! 'zip' object is not subscriptable&lt;/code&gt; &lt;a href=&quot;https://stackoverflow.com/questions/27431390/typeerror-zip-object-is-not-subscriptable/27431433&quot;&gt;에러 발생 해결&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;unziped_hprs = list(zip(*hprs))&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;life&quot;&gt;Life&lt;/h2&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[Python] 파이썬 코드로 Slack 전송하기</title><link href="https://dev-eunji.github.io/auto%20system/send-slack/" rel="alternate" type="text/html" title="[Python] 파이썬 코드로 Slack 전송하기" /><published>2021-10-16T00:00:00+00:00</published><updated>2021-10-16T00:00:00+00:00</updated><id>https://dev-eunji.github.io/auto%20system/send-slack</id><content type="html" xml:base="https://dev-eunji.github.io/auto%20system/send-slack/">&lt;h1 id=&quot;intro&quot;&gt;Intro.&lt;/h1&gt;

&lt;p&gt;자동 프로그램을 돌릴 때, 특정 상황에서 메시지를 받고 싶은 경우가 있다.
메시지를 내 Slack 채널로 전송하는 방법과 짧은 코드를 알아보자.&lt;/p&gt;

&lt;h1 id=&quot;방법&quot;&gt;방법&lt;/h1&gt;

&lt;h3 id=&quot;1-slack-워크스페이스-및-채널-생성&quot;&gt;1. Slack 워크스페이스 및 채널 생성&lt;/h3&gt;

&lt;h5 id=&quot;a-slack-홈페이지--새-워크스페이스-생성-버튼-클릭--워크스페이스-생성&quot;&gt;A. &lt;a href=&quot;&quot;&gt;slack&lt;/a&gt; 홈페이지 &amp;gt; 새 워크스페이스 생성 버튼 클릭 &amp;gt; 워크스페이스 생성&lt;/h5&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/auto_system/send_slack1.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;b-워크스페이스-생성&quot;&gt;B. 워크스페이스 생성&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;워크스페이스 버튼 클릭
&lt;img src=&quot;/assets/images/auto_system/send_slack2.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;1단계: 워크스페이스 이름 입력
&lt;img src=&quot;/assets/images/auto_system/send_slack3.png&quot; width=&quot;450&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;2단계: 간단한 설명 작성&lt;/li&gt;
  &lt;li&gt;3단계: 건너뛰기&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2-봇-역할을-수행할-앱-생성-및-궈한-부여&quot;&gt;2. 봇 역할을 수행할 앱 생성 및 궈한 부여&lt;/h3&gt;

&lt;h5 id=&quot;a-slack-api-홈페이지--create-an-app-버튼-클릭--create-new-app-버튼-클릭&quot;&gt;A. &lt;a href=&quot;https://api.slack.com&quot;&gt;slack API&lt;/a&gt; 홈페이지 &amp;gt; ‘Create an app’ 버튼 클릭 &amp;gt; ‘Create new app’ 버튼 클릭&lt;/h5&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/auto_system/send_slack7.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;From scratch&lt;/code&gt; 선택한 후, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;앱 이름(봇의 이름)&lt;/code&gt;을 입력하고 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;워크스페이스&lt;/code&gt;를 선택한다.
&lt;img src=&quot;/assets/images/auto_system/send_slack8.png&quot; width=&quot;450&quot; /&gt;
&lt;img src=&quot;/assets/images/auto_system/send_slack9.png&quot; width=&quot;450&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;b-사이드-메뉴--settingsoauth--permissions-메뉴&quot;&gt;B. 사이드 메뉴 &amp;gt; Settings/OAuth &amp;amp; Permissions 메뉴&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;아래로 스크롤하여 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Scopes&lt;/code&gt; 를 지정해준다. (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Bot Token Scops&lt;/code&gt;)
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chat:write&lt;/code&gt;와 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chat:write.public&lt;/code&gt; 권한을 부여한다.&lt;/li&gt;
      &lt;li&gt;각각 메시지 보내기 권한과 멤버가 아닌 채널로 메시지 보내기 권한이다.
&lt;img src=&quot;/assets/images/auto_system/send_slack11.png&quot; width=&quot;450&quot; /&gt;
&lt;img src=&quot;/assets/images/auto_system/send_slack12.png&quot; width=&quot;450&quot; /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;3-테스트&quot;&gt;3. 테스트&lt;/h3&gt;

&lt;h5 id=&quot;a-사이드-메뉴--settingsoauth--permissions-에서-확인-가능한-bot-user-oauth-token을-복사한다&quot;&gt;A. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;사이드 메뉴 &amp;gt; Settings/OAuth &amp;amp; Permissions&lt;/code&gt; 에서 확인 가능한 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Bot User OAuth Token&lt;/code&gt;을 복사한다.&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;코드의 token_bot 변수에 붙여넣기 한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;b-아래-코드를-프로그램에-작성한-후-실행--채널에-메시지가-들어온-것을-확인한다&quot;&gt;B. 아래 코드를 프로그램에 작성한 후 실행 &amp;gt; 채널에 메시지가 들어온 것을 확인한다.&lt;/h5&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/auto_system/send_slack15.png&quot; width=&quot;500&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;코드&quot;&gt;코드&lt;/h1&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;requests&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;datetime&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;token_bot&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;xoxb-...&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;channel_name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;#...&quot;&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;send_slack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;token&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;response&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;requests&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;https://slack.com/api/chat.postMessage&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                             &lt;span class=&quot;n&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Authorization&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Bearer &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;token&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
                             &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;channel&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;# &amp;lt;Response [200]&amp;gt;
&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;message&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;now&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'[%m/%d %H:%M:%S] '&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;HELLO WORLD!&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;send_slack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;token_bot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channel_name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;참고&quot;&gt;참고&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://api.slack.com&quot;&gt;slack API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developerdk.tistory.com/96&quot;&gt;조코딩의블로그&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/INVESTAR/StockAnalysisInPython/blob/master/08_Volatility_Breakout/ch08_03_EtfAlgoTrader.py&quot;&gt;INVESTAR/StockAnalysisInPython&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><author><name>HELLO :)</name></author><category term="Auto System" /><category term="python" /><category term="slack" /><summary type="html">Intro.</summary></entry><entry><title type="html">[TIL] 2021.10.12 - 2021.10.18</title><link href="https://dev-eunji.github.io/til/2021/10/12/TIL/" rel="alternate" type="text/html" title="[TIL] 2021.10.12 - 2021.10.18" /><published>2021-10-12T00:00:00+00:00</published><updated>2021-10-12T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2021/10/12/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2021/10/12/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;programmers&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;TODO: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/67257&quot;&gt;67257&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;DONE: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42890&quot;&gt;42890&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/60058&quot;&gt;60058&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;‘하면 된다! 퀀트 투자’ 완독&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;‘가상화폐 투자 마법 공식’ 완독 - 2회&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://wikidocs.net/21898&quot;&gt;네이버 주식 일별 시세를 가져오는 실습&lt;/a&gt;을 하면서, 2가지 에러를 만나 해결했다.&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;
        &lt;dl&gt;
          &lt;dt&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pandas ssl error&lt;/code&gt;&lt;/dt&gt;
          &lt;dd&gt;파이썬이 설치된 위치에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Install Certificates.command&lt;/code&gt; 을 더블클릭하여 실행시켜준다.&lt;/dd&gt;
        &lt;/dl&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;dl&gt;
          &lt;dt&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ValueError: Notables found&lt;/code&gt;&lt;/dt&gt;
          &lt;dd&gt;header를 추가하여 요청한다. &lt;a href=&quot;https://dasom.net/147&quot;&gt;참고&lt;/a&gt;&lt;/dd&gt;
        &lt;/dl&gt;
      &lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;업비트 API가 응답이 갑자기 없어서 홈페이지에 들어가 보니, ‘서비스점검중’ 이었다.
흠.. timeout을 걸 수 있는 방법을 찾아봐야겠다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;https://stackoverflow.com/questions/62086686/how-to-extract-values-from-pandas-series-without-index&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;life&quot;&gt;Life&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;나를 숨 쉬게 하는 보통의 언어들&lt;/code&gt;을 읽었다. 단어들이 품은 섬세한 감정들에 대해 공감했고, 솔직한 문장들에 위로를 받았다.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[TIL] 2021.10.04 - 2021.10.10</title><link href="https://dev-eunji.github.io/til/2021/10/04/TIL/" rel="alternate" type="text/html" title="[TIL] 2021.10.04 - 2021.10.10" /><published>2021-10-04T00:00:00+00:00</published><updated>2021-10-04T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2021/10/04/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2021/10/04/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;programmers&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;TODO: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/60058&quot;&gt;60058&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;DONE: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12946&quot;&gt;12946&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42628&quot;&gt;42628&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/49191&quot;&gt;49191&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/86052&quot;&gt;86052&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/86491&quot;&gt;86491&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/86971&quot;&gt;86971&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;‘하면 된다! 퀀트 투자’ 1/2&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;‘퀀트전략 파이썬으로 세워라’ ~ 03.데이터 수집하기&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FinanceDataReader&lt;/code&gt;: 금융데이터를 쉽게 크롤링할 수 있는 파이썬 라이브러리&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;$ pip install finance-datareader&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;변동성 돌파 전략&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pip install&lt;/code&gt; 시, 다음과 같은 에러가 발생한다면: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Command &quot;python setup.py egg_info&quot; failed with error code 1 in /private/var/folders/7l/_1ls92gs4mx3j0108hmpkx980000gn/T/pip-build-eREqZA/pip&lt;/code&gt;
$ sudo -H pip3 install –upgrade –ignore-installed pip setuptools&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;pip setuptools 재설치하여 해결할 수 있다. &lt;a href=&quot;https://musclebear.tistory.com/131&quot;&gt;참고&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;파이썬 쓰레드, PyQt5를 사용한 프로그램을 만들어보았다!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;python3 SSL 이슈가 발생했다. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;life&quot;&gt;Life&lt;/h2&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[TIL] 2021.09.27 - 2021.10.03</title><link href="https://dev-eunji.github.io/til/2021/09/27/TIL/" rel="alternate" type="text/html" title="[TIL] 2021.09.27 - 2021.10.03" /><published>2021-09-27T00:00:00+00:00</published><updated>2021-09-27T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2021/09/27/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2021/09/27/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;programmers&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;TODO: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12946&quot;&gt;12946&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/49191&quot;&gt;49191&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/60058&quot;&gt;60058&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/86052&quot;&gt;86052&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;DONE: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12952&quot;&gt;12952&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/77485&quot;&gt;77485&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;‘세진쌤의 바로 영어’ 끝&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;div class=&quot;language-kotlin highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;py&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;List&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;?&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;null&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;?.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;isNullOrEmpty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// null 이다. (true가 아님)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;life&quot;&gt;Life&lt;/h2&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[TIL] 2021.09.20 - 2021.09.26</title><link href="https://dev-eunji.github.io/til/2021/09/20/TIL/" rel="alternate" type="text/html" title="[TIL] 2021.09.20 - 2021.09.26" /><published>2021-09-20T00:00:00+00:00</published><updated>2021-09-20T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2021/09/20/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2021/09/20/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;programmers&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;TODO:&lt;/li&gt;
      &lt;li&gt;DONE: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12949&quot;&gt;12949&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12951&quot;&gt;12951&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/12953&quot;&gt;12953&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42577&quot;&gt;42577&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42579&quot;&gt;42579&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42583&quot;&gt;42583&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42627&quot;&gt;42627&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42842&quot;&gt;42842&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42888&quot;&gt;42888&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43162&quot;&gt;43162&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/60057&quot;&gt;60057&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/62048&quot;&gt;62048&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/68645&quot;&gt;68645&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/70129&quot;&gt;70129&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/72411&quot;&gt;72411&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/72412&quot;&gt;72412&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/76502&quot;&gt;76502&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/83201&quot;&gt;83201&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;table&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;[ ] programmers [앱 프로젝트 과제&lt;/td&gt;
          &lt;td&gt;K-MOOC 강좌정보 서비스](https://programmers.co.kr/skill_check_assignments/168)&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; /&gt;Class101 비즈니스 영어 3,4장 복습 (40문장)&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;Class101 in/on/at/for/with/up/down/off/out&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;Class101 have/make/take/get/give/keep/put 문장들 복습.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;h2 id=&quot;life&quot;&gt;Life&lt;/h2&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry><entry><title type="html">[TIL] 2021.09.13 - 2021.09.19</title><link href="https://dev-eunji.github.io/til/2021/09/13/TIL/" rel="alternate" type="text/html" title="[TIL] 2021.09.13 - 2021.09.19" /><published>2021-09-13T00:00:00+00:00</published><updated>2021-09-13T00:00:00+00:00</updated><id>https://dev-eunji.github.io/til/2021/09/13/TIL</id><content type="html" xml:base="https://dev-eunji.github.io/til/2021/09/13/TIL/">&lt;h2 id=&quot;todo&quot;&gt;todo&lt;/h2&gt;

&lt;ul class=&quot;task-list&quot;&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;
    &lt;p&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;programmers&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;TODO:&lt;/li&gt;
      &lt;li&gt;DONE: &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42883&quot;&gt;42883&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot;&gt;43238&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/42578&quot;&gt;42578&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/49189&quot;&gt;49189&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/85002&quot;&gt;85002&lt;/a&gt;, &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/86048&quot;&gt;86048&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;Class101 영어 프리챕터 영작 완료&lt;/li&gt;
  &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;task-list-item-checkbox&quot; disabled=&quot;disabled&quot; checked=&quot;checked&quot; /&gt;Class101 have/make/take/get/give/keep/put&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-learned&quot;&gt;What I learned&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/33640864/how-to-sort-based-on-compare-multiple-values-in-kotlin&quot;&gt;코틀린에서 여러 값을 비교하여 정렬하는 방법&lt;/a&gt; 에 대해 배웠다. 예를 들어서, A 를 기준으로 1차 정렬을 한 상태에서 B를 기준으로 2차 정렬, 그리고 마지막으로 C를 기준으로 정렬을 해야할 때가 있다. 그럴 때, 아래와 같이 수행하면 된다.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;나눗셈을 할때 주의할 점&lt;/p&gt;
    &lt;ol&gt;
      &lt;li&gt;0으로 나눠지지 않도록&lt;/li&gt;
      &lt;li&gt;Double 형 사용&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;100 * A / (A+B)&lt;/code&gt; 와 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;A / (A+B) * 100&lt;/code&gt; 은 다른 값이 나올 수 있다. (A, B가 int일 경우)
뒤의 경우 A/(A+B) 값이 0이 되어 100을 곱해도 0이 될 수 있다.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;life&quot;&gt;Life&lt;/h2&gt;</content><author><name>HELLO :)</name></author><category term="TIL" /><category term="TIL" /><summary type="html">todo</summary></entry></feed>