<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코딩</title>
    <link>https://my-trash-code.tistory.com/</link>
    <description>.</description>
    <language>ko</language>
    <pubDate>Tue, 25 Aug 2026 18:54:10 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>차가리</managingEditor>
    <image>
      <title>코딩</title>
      <url>https://tistory1.daumcdn.net/tistory/4779136/attach/3841d00c5f1f4b85870024c4c13e4539</url>
      <link>https://my-trash-code.tistory.com</link>
    </image>
    <item>
      <title>99클럽 코테 스터디 1일차 TIL : 자바스크립트에서의 기본 타입</title>
      <link>https://my-trash-code.tistory.com/178</link>
      <description>&lt;ul&gt;
&lt;li&gt;오늘의 학습 키워드 :  자바스크립트 기본타입&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;자바 스크립트에서의 기본타입&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;숫자&lt;/li&gt;
&lt;li&gt;문자열&lt;/li&gt;
&lt;li&gt;불린값&lt;/li&gt;
&lt;li&gt;null&lt;/li&gt;
&lt;li&gt;undefined&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;자바 스크립트는 &lt;strong&gt;느슨한 타입 체크 언어&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// num type
var intNum = 10;
var floatNum = 0.1;


// String type
var singleQuoteStr = &amp;#39;single quote string&amp;#39;;
var doubleQuoteStr = &amp;quot;double quote string&amp;quot;;
var singleChar = &amp;#39;a&amp;#39;;

// boolean type
var boolVar = true;

// undefined type
var emptyVar;

// null type
var nullVar = null;

console.log(
    typeof intNum,
    typeof floatNum,
    typeof singleQuoteStr,
    typeof doubleQuoteStr,
    typeof boolVar,
    typeof nullVar,
    typeof emptyVar
);

// result =&amp;gt; number number string string boolean object undefined&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;오늘의 회고&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;java 에는 없는 데이터 타입을 알 수 있었다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>99클럽 TIL2</category>
      <category>99클럽</category>
      <category>til</category>
      <category>개발자취업</category>
      <category>코딩테스트준비</category>
      <category>항해99</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/178</guid>
      <comments>https://my-trash-code.tistory.com/178#entry178comment</comments>
      <pubDate>Mon, 28 Oct 2024 22:37:40 +0900</pubDate>
    </item>
    <item>
      <title>경마...(3)</title>
      <link>https://my-trash-code.tistory.com/177</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;830&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk4X0e/btsIx7v0JTF/Bfiv3ZuoTkyuak4HD48pI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk4X0e/btsIx7v0JTF/Bfiv3ZuoTkyuak4HD48pI1/img.png&quot; data-alt=&quot;?&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk4X0e/btsIx7v0JTF/Bfiv3ZuoTkyuak4HD48pI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk4X0e%2FbtsIx7v0JTF%2FBfiv3ZuoTkyuak4HD48pI1%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;835&quot; height=&quot;830&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;830&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;?&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;236&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZdOdN/btsIyxgUDBB/RAtKKKpvgfvP9KBxlCzTi1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZdOdN/btsIyxgUDBB/RAtKKKpvgfvP9KBxlCzTi1/img.jpg&quot; data-alt=&quot;아 하지 말까..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZdOdN/btsIyxgUDBB/RAtKKKpvgfvP9KBxlCzTi1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZdOdN%2FbtsIyxgUDBB%2FRAtKKKpvgfvP9KBxlCzTi1%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;236&quot; height=&quot;177&quot; data-origin-width=&quot;236&quot; data-origin-height=&quot;177&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;경마 용어가 저렇게 많은지는 생각도 하지 못했다...&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 title=&quot;블로그&quot; href=&quot;https://m.blog.naver.com/pbg125/222879339023&quot;&gt;블로그&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1720879603901&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. 경마 기초 용어 가이드 승률 - 승률은 크게 3가지로 나뉘며 단승률, 복승률, 연승률로 나뉜다. 단승률 -...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://m.blog.naver.com/pbg125/222879339023&quot; data-og-url=&quot;https://blog.naver.com/pbg125/222879339023&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bnYcHZ/hyWzEsdZaK/5NdlKVUqZzotxKgJnYfnBK/img.png?width=500&amp;amp;height=1024&amp;amp;face=0_0_500_1024&quot;&gt;&lt;a href=&quot;https://m.blog.naver.com/pbg125/222879339023&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://m.blog.naver.com/pbg125/222879339023&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bnYcHZ/hyWzEsdZaK/5NdlKVUqZzotxKgJnYfnBK/img.png?width=500&amp;amp;height=1024&amp;amp;face=0_0_500_1024');&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. 경마 기초 용어 가이드 승률 - 승률은 크게 3가지로 나뉘며 단승률, 복승률, 연승률로 나뉜다. 단승률 -...&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;h2 data-ke-size=&quot;size26&quot;&gt;경마 기초 용어 가이드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;승률&lt;/b&gt; - 승률은 크게 3가지로 나뉘며 단승률, 복승률, 연승률로 나뉜다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단승률 - 1위 입상률&lt;/li&gt;
