<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>jaehyeon.log</title>
        <link>https://velog.io/</link>
        <description>"돈받고 일하면 프로다"</description>
        <lastBuildDate>Mon, 03 Oct 2022 11:48:33 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>jaehyeon.log</title>
            <url>https://images.velog.io/images/jeong-jaehyeon/profile/86033d4b-052b-44b7-990f-7df5caefe426/IMG_3354.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. jaehyeon.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/jeong-jaehyeon" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[221003_자바스크립트 기초강좌]]></title>
            <link>https://velog.io/@jeong-jaehyeon/221003%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B8%B0%EC%B4%88%EA%B0%95%EC%A2%8C</link>
            <guid>https://velog.io/@jeong-jaehyeon/221003%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B8%B0%EC%B4%88%EA%B0%95%EC%A2%8C</guid>
            <pubDate>Mon, 03 Oct 2022 11:48:33 GMT</pubDate>
            <description><![CDATA[<p><a href="https://www.youtube.com/watch?v=KF6t61yuPCY">https://www.youtube.com/watch?v=KF6t61yuPCY</a>
자바스크립트 기초 강좌 100분.
필요한 부분만 리마인드 진행.</p>
<ul>
<li>변수는 const로 먼저 선언하고 바뀔 가능성이 있으면 let으로 바꾸는 습관들여놓기.</li>
<li>prompt</li>
<li>confirm</li>
<li>형변환 (String(), Number(), Boolean() 각각 문자열, 숫자, 불린으로)<ul>
<li>Number 안에 문자가 들어가면 NaN 으로 표시됨, Boolean false -&gt; 빈문자열, null, 0, undefined, NaN</li>
</ul>
</li>
<li>function
인자 값이 없을 때의 기본 값 지정 가능
<img src="https://velog.velcdn.com/images/jeong-jaehyeon/post/658b68b6-af2b-41a0-a99f-197edc9450bc/image.png" alt=""></li>
<li>함수선언문 vs 함수표현식
<img src="https://velog.velcdn.com/images/jeong-jaehyeon/post/93789de6-705e-4e43-b383-5eeed97f704f/image.png" alt="">
함수선언문: 어디서든 호출 가능, 자바스크립트는 인터프리터 언어로 위에서 아래로 한줄씩 읽으면서 코드를 실행하는데 아래와 같은 스샷이 정상 실행되는 이유는
<img src="https://velog.velcdn.com/images/jeong-jaehyeon/post/ff0257ba-1ac7-401a-b5b6-7f84f43b7e8f/image.png" alt="">
&#39;호이스팅&#39; 때문임. 자바스크립트는 실행 전에 초기화단계에서 선언된 함수들을 한 곳에 모은 뒤 사용가능한 범위를 늘리기때문에 가능함. 이게 호이스팅.
<img src="https://velog.velcdn.com/images/jeong-jaehyeon/post/c9f4e9e8-8e47-4ab7-8d16-c4e2cd43a957/image.png" alt="">
근데 함수표현식은 이게 불가능함. 코드에 도달하면 함수를 생성하기 때문.
<img src="https://velog.velcdn.com/images/jeong-jaehyeon/post/44fe5493-c42e-4eec-b4a7-fc33d81269a2/image.png" alt=""></li>
<li>화살표함수</li>
<li>객체</li>
<li>배열</li>
</ul>
<p>중급 영상도 있어서 나중에 예정.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[220914NT]]></title>
            <link>https://velog.io/@jeong-jaehyeon/220914NT</link>
            <guid>https://velog.io/@jeong-jaehyeon/220914NT</guid>
            <pubDate>Tue, 13 Sep 2022 16:10:51 GMT</pubDate>
            <description><![CDATA[<p><a href="https://github.com/jeong-jaehyeon/nodeTextbook/blob/main/1.%20%EB%85%B8%EB%93%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0.md">https://github.com/jeong-jaehyeon/nodeTextbook/blob/main/1.%20%EB%85%B8%EB%93%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0.md</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[220719_CT]]></title>
            <link>https://velog.io/@jeong-jaehyeon/220719CT</link>
            <guid>https://velog.io/@jeong-jaehyeon/220719CT</guid>
            <pubDate>Tue, 19 Jul 2022 10:10:23 GMT</pubDate>
            <description><![CDATA[<pre><code># 문제 설명
# 정수 num이 짝수일 경우 &quot;Even&quot;을 반환하고 홀수인 경우 &quot;Odd&quot;를 반환하는 함수, solution을 완성해주세요.

# 제한 조건
# num은 int 범위의 정수입니다.
# 0은 짝수입니다.
# 입출력 예
# num    return
# 3    &quot;Odd&quot;
# 4    &quot;Even&quot;

def solution(num):
    answer = &#39;&#39;
    if num % 2 == 0:
        answer = &#39;Even&#39;
    else:
        answer = &#39;Odd&#39;

    return answer

print(solution(0))    
print(solution(43))    
print(solution(100))    </code></pre><pre><code># 문제 설명
# 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 
# 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

# 제한 조건
# x는 1 이상, 10000 이하인 정수입니다.
# 입출력 예
# arr    return
# 10    true
# 12    true
# 11    false
# 13    false
# 입출력 예 설명
# 입출력 예 #1
# 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다.

# 입출력 예 #2
# 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다.

# 입출력 예 #3
# 11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다.

# 입출력 예 #4
# 13의 모든 자릿수의 합은 4입니다. 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다.

def solution(x):
    answer = True
    totalNum = 0;
    xx = list(str(x))
    for i in range(len(str(x))):
        totalNum += int(xx[i])
    print(totalNum)

    if x % totalNum == 0:
        return answer
    else:
        answer = False
        return answer

print(solution(264))
print(solution(263))
print(solution(262))</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[220718_CT]]></title>
            <link>https://velog.io/@jeong-jaehyeon/220718CT</link>
            <guid>https://velog.io/@jeong-jaehyeon/220718CT</guid>
            <pubDate>Mon, 18 Jul 2022 11:18:26 GMT</pubDate>
            <description><![CDATA[<pre><code>def solution(arr, divisor):
    answer = []

    for i in range(len(arr)):
        if arr[i] % divisor == 0:
            answer.append(arr[i])
    if len(answer) == 0:
            return -1   
    else:
        answer.sort()

    return answer

print(solution((5, 9, 7, 10), 5))
print(solution((2, 36, 1, 3), 1))
print(solution((3, 2, 6), 10))

# 문제 설명
# array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. 
# divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

# 제한사항
# arr은 자연수를 담은 배열입니다.
# 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
# divisor는 자연수입니다.
# array는 길이 1 이상인 배열입니다.</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[210524~25_파이썬 웹크롤링 연동하기_크론탭]]></title>
            <link>https://velog.io/@jeong-jaehyeon/21052425%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0%ED%81%AC%EB%A1%A0%ED%83%AD</link>
            <guid>https://velog.io/@jeong-jaehyeon/21052425%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0%ED%81%AC%EB%A1%A0%ED%83%AD</guid>
            <pubDate>Tue, 25 May 2021 18:11:58 GMT</pubDate>
            <description><![CDATA[<p>크론탭을 이용해 우분투 서버에 파이썬 파일 스케줄러 구현 완료.
자세한 사항은 나중에 포스팅.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[210521~23_파이썬 웹크롤링 연동하기_청천벽력]]></title>
            <link>https://velog.io/@jeong-jaehyeon/21052123%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0%EC%B2%AD%EC%B2%9C%EB%B2%BD%EB%A0%A5</link>
            <guid>https://velog.io/@jeong-jaehyeon/21052123%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0%EC%B2%AD%EC%B2%9C%EB%B2%BD%EB%A0%A5</guid>
            <pubDate>Sun, 23 May 2021 18:38:38 GMT</pubDate>
            <description><![CDATA[<p>3일동안 서치를 진행했다.
정말 많은 서치를 진행했는데, 결론은 html 단에서는 로컬에 있는 python 스크립트를 실행시킬 수 없다.
이다..
처음에는 flask와 django가 잘 이해가 안되서 어떤 방법이 있나 서치를 진행한거였는데,
다시 처음으로 돌아왔다.</p>
<p>결국 flask 를 이용하는 방법으로 가야하나.. 하.. 이럴때 옆에서 척하니 알려주는 사람이 있으면
얼마나 좋을까.. 힘들다 ㅠ_ㅠ</p>
<hr>
<p>며칠동안 몇시간 째.. 맞는 지도 모르는 예제를 반복했고.. 힘들다.. ㅋㅋㅋㅋㅋㅋ
난 이런 길을 잘 못잡는 것 같다.</p>
<hr>
<p>정말 모르겠다 이젠.. 뭐 py 실행까지는 했는데 특정 url에서 동작하는게 아니고..
하 복잡하다.. ㅋㅋㅋㅋㅋ
짜증난다
쉽지않다
이게 이렇게 어려운 일인가 싶다</p>
<p>아무튼 실행까진된다..
계속 이런 의문이 든다. html에서 파이썬 파일을 실행시키는게 안된다고..?</p>
<blockquote>
<p>오늘의 코멘트: 폐인이 된거같다</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210520_파이썬 웹크롤링 연동하기_기존 코드 이해]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210520%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0%EA%B8%B0%EC%A1%B4-%EC%BD%94%EB%93%9C-%EC%9D%B4%ED%95%B4</link>
            <guid>https://velog.io/@jeong-jaehyeon/210520%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0%EA%B8%B0%EC%A1%B4-%EC%BD%94%EB%93%9C-%EC%9D%B4%ED%95%B4</guid>
            <pubDate>Thu, 20 May 2021 16:57:40 GMT</pubDate>
            <description><![CDATA[<p>여태까지 완료된 작업은 
크롤 API 구현, 구현된 API 파이썬 파일 실행 후 DB연동, DB에서 WEB으로 연동.
이제 남은건 WEB에서 REQUEST만 해주면 되나?
요청 작업을 하기 위해선 기존에 팀원들이 만들어놓은 프론트 쪽 코드를 분석해야했다.
또한 요청하기 위해 여태까지 서치해왔던 것을 적용하면 된다.
오늘은 분석하는 시간을 가졌으며,
이 VELOG의 포스트도 참고했다.
내일부터 작업에 들어갈 듯 하다.
<a href="https://velog.io/@haileeyu21/TIL-dJango%EB%A1%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-%ED%95%B4%EB%B3%B4%EA%B8%B0">https://velog.io/@haileeyu21/TIL-dJango%EB%A1%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-%ED%95%B4%EB%B3%B4%EA%B8%B0</a></p>
<blockquote>
<p>오늘의 코멘트: 분량이 꽤나 된다..</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210518,9_휴식]]></title>
            <link>https://velog.io/@jeong-jaehyeon/2105189%ED%9C%B4%EC%8B%9D</link>
            <guid>https://velog.io/@jeong-jaehyeon/2105189%ED%9C%B4%EC%8B%9D</guid>
            <pubDate>Thu, 20 May 2021 15:54:58 GMT</pubDate>
            <description><![CDATA[<p>18일 19일 휴식을 취했다.
18일은 일정.
19일은 정말 너무나도 하기싫었다.
그랬다..</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[210517_도커에 관하여]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210517%EB%8F%84%EC%BB%A4%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC</link>
            <guid>https://velog.io/@jeong-jaehyeon/210517%EB%8F%84%EC%BB%A4%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC</guid>
            <pubDate>Mon, 17 May 2021 15:38:55 GMT</pubDate>
            <description><![CDATA[<p>오늘 TIL은 프로젝트를 진행하려 했지만 업무의 연장선으로 가져가려 한다.
이제 곧 팀 이동이 있을 예정이고, 나도 한달 뒤에 이동을 하게된다.
그래서 지금 하는 업무의 리뷰 차원에서 회의가 있을 것이고 그 회의를 준비해야 한다.
팀원분께서 준비해야 할 몇 가지 사항을 짚어주셨다.
그 중에서 간단한 회고를 준비하면 된다.</p>
<p>잘 된점과 잘 못된점. 그리고 해결방안에 대하여.
잘 된점은 여기엔 적지않겠다.
부족한 점과 해결방안에 관하여 TIL를 진행할 것이다.</p>
<p>내가 생각하는 우리 업무의 부족한 점은 &quot;개발 환경 셋팅&quot; 이다.
내 업무를 진행하려면 여러가지의 환경을 셋팅해야 하는데 이게 여간 복잡한 일이 아니다.
환경 세팅을 하는 경우를 예로 들어보면
포멧, Mac 교체, os 업데이트, Tool 업데이트 등이 있겠다.
나는 한 2달정도? 전에 mac을 교체하게 되었는데 역시나 재택근무 환경, 업무 환경을 셋팅하느라 시간이 꽤나
걸렸다.</p>
<p>가이드가 있지만 최신화는 잘 되지 않고, 나의 감이나 팀원분들께 여쭤봐서 헤쳐나가야 한다.
가이드를 최신화하는 것도 쉬운일은 아니다. 날을 잡고 해야할 업무이다.</p>
<p>그런데 만약, 개발 환경을 매번 세팅하지 않고 하나의 환경만 구축해놓은 뒤, 사용할 수 있다면?
그게 &quot;도커&quot;다.</p>
<p>개념이나 원리는 따로 적지는 않겠다. 다른 곳에 널렸으니.
나한테 중요한건 이걸 업무에 잘, 효율적으로, 지금 사용할 수 있느냐다.</p>
<p>내가 처음에 도커에게 원한건 이거였다.
도커 컨테이너에 개발 환경을 세팅을 해놓고 필요할 때마다 빌드해서 내 mac에 환경을 세팅할 수 있는지.
하지만 내가 생각한 바와는 달랐다.
mac에서 도커 이미지파일을 통해 컨테이너를 만들고 mac안에 컨테이너에서 작업을 하는 것이다.</p>
<p>그럼 가상머신하고의 차이점은?
가상머신은 <img src="https://images.velog.io/images/jeong-jaehyeon/post/d62868a4-06ac-4da5-b604-6a00706983f4/image.png" alt="">
이렇게 물리적인 자원을 나눠가져서 한계를 가져오게 된다.</p>
<p>도커는
<img src="https://images.velog.io/images/jeong-jaehyeon/post/9a806f3b-edcf-4c18-adb4-24348131259b/image.png" alt="">
실행 환경만 도커엔진을 통해 돌리기때문에 거의 비슷한 효과를 가져오게 된다.
실제로 대기업(넷플릭스, 삼성, 네이버..) 에서는 컨테이너를 이용해 업무를 진행한다고 한다.</p>
<h4 id="처음에는">처음에는</h4>
<p>그냥 개발환경만 셋팅해놓고 진행해보려 했지만, 
두 가지의 방향이 보였다. 혹은 도커가 정답이 아닐 수도 있다.</p>
<ol>
<li>개발 환경만</li>
<li>자동화를 도커에서</li>
</ol>
<p>이를 제시하려면 내가 먼저 정확한 &quot;이점&quot;을 알아야한다고 생각한다.
근데 잘 모르겠다.. 자신이 없다.
왜냐면 서치하면 할 수록 대부분이 &quot;웹&quot; 서비스에 관한 내용들이 많고
나는 지금 배포하는 업무가 아니다.
배포하는 서비스를 자동화로 테스트하는 업무이다.
이 부분에서 내가 확신이 없다. 도커를 도입하는 것이 효율적일까?
도커에 개발환경 구축을 하는데 있어서 꽤나 많은 리소스가 투입될 것이며..</p>
<hr>
<p>결론은 내가 준비하고 알아봐야할 것을 다 알아본 뒤, 판단을 팀원분께 맡기는 것으로 했다.
뭐 어차피 그렇게 되었겠지만 ㅋㅋㅋ 그래도 난 내가 생각한 부족한 점과 이 일을 어떻게 해결해야할지
소스를 제공한 것이다.
아니면 도커가 정답이 아닐 수 있다.</p>
<p>참조: <a href="https://www.youtube.com/watch?v=hWPv9LMlme8">https://www.youtube.com/watch?v=hWPv9LMlme8</a></p>
<blockquote>
<p>오늘의 코멘트: 찾아보면 찾을 수록 허탈한 느낌은 왜지? 마땅하다고 느끼지 못하는 건가</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210516_TIL복습09]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210516TIL%EB%B3%B5%EC%8A%B509</link>
            <guid>https://velog.io/@jeong-jaehyeon/210516TIL%EB%B3%B5%EC%8A%B509</guid>
            <pubDate>Sun, 16 May 2021 16:25:40 GMT</pubDate>
            <description><![CDATA[<p>한동안 프로젝트 진행을 하지 못하다가 다시 오늘부터 진행하려했는데,
서버와 db가 켜져있지 않아서 그냥 정말 내일부터 프로젝트를 진행하고
오늘까지는 복습을 진행하려한다.</p>
<p>어제 2월2일차까지 진행했고 오늘은 3일차부터 진행한다.</p>
<p>3일차는 인터페이스의 예제 코드를 진행했다.
이 예제 코드는 아직도 기억난다 ㅋㅋㅋ 예시가 너무 이해가 잘 되었기에 기억하고 있었다.
인터페이스에 관한 개념을 프린터기에 비유했던 예제였다.</p>
<p>그 당시에도 이렇게 적어놨다.</p>
<pre><code>(뭐 그렇게 긴 코드도 아니고 특별한 점은 없는데 간략하고 정확하게 인터페이스를 설명해낸 코드같다.)</code></pre><p>아 그리고 이러한 특성들은 왜 계속 까먹는지 모르겠다..</p>
<pre><code>반드시 선언과 동시에 값으로 초기화를 해야한다.
모든 변수는 public, static, final이 선언된 것으로 간주된다
결론적으로 말하면 인터페이스 내에 선언된 변수는 상수이다.</code></pre><p>뭐 이러한 점은 인지를 하고 있다.</p>
<pre><code>그리고 마지막으로 인터페이스를 구현하는 클래스는 인터페이스에 존재하는 모든 &quot;추상 메소드&quot;를
구현해야 한다.
하나라도 구현하지 않으면, 해당 클래스를 대상으로는 인스턴스 생성이 불가능하다. </code></pre><p>4일차에도 인터페이스에 관하여 진행했었다.
인터페이스 간의 상속이 있으면 복잡할 것이라고 예상했었는데,
예제를 보니 매우 간편했었다고 한다.</p>
<p>흑백-컬러 프린터에 관한 예시를 들고</p>
<pre><code>원래 로직: interface Printable -&gt; 흑백프린터
추가 로직: interface Printable -&gt; interface ColorPrintable extends Printable -&gt; 컬러프린터</code></pre><p>이런식의 로직을 인터페이스간의 상속을 이용하여 풀어내면 훨씬 간단하면서 유용하게 사용할 수 있는 예제 코드를 보며 이해했었다.
그 당시에 유용한 것도 유용한거지만 기존의 인터페이스를 고치지않으며, 유지할 수 있는 면에서도
장점이 뛰어나다고 생각했었다.</p>
<p>또한,</p>
<pre><code>- 두 클래스 사이의 상속은 extends
- 두 인터페이스 사이의 상속도 extends
- 인터페이스와 클래스 사이의 구현만 implements로 명시한다.</code></pre><p>이러한 점도 명시를 해두었고, 제대로 복습이 되었다!</p>
<blockquote>
<p>오늘의 코멘트: 인터페이스 복습 완료~</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210515_TIL복습08]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210515TIL%EB%B3%B5%EC%8A%B508</link>
            <guid>https://velog.io/@jeong-jaehyeon/210515TIL%EB%B3%B5%EC%8A%B508</guid>
            <pubDate>Sat, 15 May 2021 18:39:13 GMT</pubDate>
            <description><![CDATA[<p>오늘도 복습을 진행했다.
아마 내일부터는 다시 백신 프로젝트를 진행하지 않을까 싶다.</p>
<p>1일차부터 복기에 관한 내용을 얘기한다. ㅋㅋㅋ 그래서 지금하고있다.
또한 Object와 final, @Override에 대한 개념을 복습했다.
Override 어노테이션에 대해서 좀 더 알아보았는데 </p>
<pre><code>부모클래스 또는 구현해야할 인터페이스에서 해당 메소드를 찾을 수 없다면 컴파일 오류가 난다.</code></pre><p>라는 내용을 알게되었다.</p>
<p>2일차에는 지금 하고있는 업무 관련된 내용을 작성했었는데 대충 오늘 업무의 진척이 없으면 속상하고 짜증난다는 내용과 푸념들이 적혀있는데 이런걸 적어놓는 것도 나중에 보는 것도 괜찮은 느낌이다 ㅎ_ㅎ</p>
<p>또한 상속과 구현, 인터페이스와 추상메서드에 관한 개념을 복습했다.
특징 부분에서 많이 알아보았고, 역시나 반복학습이 중요하는 걸.. 알게되었다 이번에도..!</p>
<pre><code>구현할 인터페이스를 명시할 때 키워드 implements를 사용한다.
한 클래스는 둘 이상의 인터페이스를 동시에 구현할 수 있다.
상속과 구현은 동시에 가능하다.</code></pre><p>그리고 여기에 예시를 들어놨었는데 헷갈려서 다시 한번 관련 내용을 서치했다.</p>
<pre><code>Printable prn = new Printer();</code></pre><p>이 경우 prn.print(&quot;하하&quot;) 를 진행하면 Interface Printable 의 print가 아니라 Class Printer 의 print 가 호출된다. 즉, 오버라이딩이 성립된다는 뜻이면 이럴경우 @Override를 선언해주면 좋다.</p>
<p>업무에서도 Interface를 활용한 구현을 자주하지만 역시 인터페이스는 소중한 존재이다.
규약, 연결점, 접점의 활용성을 확실하게 나타내주니깐..!</p>
<hr>
<p>복습을 진행하면 할 수록 배웠던걸 다시 배운다는 느낌도 강하지만, 새롭게 다시 배운다는 느낌도 많다.
계속해서 말하지만 복습도 너무 많이 중요하다는 걸 느낀다.</p>
<blockquote>
<p>오늘의 코멘트: 내일부터는 아마 프로젝트를 진행할 듯 하다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210514_TIL복습07]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210514TIL%EB%B3%B5%EC%8A%B507</link>
            <guid>https://velog.io/@jeong-jaehyeon/210514TIL%EB%B3%B5%EC%8A%B507</guid>
            <pubDate>Fri, 14 May 2021 19:57:07 GMT</pubDate>
            <description><![CDATA[<p>그저께는 27일차까지 복습을 진행했다.</p>
<p>28일차는 b책의 도입 부분과 나의 생각을 복습(?)했다. 이때는 이런 생각을 했구나.. 이것도 복습이다 ㅋㅋ
29일차는 휴식.</p>
<p>30일차는 instance of 에 대해 진행했었다.
instacne of를 보고 있자니.. 이걸 어디에 사용할까..? 라는 궁금점이 생겨 서치를 좀 진행했다.
진행하니, 어렵진 않아서 개념은 확실히 알겠는데.. 정확히 어디에 사용하는지는 정보가 부족하다.
뭐.. 개인적으로 생각해보자면 게임이라던지 특정 서비스의 플로우 중에 어떤한 유동적인(?) 부분을
확인하고 분기처리할 수 있게 하는 형식에 쓰일 수 있을 것 같다.</p>
<p>31일차.. 와 31일차는 좀 충격이였다. 거의 90%의 기억이 날라갔었다. 코드와 내가 작성해놓은 TIL을 보면서
다시 복구시키긴 했지만 거의 다 날라갔어서 충격이였다.
또, 상속을 이용했을 때의 이점이 잘 정리되고 보여서 좋았다.</p>
<pre><code>인스턴스를 저장하는 배열이 하나로.
-&gt; Friend 클래스를 상속하는 클래스가 추가되어도(고딩동창, 동호회 등등) 이 사실을 변함이 없다.
정보를 저장하는 과정이 나뉘지 않는다.
-&gt;하나의 배열에 모든 인스턴스를 저장할 수 있다.
저장된 정보를 모두 출력할 때 하나의 for문으로도 충분하다.
-&gt;하나의 배열이 사용되었고 또 메소드 오버라이딩 (showInfo(); )이 도움이 되었다.

=====&gt; Friend 클래스 =&gt; UnivFriend 클래스와 ComFriend 클래스에 공통 규약을 적용하기 위해 정의된 클래스.</code></pre><p>다시 한번 상속에 대한 전체적인 개념을 가지고 넘어가는 좋은 시간이였다.
하.. 복습이 진짜 중요하긴 하구나.. 이게 한번 두번 잡고 넘어간다고 해도 다 잡은게 아니란걸 깨달았다.</p>
<blockquote>
<p>오늘의 코멘트: 앞으로 나아가는 것도 중요하지만 잘 가지고 있는지 확인하는 복습도 정말 중요하네..</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210513_휴식]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210513%ED%9C%B4%EC%8B%9D</link>
            <guid>https://velog.io/@jeong-jaehyeon/210513%ED%9C%B4%EC%8B%9D</guid>
            <pubDate>Fri, 14 May 2021 17:14:58 GMT</pubDate>
            <description><![CDATA[<p>뭐 거의 요즘 밥먹듯 휴식하네..
정신안차리냐..?
어제 저녁먹고 그러고 잘거였어..?
중간에 한번 일어났잖아?
근데 왜 일어나서 안했어?
반성해.
네 죄송합니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[210512_TIL복습06]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210512TIL%EB%B3%B5%EC%8A%B506</link>
            <guid>https://velog.io/@jeong-jaehyeon/210512TIL%EB%B3%B5%EC%8A%B506</guid>
            <pubDate>Wed, 12 May 2021 15:58:48 GMT</pubDate>
            <description><![CDATA[<p>오늘도 이어서 복습을 진행한다.
210126_JAVA 오버라이딩~ 부터 진행을 한다.</p>
<p>26일차에는 오버라이딩에 대해 좀더 알아보는 시간을 가졌으며,</p>
<pre><code>오버라이딩이란 상위 클래스에서 정의된 메소드를 하위 클래스에서 다시 정의하는 것을 말하며
참조변수가 참조하는 인스턴스의 종류에 상관없이, 참조변수의 &#39;형&#39;에 해당하는 클래스와
그 클래스가 상속하는 상위 클래스에 정의된 메소드들만 호출 가능하다.</code></pre><p>이라는 개념을 상기시켰다.
또한 참조 변수의 관계를 배열의 관점에서 설명한 예시가 있었는데 
아.. 진짜 기억이 안난다.. 지금 다시 복습해서 새롭게(?)까지는 아니고 아 이랬었지..
정도의 망각이 있었다.</p>
<p>그리고 하위 클래스에서 상위 클래스의 메서드를 다시 정의한다는 말은
&#39;무효화&#39;한다는 의미를 가지며 이것이 오버라이딩이다.
이것 또한 yummy 코드를 보고 복습하게 되었다.</p>
<pre><code>메소드의 이름, 메소드의 반환형, 메소드의 매개변수 선언</code></pre><p>이 같아야 메서드 오버라이딩의 조건을 충족시켰다고 할 수 있다.
조건을 충족시켜야 대신하게 되는 것.</p>
<p>27일차에도 오버라이딩에 대해서 진행했는데,
super 키워드를 사용하여 상위 클래스의 메서드를 호출함과 동시에 하위 클래스의 메서드도
호출할 수 있는 방법을 복습했다.</p>
<p>특히 이부분은 내가 예전에 &#39;이해가 안되니깐 다음에 다시봐야겠다..&#39; 라고 생각했던 부분인데
드디어 이번에 보게되었다.
결과는..? 허무..
왜 이해를 못한거지 이걸..? </p>
<pre><code>Cake2 cake2 = cheeseCake; // 치즈케이크가 참조하는 것을 cake2도 참조함.</code></pre><p>이렇게 버젓이 써놓고 왜 치즈케이크의 show를 호출하는건지 이해하지 못했다.
잘 이해한게 맞나 싶긴하다 너무 쉬워서;;</p>
<p>210126_JAVA 오버라이딩~27일차까지 복습 진행 완료했다.</p>
<blockquote>
<p>오늘의 코멘트: 그래도 예전 문제점이 해결되어 다행.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210511_TIL복습05]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210511TIL%EB%B3%B5%EC%8A%B505</link>
            <guid>https://velog.io/@jeong-jaehyeon/210511TIL%EB%B3%B5%EC%8A%B505</guid>
            <pubDate>Tue, 11 May 2021 15:42:34 GMT</pubDate>
            <description><![CDATA[<p>오늘도 JAVA TIL을 복습한다.
210123_JAVA 부터 진행한다.</p>
<p>23일차에는 하위클래스에서 상위클래스를 생성자를 호출할 때 명시적으로 호출하는 super에 대하여 복습을 진행하였으며, 이는 하위클래스의 몸체보다 먼저 실행되어야 한다.
그래서 보통 하위클래스의 첫문장에 선언된다.</p>
<p>24일차에는 car를 상속하는 상속클래스에 대한 문제풀이를 복습했다.
코드를 보고 결과값을 도출해봤는데 자신있었다가 다시 없어져서 결국 코드를 돌려봤다.. ㅎㅎ;
또한 클래스 변수와 클래스 메서드의 개념에 대해서 복습을 진행.</p>
<p>25일차에는 오버라이딩의 개념과 간단한 코드 예제를 복습했다.</p>
<p>210123_JAVA~25일까지 복습 진행했다.</p>
<blockquote>
<p>오늘의 코멘트: 변화가 찾아오는 회사생활</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210510_휴식]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210510%ED%9C%B4%EC%8B%9D</link>
            <guid>https://velog.io/@jeong-jaehyeon/210510%ED%9C%B4%EC%8B%9D</guid>
            <pubDate>Tue, 11 May 2021 15:22:40 GMT</pubDate>
            <description><![CDATA[<p>일정이 있어 TIL을 진행하지 못했다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[210509_TIL복습04]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210509TIL%EB%B3%B5%EC%8A%B504</link>
            <guid>https://velog.io/@jeong-jaehyeon/210509TIL%EB%B3%B5%EC%8A%B504</guid>
            <pubDate>Sun, 09 May 2021 11:53:07 GMT</pubDate>
            <description><![CDATA[<p>오랜만에 TIL을 복습한다.
생각해보니.. 너무 프로젝트에만 몰두해서 에전에 진행했던 TIL 다 까먹으면 어떡하나싶고
프로젝트도 잠깐은 쉬어가야한다고 생각했다.</p>
<p>저번에 복습을 보니</p>
<pre><code>210318_TIL복습03
210114_JAVA ~ 210118_JAVA</code></pre><p>을 진행했다.
그래서 19일차부터 진행하려 한다.</p>
<hr>
<p>복습을 진행했고, 중간에 git에 올렸던 fizzbuzz code가 오랜만에 보니 좀 색달랐달까..
그리고 역시 내가 작성해서 기억은 나지만 &#39;어..? 이게 이런 의미였던가..?&#39; 하는 부분들이 많았다.</p>
<p>또한 상속에 관해서</p>
<pre><code>&quot;연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있습니다.&quot; ----&gt; O</code></pre><p>이 부분이 이해가 잘된다 ㅎㅎ
한번 거쳐서 그런것 같다.</p>
<p>그리고 상위 클래스와 하위 클래스의 선언에서
상위 클래스의 인스턴스가 하위 클래스에서 &quot;따로&quot; 초기화하지 않을 때 초기화되지 않는다는 점이 좀 불편하다고 생각했다.
뭐.. 역시 자바 개발자분들께서 생각해서 이렇게 개발하셨겠지만은.. 내가 이해할 수 없는 부분이 있겠지..?</p>
<p>19~210122_JAVA 까지 복습을 진행했다.
사실 23일차까지 보긴했으나, 정확한 이해가 되질 않아서 다음으로 넘기려 한다.
이해가 되긴 되었지만 정확하게 되진 않았음..</p>
<blockquote>
<p>오늘의 코멘트: 복습을 생각보다 자주 해줘야겠다. 너무 오랜만에 하긴 했어</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210508_파이썬을 이용한 웹 크롤링_23]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210508%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%8123</link>
            <guid>https://velog.io/@jeong-jaehyeon/210508%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%8123</guid>
            <pubDate>Sat, 08 May 2021 19:42:41 GMT</pubDate>
            <description><![CDATA[<p>엊그저께 그 문제는 그냥 필드 값들(f1,f2...)을 char로 바꿨다.
그래도 문제 없을 것 같아서..
<img src="https://images.velog.io/images/jeong-jaehyeon/post/92a9c72f-edfc-4253-a276-41fa0a4ce76b/image.png" alt="">
<img src="https://images.velog.io/images/jeong-jaehyeon/post/e1b7cc62-30d7-43c9-99ab-c9a04bce24b9/image.png" alt="">
<img src="https://images.velog.io/images/jeong-jaehyeon/post/67dfc6fa-f4b7-4c20-9ae6-4671c8bd720c/image.png" alt="">
요렇게 잘 들어갔다.
흠 그럼 이제 뭘할까.. 생각하다가 </p>
<p>rest api를 활용한 파이썬 flask를 좀 서치해봤다.
저번 프로젝트를 진행할 때는 jsp와 java를 이용했다면 이번에는 python과 flask를 이용해서 뭔가 같은 듯 다르고
한번 보고는 구현못할 것 같다 ㅋㅋㅋ
<a href="https://rekt77.tistory.com/104">https://rekt77.tistory.com/104</a></p>
<p>근데 이게 또 어렵게 생각해서 어려운거지 쉽게 쉽게 생각하면 구현하면 될듯..?
그리고 머릿속이 좀 복잡한게.. 크롤쪽의 db설계가 아직 끝나지 않았는데 이렇게 바로 web 연동으로 넘어가도 되나 싶기도하다.</p>
<p>음.. 내일 마저 해보자</p>
<blockquote>
<p>오늘의 코멘트: 집중안되는 하루</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[210507_휴식]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210507%ED%9C%B4%EC%8B%9D</link>
            <guid>https://velog.io/@jeong-jaehyeon/210507%ED%9C%B4%EC%8B%9D</guid>
            <pubDate>Sat, 08 May 2021 15:25:09 GMT</pubDate>
            <description><![CDATA[<p>약속이 있어 TIL을 진행하지못함.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[210506_파이썬을 이용한 웹 크롤링_22]]></title>
            <link>https://velog.io/@jeong-jaehyeon/210505%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%8122</link>
            <guid>https://velog.io/@jeong-jaehyeon/210505%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%8122</guid>
            <pubDate>Thu, 06 May 2021 19:09:35 GMT</pubDate>
            <description><![CDATA[<p>오늘은 뭘 할까 살펴보다가 접종 실적 총괄 표의 테이블이 없는 것을 발견하여,
테이블 생성 및 크롤링까지 진행해보겠다.</p>
<p>우선, 접종 실적 총괄 표라는 건
<img src="https://images.velog.io/images/jeong-jaehyeon/post/d376528f-ff78-49ae-8a99-74206a7064df/image.png" alt="">
이 표를 말하는거고.
이 표에 있는 값은 저번에 포스팅하고 크롤링까지 진행을 했다.
엥 그러면 별로 하는게 없네 오늘? 나머지 또 할거있나?
작업을 우선 진행하겠다.</p>
<hr>
<p>음.. 팀원분께 여쭤보니 이미 테이블이 생성되어 있었다.
<img src="https://images.velog.io/images/jeong-jaehyeon/post/6d9fd5e3-dce5-4d09-9d1e-8df8f6268e6d/image.png" alt="">
이 녀석인데 여기에 크롤 값을 넣어보겠다.</p>
<p><img src="https://images.velog.io/images/jeong-jaehyeon/post/4f6e4318-ae3b-4f26-abcc-a541a73f09e9/image.png" alt="">
크롤을 진행하면 이렇게 되고,</p>
<p>sql code는
<img src="https://images.velog.io/images/jeong-jaehyeon/post/b76721e2-9700-482c-9e4d-95b54d2dd5a9/image.png" alt="">
이런식이다.</p>
<p>가져오는 친구는 코로나 백신 사이트의
<img src="https://images.velog.io/images/jeong-jaehyeon/post/9315983e-3989-44b8-a3c7-42c6baf29c01/image.png" alt="">
이녀석이다.
잘 가져왔는데 문제는~
<img src="https://images.velog.io/images/jeong-jaehyeon/post/742fda2b-a2c1-4335-b189-623e2bfd7967/image.png" alt="">
이 값들이 , 를 기준으로 앞 숫자들만 들어온다는 것.
왜 그런지 봤더니 데이터 길이 설정 값이
<img src="https://images.velog.io/images/jeong-jaehyeon/post/113cdf45-5cc9-4b8d-8708-4d3d3d2b9894/image.png" alt="">
요렇게 되어있었다.
문제는 얘네들이 수정이 안되는 점..
어쩃든 크롤은 잘 되었고 이 문제는 내일 설계한 팀원한테 물어봐야겠다.</p>
<blockquote>
<p>오늘의 코멘트: 팀원중에 한분이 말썽이다.. 일을 하는건 업무 실력뿐만 아니라 나와 함께 일하는 사람을 컨트롤 하는 능력도 중요하다.</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>