<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>weed_940322.log</title>
        <link>https://velog.io/</link>
        <description>개발자로 전직해보자</description>
        <lastBuildDate>Sun, 22 Feb 2026 14:09:55 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>weed_940322.log</title>
            <url>https://velog.velcdn.com/images/weed_940322/profile/ac69492e-ccf2-4072-9cc6-7160728342b1/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. weed_940322.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/weed_940322" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[260222_니체 인생 수업]]></title>
            <link>https://velog.io/@weed_940322/260222%EB%8B%88%EC%B2%B4-%EC%9D%B8%EC%83%9D-%EC%88%98%EC%97%85</link>
            <guid>https://velog.io/@weed_940322/260222%EB%8B%88%EC%B2%B4-%EC%9D%B8%EC%83%9D-%EC%88%98%EC%97%85</guid>
            <pubDate>Sun, 22 Feb 2026 14:09:55 GMT</pubDate>
            <description><![CDATA[<ul>
<li><p>1장 &quot;개인&quot;의 내용은 주로 <code>내 자신을 우선 살펴라</code>가 주제이다.</p>
<ul>
<li><code>자신의 신념을 만들어서 주변에 휘둘리지 말아라.</code> 사람은 자기 자신을 주위와 비교해서 옭아매고 흔들리게 하는 충동이 있다. 하지만 진정 자유로운 삶을 살고 싶다면 나를 지켜줄 수 있는 신념을 가지고 있어야 한다.</li>
<li>진정한 의미에서 성장과 발전은 자신만의 무언가를 찾는 것이다.&#39;</li>
<li>자신만의 신념을 찾기 위해서는 <code>나 자신에 대해서 잘 알아야 한다.</code> 나에 대해서 알고 길을 명확히 파악했다면, 이제 남은 일은 그 길을 걸어가는 일 뿐이다.</li>
<li>나에 대해 잘 알려면 <code>내 안의 소리만을 좇아야 한다.</code> 수많은 자기계발서를 읽는다고 해서 하루만에 성공할 수는 없다. 때론 그 정보들이 잘못되었을 수도 있다.</li>
<li>하지만 혼자만의 시간을 보내다보면 지혜를 얻을 수도 있다.</li>
</ul>
</li>
<li><p><code>성장을 원한다면 고뇌는 필수다.</code> 현대인들은 고뇌를 스트레스로 치부한다. 그렇다면 이에 반하는 고뇌는 쓸모 없는 걸까? 해로운 편안함이 있는 것처럼, 유익한 어지러움도 있다는 것을 알아야 한다. </p>
<ul>
<li>멈춰있기를 원한다면 안락함을 추구해도 되지만, 더 나아지길 원한다면 고뇌하는 것을 멈추면 안된다. </li>
<li>그러면 고뇌는 어떻게 하면 좋을까? 현대인들은 효율성과 속도를 중요시 한다. 하지만 그런 과정에서 결정한 것들이 진정한 자신의 결정이라고 할 수 있을까? 순간적 욕망이나 감정에 의한 선택일 수도 있다. 진정한 의미에서의 자유와 선택은 자기 자신에 대한 깊은 이해와 성찰에서 비롯된다. 그러기 위해서는 <code>어느 정도의 시간은 필수적이다.</code></li>
</ul>
</li>
<li><p><code>나만의 유일한 무기를 찾아라.</code> 삶은 전쟁이다. 이 전쟁에서 살아남을 무기가 필요하다. 사람들은 자신에게 주어진 능력을 잘 갈고닦아 성공을  거두거나 삶을 안정적으로 만드는데 사용한다. </p>
<ul>
<li>하지만 이 능력을 찾는 것에 조급함을 느낀다. 아니다 싶으면 포기하고 다른 길을 찾는 사회의 분위기가 한몫한다. 이 무기는 단기간 내에 찾기는 하늘의 별따기다. 버나드 쇼는 마흔이 넘어서야 자신의 첫 번째 희곡을 썼고, 찰스 다윈은 책을 쉰에 출간했다. 그러니 빠른 초기를 종용하는 사회 시스템에 굴복하지 말고 씩씩하고 과감하게 그리고 꾸준히 도전을 이어가라</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[세이노의 가르침_1부]]></title>
            <link>https://velog.io/@weed_940322/%EC%84%B8%EC%9D%B4%EB%85%B8%EC%9D%98-%EA%B0%80%EB%A5%B4%EC%B9%A8250106</link>
            <guid>https://velog.io/@weed_940322/%EC%84%B8%EC%9D%B4%EB%85%B8%EC%9D%98-%EA%B0%80%EB%A5%B4%EC%B9%A8250106</guid>
            <pubDate>Mon, 06 Jan 2025 13:34:22 GMT</pubDate>
            <description><![CDATA[<h1 id="1부-아무것도-가진게-없다고-느껴질-때">1부 아무것도 가진게 없다고 느껴질 때</h1>
<h2 id="1-앞길이-보이지-않을-때">1) 앞길이 보이지 않을 때</h2>
<h3 id="삶이-그대를-속이면-분노해라">삶이 그대를 속이면 분노해라</h3>
<ul>
<li><p>서진규 왈: <code>이만큼 성공하기까지 나에게 가장 큰 힘이 된 것은 반항심과 복수심이다.</code> [p.25]</p>
</li>
<li><p>에미넴 왈: <code>당신은 미운 사람이나 짜증나는 사회를 없애버리고 싶은 충동을 느낀적이 없는가?</code> [p.26]</p>
<ul>
<li>현재 나도 위 사람들의 말처럼 회사, 사회에 대한 불만이 많은 상태이다.</li>
</ul>
</li>
<li><p><code>세상을 욕하고 가래침을 줄곧 뱉었지만 정작 나 자신도 크게 다를 바 없었다.</code> [p.27] </p>
<ul>
<li>이 말이 현재 나에게 와닿았다. 사회, 회사에 대한 불만은 많지만 현재 상태에 안주하는 마음이 커, 변하고자 하는 의지가 없었다.</li>
</ul>
</li>
<li><p><code>나는 내가 혐오스러웠다. 내가 분노해야할 대상은 세상이 아니었다. 나 자신이었다.</code> [p.27]</p>
<ul>
<li>이 말처럼 사회 및  회사에 대해 화를 내기보단, 이 절망스러운 상황에서 나아지려고 하지 않는 내 자신에 대해 혐오하고 회를 내야하는 상황이다.</li>
</ul>
</li>
<li><p><code>자전거의 뒷바퀴를 돌리는 것은 당신의 발이지만 앞바퀴를 돌려 방향을 잡는 것은 당신의 손이며 눈이고 의지이며 당신이다.</code> [p.27] </p>
<ul>
<li>지금까지의 나는 의지가 부족했다. 절망스러운 현실에서 벗어나고 싶었지만 벗어나려는 의지는 없어 현재에 안주하고 있는 것이 현실이다.</li>
</ul>
</li>
<li><p><code>피와 땀과 눈물과 시간 없이 무엇을 얻겠다는 것인가.</code>[p.28], <code>자기 삶의 노예가 되어 자기 생활과 시간을 통제하지 못하는 사람이 어떻게 돈의 주인이 될 수 있단 말인가.</code> [p.29], <code>인생역전은 당신 스스로 현재의 삶에 분노하여 그 삶을 뒤집어 버릴 때 이루어지는 것이지 &#39;수백억짜리 복권에 이번에는 내가 당첨될지 모른다.&#39;는 달콤한 상상으로 이루어 지는 것이 아니란 말이다.</code> [p.29]</p>
<ul>
<li>단순히 복권에 당첨되고 싶어서 매주 복권을 사는 모습, 우연히 주식이 대박이 나 자산이 불려져서 안주하는 모습, 이직하고 싶지만 아무것도 안하는 내 모습. 많이 잘못된 현재의 내 모습이다. 바뀌고 싶지만 아무것도 하지 않는 내 자신에게 화를 내고 힘들더라도 노력해서 성공을 이루어야 할 때이다.</li>
</ul>
</li>
<li><p><code>나는 믿는다. 누구에게나 그 내면에는 그 육체의 주인이 사랑할 수도 있는 그 자신이 존재하고 있다고 말이다.</code> [p.30]</p>
<ul>
<li>이제는 의지를 가지고 스스로 가꾸어 성공을 이루어서 스스로에게 분노를 하지 않고 나 자신을 아끼고 사랑할 수 있는 순간이 오길 기대하자</li>
</ul>
</li>
</ul>
<h3 id="천재-앞에서-주눅-들지-말라">천재 앞에서 주눅 들지 말라</h3>
<ul>
<li><p><code>나 역시 천재들을 보면 언제나 열등감과 시기심을 느낀다.</code> [P.33]</p>
<ul>
<li>작가 또한 천재들을 보면 그들의 우월함에 자기 자신과 비교하게 되어 열등감과 시기심을 느끼는 듯 하다. 나도 그렇다. 지금 다니는 회사에서는 카이스트, 오하이오 주립대 등 명문대를 나온 똑똑한 사람이 있고, 대표처럼 젊은 나이에 교수가 되고 지금은 한 기업의 대표가 된 천재를 보면 부러움을 느끼긴 한다. 모두 왠만해선 부자들이니까 (내 기준)</li>
</ul>
</li>
<li><p><code>돈은 &#39;1%의 영감을 타고난 천재&#39;만 벌 수 있는 것이 아니다.</code> [P.34]</p>
</li>
<li><p><code>핵심은 천재들의 이야기에 주눅 들 필요가 없다.</code> [P.35]</p>
</li>
<li><p><code>돈을 번다는 것은 다른 보통 사람들과의 게임이지 당신보다 크게 잘난 사람들과의 게임이 아니다.</code> [P.35]</p>
<ul>
<li>이 작가는 내가 모르고 있던 부분을 잘 파악했다. 나는 언제나 부자가 되고 싶다는 생각을 할 때 천재들처럼 무엇인가를 해야 돈을 많이 벌 것이라고 생각했다. 하지만 나는 그들과 달라 많이 좌절감을 느끼곤 했다. </li>
<li>이 작가가 말했던 것 처럼 평범한 사람들은 돈을 못 버는 것이 아니다. 천재들 속에서 돈을 벌 생각을 하지 말고 다른 평범한 사람들과 경쟁을 하자. 우리 회사 대표처럼 사업을 해?? 이건 내 생각엔 난 절대 못한다. 내가 할 수 있는 범위 내에서 돈을 벌 생각을 해보자.</li>
</ul>
</li>
<li><p><code>그들이 놀 때 놀지 말고 그들이 잠잘 때 잠을 덜 자고 그들이 쓸 때 덜 씀으로써 목돈을 준비하고 기회를 찾으면 된다.</code> [P.35]</p>
</li>
<li><p><code>그렇게 노력하는 자가 성공할 수 밖에 없는 분명한 이유가 있다.</code> [P.35]</p>
<ul>
<li>이 말은 당연하다. 날먹할 생각하지 말자. 솔직히 나는 그동안 의지가 없었다. 그냥 게으른 성공인이 되고 싶었다. 하지만 그런 요술은 부리지말고 노력을 하자...!</li>
</ul>
</li>
<li><p><code>피터 드러커 역시 높은 성과를 올리는 생산적인 사람, 끊임없이 혁신을 꾀하면서 계속 발전하는 사람, 다른 사람에게 영향을 미치는 비중 있는 사람, 그런 사람이 되는 길은 오직 지속적인 관리와 노력밖에 없다고 말한다.</code></p>
<ul>
<li>of course..!</li>
</ul>
</li>
</ul>
<h3 id="스트레스의-뿌리를-없애라">스트레스의 뿌리를 없애라</h3>
<ul>
<li><p><code>하지만 스트레스를 받지 않는 직업이 있을까?</code> [P.38]</p>
<ul>
<li>스트레스를 받지 않는 직업은 없을 것이다. 책에서도 그랬듯이 건강을 위해 스트레스를 줄이라고 말하는 정신과 의사들도 엄청난 스트레스를 받을 것이다. 
현재 나도 지금 하고 있는 업무에서 스트레스를 받아 이직을 생각중이지만, 이직한 곳에서는 스트레스가 없을까?하는 질문에는 확답을 하지 못할 것이다. 거기서는 분명히 다른 이유로 스트레스를 받을 것이다.</li>
</ul>
</li>
<li><p><code>이런 조언에 충실히 따르며 살아간다면 장담하건대 몇년 후에 건강한 신체를 갖게 될는지는 모르겠지만 아마도 하고 있는 일은 망한 지 오래이거나, 아니면 직장에서 이미 해고되어 구직 이력서를 서너통 언제나 준비하여 갖고 다니는 몸 튼튼한 실업자가 되어 있을 것이다.</code></p>
</li>
<li><p><code>건강을 지키면 모든 것을 다 갖게 된다는 말은 아니지 않는가?</code> [P.39]</p>
<ul>
<li>&lt;게으름의 즐거움에 관해&gt;라는 조언(빈둥거리면서 사는 삶)에 대해서 들어보면 혹 하는 조언이다. 건강을 지키자는 핑계를 위해 나태롭게 사는 삶! 상상만 해도 얼마나 행복한 삶인가. 하지만 작가 말처럼 건강은 아마 지키겠지만 잃는 것 또 한 클 것이다. 
내 커리어, 돈, 사회적 지위와 같은 부분을 잃는다면 또 그에 대한 스트레스는 받지 않을까..? 업무에 대해 스트레스를 받지 않는 것은 좋지만 그것이 정답은 아닐 듯 싶다.</li>
</ul>
</li>
<li><p><code>문제의 핵심을 살펴보자. 왜 스트레스가 생기는가?</code></p>
</li>
<li><p><code>스트레스는 일이나 인간관계에서 발생한 문제가 풀리지 않아서 생기는 것이다. 왜 문제가 풀리지 않는 것일까?</code></p>
</li>
<li><p><code>푸는 방법을 모르기 때문이다. 왜 모르는가?</code></p>
</li>
<li><p><code>책도 안 읽고 공부도 안 하기 때문이다. 왜 안하는가?</code></p>
</li>
<li><p><code>게으르기 때문이며 스스로의 판단과 생각을 우물 안 개구리처럼 최고로 여기기 때문이다.</code></p>
</li>
<li><p><code>그러면서도 놀 것은 다 찾아다니며 논다.</code> [P.39]</p>
<ul>
<li>스트레스를 받으면 풀려고 노력해야 한다. 풀려고 하려면 어떻게 해야 할까? 스트레스를 받는 원인을 파악해야 한다. 원인만 파악하면 될까? 원인을 파악했으면 해결하는 방안을 모색해야 한다. 그리고 그 방안을 모색하기 위해 공부를 해야 한다. 
단순히 스트레스를 받는다고 투정을 부리며 부정적인 말만 쏟아붓는다고 해결이 되지는 않는다. 임시적으로 스트레스를 푼다고 게임, 유투브 보는 것과 같이 노는것은 그 스트레스의 근원을 해결하는 방안은 아니다.
스트레스를 해결하기 위해서는 부지런해야 하며 내 스스로의 판단이 전부라고 생각하지 말고 주위 사람들의 조언, 서적들도 참고하며 해결할 수 있는 방안을 모색하자.</li>
</ul>
</li>
<li><p><code>문제가 있으면 문제를 해결하려고 덤벼드는 것이 올바른 태도이다. 문제는 그대로 남겨 둔 채 그 문제로 인하여 생긴 스트레스만을 풀어 버리려고 한다면 원인은 여전히 남아 있는 셈 아닌가?</code></p>
</li>
<li><p><code>스트레스를 없애는 가장 정확한 방법 역시 스트레스를 주는 문제의 원인을 파악하고 그 원인을 뿌리째 뽑아 버리는 것이다.</code></p>
</li>
<li><p><code>외부적 상황 때문에 스트레스가 생기는 것이 아니라 그 외부 상황을 어떻게 해야 해쳐 나가는지를 모르고 있는 당신의 두뇌 속 무지 때문에 생긴다는 말이다.</code></p>
</li>
<li><p><code>그 무지함의 뿌리는 바로 게으름이다.</code> [P.40]</p>
<ul>
<li>위에서 말했듯이 스트레스를 받았을 때 임시적으로 푼다고 해결되는 것이 아니다. 그 원인 자체를 뽑아 버려야 다시는 그에 대한 스트레스를 받지 않을 것이다. 하지만 그 근원을 없애기 위한 노력은 게으름 때문에 하지 않는다. 이제부터는 개인의 의지에 따라 달렸다.
회사 생활, 자기 개발 등으로 인하여 다른 부분에 에너지를 쏟고 싶지 않는 것 이해된다. 게임, 드라마, 유투브를 하루 종일 보는 것 또한 이해된다. 하지만 이왕 한번 사는 인생 멋지게 살아야 하지 않을까 싶다. 유흥을 즐기는 것도 좋다. 아예 하지 말라는 것은 아니라고 생각이 든다. 하지만 우선순위를 두고 인생을 살아야 한다고 생각이 든다.
1순위: 업무적 자기개발 (기계, 코딩 등)
2순위: 스트레스를 해소 위한 노력
3순위: 투자 자기개발
4순위: 유흥
으로 우선순위를 두고 인생 계획을 짜보는 것이 어떨까??</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[mojito2-fetch_ohlcv]]></title>
            <link>https://velog.io/@weed_940322/mojito2-fetchohlcv</link>
            <guid>https://velog.io/@weed_940322/mojito2-fetchohlcv</guid>
            <pubDate>Fri, 03 Jan 2025 12:57:40 GMT</pubDate>
            <description><![CDATA[<h1 id="fetch_ohlcvkospi-kosdaq">fetch_ohlcv(KOSPI, KOSDAQ)</h1>
<h2 id="1-output1">1. output1</h2>
<h3 id="1-가격정보">1) 가격정보</h3>
<ul>
<li>stck_prpr: 현재가</li>
<li>stck_oprc: 시가</li>
<li>stck_hgpr: 고가</li>
<li>stck_lwpr: 저가</li>
<li>stck_prdy_clpr: 전일 종가</li>
<li>stck_prdy_oprc: 전일 시가</li>
<li>stck_prdy_hgpr: 전일 고가</li>
<li>stck_prdy_lwpr: 전일 저가</li>
<li>stck_mxpr: 상한가</li>
<li>stck_llam: 하한가</li>
<li>stck_fcam: 액면가</li>
</ul>
<h3 id="2-호가-정보">2) 호가 정보</h3>
<ul>
<li>askp: 매도호가</li>
<li>bidp: 매수호가</li>
</ul>
<h3 id="3-거래량-정보">3) 거래량 정보</h3>
<ul>
<li>acml_vol: 누적 거래량</li>
<li>prdy_vol: 전일 거래량</li>
<li>prdy_vrss_vol: 전일대비거래량변동</li>
<li>vol_tnrt: 거래회전율</li>
<li>acml_tr_pbmm: 누적거래대금</li>
</ul>
<h3 id="4-등락-정보">4) 등락 정보</h3>
<ul>
<li>prdy_vrss: 전일대비변동금액</li>
<li>prdy_vrss_sign: 전일대비구분 (2: 상승)</li>
<li>prdy_ctrt: 전일대비등락률</li>
</ul>
<h3 id="5-기업정보">5) 기업정보</h3>
<ul>
<li>hts_kor_isnm: 종목명</li>
<li>stck_shrn_iscd: 종목코드</li>
<li>lstn_stcn: 상장주식수</li>
</ul>
<h3 id="6-투자지표">6) 투자지표</h3>
<ul>
<li>per: 주가수익비율</li>
<li>pbr: 주가순자산비율</li>
<li>eps: 주당순이익</li>
<li>cpfn: 자본금</li>
<li>hts_avls: 시가총액</li>
<li>itewhol_loan_rmnd_ratem: 대차잔고비율</li>
</ul>
<h2 id="2-output2">2. output2</h2>
<h3 id="1-가격-정보">1) 가격 정보</h3>
<ul>
<li>stck_oprc: 시가</li>
<li>stck_hgpr: 고가</li>
<li>stck_lwpr: 저가</li>
<li>stck_clpr: 종가</li>
</ul>
<h3 id="2-거래량거래대금">2) 거래량/거래대금</h3>
<ul>
<li>acml_vol: 누적거래량</li>
<li>acml_tr_pbmn: 누적거래대금</li>
</ul>
<h3 id="3-전일대비변동">3) 전일대비변동</h3>
<ul>
<li>prdy_vrss: 변동금액</li>
<li>prdy_crss_sign: 등락구분</li>
</ul>
<h3 id="4-기타정보">4) 기타정보</h3>
<ul>
<li>flng_cls_code: 락구분코드</li>
<li>mod_yn: 수정주가 여부</li>
<li>prtt_rate: 분할비율</li>
<li>revl_issu_reas: 재평가 사유<h1 id="fetch_ohlcvnyse-nasdaq">fetch_ohlcv(NYSE, NASDAQ)</h1>
<h2 id="1-output1-1">1. output1</h2>
<h3 id="1-기타정보">1) 기타정보</h3>
</li>
<li>nrec: 조회할 데이터 레코드 수</li>
<li>rsyn: 종목 심볼 코드<ul>
<li>DANS: NASDAQ 거래소 의미</li>
<li>AAPL: 애플 티커심볼</li>
</ul>
</li>
<li>zdiv: 시간간격 구분 코드</li>
</ul>
<h2 id="2-output2-1">2. output2</h2>
<h3 id="1-가격-정보-1">1) 가격 정보</h3>
<ul>
<li>open: 시가</li>
<li>high: 고가</li>
<li>low: 저가</li>
<li>clos: 종가</li>
</ul>
<h3 id="2-호가정보">2) 호가정보</h3>
<ul>
<li>pask: 매도호가</li>
<li>pbid: 매수호가</li>
<li>vask: 매도호가수량</li>
<li>vbid: 매수호가수량</li>
</ul>
<h3 id="3-등락정보">3) 등락정보</h3>
<ul>
<li>diff: 전일대비변동</li>
<li>rate: 등락률</li>
<li>sign: 등락구분</li>
</ul>
<h3 id="4-거래량거래대금">4) 거래량/거래대금</h3>
<ul>
<li>tvol: 거래량</li>
<li>tamt: 거래대금</li>
<li>xymd: 거래일자</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Python-Class]]></title>
            <link>https://velog.io/@weed_940322/Python-Class</link>
            <guid>https://velog.io/@weed_940322/Python-Class</guid>
            <pubDate>Tue, 31 Dec 2024 05:56:19 GMT</pubDate>
            <description><![CDATA[<h1 id="class">Class</h1>
<h2 id="1️⃣-개념">1️⃣ 개념</h2>
<ul>
<li>파이썬에서 <strong>class</strong>는 <strong>객체지향 프로그래밍(OOP)</strong>의 핵심이다.</li>
<li><strong>Class</strong>란 설계도를 만들고, 이 설계도를 바탕으로 <strong>물건</strong>을 만들어 사용한다고 생각하면 된다.</li>
</ul>
<h2 id="2️⃣-클래스-정의하기">2️⃣ 클래스 정의하기</h2>
<ul>
<li><p>클래스는 설계도이다. 설계도를 만들기 위해 <strong>데이터(속성)</strong>과 <strong>동작(메서드)</strong>가 필요하다.</p>
<pre><code>class Student:
  # 초기 설정 (__init__)
  def __init__(self, name, age):
      self.name = name  # 학생 이름
      self.age = age    # 학생 나이

  # 행동(메서드)
  def introduce(self):
      print(f&quot;안녕하세요, 저는 {self.name}이고, {self.age}살입니다.&quot;)</code></pre></li>
</ul>
<h2 id="3️⃣-객체-생성하기">3️⃣ 객체 생성하기</h2>
<ul>
<li>클래스를 바탕으로 <strong>객체</strong>를 생성해서 사용한다.</li>
<li>아래 코드에서 <code>student1</code>과 <code>student2</code>는 Student 클래스에서 만들어진 두 개의 독립적인 객체이다.<pre><code>student1 = Student(&quot;철수&quot;, 15)  # 철수라는 학생 객체 생성
student2 = Student(&quot;영희&quot;, 14)  # 영희라는 학생 객체 생성</code></pre><h2 id="4️⃣-객체-사용하기">4️⃣ 객체 사용하기</h2>
</li>
<li>객체를 생성하면, 그 클래스 안에 있는 데이터(속성)과 행동(메서드)를 사용할 수 있다.<pre><code>student1.introduce()  # 철수의 소개
# 출력: 안녕하세요, 저는 철수이고, 15살입니다.
</code></pre></li>
</ul>
<p>student2.introduce()  # 영희의 소개</p>
<h1 id="출력-안녕하세요-저는-영희이고-14살입니다">출력: 안녕하세요, 저는 영희이고, 14살입니다.</h1>
<pre><code>
## 5️⃣ self
* `self`는 클래스와 객체의 관계를 이해하는 핵심이다. `self`는 **현재 이 객체 자신**을 가리키는 특별한 변수이다.
* `self`는 메서드가 내가 지금 어떤 객체와 관련된 동작을 수행 중인지 알게 해준다.
* 객체 자신의 **데이터(속성)과 메서드(행동)**에 접근한다.
### self가 있는 코드
* 클래스 생성</code></pre><p>class Student:
    def <strong>init</strong>(self, name, age):
        self.name = name  # 이 객체의 name 속성을 설정
        self.age = age    # 이 객체의 age 속성을 설정</p>
<pre><code>def introduce(self):
    print(f&quot;안녕하세요, 저는 {self.name}이고, {self.age}살입니다.&quot;)</code></pre><pre><code>
* 객체 생성</code></pre><p>student1 = Student(&quot;철수&quot;, 15)  # 철수라는 학생 객체 생성
student2 = Student(&quot;영희&quot;, 14)  # 영희라는 학생 객체 생성</p>
<pre><code>
* 객체 메서드 호출</code></pre><p>student1.introduce()  # self는 student1을 가리킴</p>
<h1 id="출력-안녕하세요-저는-철수이고-15살입니다">출력: 안녕하세요, 저는 철수이고, 15살입니다.</h1>
<p>student2.introduce()  # self는 student2를 가리킴</p>
<h1 id="출력-안녕하세요-저는-영희이고-14살입니다-1">출력: 안녕하세요, 저는 영희이고, 14살입니다.</h1>
<pre><code>* `self` 덕분에 메서드가 호출된 객체에 맞는 데이터를 사용할 수 있다.

### self가 없는 코드
* `self`가 없으면, 메서드가 어느 객체에 연결되어 있는지 알 수 없다.</code></pre><p>class Student:
    def <strong>init</strong>(name, age):  # self 빠짐
        name = name  # 누구의 name인지 알 수 없음!
        age = age    # 누구의 age인지 알 수 없음!</p>
<pre><code></code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[Module_time]]></title>
            <link>https://velog.io/@weed_940322/Moduletime</link>
            <guid>https://velog.io/@weed_940322/Moduletime</guid>
            <pubDate>Mon, 30 Dec 2024 08:40:27 GMT</pubDate>
            <description><![CDATA[<h1 id="time">time</h1>
<h2 id="1️⃣-python-time-모듈">1️⃣ Python time 모듈</h2>
<ul>
<li>Python <code>time</code> 모듈은 <strong>시간과 관련된 작업</strong>을 처리할 때 사용하는 표준 라이브러리이다.</li>
<li>프로그램 실행을 잠시 멈추거나 현재 시간을 측정하는 등의 작업이 가능하다.</li>
</ul>
<h2 id="2️⃣-주요-기능">2️⃣ 주요 기능</h2>
<h3 id="1-현재-시간-확인">1. 현재 시간 확인</h3>
<ul>
<li>현재 시간을 <strong>1970/01/01 (Unix Epoch)</strong>부터의 초 단위로 반환</li>
<li>예제<pre><code>import time
print(time.time())  # 출력: 1698765432.123456 (초 단위의 실수 값)
</code></pre></li>
</ul>
<pre><code>
### 2. 프로그램 일시 중지
* 프로그램의 실행을 지정한 시간만큼 멈추게 한다.
* 예제</code></pre><p>print(&quot;3초 대기 중...&quot;)
time.sleep(3)  # 3초 동안 대기
print(&quot;끝!&quot;)</p>
<pre><code>
### 3. 구조화된 시간 정보 반환
* 시간을 구조화된 형태(년, 월, 일 등)로 반환한다.
* 예제</code></pre><p>local_time = time.localtime()  # 현재 로컬 시간
print(local_time)</p>
<h1 id="출력-timestruct_timetm_year2024-tm_mon12-tm_mday30-">출력: time.struct_time(tm_year=2024, tm_mon=12, tm_mday=30, ...)</h1>
<pre><code>
### 4. 구조화된 시간 → 문자열 변환
* 구조화된 시간을 원하는 포맷의 문자열로 변환한다.
* 예제</code></pre><p>print(time.strftime(&quot;%Y-%m-%d %H:%M:%S&quot;, time.localtime()))</p>
<h1 id="출력-2024-12-30-144512">출력: &quot;2024-12-30 14:45:12&quot;</h1>
<pre><code>## 3️⃣ 알아두면 좋은 점
### 1. 정확한 시간 측정
* 정확한 시간 측정이 필요하면 `time.perf_counter()`을 사용하면 된다.
* 예제</code></pre><p>start = time.perf_counter()</p>
<h1 id="작업-수행">작업 수행</h1>
<p>end = time.perf_counter()
print(f&quot;소요 시간: {end - start:.6f}초&quot;)</p>
<p>```</p>
<h3 id="2-utc와-로컬-시간-차이">2. UTC와 로컬 시간 차이</h3>
<ul>
<li><code>time.localtime()</code>은 로컬 시간, <code>time.gmtime()</code>은 UTC 시간을 반환한다.</li>
</ul>
<h3 id="3-날짜시간-작업은-datetime-모듈-추천">3. 날짜/시간 작업은 datetime 모듈 추천</h3>
<ul>
<li>날짜 계산, 특정 시간대 관리 등 고급 기능은 datetime 모듈이 더 적합하다. </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Module_dotenv]]></title>
            <link>https://velog.io/@weed_940322/Moduledotenv</link>
            <guid>https://velog.io/@weed_940322/Moduledotenv</guid>
            <pubDate>Mon, 30 Dec 2024 05:00:45 GMT</pubDate>
            <description><![CDATA[<h1 id="dotenv">dotenv</h1>
<h2 id="1️⃣-python-dotenv란">1️⃣ Python dotenv란?</h2>
<ul>
<li>Python의 <code>dotenv</code>는 환경 변수 관리를 쉽게 해주는 라이브러리이다.</li>
<li>개발 시 민감한 정보(예: API 키, 데이터베이스 비밀번호)를 코드에 직접 적으면 보안 문제 발생 가능하다.</li>
<li><code>dotenv</code>를 사용하면 이런 정보들을 <code>.env</code> 파일에 따로 저장하고, Python 코드에서 가져올 수 있다.</li>
</ul>
<h2 id="2️⃣-사용-목적">2️⃣ 사용 목적</h2>
<ul>
<li><strong>보안</strong>: 중요한 정보를 코드에 직접 작성할 필요 없다.</li>
<li><strong>관리 편리성</strong>: 환경 변수들을 파일로 한 곳에 정리하여, 필요할 때 쉽게 수정하거나 추가할 수 있다.</li>
<li><strong>배포 효율성</strong>: 타 개발자나 서버에서 <code>.env</code> 파일만 추가하면 환경 설정이 동일하게 적용 된다.</li>
</ul>
<h2 id="3️⃣-주요-기능">3️⃣ 주요 기능</h2>
<p><code>dotenv</code>는 <code>.env</code> 파일에 저장된 값을 Python의 환경 변수로 쉽게 로드하고 사용할 수 있도록 한다.</p>
<h3 id="1-env-파일-작성">1. .env 파일 작성</h3>
<ul>
<li><code>.env</code> 파일은 간단한 Key=Value 형식으로 작성된다.</li>
<li>예제<pre><code>API_KEY=your_api_key_here
DB_HOST=localhost
DB_USER=admin
DB_PASSWORD=secure_password</code></pre><h3 id="2-환경-변수-로드">2. 환경 변수 로드</h3>
</li>
<li>Python에서 <code>dotenv</code>를 사용해 <code>.env</code> 파일의 값을 불러온다.</li>
<li>예제<pre><code>from dotenv import load_dotenv
import os
</code></pre></li>
</ul>
<h1 id="env-파일-로드">.env 파일 로드</h1>
<p>load_dotenv()</p>
<h1 id="환경-변수-가져오기">환경 변수 가져오기</h1>
<p>api_key = os.getenv(&quot;API_KEY&quot;)
db_host = os.getenv(&quot;DB_HOST&quot;)</p>
<p>print(f&quot;API Key: {api_key}&quot;)
print(f&quot;DB Host: {db_host}&quot;)</p>
<pre><code>
### 3. 환경 변수 설정
* 환경 변수를 코드에서 직접 설정할 수 있다.
* 예제</code></pre><p>from dotenv import set_key, load_dotenv
import os</p>
<h1 id="env-파일-경로-지정">.env 파일 경로 지정</h1>
<p>dotenv_path = &quot;.env&quot;</p>
<h1 id="키-값-추가">키-값 추가</h1>
<p>set_key(dotenv_path, &quot;NEW_KEY&quot;, &quot;new_value&quot;)</p>
<h1 id="확인">확인</h1>
<p>load_dotenv()
print(os.getenv(&quot;NEW_KEY&quot;))  # 출력: new_value</p>
<pre><code>
## 4️⃣ 사용 예시
### 1. API 키 관리
API 키를 `.env` 파일에 저장 후, 코드에서 안전하게 사용</code></pre><h1 id="env-파일">.env 파일</h1>
<p>API_KEY=your_api_key_here</p>
<pre><code>---------------------</code></pre><p>from dotenv import load_dotenv
import os</p>
<p>load_dotenv()
api_key = os.getenv(&quot;API_KEY&quot;)
print(f&quot;사용할 API 키: {api_key}&quot;)</p>
<pre><code>### 2. 다양한 환경 구성
개발 환경과 운영 환경을 쉽게 관리할 수 있다.</code></pre><h1 id="envdev">.env.dev</h1>
<p>DEBUG=True
DB_NAME=dev_database</p>
<h1 id="envprod">.env.prod</h1>
<p>DEBUG=False
DB_NAME=prod_database</p>
<pre><code>------------------</code></pre><p>import os
from dotenv import load_dotenv</p>
<h1 id="환경에-맞는-env-파일-로드">환경에 맞는 .env 파일 로드</h1>
<p>env_file = &quot;.env.dev&quot; if os.getenv(&quot;ENV&quot;) == &quot;development&quot; else &quot;.env.prod&quot;
load_dotenv(env_file)</p>
<h1 id="환경-변수-사용">환경 변수 사용</h1>
<p>print(os.getenv(&quot;DB_NAME&quot;))</p>
<pre><code>
## 5️⃣ 주의할 점
* `.env` 파일은 민감한 정보를 담고 있어 **Git (버전관리)**에 포함시키면 안된다.
  * `.gitignore` 파일에 `.env`를 추가한다.</code></pre><p>  .env</p>
<pre><code>
* 환경 변수는 문자열로 저장되어, 숫자나 불리언 값을 사용 시 변환이 필요하다.</code></pre><p>debug = os.getenv(&quot;DEBUG&quot;) == &quot;True&quot;  # 문자열 &quot;True&quot;를 불리언 True로 변환</p>
<pre><code></code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[Module_OS]]></title>
            <link>https://velog.io/@weed_940322/ModuleOS</link>
            <guid>https://velog.io/@weed_940322/ModuleOS</guid>
            <pubDate>Mon, 30 Dec 2024 04:41:23 GMT</pubDate>
            <description><![CDATA[<h1 id="os">OS</h1>
<h2 id="1️⃣-python-os-모듈">1️⃣ Python OS 모듈</h2>
<ul>
<li>Python OS 모듈은 운영 체제와 상호작용할 수 있도록 도와주는 모듈이다.</li>
<li>컴퓨터 파일 시스템(폴더, 파일)이나 환경 변수와 같은 운영 체제 관련 작업을 Python 코드로 쉽게 처리할 수 있다.</li>
</ul>
<h2 id="2️⃣-주요-기능">2️⃣ 주요 기능</h2>
<h3 id="1-현재-작업-디렉터리-확인-및-변경">1. 현재 작업 디렉터리 확인 및 변경</h3>
<ul>
<li>작업 디렉터리: 현재 Python 코드가 실행되고 있는 폴더를 말한다.</li>
<li>예제<pre><code>import os
print(os.getcwd())  # 현재 작업 디렉터리를 출력
os.chdir(&quot;새로운_폴더&quot;)  # 작업 디렉터리를 변경</code></pre><h3 id="2-파일-및-폴더-관리">2. 파일 및 폴더 관리</h3>
</li>
<li>파일 및 폴더를 생성하거나 삭제하는 작업을 한다.</li>
<li>예제<pre><code>os.mkdir(&quot;새로운_폴더&quot;)  # 새로운 폴더 만들기
os.rmdir(&quot;새로운_폴더&quot;)  # 빈 폴더 삭제
os.remove(&quot;파일_이름.txt&quot;)  # 파일 삭제
os.rename(&quot;기존파일.txt&quot;, &quot;새파일.txt&quot;)  # 파일 이름 변경</code></pre></li>
</ul>
<h3 id="3-파일-및-폴더-내용-리스트-출력">3. 파일 및 폴더 내용 리스트 출력</h3>
<ul>
<li>특정 디렉터리에 있는 파일과 폴더 확인 가능</li>
<li>예제<pre><code>print(os.listdir(&quot;.&quot;))  # 현재 디렉터리의 모든 파일과 폴더 출력</code></pre></li>
</ul>
<h3 id="4-환경-변수-읽기">4. 환경 변수 읽기</h3>
<ul>
<li>환경 변수란 운영 체제에서 설정된 중요한 값들(예: PATH)이다.</li>
<li>예제<pre><code>print(os.environ)  # 모든 환경 변수 출력
print(os.environ.get(&quot;HOME&quot;))  # 특정 환경 변수 값 읽기</code></pre></li>
</ul>
<h3 id="5-운영-체제-정보-확인">5. 운영 체제 정보 확인</h3>
<ul>
<li>프로그램이 실행 중인 운영 체제가 무엇인지 확인할 수 있다.</li>
<li>예제<pre><code>print(os.name)  # 운영 체제 이름 출력 (e.g., &#39;posix&#39;, &#39;nt&#39;)</code></pre></li>
</ul>
<h2 id="3️⃣-알아두면-좋은-점">3️⃣ 알아두면 좋은 점</h2>
<ul>
<li>OS 모듈은 운영 체제별로 동작이 다를 수 있으니, <code>Windows</code>와 <code>macOS/Linux</code>에서 테스트해보는 것이 좋다.</li>
<li>파일 경로를 다룰 때는 os.path 모듈도 함께 사용하면 편리하다.</li>
</ul>
<p>3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[REST]]></title>
            <link>https://velog.io/@weed_940322/REST</link>
            <guid>https://velog.io/@weed_940322/REST</guid>
            <pubDate>Sun, 29 Dec 2024 14:50:08 GMT</pubDate>
            <description><![CDATA[<h1 id="rest란">REST란?</h1>
<h2 id="1️⃣-rest-개념">1️⃣ REST 개념</h2>
<ul>
<li>네트워크 상에서 자원을 관리하고 상호작용하기 위한 아키택처 스타일</li>
<li>주로 웹 애플리케이션 API 설계에 사용됨</li>
<li>즉, <strong>인터넷에서 데이터를 주고받는 방법</strong>이다.</li>
<li>예를 들어, 웹사이트에서 필요한 정보를 가져오거나 데이터를 저장할 때 REST를 사용한다.</li>
</ul>
<h2 id="2️⃣-rest-주요-구성-요소">2️⃣ REST 주요 구성 요소</h2>
<h3 id="1-리소스-resource">1. 리소스 (Resource)</h3>
<ul>
<li>시스템 내의 모든 것을 자원으로 간주</li>
<li>우리가 주고받는 데이터(예: 사용자 정보, 삼품 목록 등)를 말한다.</li>
<li>각 자원은 고유한 URL로 식별됨 (예: <a href="https://api.example.com/users/123">https://api.example.com/users/123</a>)</li>
</ul>
<h3 id="2-http-메서드">2. HTTP 메서드</h3>
<ul>
<li>자원에 대한 작업을 지정하는 표준 HTTP 메서드</li>
<li>즉, 데이터를 어떻게 처리할지 결정하는 <strong>명령어</strong>라고 생각하면 된다.<ul>
<li><strong>GET</strong>: 리소스 조회</li>
<li><strong>POST</strong>: 새로운 리소스 생성</li>
<li><strong>PUT</strong>: 기존 리소스 수정 or 교체</li>
<li><strong>PATCH</strong>: 리소스 일부만 수정</li>
<li><strong>DELETE</strong>: 리소스 삭제</li>
</ul>
</li>
</ul>
<h3 id="3-표현-representation">3. 표현 (Representation)</h3>
<ul>
<li>리소스는 <code>JSON</code>, <code>XML</code> 등 다양한 형식으로 표현 가능하다.</li>
<li><code>JSON</code>이 가장 많이 사용된다.</li>
</ul>
<h3 id="4-url-uniform-resource-identifier">4. URL (Uniform Resource Identifier)</h3>
<ul>
<li>REST에서 자원을 식별하는 표준 주소 체계</li>
<li>예: <a href="https://api.example.com/v1/products/123">https://api.example.com/v1/products/123</a><h2 id="3️⃣-rest-설계-원칙">3️⃣ REST 설계 원칙</h2>
<h3 id="1-상태-비저장-stateless">1. 상태 비저장 (Stateless)</h3>
</li>
<li>서버는 클라이언트의 상태를 저장하지 않는다.</li>
<li>각 요청은 독립적이며 필요한 정보를 포함해야 한다.</li>
</ul>
<h3 id="2-클라이언트-서버-분리">2. 클라이언트-서버 분리</h3>
<ul>
<li>클라이언트와 서버는 서로 독립적으로 설게한다.</li>
<li>클라이언트는 UI를 관리하고, 서버는 데이터 처리를 담당.</li>
</ul>
<h3 id="3-캐시-가능-cacheable">3. 캐시 가능 (Cacheable)</h3>
<ul>
<li>HTTP 캐싱을 활용하여 요청 응답 성능을 최적화</li>
<li>자주 요청되는 데이터는 저장해서 빠르게 불러올 수 있다.</li>
</ul>
<h3 id="4-계층화-layered-system">4. 계층화 (Layered System)</h3>
<ul>
<li>중간 계층 (프록시, 로드 밸런서, 캐시 서버 등)을 통해 클라이언트-서버 간 통신 가능</li>
</ul>
<h3 id="5-통일된-인터페이스">5. 통일된 인터페이스</h3>
<ul>
<li>자원의 엑세스 방식이 일관되어야 함</li>
</ul>
<h2 id="4️⃣-rest-장점--단점">4️⃣ REST 장점 / 단점</h2>
<h3 id="1-장점">1. 장점</h3>
<ul>
<li><strong>간단하고 직관적</strong>: HTTP 기반으로 이해하기 쉬움</li>
<li><strong>확장성</strong>: 클라이언트와 서버가 독립적으로 확장 가능</li>
<li><strong>캐싱 가능</strong>: HTTP 캐시로 성능 최적화</li>
<li><strong>호환성</strong>: 다양한 플랫폼에서 사용 가능</li>
</ul>
<h3 id="2-단점">2. 단점</h3>
<ul>
<li>상태 비저장 설계로 인해 클라이언트가 요청 데이터를 반복적으로 전송해야 함</li>
<li>복잡한 쿼리 처리에는 REST보다 GraphQL이 더 적합할 수 있음</li>
<li>대규모 데이터 처리나 배치 작업에는 적합하지 않음</li>
</ul>
<h2 id="5️⃣-rest와-다른-기술-비교">5️⃣ REST와 다른 기술 비교</h2>
<ul>
<li><strong>SOAP</strong>: 더 구조화된 프로토콜, 보안 및 트랜잭션 관리에 강점</li>
<li><strong>GraphQL</strong>: 유연하고 단일 요청에서 여러 리소스를 조회 가능</li>
</ul>
<h2 id="✅-rest-활용-상황">✅ REST 활용 상황</h2>
<h3 id="영화-정보를-보여주는-앱">영화 정보를 보여주는 앱</h3>
<p>당신은 영화 정보를 제공하는 앱을 개발하고 있다고 가정한다.
이 앱에서는 사용자들이 최신 영화 목록과 특정 영화의 세부 정보를 확인할 수 있어야 한다.</p>
<h3 id="rest를-이용해-데이터를-주고받는-과정">REST를 이용해 데이터를 주고받는 과정</h3>
<h4 id="1-사용자가-앱에서-최신-영화-목록을-보려고-한다">1. 사용자가 앱에서 최신 영화 목록을 보려고 한다.</h4>
<ul>
<li>앱이 REST API의 GET 요청을 보낸다.<pre><code>//plaintext
</code></pre></li>
</ul>
<p>GET <a href="https://api.movies.com/latest">https://api.movies.com/latest</a></p>
<pre><code>* 서버는 최신 영화 목록 데이터를 JSON 형식으로 반환한다.</code></pre><p>// JSON</p>
<p>[
  { &quot;id&quot;: 1, &quot;title&quot;: &quot;The Great Adventure&quot;, &quot;year&quot;: 2023 },
  { &quot;id&quot;: 2, &quot;title&quot;: &quot;Mystery Night&quot;, &quot;year&quot;: 2023 }
]</p>
<pre><code>
* 앱은 이 데이터를 화면에 보여준다.

#### 2. 사용자가 특정 영화의 상세 정보를 보려고 한다.
* 앱이 REST API의 또 다른 GET 요청을 보낸다.</code></pre><p>//plaintext</p>
<p>GET <a href="https://api.movies.com/movies/1">https://api.movies.com/movies/1</a></p>
<pre><code>
* 서버는 ID가 1인 영화의 상세 정보를 반환한다.</code></pre><p>// JSON</p>
<p>{
  &quot;id&quot;: 1,
  &quot;title&quot;: &quot;The Great Adventure&quot;,
  &quot;year&quot;: 2023,
  &quot;genre&quot;: &quot;Adventure&quot;,
  &quot;rating&quot;: 4.7
}</p>
<pre><code>
* 앱은 이 정보를 상세 화면에 보여준다.

#### 3. 사용자가 새로운 영화를 추가하려고 하낟.
* 앱이 REST API의 POST 요청을 보낸다.</code></pre><p>//plaintext</p>
<p>POST <a href="https://api.movies.com/movies">https://api.movies.com/movies</a>
Content-Type: application/json</p>
<pre><code>
* 요청 본문에는 새로운 영화 정보가 들어간다.</code></pre><p>// JSON</p>
<p>{
  &quot;title&quot;: &quot;New Blockbuster&quot;,
  &quot;year&quot;: 2024,
  &quot;genre&quot;: &quot;Action&quot;
}</p>
<pre><code>
* 서버는 새로운 영화가 성공적으로 추가되었음을 알리고, 새 영화의 ID를 반환한다.</code></pre><p>// JSON</p>
<p>{ &quot;id&quot;: 3, &quot;message&quot;: &quot;Movie added successfully.&quot; }</p>
<p>```</p>
<h3 id="rest의-역할">REST의 역할</h3>
<ul>
<li>REST는 이렇게 <strong>앱(클라이언트)</strong>와 <strong>서버</strong>가 서로 데이터를 주고받는 역할을한다.</li>
<li>서버는 데이터를 제공하거나 처리하고, 앱은 그 데이터를 사용자에게 보여주거나 활용한다.</li>
</ul>
<h3 id="중요한-점">중요한 점</h3>
<ul>
<li><strong>URL</strong>로 리소스(데이터)를 명확히 구분할 수 있다.</li>
<li><strong>HTTP 메서드</strong>로 데이터 처리 방식을 표현한다.
(GET: 조회, POST: 생성, PUT: 수정, DELETE: 삭제)</li>
<li>데이터는 주로 <strong>JSON 형식</strong>으로 주고받아서 가볍고 읽기 쉽다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Open API??]]></title>
            <link>https://velog.io/@weed_940322/Open-API</link>
            <guid>https://velog.io/@weed_940322/Open-API</guid>
            <pubDate>Sun, 29 Dec 2024 14:24:13 GMT</pubDate>
            <description><![CDATA[<h1 id="open-api란">Open API란?</h1>
<h2 id="1️⃣-open-api-개념">1️⃣ Open API 개념</h2>
<p>Open API는 개발자와 외부 사용자가 액세스할 수 있도록 공개된 응용 프로그래밍 인터페이스이다. 이를 통해 타사 개발자가 서비스, 애플리케이션, 플랫폼과 프로그래밍 방식으로 상호 작용할 수 있다. Open API는 일반적으로 문서화되어 있고, 표준화되어 있으며, 인터넷을 통해 접근 가능하여 개발자가 통합 및 애플리케이션을 쉽게 구축할 수 있다.</p>
<h2 id="2️⃣-open-api-사용-방법">2️⃣ Open API 사용 방법</h2>
<ol>
<li><strong>API 문서 찾기</strong>
공식 웹사이트나 API 제공자의 플랫폼에서 상세한 문서를 확인한다.</li>
<li><strong>API 키 받기</strong>
대부분의 API는 요청을 인증하기 위해 API 키가 필요하다.</li>
<li><strong>앤드포인트 이해하기</strong>
앤드포인트는 API 서비스를 액세스하는 특정 URL이다. (예: <a href="https://api.example.com/v1/users">https://api.example.com/v1/users</a>)</li>
<li><strong>요청 보내기</strong>
Postman, cURL 같은 도구를 사용하거나 선호하는 프로그래밍 언어로 코드를 작성해 API 앤드포인트에 요청을 보낸다.</li>
<li><strong>응답 처리하기</strong>
API는 일반적으로 <strong>JSON</strong>, <strong>XML</strong> 형식의 데이터를 반환하며, 이를 애플리케이션에서 처리할 수 있다.<h3 id="api-키란">API 키란?</h3>
API 키는 API 제공자가 제공하는 고유 식별자로, 요청을 인증하고 추적하는데 사용한다. 이를 통해 <strong>승인된 사용자</strong>만 API에 엑세스할 수 있으며, 사용량을 모니터링하여 과금 또는 제한을 관리할 수 있다. API 키는 일반적으로 <strong>요청 헤더</strong>나 <strong>쿼리 매개변수</strong>로 전달된다.<h2 id="3️⃣-open-api에서-ip는-어떻게-활용이-되나">3️⃣ Open API에서 IP는 어떻게 활용이 되나?</h2>
</li>
<li><strong>엑세스 제한</strong>: API 제공자는 특정 IP 주소에서만 요청을 허용하여 보안을 강화할 수 있다.</li>
<li><strong>사용량 모니터링</strong>: 들어오는 요청의 IP 주소를 기록하여 사용 패턴을 분석하고 남용을 감지한다.</li>
<li><strong>지역 제한</strong>: 일부 API는 IP 주소를 기반으로 지리적 제한 시행한다.</li>
</ol>
<p>IP 기반 제한을 사용하려면, API 키 또는 API 게이트웨이를 설정하여 특정 IP의 요청만 수락하도록 구성한다.</p>
<h2 id="4️⃣-open-api-장점--단점">4️⃣ Open API 장점 / 단점</h2>
<h3 id="장점">장점</h3>
<ul>
<li><strong>통합 용이성</strong>: 애플리케이션 연결 과정을 단순화한다.</li>
<li><strong>혁신 촉진</strong>: 타사 개발자가 새로운 서비스나 기능을 생성하도록 장려한다.</li>
<li><strong>확장성</strong>: 서비스를 공개하여 비즈니스 생태계를 확장할 수 있다.</li>
<li><strong>비용 효율성</strong>: 기존 API를 재사용하여 개발 비용을 절감한다.</li>
</ul>
<h3 id="단점">단점</h3>
<ul>
<li><strong>보안 위험</strong>: 잘못 관리하면 취약점으로 이어질 수 있다.</li>
<li><strong>남용 가능성</strong>: 타사 개발자로부터 높은 트래픽이 리소스를 과도하게 소모할 수 있다.</li>
<li><strong>의존성</strong>: 타사 개발자는 API 제공자의 가동 시간과 변경에 의존하게 된다.<h2 id="5️⃣-다양한-api">5️⃣ 다양한 API</h2>
</li>
<li><strong>Private API</strong>: 조직 내부에서만 사용. 외부 공개 X</li>
<li><strong>Partner API</strong>: 특정 파트너나 협력사와 통합을 위해 공유</li>
<li><strong>RESTful API</strong>: Open API에서 자주 사용하는 일반적인 아키텍처 스타일</li>
<li><strong>GraphQL</strong>: REST를 대체하는 현대적인 API 쿼리 방식<h2 id="6️⃣-open-api-활용-사례">6️⃣ Open API 활용 사례</h2>
</li>
<li><strong>소셜 미디어 통합</strong>: Facebook의 Graph API와 Twitter API는 개발자가 앱에 소셜 기능을 통합할 수 있도록 한다.</li>
<li><strong>결제 게이트웨이</strong>: Stripe 및 PayPal API는 안전한 결제 처리를 가능하게 한다.</li>
<li><strong>날씨 애플리케이션</strong>: OpenWeatherMap과 같은 API는 앱에 날씨 데이터를 제공한다.</li>
<li><strong>지도 서비스</strong>: Google Maps API는 애플리케이션에 지도 및 위치 데이터를 포함한다.</li>
<li><strong>데이터 분석</strong>: Google Analytics와 같은 API는 웹사이트 트래픽에 대한 통찰력을 제공한다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[JSON이란??]]></title>
            <link>https://velog.io/@weed_940322/JSON%EC%9D%B4%EB%9E%80</link>
            <guid>https://velog.io/@weed_940322/JSON%EC%9D%B4%EB%9E%80</guid>
            <pubDate>Wed, 18 Dec 2024 14:53:17 GMT</pubDate>
            <description><![CDATA[<h1 id="json이란-개념-알아보기">JSON이란?? 개념 알아보기</h1>
<h2 id="1️⃣-json의-정의와-역할">1️⃣ JSON의 정의와 역할</h2>
<p>JSON은 <strong>JavaScript Object Notation</strong>의 약자로, 데이터를 저장하거나 교환하기 위해 사용하는 가벼운 데이터 형식이다.
기본적으로 <strong>Key-Value Pair</strong>로 데이터를 표현하며, 사람과 컴퓨터 모두 읽고 쓰기 쉽도록 설계되었다.</p>
<h2 id="2️⃣-json-주요-특징">2️⃣ JSON 주요 특징</h2>
<ol>
<li>텍스트 기반: 사람이 읽기 쉽고, 대부분의 프로그래밍 언어에서 사용 가능</li>
<li>구조화된 데이터: 데이터를 계층적으로 표현 가능 (배열, 객체 등)</li>
<li>언어 독립적: JSON은 JavaScript에서 유래했지만, Python, Java, C#, PHP 등 대부분의 언어에서 지원한다.</li>
</ol>
<h3 id="❗️데이터를-계층적으로-표현">❗️데이터를 계층적으로 표현??</h3>
<p>이는 데이터를 중첩된 구조로 정리할 수 있다는 의미이다. 하나의 데이터 안에 또 다른 데이터(객체나 배열)를 포함시켜서 상하 관계 또는 포함 관계를 표현할 수 있다.
계층적 구조를 생각할 때 <strong>나무</strong>를 떠올리면 이해하기 쉽다.</p>
<ul>
<li>뿌리: 데이터를 시작하는 중심</li>
<li>가지: 데이터를 세부적으로 나누는 분류</li>
<li>잎: 각각의 데이터 값
JSON에서 이런 <strong>뿌리-가지-잎</strong> 관계를 <strong>객체(Object)</strong>와 <strong>배열(Array)</strong>로 표현한다.</li>
</ul>
<h4 id="json의-계층적-구조-예제">JSON의 계층적 구조 예제</h4>
<p>(1) 단순한 데이터 (평면적인 구조)</p>
<pre><code>{
  &quot;name&quot;: &quot;홍길동&quot;,
  &quot;age&quot;: 25,
  &quot;city&quot;: &quot;서울&quot;
}</code></pre><ul>
<li>여기서는 데이터가 나열되어 있지만, 특별히 안에 또 다른 데이터가 포함되어 있지 않다.</li>
</ul>
<p>(2) 계층적 데이터 (중첩된 구조)</p>
<pre><code>{
  &quot;name&quot;: &quot;홍길동&quot;,
  &quot;age&quot;: 25,
  &quot;address&quot;: {
    &quot;city&quot;: &quot;서울&quot;,
    &quot;district&quot;: &quot;강남구&quot;,
    &quot;street&quot;: &quot;테헤란로&quot;
  },
  &quot;hobbies&quot;: [&quot;축구&quot;, &quot;독서&quot;]
}</code></pre><ul>
<li><code>address</code>안에 또 다른 객체가 있다. 이 객체는 <code>city</code>, <code>district</code>, <code>street</code> 정보를 가진다.</li>
<li><code>hobbies</code>는 배열로 취미 리스트를 가진다.</li>
</ul>
<h4 id="계층적-구조의-의미">계층적 구조의 의미</h4>
<ol>
<li>데이터 그룹화 가능
여러 관련 데이터를 하나의 큰 데이터 안에 <strong>그룹화</strong> 할 수 있다. 예를 들어, <code>address</code> 객체는 모든 주소 정보를 한곳에 모아둔 데이터이다.</li>
<li>복잡한 정보 표현 가능
단순히 한 줄씩 나열하는 것이 아니라, 데이터를 더 <strong>구조적으로 표현</strong>할 수 있다.
예시: 한 사용자의 이름, 나이, 주소, 취미를 명확히 구분</li>
<li>가독성 향상
데이터가 계층적으로 정리되면, 사람이 읽거나 데이터를 처리하는 프로그램도 더 쉽게 이해핤 수 있다.</li>
</ol>
<h4 id="더-복잡한-계층적-json-예제">더 복잡한 계층적 JSON 예제</h4>
<pre><code>{
  &quot;storeName&quot;: &quot;Tech Shop&quot;,
  &quot;products&quot;: [
    {
      &quot;name&quot;: &quot;Laptop&quot;,
      &quot;price&quot;: 1200,
      &quot;specs&quot;: {
        &quot;brand&quot;: &quot;Lenovo&quot;,
        &quot;processor&quot;: &quot;Intel i7&quot;,
        &quot;ram&quot;: &quot;16GB&quot;
      }
    },
    {
      &quot;name&quot;: &quot;Smartphone&quot;,
      &quot;price&quot;: 800,
      &quot;specs&quot;: {
        &quot;brand&quot;: &quot;Samsung&quot;,
        &quot;processor&quot;: &quot;Exynos&quot;,
        &quot;ram&quot;: &quot;8GB&quot;
      }
    }
  ]
}</code></pre><ul>
<li><code>product</code>는 배열로, 여러 상품 데이터를 포함한다.</li>
<li>배열 안의 각 상품 (<code>Laptop</code>, <code>Smartphone</code>)은 객체로 표현되며, 각 상품마다 다른 속성 (이름, 가격, 스펙 등)을 가진다.</li>
<li>각 상품의 <code>specs</code>는 중첩된 객체로, 상품의 상세  사양을 지정한다.</li>
</ul>
<h4 id="계층적-구조의-장점">계층적 구조의 장점</h4>
<ol>
<li>정보 분류가 명확
관련된 데이터를 묶어서 저장할 수 있으므로 데이터 의미가 분명해진다.</li>
<li>복잡한 데이터 표현 가능
예를 들어, 위처럼 상품마다 서로 다른 세부 정보를 담을 수 있다.</li>
<li>데이터 확장 용이
새로운 정보가 추가될 때 기존 구조에 영향을 주지 않고 쉽게 확장 가능하다. (예: <code>specs</code>에 추가로 <code>weight</code>, <code>battery</code> 같은 속성을 더해도 구조가 깨지지 않음.) </li>
</ol>
<h4 id="python-예제">Python 예제</h4>
<p>프로그래밍 언어에서 이런 계층적 구조를 탐색하고 가공하는 작업을 쉽게 처리할 수 있다.</p>
<pre><code>import json

# JSON 데이터
json_data = &#39;&#39;&#39;
{
  &quot;name&quot;: &quot;홍길동&quot;,
  &quot;address&quot;: {
    &quot;city&quot;: &quot;서울&quot;,
    &quot;district&quot;: &quot;강남구&quot;
  },
  &quot;hobbies&quot;: [&quot;축구&quot;, &quot;독서&quot;]
}
&#39;&#39;&#39;

# JSON 문자열을 Python 객체로 변환
data = json.loads(json_data)

# 계층적 데이터 접근
print(data[&quot;name&quot;])             # 홍길동
print(data[&quot;address&quot;][&quot;city&quot;])  # 서울
print(data[&quot;hobbies&quot;][0])       # 축구</code></pre><h2 id="3️⃣-json-기본-문법">3️⃣ JSON 기본 문법</h2>
<h3 id="1-json-구성-요소">1. JSON 구성 요소</h3>
<p>JSON 데이터는 <strong>객체</strong>와 <strong>배열</strong> 이 두가지 요소로 이루어진다.</p>
<ol>
<li><p>객체
객체는 <code>{}</code>로 묶이며 <strong>키</strong>와 <strong>값</strong>으로 데이터를 저장한다.</p>
<pre><code>{
&quot;key&quot;: &quot;value&quot;
}</code></pre></li>
<li><p>배열
배열은 <code>[]</code>로 묶이며, 데이터의 순서 있는 리스트를 표현한다.</p>
<pre><code>[
&quot;value1&quot;,
&quot;value2&quot;,
&quot;value3&quot;
]</code></pre></li>
</ol>
<h3 id="2-json-데이터-타입">2. JSON 데이터 타입</h3>
<ul>
<li>문자열: <code>&quot;&quot;</code>로 감싼 텍스트</li>
<li>숫자: 정수 or 소수</li>
<li>불리언: <code>true</code> or <code>false</code></li>
<li>배열: 여러 값을 저장하는 리스트</li>
<li>객체: key-value 쌍의 집합</li>
<li>null: 빈 값</li>
</ul>
<h2 id="4️⃣-json-활용-사례">4️⃣ JSON 활용 사례</h2>
<h3 id="1-웹-개발">1. 웹 개발</h3>
<p>JSON은 웹 애플리케이션에서 클라이언트와 서버 간 데이터 교환 시 사용
(ex. 브라우저가 서버로부터 사용자 정보를 JSON 형태로 받아온다.)</p>
<pre><code>{
  &quot;userId&quot;: 12345,
  &quot;username&quot;: &quot;john_doe&quot;,
  &quot;email&quot;: &quot;john.doe@example.com&quot;
}</code></pre><h3 id="2-모바일-앱">2. 모바일 앱</h3>
<p>모바일 앱에서 서버와 데이터를 주고받을 때 사용
(ex. 유튜브 앱에서 동영상 목록을 JSON 형태로 요청/응답)</p>
<pre><code>[
  {
    &quot;title&quot;: &quot;JSON Tutorial&quot;,
    &quot;views&quot;: 1500,
    &quot;duration&quot;: &quot;10:32&quot;
  },
  {
    &quot;title&quot;: &quot;Understanding APIs&quot;,
    &quot;views&quot;: 2400,
    &quot;duration&quot;: &quot;12:45&quot;
  }
]</code></pre><h3 id="3-데이터-저장">3. 데이터 저장</h3>
<p>JSON은 간단한 설정 파일이나 로컬 데이터 저장소로 사용
(ex. 앱 설정 파일 [config.json])</p>
<pre><code>{
  &quot;theme&quot;: &quot;dark&quot;,
  &quot;language&quot;: &quot;ko&quot;,
  &quot;notifications&quot;: true
}</code></pre><h2 id="5️⃣-json-작성-시-유의할-점">5️⃣ JSON 작성 시 유의할 점</h2>
<ol>
<li>Key는 무조건 문자열이어야 한다.</li>
<li>Value는 다양한 타입을 사용할 수 있다.</li>
<li>쉼표로 항목을 구분한다.</li>
<li>이 문법을 지키지 않으면 JSON은 읽지 못한다.</li>
</ol>
<h2 id="6️⃣-json-vs-xml">6️⃣ JSON vs XML</h2>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/82e1bed6-1752-45c7-9af8-4a102a885b98/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[환경변수]]></title>
            <link>https://velog.io/@weed_940322/%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98</link>
            <guid>https://velog.io/@weed_940322/%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98</guid>
            <pubDate>Sat, 07 Dec 2024 16:47:47 GMT</pubDate>
            <description><![CDATA[<h1 id="환경변수">환경변수</h1>
<h2 id="정의">정의</h2>
<ul>
<li>프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임</li>
<li>사용자 변수: 로그인한 사용자에게만 적용</li>
<li>시스템 변수: 해당 시스템을 사용하는 모든 사용자에게 동일하게 적용</li>
<li>우선순위: 시스템 변수보다 사용자 변수가 우선 적용
<img src="https://velog.velcdn.com/images/weed_940322/post/1aed805d-e0e4-4458-ba9d-480489860ab4/image.png" alt="">
위의 <code>TEMP</code>의 환경변수의 값을 확인해보면
<img src="https://velog.velcdn.com/images/weed_940322/post/986f292f-9fc1-4650-b579-ac8c8c733084/image.png" alt="">
사용자 변수의 값이 출력된다.<blockquote>
<p>❗️<strong>path</strong>변수는 예외 (시스템 path 우선 설정)</p>
</blockquote>
</li>
<li><em>Path*</em>변수는 변수 내 값들을 위에서부터 리턴한다. 또한 <strong>윈도우 운영체제에서는 사용자 path가 시스템 path 뒤에 붙는다.</strong>
<img src="https://velog.velcdn.com/images/weed_940322/post/dd197455-8a8c-48d9-ab8e-9c022f509728/image.png" alt="">
<img src="https://velog.velcdn.com/images/weed_940322/post/9bf0510c-a461-4be9-9e17-600950716380/image.png" alt="">
<img src="https://velog.velcdn.com/images/weed_940322/post/01eb382b-e8df-4e11-9f78-403ec716850b/image.png" alt="">
위의 사진을 보면 시스템 path의 <strong>%SystemRoot%\system32</strong>부터 시작하고 그 뒤에 ** C:\Users\user\AppData\Local\Programs\Python\Python313\Scripts\ ** 가 시작된다.</li>
</ul>
<h2 id="환경변수-의의">환경변수 의의</h2>
<ul>
<li><p>환경변수는 프로세스(프로그램)이 작업을 수행할 때 필요한 정보를 쉽게 접근 및 처리 가능하게 해준다.</p>
</li>
<li><p>예를 들어 <code>conda</code>라는 명령어를 실행할 때 아래의 프로세스를 거쳐서 명령어가 실행이 된다.</p>
<p>1️⃣ <code>conda</code> 명령어를 입력한다.
2️⃣  terminal에서 <code>conda</code> 명령어 위치를 찾는다. 이를 위헤 <strong>$PATH</strong> 환경 변수에 설정된 경로를 따라가며, <code>conda</code> 실행 파일이 위치한 경로를 찾는다. (보편적으로 Anaconda or Miniconda가 설치된 경로에 위치한다.)
  <img src="https://velog.velcdn.com/images/weed_940322/post/8f60d205-b12d-48a1-89a9-7388dd52695a/image.png" alt="">
3️⃣ 터미널은 <code>conda</code> 명령어의 실행 파일을 로드하고, <code>conda</code>는 자신을 실행할 때 필요한 환경 설정을 초기화합니다.
  (실행파일 위치는 <strong>C:\Users\user\anaconda3\Scripts</strong>의 conda.exe이다)
  <img src="https://velog.velcdn.com/images/weed_940322/post/9cfda756-468c-4845-90f5-6be1249e9146/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[240922_EBS 멘큐의 경제학]]></title>
            <link>https://velog.io/@weed_940322/240922EBS-%EB%A9%98%ED%81%90%EC%9D%98-%EA%B2%BD%EC%A0%9C%ED%95%99</link>
            <guid>https://velog.io/@weed_940322/240922EBS-%EB%A9%98%ED%81%90%EC%9D%98-%EA%B2%BD%EC%A0%9C%ED%95%99</guid>
            <pubDate>Sun, 22 Sep 2024 03:36:41 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/weed_940322/post/aac60387-9c01-421f-8d24-0cd12ca76cbf/image.png" alt=""></p>
<h1 id="청년을-위한-경제학">청년을 위한 경제학</h1>
<h2 id="1강-인생의-두-가지-황금법칙">1강. 인생의 두 가지 황금법칙</h2>
<ul>
<li>경제학의 이론을 인생에도 적용할 수 있다.</li>
<li>두 가지 황금법칙은 <strong>직업을 선택할 때 자신의 비교우위를 찾아라<code>,</code>실수를 후회하지 말고 매몰비용을 무시하라</strong><h3 id="1-비교우의">1) 비교우의</h3>
</li>
<li><code>비교우의</code>: 국제 무역에 있어서 한 나라의 생산력이 다른 나라의 생산력보다 상대적인 우위를 지니는 것</li>
<li>멘큐는 다음과 같이 이 내용을 설명함<ul>
<li>아내와 멘큐는 같이 집안일을한다.</li>
<li>요리: 아내가 멘큐보다 요리를 월등히 잘하기 때문에 요리는 아내 담당</li>
<li>뒷정리: 아내가 멘큐보다 뒷정리를 잘하긴 하지만, 갭이 크지 않다.</li>
<li>그러면 요리, 뒷정리를 다 잘하는 아내가 모든 집안일을 다 해야 하나?</li>
<li>그건 아니다. 요리는 아내가, 뒷정리는 멘큐가 담당한다.</li>
</ul>
</li>
<li>위 내용처럼 자신이 타인보다 더 잘하는 분야를 찾고 그 분야에서 실력을 쌓아가야 한다. 아니면 타인보다 못하지만 덜 못하는 무언가를</li>
<li>자기 자신을 경제에서 비유하면 노동력을 수출하고 필요한건(재화, 서비스 등)은 수입하는 국가라고 생각하자</li>
</ul>
<h3 id="2-매몰비용">2) 매몰비용</h3>
<ul>
<li><code>매몰비용</code>: 의사 결정을 하여 지출한 비용 중 회수할 수 없는 비용</li>
<li>멘큐는 다음과 같은 예시를 들었다.<ul>
<li>엄청 재밌는 영화가 15$에 상영하고 있다고 한다.</li>
<li>영화를 보려고 예매를 하는데 운이 좋게 10$ 가격으로 예매를 했다. (소비자 입장에서 5$ 이익)</li>
<li>영화 보러 가는 도중 예매표를 잃어버렸다.</li>
<li>다시 예매를 하면 5$의 손해를 본다.</li>
<li>하지만 이미 없어진 예매 표(매볼비용)을 생각하지 말아라.</li>
</ul>
</li>
<li>합리적 결정은 이미 엎질러진 물을 주워 담지 않는 것이다.</li>
<li>후회하느라 시간을 쓰는 대신 매몰 비용을 무시해야 한다.</li>
</ul>
<h2 id="2강-돈-관리의-시작">2강. 돈 관리의 시작</h2>
<ul>
<li>사회에 나가서 돈을 벌기 시작하면 번 돈을 한번에 다 쓰기 보다는 저축하려 할텐데, 이 때 금융시장에 뛰어들게 된다.</li>
<li>금융시장을 이해하는 건 개인의 성공에도 중요하다.</li>
</ul>
<h3 id="1-위험을-어디까지-감수해야-할까">1) 위험을 어디까지 감수해야 할까?</h3>
<ul>
<li>돈을 모으기 시작하고 처음으로 투자 결정을 할 때 자신의 투자 위험 감수도를 찾는 것이 어렵다. (나의 투자 성향을 파악하는 게 먼저다.)</li>
<li>그레이엄 &amp; 도드의 책에서 <strong>자산의 절반은 주식에 투자하고, 나머지 절반은 고정 수입으로 분배해라</strong> (고정 수입은 채권, 현금, 적금 등)</li>
<li>일반적으론 50:50으로 나눠서 관리한다. 75:25 비율만 넘지 않으면 된다.</li>
<li>넘으면 손실이 날 때 감당할 수 없다.</li>
</ul>
<h3 id="2-내-회사에만-투자했다간-직업도-돈도-다-잃을-수-있다">2) 내 회사에만 투자했다간 직업도 돈도 다 잃을 수 있다.</h3>
<ul>
<li>멘큐 친구 AIG 몰빵했다가 경제 위기 때 망한 예시를 들었다.</li>
<li>대부분의 경제학자는 자국뿐만 아니라 여러 국가에 투자하라고 한다.</li>
</ul>
<h3 id="3-전문가도-시장은-이기기-어렵다">3) 전문가도 시장은 이기기 어렵다.</h3>
<ul>
<li><code>효율적 시장 가설</code>: 시정의 모든 정보와 사람들의 합리적 기대에 따라 주가가 형성된다. 그에 따라 주가는 낮아지고 높아질 수 있지만 정확히 예측할 순 없다.</li>
<li>똑똑한 자산 관리사를 고용하면 자산이 불려질까? <strong>아니다</strong></li>
<li>자산 관리사를 1~2%의 수수료로 고용할 바에, 지수를 추종하는 펀드에 투자를 해라</li>
</ul>
<h2 id="3강-더-나은-시민이-되는-법">3강. 더 나은 시민이 되는 법</h2>
<ul>
<li>경제학계의 가장 큰 변화는 <strong>합리적인 사람</strong>이라는 전제에 대한 의문이다.<ul>
<li>많은 경제학자, 심리학자들이 합리성으로 이해할 수 없는 부분이 경제학에 존재한다고 말한다. </li>
</ul>
</li>
<li><code>과신편향</code>, <code>확증편향</code>, <code>현재중시편향</code>이 인간의 비합리성을 보여주는 증거<ul>
<li><code>과신편향</code>: 남을 보고 지나치게 과신</li>
<li><code>확증편향</code>: 이미 아는 사실에 맞추어 증거를 왜곡</li>
<li><code>현재중시편향</code>: 자제력이 없다고 비난</li>
</ul>
</li>
<li>위와 같은 실수를 피하는 방법을 생각해야 한다.</li>
<li>경기순환은 사인파가 아니다. 미래는 예측할 수 없다. 미래에 어떤 일이 일어날까?라는 궁금증이 아니라 <strong>미래에 어떤 일이 일어날 수 있을까?</strong>라는 궁금증을 가져야 한다.</li>
<li>이러한 불확실한 미래에 대한 대비는 필수적이다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[240825_💰 환율]]></title>
            <link>https://velog.io/@weed_940322/240825-%ED%99%98%EC%9C%A8</link>
            <guid>https://velog.io/@weed_940322/240825-%ED%99%98%EC%9C%A8</guid>
            <pubDate>Mon, 26 Aug 2024 12:33:21 GMT</pubDate>
            <description><![CDATA[<h1 id="환율❓">환율❓</h1>
<ul>
<li>환율: 교환비율, 우리나라에서 환율(원달러 환율)은 미국 돈 1달러와 교환할 수 있는 원화를 말한다.<ul>
<li>환율 1200원의 뜻은? ➡️ 1200원으로 1달러를 살 수 있다.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/677e7204-f2da-46c9-8dbf-1c9c5fb7ffd5/image.png" alt=""></p>
<ul>
<li>낮은 환율<ul>
<li>원화의 가치가 높다.(원화 강세) = 달러의 가치가 낮다.(달러 약세)</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/4a17cd76-3067-4cfe-852f-26031507770c/image.png" alt=""></p>
<ul>
<li>높은 환율<ul>
<li>원화의 가치가 낮다.(원화 약세) = 달러의 가치가 높다.(달러 강세)</li>
</ul>
</li>
</ul>
<ul>
<li><p>환율 상승의 원인 (달러 상승의 원인)</p>
<ul>
<li>한국에 유입되는 달러의 양이 감소 -&gt; 달러의 희소성
<img src="https://velog.velcdn.com/images/weed_940322/post/ab7541d8-2f2f-45be-b3b9-d625d1f618e4/image.png" alt=""></li>
<li>한국에 1000억원 존재. 수출이 잘되서 1억달러가 유입 -&gt; 환율 1000원
이는 낮은 환율, 달러 약세, 원화 강세
<img src="https://velog.velcdn.com/images/weed_940322/post/5a412dfc-378b-4bde-ad1a-ad0faa8b010f/image.png" alt=""></li>
<li>한국에 1000억원 존재. 수출이 잘되서 0.5억달러가 유입 -&gt; 환율 2000원
이는 높은 환율, 달러 강세, 원화 약세</li>
</ul>
</li>
<li><p>한국에 유입되는 달러의 원인</p>
<ul>
<li>외인의 한국에 주식, <strong>채권</strong> 투자하여 달러 유입</li>
<li>수출로 달러 유입</li>
</ul>
</li>
</ul>
<h1 id="환율과-금리">환율과 금리</h1>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/4f470bfc-cb7b-4802-911b-3af7d632dd82/image.png" alt=""></p>
<ul>
<li>한국 이자율과 미국 이자율이 동급일 경우 문제 없다.</li>
<li>미국 이자율이 높아질 경우 미국에서 받는 이자 상승, 이는 달러의 유출의 원인이 된다. ➡️ 달러 희소성, 환율 증가</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[240825_화폐 가치 vs 물가]]></title>
            <link>https://velog.io/@weed_940322/%ED%99%94%ED%8F%90-%EA%B0%80%EC%B9%98-vs-%EB%AC%BC%EA%B0%80</link>
            <guid>https://velog.io/@weed_940322/%ED%99%94%ED%8F%90-%EA%B0%80%EC%B9%98-vs-%EB%AC%BC%EA%B0%80</guid>
            <pubDate>Sun, 25 Aug 2024 07:47:16 GMT</pubDate>
            <description><![CDATA[<h1 id="📈-물가">📈 물가</h1>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/f65b001f-01ec-42c5-9ffc-f38b3fe722aa/image.png" alt=""></p>
<p>어릴적 먹던 짜장면과 근래에 먹는 짜장면의 가격을 비교해보면 월등히 비싸진 것을 알 수 있다. 이는 <strong>물가의 상승, 인플레이션</strong>을 의미한다.
물가는 매년 증가한다. 이 물가는 어떠한 원리로 증가할까?</p>
<h2 id="이론적-원리">이론적 원리</h2>
<p>이론적으로 물가는 수요와 공급에 의해서 결정된다.</p>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/9f1215ff-2079-46bc-bc20-8108f4c4bafe/image.png" alt=""></p>
<ul>
<li>제품 생산이 줄어들거나<code>(공급 감소)</code>, 제품을 원하는 사람은 증가하면<code>(수요 증가)</code> 물건의 가격을 오를 수 밖에 없다. ➡️ 물가 상승</li>
</ul>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/16aad2ac-bde4-48bc-8953-c55371fd0cb4/image.png" alt=""></p>
<ul>
<li>제품 생산이 증가하거나<code>(공급 증가)</code>, 제품을 원하는 사람은 감소하면<code>(수요 감소)</code> 물건의 가격은 떨어진다. ➡️ 물가 감소</li>
</ul>
<h2 id="화폐-가치와-물가-관계">화폐 가치와 물가 관계</h2>
<p>위에서 설명했듯이 물가는 수요와 공급으로 설명 할 수 있다. 하지만 시장은 단순하게 흘러가지 않는다. 위 이론에 추가로 화폐 가치 또한 물가에 지대한 영향을 끼친다.</p>
<h3 id="💰-화폐-가치">💰 화폐 가치?</h3>
<p>화폐는 중앙 은행에서 찍어낸다. 그러면 단순히 중앙 은행에서 발행하는 화폐량에 따라 가치가 변할까? 답은 아니다.
<img src="https://velog.velcdn.com/images/weed_940322/post/7f05d021-90e2-4c2b-bfc0-080456ae29f7/image.png" alt=""></p>
<ul>
<li>A라는 사람이 은행에 100만원을 저축했다. 그러면 A는 통장에 100만원이 찍혀있고, 은행은 실질적으로 100만원을 가지고 있다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/f54bf908-b46d-4797-a6e4-b6ac0e6a87a2/image.png" alt=""></p>
<ul>
<li>이에 B라는 사람이 은행에 90만원을 대출해달라 한다. 은행은 <code>지급준비율</code> 10% 제외한 90만원은 대출이 가능하여 B에게 대출해준다.
그러면 A는 수중에 10만원만 남은것일까? 아니다. 통장엔 그대로 100만원이 찍혀있을 것이다. 그러면 시장에는 총 190만원이 돈이 풀린다. </li>
</ul>
<p>위와 같은 상황이 반복되면 시장에는 통화량이 증가할 것이고 화폐 가치는 떨어진다. 이에 화폐 가치가 떨어지면 구매력도 저하되고 (1000원으로 1개 살 수 있던 것을, 이제는 반개밖에 못산다.) 이에 물가가 상승한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[240819_레포??]]></title>
            <link>https://velog.io/@weed_940322/240819%EB%A0%88%ED%8F%AC</link>
            <guid>https://velog.io/@weed_940322/240819%EB%A0%88%ED%8F%AC</guid>
            <pubDate>Sun, 25 Aug 2024 07:20:09 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>출처: <a href="https://blog.naver.com/kycho45/223395114528">네이버 블로그</a></p>
</blockquote>
<h1 id="repo">REPO??</h1>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/e335a6aa-7ab7-4f8b-b9fc-862898fdd0fd/image.png" alt=""></p>
<ul>
<li>레포(REPO, 환매조건부채권): 돈이 필요한 금융회사가 연준에 국채를 맡기고 돈을 빌리는 행위<ul>
<li>연준 입장에서는 돈을 시중에 푸는 격이므로, <strong>유동성을 공급</strong>한다. 이는 <strong>양적완화</strong> 역할을 함 ➡️ 침체된 경기를 살린다.</li>
</ul>
</li>
<li>역레포(RRP): 연준한테 이자(국채)를 받고 돈을 보관하는 방법.<ul>
<li>연준 입장에선 은행과 MMF에 미 국채를 빌려주고 현금을 받는 프로그램<blockquote>
<ul>
<li>MMF (머니마켓펀드)
고객의 일시적인 여유자금을 금리위험과 신용위험이 작은 국채, 어음 등에 운용하고 여기에서 발생하는 수익을 배당하는 펀드. 단기금융상품.</li>
</ul>
</blockquote>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[240818_옐런이 만든 가짜 성장]]></title>
            <link>https://velog.io/@weed_940322/240818%EC%98%90%EB%9F%B0%EC%9D%B4-%EB%A7%8C%EB%93%A0-%EA%B0%80%EC%A7%9C-%EC%84%B1%EC%9E%A5</link>
            <guid>https://velog.io/@weed_940322/240818%EC%98%90%EB%9F%B0%EC%9D%B4-%EB%A7%8C%EB%93%A0-%EA%B0%80%EC%A7%9C-%EC%84%B1%EC%9E%A5</guid>
            <pubDate>Mon, 19 Aug 2024 11:25:35 GMT</pubDate>
            <description><![CDATA[<h1 id="이상한데-하는-현상은-모두-옐런발">이상한데? 하는 현상은 모두 옐런발</h1>
<ul>
<li><p>장단기 금리 최장기 역전 현상</p>
<ul>
<li>통상 장단기 금리 역전 때는 증시 호황, 정상화될 때 불황</li>
<li>대선 전에 정상화되면 민주당 재집권 어려움 --&gt; 석달동안은 역전 현상을 유지 원할것</li>
<li>옐런이 단기로만 자금을 조달하다보니 역전 지속<ul>
<li>장기채 발행 늘리면 가격이 떨어짐 --&gt; 장기채 금리가 올라감</li>
</ul>
</li>
</ul>
</li>
<li><p>샴룰 작동했는데 경기침체 신호 없다? (샴룰이 아니라 샴가설이다)</p>
<ul>
<li>샴가설: 미국의 실업률이 올라감? -&gt; 경기침체가 발생할 것이다</li>
<li>옐런이 단기로 조달한 돈을 무제한 살포하니 일어난 일</li>
<li>실업률은 후행지표. 선행지표로 작동해야 될 금융시간 지표는 경기침체가 아님</li>
</ul>
</li>
<li><p>단기국채 누가 샀을까?
<img src="https://velog.velcdn.com/images/weed_940322/post/e4a5f6f2-2fed-4b1a-a7ec-3e7f2030d713/image.png" alt=""></p>
<blockquote>
<ul>
<li>US Treasury Issuance of T-bills: 1년 이하 단기국채</li>
<li>Notes: 1~10년 국채</li>
<li>Bones: 30년 장기 국채</li>
</ul>
</blockquote>
</li>
<li><p>21년 바이든 취임 이후 단기국채 발행 늘림 --&gt; 미국의 재정적자를 매움</p>
</li>
<li><p>장기국채를 많이 발행하면 이것을 사줄 시장 주채가 없다.
<img src="https://velog.velcdn.com/images/weed_940322/post/1b39a892-90b6-4417-a631-4a6f993a85e0/image.png" alt=""></p>
</li>
</ul>
<ul>
<li>단기국채는 역레포 시장에서 자금을 끌어와서 샀다</li>
</ul>
<blockquote>
<h3 id="역레포">역레포</h3>
<p>연준이 국채를 담보로 빌려주고 시장에서 자금을 끌어옴 --&gt; 시장의 유동성을 공급하는 중요한 열쇠
뉴욕연방준비은행이 RP를 매각해 시장의 유동성을 흡수하는 것을 말함.</p>
</blockquote>
<ul>
<li>레포 (RP, 환매조건부채권)
돈이 필요한 금융회사가 연준에 국채를 맡기고 돈을 빌리는 행위. 그러면 시장에 돈이 풀린다.
레포는 유동성을 공급을 의미하고, 양적온화 역할을 한다. 침체된 경기를 살리기 위한 활동
<img src="https://velog.velcdn.com/images/weed_940322/post/a5c2ac8d-5bab-4817-9801-a558ac18ff11/image.png" alt=""></li>
</ul>
<ul>
<li>역레포 시장은 팬데믹 이후에 돈을 뿌리면서 회수하는 과정에서 2조5천억 달러가 역레포 시장에 형성</li>
<li>이 2.5조 달러를 활용해서 미국의 단기국채를 팔아넘겼다.</li>
<li>2023년부터 시작. 2.5조달러에서 3000억 달러로 역레포시장이 줄어듦<ul>
<li>2023년 미국 경제 초호황의 비밀은 역레포 시장에서 2.2조 달러를 미국 재무부가 땡겨와서 시장에 살포해서 발생. -&gt; 미국의 GDP가 좋아보이는 것으로 착시</li>
<li>2.2조 달러 중 1.4조 달러는 시장에 살포. 0.8조 달러는 미국의 재무부 장고(재무부 TGA계좌)에 있다.</li>
</ul>
</li>
<li>남은 석달을 위해 0.8조 달러를 쓸 듯? </li>
<li>TGA 계좌: 재무부가 언제든 돈을 끌어 쓸려고 연준에 맡겨놓은 계좌</li>
<li>남은 석달동안 0.8조 달러를 쓰면 경기가 호황인것처럼 보여줄 수 있다.</li>
<li>미국 증시가 흔들리거나 채권 시장에 이상함이 보일 때 쓸 듯?<ul>
<li>대가없는 가짜성장은 없다</li>
</ul>
</li>
<li>금리를 대폭 낮춰야 하는 시점이지만 옐런이 침체 신호를 차단해 빅컷을 어렵게 만듦<ul>
<li>미국 경제 이상한 징후는 금리를 낮춰야하는 시점일 가능성 높다. 샴롤같은 것이 작동. 그런데 옐런이 침체 신호를 차단해 빅컷을 단행하기 어렵게 만들었다.</li>
</ul>
</li>
<li>연준 금리 인상으로 물가가 대폭 낮아졌어야 했는데 돈을 과도하게 뿌려서 물가가 충분히 낮아지지 않음</li>
<li>역레포 잔고 감소와 미국인들의 초과 에금 감소가 동시에 작동하면 레포 발작 같은 위험 신호가 올 수 있다.<blockquote>
<p>2019년 9월 레포 발작
<img src="https://velog.velcdn.com/images/weed_940322/post/9f049b0a-ee43-4255-a97d-733aa69afce6/image.png" alt=""></p>
</blockquote>
<ul>
<li>레포 금리 2% 초반 -&gt; 5%, 시장에 큰 충격을 줌</li>
<li>레포 시장의 취약함을 알게 된 사건</li>
</ul>
</li>
</ul>
<ul>
<li><p>옐런이 눈속임 할 수 없는 수치는 악화
<img src="https://velog.velcdn.com/images/weed_940322/post/1b6afb8c-8bac-468a-b39c-552678f83d5d/image.png" alt=""></p>
</li>
<li><p>위 지표는 16일 발표된 신규주택 착공 그래프</p>
</li>
<li><p>2022년부터 지속적으로 하락. </p>
</li>
<li><p>지난 6월 133만건, 시장 예상은 134만건, 하지만 현재 <strong>124만건</strong></p>
</li>
<li><p>돈을 끌어온다고 쉽게 끌어올리는 지표가 아니다.</p>
<ul>
<li>금융시장은 돈을 뿌리면 빠르게 반응. 실물시장은 실제 경기를 반영하므로</li>
</ul>
</li>
<li><p>돈을 뿌려도 소비자 심리가 꺾인다. 
<img src="https://velog.velcdn.com/images/weed_940322/post/445ca3e1-cbf9-4517-97d5-553260102694/image.png" alt=""></p>
<ul>
<li>옐런이 돈을 뿌리기 시작한 23년부터 소비자 신뢰 지수는 상승하다가 24년 4월부터 지속적 하락</li>
<li>소비자 현재 상태 표현은 더 빠르게 하락</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[240818_카카오페이 개인정보 해외 유출 논란…네이버페이·토스도 들여다본다]]></title>
            <link>https://velog.io/@weed_940322/240818%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%8E%98%EC%9D%B4-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%ED%95%B4%EC%99%B8-%EC%9C%A0%EC%B6%9C-%EB%85%BC%EB%9E%80%EB%84%A4%EC%9D%B4%EB%B2%84%ED%8E%98%EC%9D%B4%ED%86%A0%EC%8A%A4%EB%8F%84-%EB%93%A4%EC%97%AC%EB%8B%A4%EB%B3%B8%EB%8B%A4</link>
            <guid>https://velog.io/@weed_940322/240818%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%8E%98%EC%9D%B4-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%ED%95%B4%EC%99%B8-%EC%9C%A0%EC%B6%9C-%EB%85%BC%EB%9E%80%EB%84%A4%EC%9D%B4%EB%B2%84%ED%8E%98%EC%9D%B4%ED%86%A0%EC%8A%A4%EB%8F%84-%EB%93%A4%EC%97%AC%EB%8B%A4%EB%B3%B8%EB%8B%A4</guid>
            <pubDate>Sun, 18 Aug 2024 07:40:25 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>링크: <a href="https://n.news.naver.com/article/421/0007735582">네이버 뉴스</a></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/9ea2ed19-9b2a-4a43-9697-22a720e726fa/image.png" alt=""></p>
<h1 id="abstract">Abstract</h1>
<ul>
<li>카카오페이 지난 6년간 알리페이에 동의 없이 개인신용정보 제공</li>
<li>이에 네이버페이, 토스 등 업무점검 진행 예정</li>
</ul>
<h1 id="의견">의견</h1>
<ul>
<li>이번 사건은 기업에서 개인정보를 의도적으로 유출한 사건</li>
<li>만약 해킹으로 인하여 개인정보 유출이 발생할 경우?? ➡️ 보안의 중요성 대두</li>
<li>특히 요새 각광받고 있는 AI 기술 같은 경우 다양한 데이터에 기반한 기술</li>
<li>해당 데이터를 보호하기 위한 보안 기술 필요<h2 id="chatgpt-ai-보안에-대한-의견">ChatGPT AI 보안에 대한 의견</h2>
<img src="https://velog.velcdn.com/images/weed_940322/post/8d51a98f-a847-4554-91ff-faf41c392489/image.png" alt=""></li>
</ul>
<h2 id="ai-보안-관련-업체">AI 보안 관련 업체</h2>
<h3 id="1️⃣-crowdstrike">1️⃣ CrowdStrike</h3>
<ul>
<li>클라우드 기반의 엔드포인트 보안 솔루션 제공</li>
<li>AI와 머신러닝 기술을 활용해 악성코드와 사이버 공격 탐지 및 차단</li>
<li>위협 인텔리젼스와 AI를 결합해 실시간 탐지 및 응답</li>
</ul>
<h3 id="2️⃣-palo-alto-networks">2️⃣ Palo Alto Networks</h3>
<ul>
<li>차세대 방화벽 및 클라우드 보안 솔루션에서 AI와 머신러닝을 사용하여 위협을 탐지하고 방어</li>
<li>AI 기반의 보안 운영 플랫폼으로 위협 탐지와 자동화된 대응 제공
<img src="https://velog.velcdn.com/images/weed_940322/post/08dd461e-91b9-4c0d-bf47-431a4a119a6a/image.png" alt=""></li>
</ul>
<h3 id="3️⃣-ibm-security">3️⃣ IBM Security</h3>
<ul>
<li>AI 활용하여 사이버 보안 위협 분석 및 대응하는 솔루션 제공</li>
<li><code>Waston</code>은 보안 데이터 분석하여 위협을 조기에 발견하는데 사용</li>
</ul>
<h3 id="4️⃣-fortinet">4️⃣ Fortinet</h3>
<ul>
<li>AI와 머신러닝 기술을 사용해 위협을 자동으로 탐지하고 방어<h3 id="5️⃣-zscaler">5️⃣ Zscaler</h3>
<h3 id="6️⃣-sentinelone">6️⃣ SentinelOne</h3>
<h3 id="7️⃣-nortonlifelock">7️⃣ NortonLifeLock</h3>
<h3 id="8️⃣-microsoft">8️⃣ Microsoft</h3>
<h3 id="9️⃣-qualys">9️⃣ Qualys</h3>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[240817_전기차 캐즘 뚫는 '이 기업', 초미세 소재로 AI반도체 시장 공략 [빛이나는비즈]]]></title>
            <link>https://velog.io/@weed_940322/%EC%A0%84%EA%B8%B0%EC%B0%A8-%EC%BA%90%EC%A6%98-%EB%9A%AB%EB%8A%94-%EC%9D%B4-%EA%B8%B0%EC%97%85-%EC%B4%88%EB%AF%B8%EC%84%B8-%EC%86%8C%EC%9E%AC%EB%A1%9C-AI%EB%B0%98%EB%8F%84%EC%B2%B4-%EC%8B%9C%EC%9E%A5-%EA%B3%B5%EB%9E%B5-%EB%B9%9B%EC%9D%B4%EB%82%98%EB%8A%94%EB%B9%84%EC%A6%88</link>
            <guid>https://velog.io/@weed_940322/%EC%A0%84%EA%B8%B0%EC%B0%A8-%EC%BA%90%EC%A6%98-%EB%9A%AB%EB%8A%94-%EC%9D%B4-%EA%B8%B0%EC%97%85-%EC%B4%88%EB%AF%B8%EC%84%B8-%EC%86%8C%EC%9E%AC%EB%A1%9C-AI%EB%B0%98%EB%8F%84%EC%B2%B4-%EC%8B%9C%EC%9E%A5-%EA%B3%B5%EB%9E%B5-%EB%B9%9B%EC%9D%B4%EB%82%98%EB%8A%94%EB%B9%84%EC%A6%88</guid>
            <pubDate>Sat, 17 Aug 2024 00:30:10 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>링크: <a href="https://n.news.naver.com/mnews/article/011/0004381061">네이버 뉴스</a></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/a4829476-c067-41a8-82f8-297222ae3dd2/image.png" alt=""></p>
<h1 id="abstract">Abstract</h1>
<ul>
<li>솔루스첨단소재는 2차전지의 핵심 소재중 하나인 동박을 다룬다.</li>
<li>기존엔 2차전지의 부진으로 인한 적자 상태</li>
<li>엔비디아의 차세대 AI 가속기에 동박이 필요</li>
<li>솔루스첨단소재는 엔비디아에 동박 양산 승인 얻음</li>
<li>솔루스첨단소재는 GPU 3사에 동박 납품 목표</li>
</ul>
<h1 id="내용-정리">내용 정리</h1>
<h2 id="동박">동박</h2>
<blockquote>
<p>동박</p>
</blockquote>
<ul>
<li><p>10㎛(마이크로미터, 1㎛는 100만분의 1m) 안팎의 얇은 구리 포일</p>
</li>
<li><p>전기차용 2차전지 핵심소재 중 하나</p>
</li>
<li><p>두께가 얇으면 제품 <strong>경량화·고용량화</strong>에 유리. 두께가 얇으면 무게가 줄어들어 가볍고 성능 좋은 전자제품 제작 가능</p>
</li>
<li><p>솔루스첨단소재가 엔비디아의 차세대 AI 가속기용 동박 양산 돌입. 이는 국내 처음</p>
</li>
<li><p>두산 전자BG의 동박적층판(CCL)에 하이엔드 동박 <strong>초극저조도(HVLP)</strong>를 공급</p>
<ul>
<li>HVLP는 표면 거칠기(조도)가 0.6㎛ 이하 ➡️ <strong>전자제품의 신호손실 최소화</strong></li>
<li>5G 통신장비, 고효율 신호전송용 네트워크 기판소재 등에 사용</li>
</ul>
</li>
<li><p>북미 GPU 3사 납품 목표</p>
</li>
</ul>
<h2 id="디스플레이-소재">디스플레이 소재</h2>
<ul>
<li>발광소재<ul>
<li>HBL: OLED 발광을 위해 전류가 이동하는 공통층. 효율 및 수명을 향상시키는 소재</li>
<li>ETL: 소비전력 저감 기술</li>
<li>정공수소층</li>
<li>보호층(CPL)</li>
<li>녹색 인광 호스트: OLED 빛을 내는 발광층 핵심 소재</li>
</ul>
</li>
<li>비발광소재<ul>
<li>충전재(Filler)</li>
<li>박막봉지(TFE)</li>
</ul>
</li>
<li>발광 / 비발광을 아우르는 유기발광다이오드(OLED) 디스플래이 소재 포트폴리오 보유</li>
<li>장수명, 고효율 제품을 개발, 양산 준비 중</li>
<li>신규소재인 녹색 인광 호스트를 통해 기존 공통층에서 시장 규모가 큰 발광층으로 사업 규모 확대 </li>
</ul>
<h2 id="2분기-성적">2분기 성적</h2>
<ul>
<li>전기차 시장 악화로 인하여 2분기 적자</li>
<li>2분기 매출 전년 동기 대비 47.5%(1493억원) 증가, 영업손실 전년 동기 대비 28억원 감소 (전년: 133억, 올해: 105억)</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[AmongBearUs_1일차]]></title>
            <link>https://velog.io/@weed_940322/AmongBearUs1%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@weed_940322/AmongBearUs1%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Tue, 06 Aug 2024 13:02:25 GMT</pubDate>
            <description><![CDATA[<h1 id="1-메인메뉴-만들기">1. 메인메뉴 만들기</h1>
<p>첫 배경화면을 만들기 위해 <code>Canvas</code>와 <code>image</code>를 만들어주자
<code>Canvas</code> 설정중에는 
<img src="https://velog.velcdn.com/images/weed_940322/post/96476f89-53dc-45c9-962a-e01f305322c4/image.png" alt="">
<code>UI Scale Mode</code>가 있는데, 기본적으로 <code>Constant Pixel Size</code>로 되어 있을것이다. 이를 <code>Scale With Screen Size</code>로 바꾼다. 이는 <code>image</code>가 <code>Canvas</code> 크기가 커지면 같이 커진다. 기본값은 <code>image</code>가 변함 없다.
<img src="https://velog.velcdn.com/images/weed_940322/post/a981cbb2-44a0-43b4-ba56-3d44a1da496a/image.png" alt="">
<code>Title</code>가 image이다. 이 image의 <code>Source Image</code>에 제목 <code>Sprite</code>를 삽입한다.
만약 이 <code>Sprite</code>가 PNG같은 경우이면
<img src="https://velog.velcdn.com/images/weed_940322/post/47641421-a933-4618-99c2-8edf590bb9a6/image.png" alt="">
<code>Texture Type</code>가 <code>default</code>로 되어 있을 것이다. 이를 <code>Sprite</code>로 바꾸어주면 된다.</p>
<h1 id="2-파티클-및-버튼-생성">2. 파티클 및 버튼 생성</h1>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/6dca35a3-bbcd-4365-8078-c9b46c2ddf95/image.png" alt=""></p>
<h2 id="1-파티클-생성">1) 파티클 생성</h2>
<ul>
<li>Create Empty로 MainMenu 생성 후 Canvas를 하위로 이동.</li>
<li>MainMenu에서 우클릭하여 Effects의 Particle System 생성.</li>
<li>해당 <code>Inspector</code>에서 <code>Shape</code>, <code>Renderer</code>등 변경
<img src="https://velog.velcdn.com/images/weed_940322/post/efaaed07-4e47-460e-a1b3-1cfa84c84545/image.png" alt=""></li>
<li><code>Renderer</code>에서 image는 <code>Material</code>파일만 삽입 가능하므로 Sprite파일은 삽입 못함.</li>
<li>대신 <code>Material</code>에서 <code>Shader</code>로 <code>Sprites/Default</code>로 변경</li>
</ul>
<h2 id="2-버튼-생성">2) 버튼 생성</h2>
<p><img src="https://velog.velcdn.com/images/weed_940322/post/28c9c482-5c7a-48f3-aa7f-6eb31cb71775/image.png" alt=""></p>
<ul>
<li><code>Source Image</code>에 버튼 이미지 삽입
<img src="https://velog.velcdn.com/images/weed_940322/post/24e3ac97-f286-4e08-ad36-52aaa2ae7054/image.png" alt=""></li>
<li>MainMenu <code>C# Script</code> 생성 후 MainMenu 컴토넌트로 삽입
<img src="https://velog.velcdn.com/images/weed_940322/post/fafd5e72-9ab5-467e-a86c-a5a95aaf3432/image.png" alt="">
Quit <code>Button</code>의 <code>Inspector</code>의 <code>On Click()</code>컴토넌트에 MainMenu 오브젝트를 삽입.
<img src="https://velog.velcdn.com/images/weed_940322/post/9020512a-63a2-4bf2-9dd6-180f5b635de4/image.png" alt=""></li>
<li><code>Function</code>에 MainMenu에 <code>C# Script</code>에서 만들었던 함수 ClickQuit()를 클릭</li>
</ul>
<h3 id="code">Code</h3>
<pre><code>using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MainMenu : MonoBehaviour
{
    // 게임종료 버튼 누를 시 호출
    public void ClickQuit() {
        print(&quot;게임 종료 버튼 누름&quot;);
    }
}
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[Spring] Bean]]></title>
            <link>https://velog.io/@weed_940322/Spring-Bean</link>
            <guid>https://velog.io/@weed_940322/Spring-Bean</guid>
            <pubDate>Sun, 12 May 2024 02:33:54 GMT</pubDate>
            <description><![CDATA[<h1 id="⚒️-container">⚒️ Container</h1>
<p><code>Container</code>이란 <strong>개발자가 작성한 코드를 처리하는 독립적인 존재</strong>이다. Container은 <strong>인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공해준다.</strong>
인스턴스의 생명주기란?? Container <strong>스스로 작성한 코드를 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤</strong>한다.</p>
<blockquote>
<p>🔍 인스턴스</p>
</blockquote>
<ul>
<li>객체와 인스턴스는 크게 차이를 보이지 않는다. 객체는 모든 인스턴스를 포괄하는 넓은 의미를 가지고, 인스턴스는 해당 객체가 어떤 클래스로부터 생성된 것인지를 강조한다.</li>
<li>일반적으로 실행 중인 임의의 프로세스, 해당 클래스의 구조로 컴퓨터 저장공간에서 할당되어 현재 생성된 객체를 의미</li>
</ul>
<blockquote>
<p>🔍 Lifr Cycle Callback (생명 주기)</p>
</blockquote>
<ul>
<li>Spring IOC Container가 IOC Container을 만들고 그 안에 Bean을 등록할 때 사용하는 인터페이스를 <code>Life Cycle Callback</code>이라고 함</li>
<li>여기에는 <code>@Component</code>이 붙어있는 모든 클래스의 인스턴스를 생성해 Bean으로 등록하는 작업을 수행하는 어노테이션 프로세스가 등록되어 있다.</li>
</ul>
<p>Spring에는 <code>Spring Container</code>과 <code>IOC Container</code> 이란 개념을 사용한다.
<code>Spring Container</code>는 <code>Spring Framework</code>의 핵심부에 위치하며, 종속 객체 주입을 이용하여 Application을 구성하는 Component들을 관리한다. 이 떄, Spring Container에서 생성되는 객체를 <code>Bean</code>이라고 한다.</p>
<h1 id="⚒️-bean">⚒️ Bean</h1>
<p><code>Bean</code>은 <code>Spring IOC Container</code>가 관리하는 자바 객체를 말한다.
Bean은 Spring IOC Container에 의해 <strong>인스턴스화, 관리, 생성</strong>된다.
이 Bean은 <code>Singleton</code>으로 존재한다.</p>
<blockquote>
<p>🔍 Singleton
<img src="https://velog.velcdn.com/images/weed_940322/post/e74621f0-ecde-4f2d-984e-35689a7cbc1e/image.png" alt=""></p>
</blockquote>
<ul>
<li>동일한 요청이 각기 다른 클라이언트에게 동시에 들어오는데, 각각 객체를 상이한 메모리 공간에 할당시켜 응답해주면 메모리 공간이 남지 않게 된다.</li>
<li>위 문제를 해결하기 위해, 동일한 요청에 대해서는 <code>Singleton</code> 패턴을 적용시킨다.</li>
<li>Singleton 패턴<ul>
<li>이 패턴은 클래스의 인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴이다.</li>
<li>이 인스턴스에 대해서 <code>Static</code>을 통해 최소 1번만 메모리를 할당시키며 이후 해당 인스턴스 호출이 생길 때마다 최초로 생긴 인스턴스를 사용한다. </li>
</ul>
</li>
</ul>
<p><code>IOC Container</code>는 이러한 객체(Bean)을 인스턴스화하고 구성하며 라이프사이클동안 관리한다.</p>
<p>🔍 Bean 정의 방법</p>
<ul>
<li><p>Bean은 <code>@Component</code>, <code>@Service</code>, <code>@Repository</code>, <code>@Controller</code> 어노테이션으로 주석이 달린 Java 객체이거나 <code>XML</code>(설정 메타 테이터) 구성 파일에서 정의된다.
클래스를 이러한 스테레오타입(<code>@Component</code>, <code>@Service</code>, <code>@Repository</code>, <code>@Controller</code>) 중 하나로 주석 처리하면 Spring Boot는 애플리케이션 시작 중에 이러한 클래스를 자동으로 감지하고 등록한다.</p>
</li>
<li><p><code>@Bean</code> 어노테이션 메서드를 사용하여 설정 클래스에서 명시적으로 Bean을 정의할 수 있다.</p>
</li>
<li><p><code>new</code>로 생성하는 객체는 Bean이 아니고, <code>ApplicationContext.getBean()</code>으로 얻어지는 객체가 Bean이다. 즉, <code>ApplicationContext</code>가 만들어서 그 안에 담고 있는 객체이다.</p>
</li>
</ul>
<p>✅ Bean 장점</p>
<ul>
<li><p>Spring IOC Container에 Bean이 등록되면 다른 Bean이나 구성 요소에 주입하여 느슨한 결합을 가능케 하고 모듈화된, 재사용 가능한 코드를 촉진할 수 있다. (DI 장점?)</p>
</li>
<li><p>Spring boot의 Bean은 애플리케이션 내에서 다양한 구성 요소의 라이프사이클과 의존성을 관리함으로써 모듈화된, 유지보수가 용이하고 유연한 애플리케이션을 만들어준다.</p>
</li>
</ul>
<h2 id="bean-scope">Bean Scope</h2>
<p><code>Bean Scope</code>는 Spring Framework에서 Bean 객체의 생명주기와 범위를 정의하는데 사용된다. 스코프는 <strong>Bean 객체가 생성되고, 존재하고, 소멸하는 방식</strong>을 결정</p>
<p>스코프는 다른 생명주기를 가지며, 필요에 따라 적절한 스코프를 선택하여 Bean을 정의한다. <strong><code>@Scope</code> 어노테이션을 사용하여 설정하거나 XML 설정에서 정의</strong></p>
<h3 id="1️⃣-singleton">1️⃣ Singleton</h3>
<p>기본 스코프이며, Spring IOC Container 내에서 한 개의 인스턴스만 생성되고 관리된다. 애플리케이션 전반에 걸쳐 동일한 Bean 인스턴스가 공유</p>
<h3 id="2️⃣-prototype">2️⃣ Prototype</h3>
<p>Bean을 요청할 때마다, 새로운 인스턴스가 생성. 각 요청에 대해 새로운 인스턴스가 반환</p>
<h3 id="3️⃣-request">3️⃣ Request</h3>
<p>웹 애플리케이션에서 HTTP 요청마다 생성되는 스코프. 각 HTTP 요청에 대해 새로운 인스턴스가 생성되며, 요청이 완료되면 소멸</p>
<h3 id="4️⃣-session">4️⃣ Session</h3>
<p>웹 애플리케이션에서 세션마다 생성되는 스코프. 각 세션에 대해 새로운 인스턴스가 생성되며, 세션이 종료되면 소멸</p>
<h3 id="5️⃣-application">5️⃣ Application</h3>
<p>웹 애플리케이션에서 애플리케이션마다 생성되는 스코프. 각 애플리케이션에 대해 새로운 인스턴스가 생성되며, 애플리케이션이 종료되면 소멸</p>
<h3 id="6️⃣-websocket">6️⃣ WebSocket</h3>
<p>웹 소켓 연결마다 생성되는 스코프. 각 웹 소켓 연결에 대해 새로운 인스턴스가 생성되며, 연결이 종료되면 인스턴스가 소멸</p>
<h1 id="⚒️-component-scanning">⚒️ Component Scanning</h1>
<p>🔍 <code>Component Scanning</code></p>
<ul>
<li><p>애플리케이션의 클래스 경로에서 컴포넌트를 찾아서 자동으로 등록하는 매커니즘</p>
</li>
<li><p>Spring IOC Container가 애플리케이션에 정의된 모든 <code>@Component</code>, <code>@Service</code>, <code>@Repository</code>,<code>@Controller</code>, <code>@Configuration</code> 어노테이션이 붙은 클래스를 자동으로 찾고 Bean으로 등록한다.</p>
</li>
<li><p>-&gt; 위 어노테이션(<strong>스테레오타입 어노테이션</strong>)은 <code>@Component</code>가 부여된 클래스이다.즉, Component Scan은 <code>@Component</code>가 붙어있는 클래스를 대상으로 한다.</p>
</li>
<li><p><code>@SpringBootApplication</code> 어노테이션이 붙은 클래스의 패키지와 그 하위 패키지를 대상으로 Component Scanning이 이루어진다. 이렇게 하면 해당 패키지 내의 모든 컴포넌트가 자동으로 찾아지고 Bean으로 등록된다.</p>
</li>
<li><p>특정 패키지에서만 수행하도록 지정하려면 <code>@ComponentScan</code> 어노테이션을 사용하여 명시적으로 범위를 지정 가능</p>
</li>
</ul>
<p>✅ Component Scan 장점</p>
<ul>
<li><p>XML 설정 파일이나 Java Config 클래스에서 수동으로 Bean을 정의하는 것보다 편리하며, 애플리케이션 확장성과 유지 보수성을 높여준다.</p>
</li>
<li><p>클래스를 자동으로 등록하기 때문에 개발자는 적은 양의 설정 코드를 작성해도 되어 개발 생산성이 향상된다.</p>
</li>
</ul>
<h1 id="⚒️-configuration">⚒️ Configuration</h1>
<ul>
<li><p><code>@Configuration</code>은 클래스에 붙이면 해당 클래스가 Spring의 설정 클래스임을 나타냄. 이 설정 클래스는 주로 Bean 정의와 Bean 간의 의존성을 설정하는데 사용된다.</p>
</li>
<li><p><code>@Configuration</code>이 붙은 클래스 내부에는 <code>@Bean</code> 어노테이션을 사용하여 빈을 정의할 수 있다. 이 Bean들은 Spring IOC Container에 의해 관리되며 필요한 경우 다른 Bean으로 주입 가능하다.</p>
</li>
<li><p><code>@Configuration</code>을 통해 애플리케이션의 구성 요소를 명시적으로 저의하고 관리 가능하다. 또한 외부 구성 요소와의 통합 및 설정을 용이하게 함
ex) 데이터베이스 연결, 외부 API 키 설정 등과 같이 애플리케이션의 설정을 정의하고 관리하는데 사용 할 수 있다.</p>
</li>
</ul>
<p>✅ Configuration 장점</p>
<ul>
<li><code>@Configuration</code>을 사용하여 애플리케이션간의 유연성과 확장성을 높일 수 있다.</li>
</ul>
<h2 id="코드-예시">코드 예시</h2>
<pre><code>@Configuration
public class MyConfiguration {

    @Bean
    public MyBean myBean() {
        return new MyBean;
    }
}</code></pre><ul>
<li><p><code>@Configuration</code> 어노테이션이 붙은 <code>MyConfiguration</code> 클래스가 Spring 설정 클래스임을 나타낸다. </p>
</li>
<li><p><code>@Bean</code> 어노테이션이 사용된 메서드는 <code>myBean()</code>이라는 이름의 Bean을 정의 </p>
</li>
<li><p>Spring IOC Container는 이 클래스를 검색하여 <code>MyBean</code> 객체를 Bean으로 등록하고, 이 Bean은 다른 Spring 구성 요소에서 주입될 수 있다.</p>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>