&lt;li&gt;복승률 - 2위 이내 입상률&lt;/li&gt;
&lt;li&gt;연승률 - 3위 이내 입상률&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;승식&lt;/b&gt; - 마권을 구입할 때 승식을 골라 구매 할 수 있다. 승식은 7개로 나뉜다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단승식 - 고른 말이 1등으로 들어오면 적중된다.&lt;/li&gt;
&lt;li&gt;연승식 - 고른말이 1, 2, 3 등 안에 들어오면 적중한다. 맞히기 가장 쉽고 배당금이 가장 적은 편이다.&lt;/li&gt;
&lt;li&gt;복승식 - 말 2마리를 골라 1, 2등으로 들어와야 하며 순서는 상관 없다.&lt;/li&gt;
&lt;li&gt;쌍승식 - 말 2마리를 골라 1, 2등으로 들어와야 하며 순서까지 맞춰야 적중한다.&lt;/li&gt;
&lt;li&gt;복연승식 - 말 2마리를 골라 3등 이내에 모두 들어오면 오면 적중한다.&lt;/li&gt;
&lt;li&gt;삼복승식 - 말 3마리를 골라 1, 2, 3등으로 모두 들어와야하며 순서는 상관없다.&lt;/li&gt;
&lt;li&gt;삼쌍승식 - 1,2,3 등을 순서대로 맞히는 승식이다. 맞추긴 어렵지만 배당이 가장 높은 편이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;br /&gt;&lt;b&gt;각질&lt;/b&gt; - 주행습성이라고 하며 5가지 타입으로 나뉜다.&lt;/p&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;선입마 - 경기초반에 두세 번째로 달리다가 1등을 노림.&lt;/li&gt;
&lt;li&gt;추입마 - 마지막에 선두로 치고 나와 막판 뒤집기를 잘함.&lt;/li&gt;
&lt;li&gt;자유마 - 기수의 전략, 경주 당일 컨디션에 따라 경기 결과 좌우.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;말의&lt;/b&gt; &lt;b&gt;종류&lt;/b&gt; - 크게 5종으로 나뉘고 국산마, 포입마, 외신마, 제주마, 한라마로 나뉜다.&lt;/p&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;li&gt;제주마 - 옛날부터 제주에서 기르는 재래종 조랑말.&lt;/li&gt;
&lt;li&gt;한라마 - 제주마에 더러브렛종을 교잡시켜 만들어낸 교잡종 말. (한라마는 2023년부터 경마에 참여불가)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;b&gt;레이팅(Rating)&lt;/b&gt; - 레이팅은&amp;nbsp;말의&amp;nbsp;경주&amp;nbsp;능력을&amp;nbsp;대변하는&amp;nbsp;수치이다.&amp;nbsp;경주마가&amp;nbsp;그간&amp;nbsp;거둔&amp;nbsp;경주성적에&amp;nbsp;따라&amp;nbsp;1~140&amp;nbsp;구간에서&amp;nbsp;결정되며,&amp;nbsp;상위등급&amp;nbsp;경주마일수록&amp;nbsp;레이팅이&amp;nbsp;높다.&lt;br /&gt;경주마에&amp;nbsp;부여된&amp;nbsp;레이팅을&amp;nbsp;활용하여&amp;nbsp;경주마의&amp;nbsp;등급(1~6등급)을&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;​&lt;b&gt;부담중량&lt;/b&gt; - 기수의 체중에 안장등의 무게를 합친 것으로 박진감 넘치는 경주를 만들기위한 핸디캡과 같다. 쉽게 말해 밸런스패치. 부담중량은 이전성적 혹은 상금 수득으로 결정되며 성적이 좋은 말일수록 부담중량이 증가한다. 최대 상한 60kg를 초과하여 부여되지 않는다. 부담중량은 경주에 큰 영향을 미친다. 밑 마신 참조.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;br /&gt;&lt;b&gt;경주의 종류&lt;/b&gt; - 경주는 크게 3가지로 나뉘며 마령경주, 별정경주, 핸디캡 경주로 분류된다.&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A형 - 증량, 즉, 별정 A형 경주는 상금을 많이 번 말에게 부담중량을 무겁게 준다.&lt;/li&gt;
&lt;li&gt;B형 - 감량,&lt;/li&gt;
&lt;li&gt;C형 - 증감량, 우승확률이 높은 말은 무겁게 부진한 말은 가볍게 준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;별정 경주에 증감 기호는 A, B, C로 나뉜다.&lt;/li&gt;
&lt;li&gt;핸디캡경주 - 핸캡전문위원에 의하여 각 말들의 능력별로 차등에 따라 결정된 중량을 부여한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;br /&gt;&lt;b&gt;상금에 따른 경주 분류&lt;/b&gt; - 크게 3가지로 나뉘며 특별경주, 일반경주, 대상경주가 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특별경주 - 마주가 자기 말의 출주를 신청할 때 등록료를 내며, 이 돈을 전부 1위, 2위, 3위에 주는 상금을 포함시키는 경주이다.&lt;/li&gt;
&lt;li&gt;일반경주 - 평소 시행되는 경주로 각 말의 등급에 의한 경주이다.&lt;/li&gt;
&lt;li&gt;대상경주 - 특수한 의의와 전통성을 지닌 축제 형식의 경주이다.(무궁화배, 신문사배, 회장배, 그랑프리 등)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주행심사&lt;/b&gt; - 등록된 경주마의 경주능력을 판정하는 것으로, 처음 출전하는 말이나 최종 경주 출주 후 4개월 이상 출전하지 않은 말 등을 경주마로서 적격여부를 판단하는것을 뜻한다.&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;b&gt;주로 상태에 따른 분류&lt;/b&gt; - 주로의 습도 상태에 따라서 건조, 양호, 다습, 포화, 불량으로 나뉜다. 대부분 건,양,다,포,불로 표기한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;br /&gt;&lt;b&gt;마방&lt;/b&gt; - 조교사가 관리하는 시설로 말을 관리하는 시설을 뜻한다. 대한민국에서 마방은 숫자로 표시한다. ex) 32조, 10조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;b&gt;마신&lt;/b&gt; - 경주에서 결승선을 통과하는 말들 간의 거리차를 표시하는 단위로서 마필의 체장(약 2.4미터)을 1마신으로 한다. 부담중량 1kg의 차이는 시간으로 1/3초, 거리로는 약 4.8m(2마신)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;b&gt;코차이&lt;/b&gt; - 경마에서는 결승선 도착 기준이 경주마의 코이다. 경주마의 신체 일부가 먼저 결승선을 도착하더라도 다른 말의 코가 먼저 닿았다면 우승은 코가 먼저 통과한 말에게 돌아간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;b&gt;거세마&lt;/b&gt; -경마에서는 거세마가 존재하는데 거세마는 대부분 기질이 거칠어서 집중을 못하거나 사람에게 반항적인 말 등 사유에 의해서 생식기를 제거한 수말을 뜻한다. 대부분 성별표기에서는 '거'로 표기한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;​&lt;br /&gt;&lt;b&gt;보법&lt;/b&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;/li&gt;
&lt;li&gt;속보 - 평보에서 시작해 마체가 풀리면 조금 강도를 올려 빠르게 걷는것을 뜻한다.&lt;/li&gt;
&lt;li&gt;구보 - 천천히 달리는것으로 속보보다 한 단계 강한것을 뜻한다.&lt;/li&gt;
&lt;li&gt;습보 - 실제 경주처럼 전력으로 달리는 것을 뜻한다.&lt;/li&gt;
&lt;/ul&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;&lt;b&gt;펄롱타임&lt;/b&gt; - 1펄롱(200m)을 주파한 기록이며 대부분 F로 표기한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;S1F - 출발지점에서 200m 지점&lt;/li&gt;
&lt;li&gt;G3F - 결승선 전 600m지점&lt;/li&gt;
&lt;li&gt;G1F - 결승선 전 200m지점&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>おもちゃプロジェクト</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/177</guid>
      <comments>https://my-trash-code.tistory.com/177#entry177comment</comments>
      <pubDate>Sat, 13 Jul 2024 23:08:38 +0900</pubDate>
    </item>
    <item>
      <title>경마...(2)</title>
      <link>https://my-trash-code.tistory.com/176</link>
      <description>&lt;h1&gt;DB 테이블 설계...&lt;/h1&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;b&gt;일단 먼저 해야할거는 말 정보&lt;/b&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;공공데이터 API 에서 가져오는 return 값을 보면 key 값이 219개가 되는걸 볼 수 있다...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A5jXb/btsIyixiDxt/Tk7PCxW8y2NQHhSdBtFXJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A5jXb/btsIyixiDxt/Tk7PCxW8y2NQHhSdBtFXJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A5jXb/btsIyixiDxt/Tk7PCxW8y2NQHhSdBtFXJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA5jXb%2FbtsIyixiDxt%2FTk7PCxW8y2NQHhSdBtFXJK%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;810&quot; height=&quot;422&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;422&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNUxYd/btsIzKTE32b/bHra1xzHA26ZVeUy0GrK41/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNUxYd/btsIzKTE32b/bHra1xzHA26ZVeUy0GrK41/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNUxYd/btsIzKTE32b/bHra1xzHA26ZVeUy0GrK41/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNUxYd%2FbtsIzKTE32b%2FbHra1xzHA26ZVeUy0GrK41%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;235&quot; height=&quot;214&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론은 DB 테이블로 담을려고 했지만 129개의 컬럼을 버티는 테이블이..&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;span style=&quot;background-color: #363636; color: #ececec; text-align: start;&quot;&gt;Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs&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;/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;그래서 생각해낸게&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. `말 정보` 라는 테이블의 목적을 생각 -&amp;gt; 말 정보만 담겨야됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 필요없는 값들 다른 테이블로 옮김 -&amp;gt; 말 정보에는 경주마 퇴사 시 조교명 이런건...필요 없음...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 필요한 것만 건지고, 테이블로 만들고, 불필요한 데이터는 삭제하고 한 끝에&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;149&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPUpAV/btsIyv4tcRJ/OaR94VB0wf31BYkpzCzzak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPUpAV/btsIyv4tcRJ/OaR94VB0wf31BYkpzCzzak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPUpAV/btsIyv4tcRJ/OaR94VB0wf31BYkpzCzzak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPUpAV%2FbtsIyv4tcRJ%2FOaR94VB0wf31BYkpzCzzak%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;149&quot; height=&quot;148&quot; data-origin-width=&quot;149&quot; data-origin-height=&quot;148&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;p data-ke-size=&quot;size16&quot;&gt;영롱한 5개의 테이블로 완성해버렸다.. (member table 은 회원쪽..)&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;기본적인 말 정보는 얻었으니 나머지 API 들을 테이블에 적재하는 일은 이런 식으로 할 예정임.&lt;/p&gt;</description>
      <category>おもちゃプロジェクト</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/176</guid>
      <comments>https://my-trash-code.tistory.com/176#entry176comment</comments>
      <pubDate>Sat, 13 Jul 2024 22:59:49 +0900</pubDate>
    </item>
    <item>
      <title>경마..(1)</title>
      <link>https://my-trash-code.tistory.com/175</link>
      <description>&lt;p&gt;일단 천천히 시작...&lt;/p&gt;
&lt;h1&gt;개요&lt;/h1&gt;
&lt;p&gt;경마 관련 서비스를 만들 예정 -&amp;gt; 통계 등 할 예정임.&lt;/p&gt;
&lt;h1&gt;기술..스택?&lt;/h1&gt;
&lt;h2&gt;Spring Boot&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;JPA&lt;/li&gt;
&lt;li&gt;Spring security&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;DB&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;MariaDB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;일단은 이렇게 가고 추가적으로 들어오는게 있으면 추가할 예정&lt;/p&gt;
&lt;p&gt;&lt;em&gt;나는 일단 큰 와꾸먼저 만들고 테스트를 하기 때문에 기본 세팅은 완료 후 테스트 할 예정&lt;/em&gt;&lt;/p&gt;</description>
      <category>おもちゃプロジェクト</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/175</guid>
      <comments>https://my-trash-code.tistory.com/175#entry175comment</comments>
      <pubDate>Sat, 13 Jul 2024 22:47:41 +0900</pubDate>
    </item>
    <item>
      <title>99클럽 코테 스터디 1일차 Version Control Docker</title>
      <link>https://my-trash-code.tistory.com/174</link>
      <description>&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;CI
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;del&gt;GitHub Actions&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Jenkins&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CD
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;del&gt;Argo CD&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Container
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;k8s
&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;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;란?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Go 언어로 작성된 리눅스 Container 기반으로하는 오픈소스 가상화 플랫폼&lt;/li&gt;
&lt;li&gt;Docker 0.9 버전 부터는 직접 개발한 libcontainer 컨테이너를 사용하고 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&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;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;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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템 자원을 효율적으로 사용할 수 있으며, 컨테이너는 VM 보다 가볍고 빠르게 배포할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&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;/ul&gt;
&lt;/li&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;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Docker 까보기&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Image
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Application 과 모든 종속성을 포함하는 읽기 전용 템플릿임. Dockerfile 을 사용하여 생성됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Container
&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;Dockerfile
&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;Docker Hub
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker 이미지를 공유하고 저장하는 중앙 저장소&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;사용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker 는 Window, macOS, Linux 에서 사용할 수 있음. 공식 사이트에서 설치 프로그램을 다운로드 하여 설치하면 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Window 는 BIOS 에서 Hyper-V 옵션이 켜져있는지 확인해야함.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&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;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;sqf&quot;&gt;&lt;code&gt;docker pull &amp;lt;image-name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) &lt;code&gt;docker pull nginx&lt;/code&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;2&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;컨테이너 실행&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;docker run -d -p &amp;lt;hostPort&amp;gt;:&amp;lt;containerPort&amp;gt; &amp;lt;image-name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hostPort : 컴퓨터 호스트&lt;br /&gt;containerPort : 컨테이너 내부 호스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) &lt;code&gt;docker run -d -p 80:80 nginx&lt;/code&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;3&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;실행 중인 컨테이너 목록 보기&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;ebnf&quot;&gt;&lt;code&gt;docker ps&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;4&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;컨테이너 정지&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;docker stop &amp;lt;Container ID&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;5&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;이미지 목록 보기&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;docker image&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;6&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;이미지 삭제&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;docker rmi &amp;lt;Image ID&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Dockerfile 작성 및 이미지 빌드&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Dockerfile 작성&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;dockerfile&quot;&gt;&lt;code&gt;# base image setting
FROM ubuntu:latest

# 필요한 패키지 설치
RUN apt-get update &amp;amp;&amp;amp; apt-get install -y python3

# 애플리케이션 복사
COPY . /app

# 작업 디렉토리 설정
WORKDIR /app

# 애플리케이션 실행 명령어 설정
CMD [&quot;python3&quot;, &quot;app.py&quot;]&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;2&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;image build&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;sqf&quot;&gt;&lt;code&gt;docker build -t &amp;lt;image-name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) &lt;code&gt;docker build -t my-python-app&lt;/code&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;3&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;image 로 컨테이너 실행&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;docker run -d -p 5000:5000 my-python-app&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Docker Compose 사용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Compose 는 다중 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;docker-compose.yml 작성&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;dts&quot;&gt;&lt;code&gt;version: '3'
services:
    web:
        image: nginx
        ports:
            - &quot;80:80&quot;
    app:
        build: .
        ports:
            - &quot;5000:5000&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;2&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Compose 로 애플리케이션 실행&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;ebnf&quot;&gt;&lt;code&gt;docker-compose up&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;3&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Compose 로 애플리케이션 중지&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;ebnf&quot;&gt;&lt;code&gt;docker-compose down&lt;/code&gt;&lt;/pre&gt;</description>
      <category>99클럽 TIL</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/174</guid>
      <comments>https://my-trash-code.tistory.com/174#entry174comment</comments>
      <pubDate>Fri, 28 Jun 2024 21:28:34 +0900</pubDate>
    </item>
    <item>
      <title>99클럽 코테 스터디 34일차 Version Control CD ArgoCD</title>
      <link>https://my-trash-code.tistory.com/173</link>
      <description>&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;CI
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;del&gt;GitHub Actions&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Jenkins&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CD
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Argo CD&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Container
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;k8s
&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;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Argo CD 란?&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8CwvA/btsIcUqgSrl/1rjOf09V69L9kSEi6fwYr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8CwvA/btsIcUqgSrl/1rjOf09V69L9kSEi6fwYr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8CwvA/btsIcUqgSrl/1rjOf09V69L9kSEi6fwYr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8CwvA%2FbtsIcUqgSrl%2F1rjOf09V69L9kSEi6fwYr1%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;474&quot; height=&quot;474&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;474&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Argo CD 는 k8s에 배포된 애플리케이션의 지속적 배포(CD: Continuos Delivery) 를 관리하기 위한 K8s 네이티브 툴&lt;/li&gt;
&lt;li&gt;GitOps 방식으로 작동하며, 애플리케이션의 선언적 정의와 환경 구성을 Git 리포지토리에 저장하고 이를 통해 배포 상태를 관리함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&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;k8s 네이티브&lt;/b&gt; : k8s 환경에서 원활하게 작동하도록 설계됨.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GitOps 방식&lt;/b&gt; : Git Repository 를 단일 소스로 사용하여 모든 배포를 관리&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자동 동기화&lt;/b&gt; : 설정된 정책에 따라 Git Repository의 상태와 클러터의 상태를 자동으로 동기화&lt;/li&gt;
&lt;li&gt;&lt;b&gt;시각화&lt;/b&gt; : 배포 상태를 웹 UI를 통해 시각적으로 모니터링 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;장단점&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;장점&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;일관성 보장&lt;br /&gt;모든 설정과 애플리케이션 정의가 Git 에 저장되어 일관된 배포 상태를 유지&lt;/li&gt;
&lt;li&gt;자동화&lt;br /&gt;자동 동기화 및 자동 복구 기능을 통해 운영 부담을 줄임.&lt;/li&gt;
&lt;li&gt;확장성&lt;br /&gt;k8s 네이트브 툴로 k8s 의 모든 기능과 완벽하게 통합되어 확장성이 뛰어남.&lt;/li&gt;
&lt;li&gt;시각적 관리&lt;br /&gt;직관적인 웹 UI를 제공하여 배포 상태를 시각적으로 관리 가능&lt;/li&gt;
&lt;li&gt;감사 가능성&lt;br /&gt;모든 변경 사항이 Git에 기록되므로 변경 이력 추적이 용이함.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;단점&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;복잡성&lt;br /&gt;k8s 와 GitOps 방식에 대한 깊은 이해가 필요함.&lt;/li&gt;
&lt;li&gt;러닝 커브&lt;br /&gt;초기 설정과 운영에 대한 학습 곡선이 있음.&lt;/li&gt;
&lt;li&gt;의존성&lt;br /&gt;Git Repository에 대한 높은 의존성으로 Git 서버의 가용성이 중요&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;기존 CD&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Jenkis&lt;br /&gt;가장 널리 사용되는 CI/CD 도구로 다양한 플러그인과 광범위한 커뮤니티 지원&lt;/li&gt;
&lt;li&gt;GitLab CI/CD&lt;br /&gt;GitLab 과 통합된 CI/CD 도구로 GitLab의 기능을 활용하여 배포 관리&lt;/li&gt;
&lt;li&gt;Travis CI&lt;br /&gt;GitHub Repository 와 통합하여 CI/CD 파이프라인을 구성할 수 있는 도구&lt;/li&gt;
&lt;li&gt;CircleCI&lt;br /&gt;빠른 빌드와 배포를 위해 설계된 CI/CD 도구&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;기존 CD 와 Argo CD 의 차이점&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;GitOps 방식&lt;br /&gt;Argo CD 는 GitOps 방식을 채택하여 Git Repository를 소스 사용해 배포를 관리하는 점이 다름.&lt;/li&gt;
&lt;li&gt;k8s 네이티브&lt;br /&gt;k8s 클러스터 환경에 최적화된 기능을 제공&lt;/li&gt;
&lt;li&gt;자동화 및 동기화&lt;br /&gt;Git Repository 와 클러스터 상태를 자동으로 동기화하는 기능&lt;br /&gt;제공&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&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;br /&gt;Git을 단일 소스로 사용하여 배포의 일관성과 안정성을 보장&lt;/li&gt;
&lt;li&gt;자동화&lt;br /&gt;수동 작업을 줄이고 자동화된 동기화 및 복구 기능 제공&lt;/li&gt;
&lt;li&gt;효율성&lt;br /&gt;배포 상태를 시각적으로 관리하고 모니터링할 수 있어 운영 효율성 증대&lt;/li&gt;
&lt;li&gt;보안&lt;br /&gt;변경 사항이 모두 Git 에 기록되어 감사 추적이 용이&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Argo CD 는 k8s 환경에서 GitOps 방식을 활용하여 애플리케이션 배포를 관리함으로써 일관성, 자동화, 안정성, 효율성을 제공하는 도구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해 DevOps 팀이 더 효과적으로 애플리케이션을 배포하고 관리할 수 있음.&lt;/p&gt;</description>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/173</guid>
      <comments>https://my-trash-code.tistory.com/173#entry173comment</comments>
      <pubDate>Wed, 26 Jun 2024 20:49:28 +0900</pubDate>
    </item>
    <item>
      <title>99클럽 코테 스터디 33일차 Version Control Jenkins</title>
      <link>https://my-trash-code.tistory.com/172</link>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;배포&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CI&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;del&gt;GitHub Actions&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;Jenkins&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CD&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Argo CD&lt;ul&gt;
&lt;li&gt;Container&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;k8s&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;쿠버네티스&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;란?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴&lt;ul&gt;
&lt;li&gt;CI 툴이라고 표현함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CI(지속적 통합)&lt;/h2&gt;
&lt;p&gt;개발자가 코드 변경사항을 공유 리포지토리에 정기적으로 병합(merge) 하는 것을 의미함. 이 과정에서 Jenkins 는 코드 변경사항을 감지하고 자동으로 빌드 및 테스트를 실행하여, 새로운 코드가 기존 코드베이스와 잘 통합되는지 확인함. 다음과 같은 이점이 있음.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;오류감소&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;자동 빌드 및 테스트로 인해 코드 통합 과정에서 발생할 수 있는 오류를 초기에 발견하고 수정할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;개발 속도 향상&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;자동화된 테스트와 빌드 프로세스는 개발자가 더 빠르게 피드백을 받고 문제를 수정할 수 있게 해줌.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;CD(지속적 배포)&lt;/h2&gt;
&lt;p&gt;개발된 소프트웨어를 자동으로 테스트하고 운영 환경에 배포하는 과정을 의미함. Jenkins 를 사용하면 이 과정이 자동화되어, 소프트웨어의 새로운 버전을 빠르고 자주 배포할 수 있음. 다음과 같은 이점이 있음.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;배포 자동화&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;수동 배포 과정에서 발생할 수 있는 인간의 오류를 줄이고, 배포 과정을 빠르고 일관되게 만듬.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;피드백 루프 강화&lt;/strong&gt;&lt;ul&gt;
&lt;li&gt;사용자와의 빠른 피드백 루프를 통해 제품을 더 빠르게 개선하고 사용자 요구에 적응할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Jenkins Plugins&lt;/h2&gt;
&lt;p&gt;Jenkins 의 가장 큰 강점 중 하나는 확장성에 있음. Jenkins 는 수천 가지의 플러그인을 지원하여, 거의 모든 종류의 개발, 테스트, 배포 도구와 통합할 수 있음. 이러한 플러그인은 Jenkins 를 매우 유연하게 만들어, 거의 모든 개발 환경에 맞게 조정할 수 있음.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Credentials Plugin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jenkins 는 서버이기 때문에 ssh 와 같은 key 가 필요함.&lt;/li&gt;
&lt;li&gt;AWS Token, Git Access Token, Secret Key, ssh 등을 저장해주는 플러그인임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Git Plugin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jenkins 에서 git 에 대한 소스코드를 가져와서 빌드할 수 있게 도와주는 플러그인&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PipeLine&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;연속적인 작업들을 젠킨스에서 하나의 파이프라인(작업) 으로 묶어서 관리할수 있게 만드는 플러그인임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Docker Plugin and Docker PipeLine&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker Agent를 사용하고 Jenkins 에서 Docker 를 사용하기 위한 플러그인&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/172</guid>
      <comments>https://my-trash-code.tistory.com/172#entry172comment</comments>
      <pubDate>Tue, 25 Jun 2024 21:02:49 +0900</pubDate>
    </item>
    <item>
      <title>99클럽 코테 스터디 33일차 Version Control GitHub Actions</title>
      <link>https://my-trash-code.tistory.com/171</link>
      <description>&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;CI
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;li&gt;Jenkins&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CD
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Argo CD
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Container&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;k8s&lt;/li&gt;
&lt;/ul&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;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.github.com/ko/actions&quot;&gt;GitHub Actions Doc&lt;/a&gt; 여기 문서를 읽고 정리함.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GitHub Actions 는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리포지토리에 대한 모든 풀 요청을 빌드 및 테스트하거나 병합된 풀 요청을 프로덕션에 배포하는 워크플로를 생성할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GitHub Actions 는 DevOps 이상의 기능을 제공하며 저장소에서 다른 이벤트가 발생할 때 워크플로를 실행할 수 있게 해줌.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 누군가 저장소에 새 이슈를 생성할 때마다 워크플로를 실행하여 적절한 레이블을 자동으로 추가할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GitHub는 워크플로를 실행하기 위한 Linux, Windows 및 macOS 가상 머신을 제공하며, 자체 데이터 센터 또는 클라우드 인프라에서 자체 호스팅 실행기를 호스팅할 수도 있음.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&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;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;저장소에 체크인된 YAML 파일에 의해 정의되며 저장소의 이벤트에 의해 트리거될 때 실행되거나 수동으로 또는 정의된 일정에 따라 트리거 될 수 있음.&lt;/li&gt;
&lt;li&gt;워크플로는 저장소의 디렉터리에 정의되며 &lt;code&gt;.github/workflows&lt;/code&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;ex) 누군가가 풀 요청을 생성하거나, 이슈를 열거나, 커밋을 저장소에 푸시할 때 활동이 GitHub 에서 시작 될 수 있음. REST API 에 게시 하거나 수동으로 일정에 따라 실행되도록 퉈크플로우를 트리거할 수도 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Jobs&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작업은 동일한 실행기에서 실행되는 워크플로우의 일련의 Step임.&lt;/li&gt;
&lt;li&gt;각 Step는 실행될 쉘 스크립트이거나 실행될 action 임. Step는 순서대로 실행되며 서로 종속됨.&lt;/li&gt;
&lt;li&gt;각 Step은 동일한 실행기에서 실행되므로 한 단계에서 다른 단계데이터를 공유할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Actions&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Action 는 복잡하지만 자주 반복되는 Action을 수행하는 GitHub Actions 플랫폼용 사용자 지정 애플리케이션 임. Action 를 사용하면 워크플로 파일에 작성하는 반복적인 코드의 양을 줄이는데 도움이 됨.&lt;/li&gt;
&lt;li&gt;이것을 통해 GitHub 에서 Git Repository 를 가져오거나, 빌드 환경에 맞는 도구 체인을 설정하거나, 클라우드에 대한 인증을 설정할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Runners&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;GitHub 은 워크플로우를 실행하기 위한 Ubuntu Linux, Microsoft Windows 및 macOS 를 제공함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>99클럽 TIL</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/171</guid>
      <comments>https://my-trash-code.tistory.com/171#entry171comment</comments>
      <pubDate>Mon, 24 Jun 2024 22:13:05 +0900</pubDate>
    </item>
    <item>
      <title>99클럽 코테 스터디 32일차 Version Control GitHub</title>
      <link>https://my-trash-code.tistory.com/170</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Version Control
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;del&gt;Git&lt;/del&gt;&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소프트웨어 프로젝트를 관리하고 협업하는 데 사용되는 플랫폼.&lt;br /&gt;주로 버전관리 시스템인 Git 을 사용하여 코드 변경 사항을 추적함.&lt;br /&gt;GitHub은 코드 저장소, 협업 기능, 코드 리뷰, 버그 추적, 작업 관리 등 다양한 기능을 제공.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Repository
&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;Branch 와 PullRequest
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Branch
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본 브랜치(대부분 &lt;code&gt;main&lt;/code&gt; 또는 &lt;code&gt;master&lt;/code&gt;) 로 부터 분기하여 특정 기능이나 버그 수정 작업을 독립적으로 진행할 수 있게 해주는 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PR
&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;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Issues 와 Project Board
&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;프로젝트 보드 : KanBan 보드 형식의 도구로, 이슈와 노트를 열,카드로 조직하여 프로젝트의 진행 상황을 시각적으로 관리할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GitHub 액션(GitHub Actions)
&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Star : 다른 사용자의 프로젝트를 &lt;code&gt;즐겨찾기&lt;/code&gt; 하는 기능으로, 흥미운 프로젝트를 추적할 수 있음.&lt;/li&gt;
&lt;li&gt;Fork : 다른 사용자의 저장소를 자신의 계정으로 복사하는 기능으로, 해당 저장소에 대한 변경을 자유롭게 할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>99클럽 TIL</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/170</guid>
      <comments>https://my-trash-code.tistory.com/170#entry170comment</comments>
      <pubDate>Sun, 23 Jun 2024 14:10:14 +0900</pubDate>
    </item>
    <item>
      <title>99클럽 코테 스터디 31일차 Version Control Git</title>
      <link>https://my-trash-code.tistory.com/169</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Version Control
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Git 이란?&lt;/h2&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;Linus Torvalds 에 의해 2005년에 개발되었으며, 주로 소프트웨어 개발에 사용됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Git 은 중앙 집중식 서버가 아닌 각 개발자의 로컬 시스템에 전체 코드베이스의 복사본을 저장함. 네트워크에 접속하지 않고도 대부분의 작업을 수행할 수 있게 해줌.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 무결성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Git 은 데이터의 무결성을 보장하기 위해 SHA-1 해시를 사용하여 파일과 커밋(Commit) 을 관리함. 이는 변경된 내용을 정확히 추적하고 잘못된 데이터 전송이나 파일 손상 시 복구가 가능하게 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;브랜치와 머지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Git 의 Branch 기능은 매우 강력하며, 개발자가 다양한 기능을 독립적으로 개발하고 나중에 주 코드베이스와 합칠 수 있게 해줌. Merge 작업도 간단하고 효율적임&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&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;/ul&gt;
&lt;/li&gt;
&lt;li&gt;보안
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보안 모델은 공개 키 (SSH 키) 를 이용하여 통신을 암호화 하고, 작업을 인증함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;기본 작업&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기화(Init) : 새로운 저장소를 생성하거나 기존 저장소를 로컬로 복제함.&lt;/li&gt;
&lt;li&gt;추가(add) : 변경된 파일을 스테이징 영역(Staging Area) 에 추하여 다음 커밋에 포함.&lt;/li&gt;
&lt;li&gt;커밋(Commit) : 스테이징 영역에 추가된 변경 사항을 저장소의 기록에 추가함.&lt;/li&gt;
&lt;li&gt;푸시(Push) : 로컬 커밋을 원격 저장소에 전송함.&lt;/li&gt;
&lt;li&gt;풀(Pull) : 원격 저장소의 변경 사항을 로컬 저장소로 가져옴.&lt;/li&gt;
&lt;li&gt;브랜치 : 독립적인 작업을 위한 분기점을 생성함.&lt;/li&gt;
&lt;li&gt;머지 : 두 개의 브랜치를 하나로 합침.&lt;/li&gt;
&lt;li&gt;체크아웃 : 다른 브랜치로 전환하거나 특정 버전의 파일을 복구함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;활용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git 은 그 자체로도 좋지만, GitHub, GitLab, BitBucket과 같은 온라인 플랫폼과 함께 사용될 때 더욱 효과적임.&lt;br /&gt;코드 호스팅, 리뷰, 이슈 트래킹 등 추가적인 기능을 제공함.&lt;/p&gt;</description>
      <category>99클럽 TIL</category>
      <author>차가리</author>
      <guid isPermaLink="true">https://my-trash-code.tistory.com/169</guid>
      <comments>https://my-trash-code.tistory.com/169#entry169comment</comments>
      <pubDate>Sat, 22 Jun 2024 14:02:36 +0900</pubDate>
    </item>
  </channel>
</rss>