<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>devAndroid</title>
    <link>https://beandeveloper.tistory.com/</link>
    <description>개발 블로그</description>
    <language>ko</language>
    <pubDate>Wed, 13 May 2026 14:34:41 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>wbnh09</managingEditor>
    <image>
      <title>devAndroid</title>
      <url>https://tistory1.daumcdn.net/tistory/5653577/attach/4359aee7ce264388bbd9fc23701acde3</url>
      <link>https://beandeveloper.tistory.com</link>
    </image>
    <item>
      <title>[CS] 컴퓨터 구조 - 명령어</title>
      <link>https://beandeveloper.tistory.com/43</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;개발자가 작성한 소스코드에서 명령어로&lt;/span&gt;&lt;/h2&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;컴퓨터는 Java나 C/C++, Python, JavaScript 등의 언어로 작성된 소스코드를 바로 이해해서 실행하는 것이 아니다.&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;blockquote data-ke-style=&quot;style2&quot;&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;소스코드: 사람(개발자)가 이해하기 편한 언어 -&amp;gt; 고급 언어&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;명령어 &amp;amp; 데이터: 컴퓨터가 이해하기 편한 언어 -&amp;gt; 저급 언어&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;즉, 고급 언어로 작성된 소스코드는 내부적으로 저급언어로 구성된 명령어와 데이터로 변환된다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저급 언어의 두 종류&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기계어(컴퓨터가 직접 이해하는 언어)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-01 16.36.15.png&quot; data-origin-width=&quot;249&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ragvr/btsJR1gJf0A/jJIfjmHQRNgF1m8vvyJMlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ragvr/btsJR1gJf0A/jJIfjmHQRNgF1m8vvyJMlk/img.png&quot; data-alt=&quot;기계어 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ragvr/btsJR1gJf0A/jJIfjmHQRNgF1m8vvyJMlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fragvr%2FbtsJR1gJf0A%2FjJIfjmHQRNgF1m8vvyJMlk%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;249&quot; height=&quot;304&quot; data-filename=&quot;스크린샷 2024-10-01 16.36.15.png&quot; data-origin-width=&quot;249&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기계어 예시&lt;/figcaption&gt;
&lt;/figure&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;어셈블리어&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-01 16.36.31.png&quot; data-origin-width=&quot;146&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtSF0O/btsJSpVHaaz/ajkuydnpDTNk07xLnwWm60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtSF0O/btsJSpVHaaz/ajkuydnpDTNk07xLnwWm60/img.png&quot; data-alt=&quot;어셈블리어 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtSF0O/btsJSpVHaaz/ajkuydnpDTNk07xLnwWm60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtSF0O%2FbtsJSpVHaaz%2FajkuydnpDTNk07xLnwWm60%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;146&quot; height=&quot;317&quot; data-filename=&quot;스크린샷 2024-10-01 16.36.31.png&quot; data-origin-width=&quot;146&quot; data-origin-height=&quot;317&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;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;C/C++, Java로 작성한 동일한 코드를 기계어나 어셈블리어로 변환했을 때 CPU의 종류나, 컴파일러 종류에 따라 다르게 변환될 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;고급 언어에서 저급 언어로 변환되는 대표적인 방식&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;컴파일&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;인터프리트&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-01 16.41.35.png&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVYr3A/btsJS5PPewq/9qtQnJ2ZXflnlkVAW0gJPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVYr3A/btsJS5PPewq/9qtQnJ2ZXflnlkVAW0gJPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVYr3A/btsJS5PPewq/9qtQnJ2ZXflnlkVAW0gJPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVYr3A%2FbtsJS5PPewq%2F9qtQnJ2ZXflnlkVAW0gJPK%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;689&quot; height=&quot;180&quot; data-filename=&quot;스크린샷 2024-10-01 16.41.35.png&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;컴파일(대표적인 언어: C/C++, Rust)&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-01 16.45.23.png&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kz4xq/btsJSjBimtE/ZI3fInerXXz800yHUqrPpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kz4xq/btsJSjBimtE/ZI3fInerXXz800yHUqrPpk/img.png&quot; data-alt=&quot;컴파일러&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kz4xq/btsJSjBimtE/ZI3fInerXXz800yHUqrPpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fkz4xq%2FbtsJSjBimtE%2FZI3fInerXXz800yHUqrPpk%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;639&quot; height=&quot;150&quot; data-filename=&quot;스크린샷 2024-10-01 16.45.23.png&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;150&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;소스 코드 전체가 컴파일러에 의해 검사되고, 목적 코드(object code)로 변환.&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;컴파일러의 종류: gcc, clang, Visual Studio 등..&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;인터프리트(대표적인 언어: Python, JavaScript)&lt;/span&gt;&lt;/h4&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;인터프리터에 의해서 소스코드 한 줄씩 검사되고, 목적코드(object code)로 변환&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;컴파일 방식과 인터프리트 방식의 차이&lt;/span&gt;&lt;/h4&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;인터프리터는 소스코드를 한 줄씩 검사하고 실행하기 때문에 n번째 줄에 오류가 있다면 n-1번째 줄까지는 정상적으로 실행이 된다.&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;하지만 컴파일러는 n번째 줄에 오류가 있다면 처음부터 실행이 안되고, '컴파일 에러'가 발생한다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴파일 방식과 인터프리트 방식은 소스코드가 저급 언어로 변환되는 대표적인 방식일 뿐 딱 구분되는 개념은 아니다.&lt;br /&gt;컴파일 언어의 특성과 인터프리트 언어의 특성을 모두 갖춘 언어도 있다.(ex. Java 등..)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;명령어의 구조&lt;/span&gt;&lt;/h2&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;프로그램을 이루는 두 정보(0과 1로 이루어진 정보)는 두가지로 구성되어 있다.&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;명령어: 컴퓨터를 동작시키는 실질적인 정보&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;데이터: 명령어의 대상&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;명령어의 구성&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;무엇을 대상(명령의 대상)으로 무엇을 수행(명령의 동작)해라&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드(Operand, 피연산자): 명령어를 수행할 대상&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;대상(데이터)이 직접 명시되기도 하고, 대상의 위치(레지스터 이름, 혹은 메모리 주소)가 명시되기도 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;레지스터: CPU에 있는 작은 임시저장 장치&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드(Op-code): 오퍼랜드로 수행할 동작&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;즉, 오퍼랜드로 연산코드를 수행해라.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;명령의 동작&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;명령의 대상&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;명령의 대상&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;더해라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;100과&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;120을&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;빼라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리 32번지 안의 값과&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리 33번지 안의 값을&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저장해라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;무엇을&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리 128번지에&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;출력해라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;무엇을&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;모니터에&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드가 없는 경우(0-주소 명령어)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드(Op-code)&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드가 1개인 경우(1-주소 명령어)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드(Op-code)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;피연산자(Operand)&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드가 2개인 경우(2-주소 명령어)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드(Op-code)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;피연산자(Operand)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;피연산자(Operand)&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드가 3개인 경우(3-주소 명령어)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드(Op-code)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;피연산자(Operand)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;피연산자(Operand)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;피연산자(Operand)&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&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;Operand(피연산자)의 갯수는 유동적일 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;같은 코드라고 해도 Operand의 갯수에 따라 실행되는 명령어의 갯수가 달라질 수 있다&lt;/span&gt;&lt;/h3&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;ex1) 2-주소 명령어로 &quot;X = (A + B) * C&quot; 계산하기&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1 &amp;lt;- M(A): 메모리(M)의 A번지 값을 연산을 진행할 레지스터 R1으로 옯긴다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1 &amp;lt;- R1 + M(B): 메모리(M)의 B번지 값을 R1 값에 더하고, 더한 값은 R1에 저장한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1 &amp;lt;- R1 * M(C): 메모리(M)의 C번지 값을 R1 값에 곱하고, 곱한 값은 R1에 저장한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;M(X) &amp;lt;- R1: 계산이 끝난 R1의 값을 메모리(M)의 X번지로 옮긴다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt; 옮겨라&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;A를&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1으로&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;더해라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;B를&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1과&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;곱해라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;C를&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1과&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;옯겨라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1을&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;X로&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;ex2) 3-주소 명령어로 &quot;X = (A + B) * C&quot; 계산하기&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1 &amp;lt;- M(A) + M(B): 메모리(M)의 A번지, B번지의 값을 더해 레지스터 R1에 저장한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;M(X) &amp;lt;- R1 * M(C): 메모리의 C번지 값을 R1과 곱해 메모리 X번지에 저장한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;더해라&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;결과 R1에 저장&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;A&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;B&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;곱해라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;결과 X에 저장&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;R1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;C&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이처럼 명령어에서 사용되는 Operand가 몇개 있는지에 따라서, CPU가 얼마나 복잡한 명령어를 지원하는지에 따라서 명령어의 갯수가 달라질 수 있다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드&lt;/span&gt;&lt;/h3&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;연산코드의 종류는 CPU마다 다를 수 있다. CPU의 종류와 관계없이 대표적으로, 공통적으로 사용되는 연산코드의 종류는 정해져 있다.&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;데이터 전송에 관여하는 Op-code&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;설명&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;MOVE&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;데이터를 옮겨라(레스터에서 레지스터로 ~)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;STORE&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리에 저장해라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;LOAD(FETCH)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리에서 가져와라(CPU내부의 레지스터로 ~)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;PUSH&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;스택 최상단에 데이터를 저장해라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;POP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;스택 최상단의 데이터를 가져와라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;산술/논리 연산에 관여하는 Op-code&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;설명&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;ADD / SUBTRACT / MULTIPLY / DIVIDE&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;덧셈 / 뺄셈 / 곱셈 / 나눗셈을 수행해라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;INCREMENT / DECREMENT&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1 증가 / 감소 시켜라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;ADD / OR / NOT&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;AND / OR / NOT 연산을 수행해라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;COMPARE&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;두 숫자 또는 TRUE / FALSE 값을 비교해라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;제어흐름 변경에 관여하는 Op-code&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;설명&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;JUMP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;특정 주소로 실행 순서를 옮겨라(ex. JUMP 메모리 주소)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;CONDITIONAL JUMP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;조건에 부합할 경우 특정 주소로 실행 순서를 옮겨라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;HALT&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;프로그램 실행을 멈춰라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;CALL&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;되돌아올 주소를 저장한 채 특정 주소로 실행 순서를 옯겨라(함수호출, 반환 시 사용됨)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RETURN&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;CALL 호출 시 지정했던 주소로 돌아가라(함수호출, 반환 시 사용됨)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;입출력 제어에 관여하는 Op-code&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;설명&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;READ(INPUT)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;특정 입출력 장치로부터 데이터를 읽어라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;WRITE(OUTPUT)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;특정 입출력 장치로 데이터를 써라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;START IO&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;입출력 장치를 시작해라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;TEST IO&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;입출력 장치의 상태를 확인해라&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;주소 지정&lt;/span&gt;&lt;/h2&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;주소 지정은 CPU마다 조금씩 차이가 있다. 그리고 다양한 주소 지정 방식이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&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;오퍼랜드(Operand): 명령어를 수행할 대상&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드가 담기는 오퍼랜드 필드에는 연산의 대상(데이터)이 직접 명시되기도 하고, 대상의 위치(레지스터 이름, 메모리 주소)가 명시되기도 한다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&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;Q) 왜 데이터를 직접 명시하지 않고 위치를 명시하는 것일까?&lt;/span&gt;&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;더해라&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;100과&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;120을&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;빼라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리 32번지 값과&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리 33번지 값을&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저장해라&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;10을&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;메모리 128번지에&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;A) 명령어의 길이는 한정되어 있기 때문에&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;&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;명령어의 길이가 16bit라고 가정한다면,&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드가 2개인 경우(2-주소 명령어)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드(4bit)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드(6bit)&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드(6bit)&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&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;하나의 오퍼랜드 필드로 표현할 수 있는 데이터 크기: 2^6(64)&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드가 3개인 경우(3-주소 명령어)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;height: 20px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;th style=&quot;height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드(4bit)&lt;/span&gt;&lt;/th&gt;
&lt;th style=&quot;height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드(4bit)&lt;/span&gt;&lt;/th&gt;
&lt;th style=&quot;height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드(4bit)&lt;/span&gt;&lt;/th&gt;
&lt;th style=&quot;height: 20px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드(4bit)&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&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;하나의 오퍼랜드 필드로 표현할 수 있는 데이터 크기: 2^4(16)&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;하나의 오퍼랜드에 2500 이라는 데이터를 표현해야 한다면, 이를 직접 명시할 수는 없다.&lt;br /&gt;최대 표현가능한 데이터가 16밖에 안되니까&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&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;b&gt;위와 같은 문제를 해결하기 위해 오퍼핸드 필드에 연산 코드의 대상이 되는 데이터를 직접 명시하기 보다는, 데이터가 저장되어있는 공간(레지스터 이름이라던지, 메모리 주소)을 명시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-01 23.46.09.png&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dg2a1e/btsJRReitQ8/WryxYSXCD89ntFeZ0HGeKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dg2a1e/btsJRReitQ8/WryxYSXCD89ntFeZ0HGeKK/img.png&quot; data-alt=&quot;메모리(유효 주소 = 10번지)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dg2a1e/btsJRReitQ8/WryxYSXCD89ntFeZ0HGeKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdg2a1e%2FbtsJRReitQ8%2FWryxYSXCD89ntFeZ0HGeKK%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;774&quot; height=&quot;405&quot; data-filename=&quot;스크린샷 2024-10-01 23.46.09.png&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;메모리(유효 주소 = 10번지)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-01 23.47.51.png&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgfXon/btsJSO1Rdzw/jEJfZEaoqfn3776StervkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgfXon/btsJSO1Rdzw/jEJfZEaoqfn3776StervkK/img.png&quot; data-alt=&quot;레지스터(유효 주소 = R1)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgfXon/btsJSO1Rdzw/jEJfZEaoqfn3776StervkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgfXon%2FbtsJSO1Rdzw%2FjEJfZEaoqfn3776StervkK%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;687&quot; height=&quot;356&quot; data-filename=&quot;스크린샷 2024-10-01 23.47.51.png&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;레지스터(유효 주소 = R1)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&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;b&gt;유효 주소: 연산 코드에 사용할 데이터가 저장된 위치, 즉 연산의 대상이 되는 데이터가 저장된 위치&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;주소 지정: 유효 주소를 찾는 방법&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;주소 지정의 방식&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. 즉시 주소 지정(가장 간단, 많이 사용되지는 않음)&lt;/span&gt;&lt;/h4&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산코드에 사용될 데이터&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;연산에 사용할 데이터를 오퍼랜드 필드에 직접적으로 명시&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;가장 빠른 주소 지정(이론상) + 데이터 크기에 제한&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. 직접 주소 지정&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-01 23.57.12.png&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;274&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSGK6m/btsJSLjWJoe/sekYwBuFKrARRvc8e475X0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSGK6m/btsJSLjWJoe/sekYwBuFKrARRvc8e475X0/img.png&quot; data-alt=&quot;직접 주소 지정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSGK6m/btsJSLjWJoe/sekYwBuFKrARRvc8e475X0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSGK6m%2FbtsJSLjWJoe%2FsekYwBuFKrARRvc8e475X0%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;566&quot; height=&quot;274&quot; data-filename=&quot;스크린샷 2024-10-01 23.57.12.png&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;274&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;직접 주소 지정&lt;/figcaption&gt;
&lt;/figure&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드 필드에 유효 주소(연산에 사용될 데이터가 저장된 메모리 주소) 명시&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드 필드로 표현가능한 메모리 주소 크기에 제한(메모리가 커지면서 메모리 주소의 크기가 커지고 있음) -&amp;gt; 간접 주소 지정의 등장 배경&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&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;CPU가 레지스터에 접근하는 속도보다 메모리에 접근하는 속도가 훨씬 느리다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;레지스터에 접근함으로써 처리할 수 있는 작업은 레지스터에 접근해서 처리하는 것이&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;훨씬 더 빠른 성능을 보장한다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. 간접 주소 지정&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오퍼랜드 필드에 유효 주소의 주소를 명시&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;유효 주소 크기에 제한은 없으나, 속도가 비교적 느림&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-02 00.55.39.png&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/delSAs/btsJSpnVCLg/A4xo10N8k0EoC3ckOZkVKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/delSAs/btsJSpnVCLg/A4xo10N8k0EoC3ckOZkVKK/img.png&quot; data-alt=&quot;간접 주소 지정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/delSAs/btsJSpnVCLg/A4xo10N8k0EoC3ckOZkVKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdelSAs%2FbtsJSpnVCLg%2FA4xo10N8k0EoC3ckOZkVKK%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;529&quot; height=&quot;248&quot; data-filename=&quot;스크린샷 2024-10-02 00.55.39.png&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;간접 주소 지정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4. 레지스터 주소 지정&lt;/span&gt;&lt;/h4&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;span style=&quot;color: #ee2323;&quot;&gt;레지스터 접근은 메모리보다 빠르다&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-02 01.14.24.png&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qRzcC/btsJSQ6rbMe/uKAGqbYcEKElnTm5TVNPH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qRzcC/btsJSQ6rbMe/uKAGqbYcEKElnTm5TVNPH0/img.png&quot; data-alt=&quot;레지스터 주소 지정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qRzcC/btsJSQ6rbMe/uKAGqbYcEKElnTm5TVNPH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqRzcC%2FbtsJSQ6rbMe%2FuKAGqbYcEKElnTm5TVNPH0%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;431&quot; height=&quot;333&quot; data-filename=&quot;스크린샷 2024-10-02 01.14.24.png&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;레지스터 주소 지정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. 레지스터 간접 주소 지정&lt;/h4&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-02 01.16.50.png&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/trnyZ/btsJRD1yEgB/1A3viRN1Thi0daSpyVBpvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/trnyZ/btsJRD1yEgB/1A3viRN1Thi0daSpyVBpvK/img.png&quot; data-alt=&quot;레지스터 간접 주소 지정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/trnyZ/btsJRD1yEgB/1A3viRN1Thi0daSpyVBpvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtrnyZ%2FbtsJRD1yEgB%2F1A3viRN1Thi0daSpyVBpvK%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;600&quot; height=&quot;288&quot; data-filename=&quot;스크린샷 2024-10-02 01.16.50.png&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;288&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;레지스터 간접 주소 지정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6. +a&lt;/h4&gt;</description>
      <category>CS</category>
      <category>CS</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/43</guid>
      <comments>https://beandeveloper.tistory.com/43#entry43comment</comments>
      <pubDate>Wed, 2 Oct 2024 19:30:25 +0900</pubDate>
    </item>
    <item>
      <title>[scrcpy] 여러 기기가 연결되었을 때 특정 기기만 미러링하기</title>
      <link>https://beandeveloper.tistory.com/42</link>
      <description>&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-filename=&quot;스크린샷 2024-07-25 22.50.40.png&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLsRuI/btsIMDVPlgI/zAuGp2pqqxQKcGxlMTU9kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLsRuI/btsIMDVPlgI/zAuGp2pqqxQKcGxlMTU9kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLsRuI/btsIMDVPlgI/zAuGp2pqqxQKcGxlMTU9kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLsRuI%2FbtsIMDVPlgI%2FzAuGp2pqqxQKcGxlMTU9kk%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;697&quot; height=&quot;483&quot; data-filename=&quot;스크린샷 2024-07-25 22.50.40.png&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 경우 이전 글에서처럼 단순히&lt;/p&gt;
&lt;pre id=&quot;code_1721915567430&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scrcpy --always-on-top&lt;/code&gt;&lt;/pre&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-filename=&quot;스크린샷 2024-07-25 22.53.35.png&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KaHXT/btsIOFkmSVv/3dV6tbeCKRznEzsoe5hoKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KaHXT/btsIOFkmSVv/3dV6tbeCKRznEzsoe5hoKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KaHXT/btsIOFkmSVv/3dV6tbeCKRznEzsoe5hoKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKaHXT%2FbtsIOFkmSVv%2F3dV6tbeCKRznEzsoe5hoKk%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;697&quot; height=&quot;483&quot; data-filename=&quot;스크린샷 2024-07-25 22.53.35.png&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&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;이때에는 -s 명령어를 추가해서 하나의 기기만 미러링할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1721915977202&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scrcpy -s [기기 IP주소:포트번호] --always-on-top&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-25 22.56.47.png&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;439&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0sFXg/btsIOpouHCO/dMAW7KsZnQwuLx0uTdb3k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0sFXg/btsIOpouHCO/dMAW7KsZnQwuLx0uTdb3k0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0sFXg/btsIOpouHCO/dMAW7KsZnQwuLx0uTdb3k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0sFXg%2FbtsIOpouHCO%2FdMAW7KsZnQwuLx0uTdb3k0%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;653&quot; height=&quot;439&quot; data-filename=&quot;스크린샷 2024-07-25 22.56.47.png&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;439&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>scrcpy</category>
      <category>Scrcpy</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/42</guid>
      <comments>https://beandeveloper.tistory.com/42#entry42comment</comments>
      <pubDate>Thu, 25 Jul 2024 23:10:26 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 현재 branch에서 작업한 내용 삭제하기</title>
      <link>https://beandeveloper.tistory.com/41</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Git을 사용하면서 작업을 하다가 현재까지 작업했던 내용을 모두 삭제하고 마지막 커밋했던 시점으로 되돌리려면 2가지 방법이 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Github Desktop을 이용하는 경우&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-13 21.37.44.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zjy4Z/btsIx3UVSb1/adf7KcYvfiE0MXmnUFSMWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zjy4Z/btsIx3UVSb1/adf7KcYvfiE0MXmnUFSMWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zjy4Z/btsIx3UVSb1/adf7KcYvfiE0MXmnUFSMWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZjy4Z%2FbtsIx3UVSb1%2Fadf7KcYvfiE0MXmnUFSMWk%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;960&quot; height=&quot;662&quot; data-filename=&quot;스크린샷 2024-07-13 21.37.44.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 이미지처럼 changed file에 우클릭하면 'Discard All Changes' 와 'Stash All Changes' 라는 옵션이 있는데 Discard를 하게 되면 하단에 있는 변경 내역들이 모두 삭제된다.&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;참고로 'Stash All Changes'를 누르게 되면 변경사항들은 모두 임시저장 Stack에 들어가게 되고 변경사항들은 삭제된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-13 21.40.33.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;659&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMqEPt/btsIxeJarrV/KI6AQYZtzbMGCrFFgQRnKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMqEPt/btsIxeJarrV/KI6AQYZtzbMGCrFFgQRnKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMqEPt/btsIxeJarrV/KI6AQYZtzbMGCrFFgQRnKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMqEPt%2FbtsIxeJarrV%2FKI6AQYZtzbMGCrFFgQRnKK%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;960&quot; height=&quot;659&quot; data-filename=&quot;스크린샷 2024-07-13 21.40.33.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;659&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'Stash All Changes'를 선택시 'Stashed Changes'가 나오게 되고 위 사진과 같이 Stash 된 변경사항들을 Restore 할지 Discard 할지 선택하면 된다.&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;2. 터미널을 이용하는 경우&lt;/h2&gt;
&lt;pre id=&quot;code_1720874545227&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git checkout .&lt;/code&gt;&lt;/pre&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-filename=&quot;스크린샷 2024-07-13 21.44.12.png&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crltK6/btsIzrtgzCj/jrZQkFg4kQ5eUq8l3xekrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crltK6/btsIzrtgzCj/jrZQkFg4kQ5eUq8l3xekrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crltK6/btsIzrtgzCj/jrZQkFg4kQ5eUq8l3xekrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrltK6%2FbtsIzrtgzCj%2FjrZQkFg4kQ5eUq8l3xekrk%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;617&quot; height=&quot;431&quot; data-filename=&quot;스크린샷 2024-07-13 21.44.12.png&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Git</category>
      <category>GIT</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/41</guid>
      <comments>https://beandeveloper.tistory.com/41#entry41comment</comments>
      <pubDate>Sun, 14 Jul 2024 22:45:39 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 지금까지 작업한 내용 임시저장하기 git stash</title>
      <link>https://beandeveloper.tistory.com/40</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 진행하다보면 Main branch에 여러 branch를 만들고 작업하는 경우가 있을 것이다.&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;예를 들어 a branch에서 작업하다가 main branch에서 급하게 수정해서 반영해야하거나, 다른 동료의 코드를 봐주어야할 때 지금까지 작업했던 내용들을 commit하고 branch를 바꾸기에는 애매한 상황이 있을 것이다.(commit 하기엔 애매한 코드라던가..)&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;그런 경우 git stash 를 통해 지금까지 작업한 내용을 임시저장하고 branch 전환하면 매우 편리하다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. git stash 로 임시저장하기&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 16.10.10.png&quot; data-origin-width=&quot;3952&quot; data-origin-height=&quot;2247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9TJ3j/btsIqRMDPHb/bauEBtx2qD5xg79VawaBPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9TJ3j/btsIqRMDPHb/bauEBtx2qD5xg79VawaBPk/img.png&quot; data-alt=&quot;git stash 전&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9TJ3j/btsIqRMDPHb/bauEBtx2qD5xg79VawaBPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9TJ3j%2FbtsIqRMDPHb%2FbauEBtx2qD5xg79VawaBPk%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;3952&quot; height=&quot;2247&quot; data-filename=&quot;스크린샷 2024-07-07 16.10.10.png&quot; data-origin-width=&quot;3952&quot; data-origin-height=&quot;2247&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git stash 전&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;위와 같이 a-branch에서 작업하던 내용이 있을 경우 git stash 를 통해 임시저장을 할 수 있다.&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;git stash를 할 때에도 2가지 방법이 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;- git stash&lt;/h3&gt;
&lt;pre id=&quot;code_1720338988292&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git stash&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 16.14.36.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cdtrm/btsIpx9MmHy/J6iLkaO1FumrUsAz4xBSKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cdtrm/btsIpx9MmHy/J6iLkaO1FumrUsAz4xBSKk/img.png&quot; data-alt=&quot;git stash&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cdtrm/btsIpx9MmHy/J6iLkaO1FumrUsAz4xBSKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCdtrm%2FbtsIpx9MmHy%2FJ6iLkaO1FumrUsAz4xBSKk%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;711&quot; height=&quot;92&quot; data-filename=&quot;스크린샷 2024-07-07 16.14.36.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;92&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git stash&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 git stash 만 하는 경우 변경사항이 무작위 이름으로 stack에 저장된다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;- git stash save &quot;&quot;&lt;/h3&gt;
&lt;pre id=&quot;code_1720339004914&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git stash save &quot;title&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 16.16.33.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CuSMj/btsIruwGFRN/EV8ovlQtf8nEuWNCcULXm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CuSMj/btsIruwGFRN/EV8ovlQtf8nEuWNCcULXm1/img.png&quot; data-alt=&quot;git stash save &amp;quot;&amp;quot;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CuSMj/btsIruwGFRN/EV8ovlQtf8nEuWNCcULXm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCuSMj%2FbtsIruwGFRN%2FEV8ovlQtf8nEuWNCcULXm1%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;826&quot; height=&quot;118&quot; data-filename=&quot;스크린샷 2024-07-07 16.16.33.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git stash save &quot;&quot;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 git stash save &quot;&quot; 로 해당 변경사항에 이름이나 정보를 넣는 경우 git stash list로 확인해봤을 때 한눈에 뭐와 관련된 변경사항인지 쉽게 파악할 수 있다.&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;2. stash 에 있는 항목 불러오기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stash에 저장된 항목을 불러오기 위해서는 2가지 방법이 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;- 변경사항 적용 및 삭제하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stash에 저장된 항목을 불러오려면 기본적으로 다음 명령어를 입력하면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1720336880707&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git stash pop&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 위 명령어만 입력하게 되면 가장 최근에 stack에 추가된 변경사항을 불러오면서 동시에 삭제하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 stash list에서 가장 처음에 넣었던 변경사항을 가져오려면 콜론(:) 앞에 &lt;b&gt;stash@{번호}&lt;/b&gt;를 git stash pop 뒤에 넣어주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 16.25.04.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dah9uc/btsIrQzvWP2/5Fza6iiCT0CKENoAO6PeL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dah9uc/btsIrQzvWP2/5Fza6iiCT0CKENoAO6PeL0/img.png&quot; data-alt=&quot;git stash pop&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dah9uc/btsIrQzvWP2/5Fza6iiCT0CKENoAO6PeL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdah9uc%2FbtsIrQzvWP2%2F5Fza6iiCT0CKENoAO6PeL0%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;611&quot; height=&quot;333&quot; data-filename=&quot;스크린샷 2024-07-07 16.25.04.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git stash pop&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;- 변경사항 적용만 하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stash에 저장된 항목 불러오기만 하기&lt;/p&gt;
&lt;pre id=&quot;code_1720338036092&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git stash apply&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 명령어도 pop과 마찬가지로 위 명령어만 입력 시 가장 최근의 변경사항을 적용만하게 된다.(삭제 X)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;원하는 변경사항을 적용하려면 pop과 마찬가지로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;stash@{번호}&lt;/b&gt;를 git stash apply 뒤에 넣어주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 16.45.56.png&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;359&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUbUhv/btsIqyGzzON/gHyFdrQ1pbXYjYakYJnHlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUbUhv/btsIqyGzzON/gHyFdrQ1pbXYjYakYJnHlK/img.png&quot; data-alt=&quot;git stash apply&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUbUhv/btsIqyGzzON/gHyFdrQ1pbXYjYakYJnHlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUbUhv%2FbtsIqyGzzON%2FgHyFdrQ1pbXYjYakYJnHlK%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;610&quot; height=&quot;359&quot; data-filename=&quot;스크린샷 2024-07-07 16.45.56.png&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;359&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git stash apply&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 변경사항 폐기하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stash에 저장된 항목을 폐기하려면 다음과 같이 명령어를 입력하면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1720337208228&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git stash drop&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 명령어도 pop과 마찬가지로 위 명령어만 입력 시 가장 최근의 변경사항을 폐기하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 변경사항을 폐기하려면 pop과 마찬가지로 &lt;b&gt;stash@{번호}&lt;/b&gt;를 git stash drop 뒤에 넣어주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 16.30.23.png&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qxU3a/btsIpJ28LWa/YqJyPzoNX5d1VOE1ToKBZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qxU3a/btsIpJ28LWa/YqJyPzoNX5d1VOE1ToKBZ0/img.png&quot; data-alt=&quot;git stash drop&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qxU3a/btsIpJ28LWa/YqJyPzoNX5d1VOE1ToKBZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqxU3a%2FbtsIpJ28LWa%2FYqJyPzoNX5d1VOE1ToKBZ0%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;600&quot; height=&quot;166&quot; data-filename=&quot;스크린샷 2024-07-07 16.30.23.png&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git stash drop&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 변경사항 삭제하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stash에 저장된 항목들 삭제하기&lt;/p&gt;
&lt;pre id=&quot;code_1720338784914&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git stash clear&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 16.51.25.png&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUqUVK/btsIpVWC0ek/upcStHKBe6HZCaGfyKtwW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUqUVK/btsIpVWC0ek/upcStHKBe6HZCaGfyKtwW1/img.png&quot; data-alt=&quot;git stash clear&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUqUVK/btsIpVWC0ek/upcStHKBe6HZCaGfyKtwW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUqUVK%2FbtsIpVWC0ek%2FupcStHKBe6HZCaGfyKtwW1%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;612&quot; height=&quot;147&quot; data-filename=&quot;스크린샷 2024-07-07 16.51.25.png&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git stash clear&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Git</category>
      <category>GIT</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/40</guid>
      <comments>https://beandeveloper.tistory.com/40#entry40comment</comments>
      <pubDate>Wed, 10 Jul 2024 17:58:37 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 과거 커밋 기록으로 이동하기 git checkout</title>
      <link>https://beandeveloper.tistory.com/39</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Git을 사용하면서 프로젝트를 진행하다보면 이전에 커밋했던 상태의 코드를 확인해보고 싶을 때가 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 터미널에 git log를 통해 Commit Id를 확인하자&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 15.06.04.png&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csuwCm/btsIqzep4V0/xxgtiy5wik52nXdlrI1771/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csuwCm/btsIqzep4V0/xxgtiy5wik52nXdlrI1771/img.png&quot; data-alt=&quot;git log 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csuwCm/btsIqzep4V0/xxgtiy5wik52nXdlrI1771/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsuwCm%2FbtsIqzep4V0%2Fxxgtiy5wik52nXdlrI1771%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;713&quot; height=&quot;574&quot; data-filename=&quot;스크린샷 2024-07-07 15.06.04.png&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git log 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서부터 최신 커밋 순으로 나열된다. 커밋기록이 많은 경우 최신부터 일부 commit만 표시되고 터미널 하단에&lt;/p&gt;
&lt;pre id=&quot;code_1720332800913&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;:[커서 깜빡이는 중..]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 표현될텐데, 더 이전의 기록을 보고싶다면 '엔터'를 치거나, 그만보고 싶으면 'q'를 누르면 터미널 명령어를 누를 수 있는 상태로 돌아오게 된다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 원하는 시점의 commit id에서 앞 7자리를 복사하고 git checkout [7자리]&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 15.10.42.png&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;453&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8PCUz/btsIpgtGSyL/iYcSGxZGFe5bfPHvmYM2H1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8PCUz/btsIpgtGSyL/iYcSGxZGFe5bfPHvmYM2H1/img.png&quot; data-alt=&quot;git checkout 7자리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8PCUz/btsIpgtGSyL/iYcSGxZGFe5bfPHvmYM2H1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8PCUz%2FbtsIpgtGSyL%2FiYcSGxZGFe5bfPHvmYM2H1%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;626&quot; height=&quot;453&quot; data-filename=&quot;스크린샷 2024-07-07 15.10.42.png&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;453&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git checkout 7자리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 IDE의 코드가 그 시점의 커밋 상태로 돌아간 것을 확인할 수 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;- Github를 사용하는 경우&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 15.29.57.png&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;78&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEAfTu/btsIo83roKt/kJEKL3KSNdTT6tKdKInaO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEAfTu/btsIo83roKt/kJEKL3KSNdTT6tKdKInaO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEAfTu/btsIo83roKt/kJEKL3KSNdTT6tKdKInaO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEAfTu%2FbtsIo83roKt%2FkJEKL3KSNdTT6tKdKInaO0%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;918&quot; height=&quot;78&quot; data-filename=&quot;스크린샷 2024-07-07 15.29.57.png&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;78&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Repository안에서 Code 탭에서 Commits를 클릭하면 그동안 커밋했던 기록들이 나오게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 15.31.44.png&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9sAUY/btsIqzyJUA3/rk3Jp7xUKGVoSlLwlIiK5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9sAUY/btsIqzyJUA3/rk3Jp7xUKGVoSlLwlIiK5K/img.png&quot; data-alt=&quot;github Commit 기록들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9sAUY/btsIqzyJUA3/rk3Jp7xUKGVoSlLwlIiK5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9sAUY%2FbtsIqzyJUA3%2Frk3Jp7xUKGVoSlLwlIiK5K%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;1300&quot; height=&quot;432&quot; data-filename=&quot;스크린샷 2024-07-07 15.31.44.png&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;github Commit 기록들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 우측에 있는 Commit Id를 복사해도 된다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;- Gitlab을 이용하는 경우&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Repository -&amp;gt; Commits를 클릭하면 github와 마찬가지로 과거 Commit들이 나오게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 15.37.53.png&quot; data-origin-width=&quot;1255&quot; data-origin-height=&quot;739&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FrSYx/btsIqAqR6V9/ZqJ20kA9J6eGJ505V4kBp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FrSYx/btsIqAqR6V9/ZqJ20kA9J6eGJ505V4kBp1/img.png&quot; data-alt=&quot;gitlab Commit 기록들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FrSYx/btsIqAqR6V9/ZqJ20kA9J6eGJ505V4kBp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFrSYx%2FbtsIqAqR6V9%2FZqJ20kA9J6eGJ505V4kBp1%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;1255&quot; height=&quot;739&quot; data-filename=&quot;스크린샷 2024-07-07 15.37.53.png&quot; data-origin-width=&quot;1255&quot; data-origin-height=&quot;739&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;gitlab Commit 기록들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gitlab에서는 8자리로 나오긴 하는데 7자리든 8자리든 상관없는 것 같다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 다시 최근 Commit으로 돌아오고 싶다면 git checkout -&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-07-07 15.17.08.png&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;97&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJ4IKm/btsIpZLqCdc/LJqeGhZKkGEZjMOlq4Imf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJ4IKm/btsIpZLqCdc/LJqeGhZKkGEZjMOlq4Imf1/img.png&quot; data-alt=&quot;git checkout -&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJ4IKm/btsIpZLqCdc/LJqeGhZKkGEZjMOlq4Imf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ4IKm%2FbtsIpZLqCdc%2FLJqeGhZKkGEZjMOlq4Imf1%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;431&quot; height=&quot;97&quot; data-filename=&quot;스크린샷 2024-07-07 15.17.08.png&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;97&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;git checkout -&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 최근 상태로 돌아오는 것을 확인해볼 수 있다.&lt;/p&gt;</description>
      <category>Git</category>
      <category>GIT</category>
      <category>github</category>
      <category>gitlab</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/39</guid>
      <comments>https://beandeveloper.tistory.com/39#entry39comment</comments>
      <pubDate>Sun, 7 Jul 2024 15:22:08 +0900</pubDate>
    </item>
    <item>
      <title>[Git] gitignore 설정하기</title>
      <link>https://beandeveloper.tistory.com/38</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;.gitignore는 프로젝트를 github에 올릴 때 .gitignore에 명시된 파일은 github에 적용되지 않도록 해준다.&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 key나 Client ID와 같은 개인정보가 담긴 파일을 제외하고 github에 push해야하는 경우 적합하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 각 OS 마다 프로젝트를 열 때 생성되는 파일이 달라 충돌이 일어날 수도 있기 때문에 gitignore를 통해서 그런 파일들은 무시해주는 것이 좋다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;.gitignore에 들어갈 파일 생성하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 gitignore에 들어가야하는 파일은 무엇일까? 아래 사이트에서 자신의 OS, 언어, 개발환경(IDE) 등을 입력하면 필요한 gitignore 파일들이 자동으로 생성된다.&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 title=&quot;gitignore.io&quot; href=&quot;https://www.toptal.com/developers/gitignore/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.toptal.com/developers/gitignore/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711949197160&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;gitignore.io&quot; data-og-description=&quot;Create useful .gitignore files for your project&quot; data-og-host=&quot;www.toptal.com&quot; data-og-source-url=&quot;https://www.toptal.com/developers/gitignore/&quot; data-og-url=&quot;https://www.toptal.com/developers/gitignore&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/tHvoq/hyVGPa17mO/XIjmvddjPRzA6lQVqUJY5k/img.png?width=2400&amp;amp;height=1254&amp;amp;face=0_0_2400_1254&quot;&gt;&lt;a href=&quot;https://www.toptal.com/developers/gitignore/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.toptal.com/developers/gitignore/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/tHvoq/hyVGPa17mO/XIjmvddjPRzA6lQVqUJY5k/img.png?width=2400&amp;amp;height=1254&amp;amp;face=0_0_2400_1254');&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;gitignore.io&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Create useful .gitignore files for your project&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.toptal.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;협업을 할 때에는 MacOS를 쓰는 사람도 있고 Window를 쓰는 사람도 있다. 따라서 다음과 같이 키워드를 입력했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-01 14.36.37.png&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKr4bA/btsGgC5kG2m/D3hwKezEYuKpAVOC8dcde0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKr4bA/btsGgC5kG2m/D3hwKezEYuKpAVOC8dcde0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKr4bA/btsGgC5kG2m/D3hwKezEYuKpAVOC8dcde0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKr4bA%2FbtsGgC5kG2m%2FD3hwKezEYuKpAVOC8dcde0%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;599&quot; height=&quot;223&quot; data-filename=&quot;스크린샷 2024-04-01 14.36.37.png&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'생성' 버튼을 클릭한 후 생성된 텍스트를 IDE에서 최상단 .gitignore에 추가해주면 된다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;프로젝트 중간에 .gitignore 추가, 수정한 경우&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 중간에 이미 github에 올라가 있는 파일을 .gitignore에 추가하는 경우 해당 프로젝트의 터미널에서 다음과 같은 작업을 해줘야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1711950185612&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git rm -r --cached .
git add .
git commit -m &quot;커밋 메시지&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 .gitignore에 추가한, 이미 github에 올라가 있는 파일이 git repository에서 삭제되면서 .gitignore이 성공적으로 적용될 것이다.&lt;/p&gt;</description>
      <category>Git</category>
      <category>.gitignore</category>
      <category>GIT</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/38</guid>
      <comments>https://beandeveloper.tistory.com/38#entry38comment</comments>
      <pubDate>Mon, 1 Apr 2024 14:45:47 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 이진탐색(Binary Search)</title>
      <link>https://beandeveloper.tistory.com/37</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이진탐색(Binary Search)를 하기 위해서는 배열이 정렬되어 있어야한다.&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;3542&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFSnpx/btsFQXasUdn/O8uVLAaHuZOf3IKJnpLOr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFSnpx/btsFQXasUdn/O8uVLAaHuZOf3IKJnpLOr0/img.png&quot; data-alt=&quot;배열 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFSnpx/btsFQXasUdn/O8uVLAaHuZOf3IKJnpLOr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFSnpx%2FbtsFQXasUdn%2FO8uVLAaHuZOf3IKJnpLOr0%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;3542&quot; height=&quot;1000&quot; data-origin-width=&quot;3542&quot; data-origin-height=&quot;1000&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;위와 같은 배열이 있을 때 '43'원소의 index를 찾고자 하는 경우&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;배열의 양 끝의 index를 left와 right로 두고 반복문을 시작한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우 mid의 index는 (left + right) / 2 가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mid에 해당하는 원소가 '43'이 아니므로 left를 (mid + 1)로 할당함으로써 기존 mid index를 포함한 왼쪽은 탐색하지 않는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3767&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjkBLH/btsFOmJPLcN/AEDN32p0qy1YOSipBbqxAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjkBLH/btsFOmJPLcN/AEDN32p0qy1YOSipBbqxAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjkBLH/btsFOmJPLcN/AEDN32p0qy1YOSipBbqxAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjkBLH%2FbtsFOmJPLcN%2FAEDN32p0qy1YOSipBbqxAK%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;3767&quot; height=&quot;1000&quot; data-origin-width=&quot;3767&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 위와 같이 left와 mid가 새롭게 할당된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 mid에 해당하는 원소도 43이 아니므로 mid를 포함한 오른쪽은 탐색에서 제외하고 right를 (mid - 1)로 다시 할당해 준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3026&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kzZ9m/btsFPI6tY10/GKtRsKyY2eCUCxWkqLZtDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kzZ9m/btsFPI6tY10/GKtRsKyY2eCUCxWkqLZtDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kzZ9m/btsFPI6tY10/GKtRsKyY2eCUCxWkqLZtDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkzZ9m%2FbtsFPI6tY10%2FGKtRsKyY2eCUCxWkqLZtDK%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;3026&quot; height=&quot;1000&quot; data-origin-width=&quot;3026&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 위와 같이 right와 mid가 새롭게 할당된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 mid는 (6 + 5) / 2 = 5이므로 mid는 5가 되고 arr[5]는 43이 아니므로 left를 (mid + 1)로 할당해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2676&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJLkIs/btsFQVw1Xhe/8k9deekrYB1VD0SdxMKq80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJLkIs/btsFQVw1Xhe/8k9deekrYB1VD0SdxMKq80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJLkIs/btsFQVw1Xhe/8k9deekrYB1VD0SdxMKq80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJLkIs%2FbtsFQVw1Xhe%2F8k9deekrYB1VD0SdxMKq80%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;2676&quot; height=&quot;1000&quot; data-origin-width=&quot;2676&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 위와 같이 되고 '43'의 index는 6이라는 것을 알 수 있게 된다.&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;pre id=&quot;code_1710496731107&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Main {
    public int solution(int M, int[] input) {
        int answer = 0;
        Arrays.sort(input);
        int leftIdx = 0, rightIdx = input.length - 1;

        while (leftIdx &amp;lt;= rightIdx) {
            int midIdx = (leftIdx + rightIdx) / 2;
            if (input[midIdx] == M) {
                answer = midIdx + 1;
                break;
            } else if (input[midIdx] &amp;gt; M) {
                rightIdx = midIdx - 1;
            } else {
                leftIdx = midIdx + 1;
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int M = sc.nextInt();
        int[] input = new int[N];
        for (int i = 0; i &amp;lt; N; i++) {
            input[i] = sc.nextInt();
        }
        System.out.println(T.solution(M, input));
    }
}&lt;/code&gt;&lt;/pre&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-filename=&quot;스크린샷 2024-03-15 19.03.55.png&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;530&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btvNjp/btsFQZF9WgD/6LBqw5XtmXSpaNgHYKqRDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btvNjp/btsFQZF9WgD/6LBqw5XtmXSpaNgHYKqRDk/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btvNjp/btsFQZF9WgD/6LBqw5XtmXSpaNgHYKqRDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtvNjp%2FbtsFQZF9WgD%2F6LBqw5XtmXSpaNgHYKqRDk%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;612&quot; height=&quot;530&quot; data-filename=&quot;스크린샷 2024-03-15 19.03.55.png&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;530&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Java &amp;amp; Kotlin</category>
      <category>java</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/37</guid>
      <comments>https://beandeveloper.tistory.com/37#entry37comment</comments>
      <pubDate>Tue, 19 Mar 2024 20:04:18 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Comparable을 이용한 객체 비교</title>
      <link>https://beandeveloper.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;기본형 데이터의 경우 간단하게 Arrays.sort() 와 같은 메서드로 정렬이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 특정 객체의 경우 기본형 타입과는 다르게 정렬 기준을 정의해야 하는 경우가 있다. 이때 Java의 Comparable을 이용할 수 있다.&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;Java의 Comparable은 interface이기 때문에 이를 상속받는 class에서는 Comparable interface에 있는 compareTo를 구현해야한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-03-15 18.08.59.png&quot; data-origin-width=&quot;1354&quot; data-origin-height=&quot;976&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Elisz/btsFPr4rLiV/KD04gSDpsZH1K2n20opkC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Elisz/btsFPr4rLiV/KD04gSDpsZH1K2n20opkC1/img.png&quot; data-alt=&quot;Comparable&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Elisz/btsFPr4rLiV/KD04gSDpsZH1K2n20opkC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FElisz%2FbtsFPr4rLiV%2FKD04gSDpsZH1K2n20opkC1%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;1354&quot; height=&quot;976&quot; data-filename=&quot;스크린샷 2024-03-15 18.08.59.png&quot; data-origin-width=&quot;1354&quot; data-origin-height=&quot;976&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Comparable&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 사진에서 보이듯 compareTo는 비교 결과에 따라 int를 반환한다.&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;들어온 객체와 자신이 같으면: 0 리턴&lt;/li&gt;
&lt;li&gt;들어온 객체보다 자신이 크면: 양수 리턴&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 이용하여 x, y 좌표를 입력 받고 x 기준으로 오름차순으로 정렬하고 x가 같다면 y 기준으로 오름차순으로 정렬하는 코드는 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1710494685255&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Point implements Comparable&amp;lt;Point&amp;gt; {
    public int x, y;

    Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    @Override
    public int compareTo(@NotNull Point o) {
        if (this.x == o.x) {
            return this.y - o.y;
        } else {
            return this.x - o.x;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        ArrayList&amp;lt;Point&amp;gt; input = new ArrayList&amp;lt;&amp;gt;();
        for (int i = 0; i &amp;lt; n; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            input.add(new Point(x, y));
        }

        Collections.sort(input);

        for (Point point : input) {
            System.out.println(point.x + &quot; &quot; + point.y);
        }
    }
}&lt;/code&gt;&lt;/pre&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-filename=&quot;스크린샷 2024-03-15 18.29.58.png&quot; data-origin-width=&quot;78&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2Yp3V/btsFN6NPGaH/8DjiO5oD9st3eFzEJBiZf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2Yp3V/btsFN6NPGaH/8DjiO5oD9st3eFzEJBiZf0/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2Yp3V/btsFN6NPGaH/8DjiO5oD9st3eFzEJBiZf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2Yp3V%2FbtsFN6NPGaH%2F8DjiO5oD9st3eFzEJBiZf0%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;78&quot; height=&quot;488&quot; data-filename=&quot;스크린샷 2024-03-15 18.29.58.png&quot; data-origin-width=&quot;78&quot; data-origin-height=&quot;488&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;내림차순이든 오름차순이든 compareTo 함수에서 음수가 리턴되도록 하면 된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오른차순의 경우: this - o&lt;/li&gt;
&lt;li&gt;내림차순의 경우: o - this&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Java &amp;amp; Kotlin</category>
      <category>java</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/36</guid>
      <comments>https://beandeveloper.tistory.com/36#entry36comment</comments>
      <pubDate>Sun, 17 Mar 2024 19:38:16 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 선택정렬 &amp;amp; 버블정렬 &amp;amp; 삽입정렬</title>
      <link>https://beandeveloper.tistory.com/35</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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2525&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkzUL6/btsFMspIRS5/CRO0IkmGq9N6JkkwFdXcEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkzUL6/btsFMspIRS5/CRO0IkmGq9N6JkkwFdXcEK/img.png&quot; data-alt=&quot;배열 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkzUL6/btsFMspIRS5/CRO0IkmGq9N6JkkwFdXcEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkzUL6%2FbtsFMspIRS5%2FCRO0IkmGq9N6JkkwFdXcEK%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;2525&quot; height=&quot;1000&quot; data-origin-width=&quot;2525&quot; data-origin-height=&quot;1000&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;위와 같은 배열을 오름차순으로 정렬하고자 할 때 i의 index를 0에 고정하고 j의 index를 1부터 끝까지 순회하면서 가장 작은 값을 index 0에 배치한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 i의 index를 1에 고정하고 j의 index를 2부터 끝까지 순회하면서 가장 작은 값을 index 1에 배치한다. 위 과정을 반복하게 되면 배열은 결국 오름차순으로 정렬이 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1710470036807&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Main {
    public int[] solution(int[] input) {
        for (int i = 0; i &amp;lt; input.length - 1; i++) {
            int minIdx = i;
            for (int j = i + 1; j &amp;lt; input.length; j++) {
                if (input[minIdx] &amp;gt; input[j]) {
                    minIdx = j;
                }
            }
            int tmp = input[i];
            input[i] = input[minIdx];
            input[minIdx] = tmp;
        }
        return input;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] input = new int[N];
        for (int i = 0; i &amp;lt; N; i++) {
            input[i] = sc.nextInt();
        }

        int[] result = T.solution(input);
        for (int i : result) {
            System.out.print(i + &quot; &quot;);
        }
    }
}&lt;/code&gt;&lt;/pre&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-filename=&quot;스크린샷 2024-03-15 11.38.40.png&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7nwg6/btsFPHrHSYG/lxtmOoD0R7ASreBrKx90cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7nwg6/btsFPHrHSYG/lxtmOoD0R7ASreBrKx90cK/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7nwg6/btsFPHrHSYG/lxtmOoD0R7ASreBrKx90cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7nwg6%2FbtsFPHrHSYG%2FlxtmOoD0R7ASreBrKx90cK%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;304&quot; height=&quot;136&quot; data-filename=&quot;스크린샷 2024-03-15 11.38.40.png&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;136&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;내림차순의 경우 부등호 방향을 바꿔주면 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3844&quot; data-origin-height=&quot;999&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfbegL/btsFMDx412X/a2uN2sX8yU3TktAH2E8UEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfbegL/btsFMDx412X/a2uN2sX8yU3TktAH2E8UEK/img.png&quot; data-alt=&quot;배열 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfbegL/btsFMDx412X/a2uN2sX8yU3TktAH2E8UEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfbegL%2FbtsFMDx412X%2Fa2uN2sX8yU3TktAH2E8UEK%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;3844&quot; height=&quot;999&quot; data-origin-width=&quot;3844&quot; data-origin-height=&quot;999&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;위와 같은 배열을 오름차순으로 정렬할 때 다음과 같이 자신의 옆에 있는 값과 비교하여 바꿔나가는 방식이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1563&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1hsIZ/btsFM0GjruN/yTKHyBwjeXh2jf9is6uqW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1hsIZ/btsFM0GjruN/yTKHyBwjeXh2jf9is6uqW0/img.png&quot; data-alt=&quot;첫번째 반복&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1hsIZ/btsFM0GjruN/yTKHyBwjeXh2jf9is6uqW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1hsIZ%2FbtsFM0GjruN%2FyTKHyBwjeXh2jf9is6uqW0%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;1563&quot; height=&quot;1000&quot; data-origin-width=&quot;1563&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;첫번째 반복&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2242&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5LFe1/btsFPbT7T0p/0f48aUDJUX7WJn3WX8PbE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5LFe1/btsFPbT7T0p/0f48aUDJUX7WJn3WX8PbE1/img.png&quot; data-alt=&quot;두 번째 반복&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5LFe1/btsFPbT7T0p/0f48aUDJUX7WJn3WX8PbE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5LFe1%2FbtsFPbT7T0p%2F0f48aUDJUX7WJn3WX8PbE1%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;2242&quot; height=&quot;1000&quot; data-origin-width=&quot;2242&quot; data-origin-height=&quot;1000&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;위와 같이 정렬되기 때문에 가장 뒤쪽의 index부터 정렬이 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1710471862820&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Main {
    public int[] solution(int[] input) {
        for (int i = 0; i &amp;lt; input.length - 1; i++) {
            for (int j = 0; j &amp;lt; input.length - i - 1; j++) {
                if (input[j] &amp;gt; input[j + 1]) {
                    int tmp = input[j];
                    input[j] = input[j + 1];
                    input[j + 1] = tmp;
                }
            }
        }
        return input;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] input = new int[N];
        for (int i = 0; i &amp;lt; N; i++) {
            input[i] = sc.nextInt();
        }

        int[] result = T.solution(input);
        for (int i : result) {
            System.out.print(i + &quot; &quot;);
        }
    }
}&lt;/code&gt;&lt;/pre&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-filename=&quot;스크린샷 2024-03-15 12.03.09.png&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;1454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U6LeC/btsFOn8zE0K/isHakGpF0yx4FIpWQgXYg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U6LeC/btsFOn8zE0K/isHakGpF0yx4FIpWQgXYg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U6LeC/btsFOn8zE0K/isHakGpF0yx4FIpWQgXYg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU6LeC%2FbtsFOn8zE0K%2FisHakGpF0yx4FIpWQgXYg1%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;746&quot; height=&quot;1454&quot; data-filename=&quot;스크린샷 2024-03-15 12.03.09.png&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;1454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내림차순으로 정렬하고자 할때에는 선택정렬과 마찬가지로 부등호 방향을 바꿔주면 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;삽입정렬&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삽입정렬은 i의 index를 1부터 두고 j의 index를 i-1부터 0까지 순회하면서 i의 index에 해당하는 값을 적절한 자리에 삽입하는 정렬 방식이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3597&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IP549/btsFOed2sPB/TNaKKIQavoAWvIjPxPlnJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IP549/btsFOed2sPB/TNaKKIQavoAWvIjPxPlnJ1/img.png&quot; data-alt=&quot;배열 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IP549/btsFOed2sPB/TNaKKIQavoAWvIjPxPlnJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIP549%2FbtsFOed2sPB%2FTNaKKIQavoAWvIjPxPlnJ1%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;3597&quot; height=&quot;1000&quot; data-origin-width=&quot;3597&quot; data-origin-height=&quot;1000&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;위와 같은 배열에서 정렬을 해 나아가면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXS4QT/btsFQs9w9ev/p0QLDz8x5Qk9oEY7aIqLmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXS4QT/btsFQs9w9ev/p0QLDz8x5Qk9oEY7aIqLmK/img.png&quot; data-alt=&quot;정렬 과정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXS4QT/btsFQs9w9ev/p0QLDz8x5Qk9oEY7aIqLmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXS4QT%2FbtsFQs9w9ev%2Fp0QLDz8x5Qk9oEY7aIqLmK%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;1004&quot; height=&quot;1000&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;정렬 과정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1710492252971&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Main {
    public int[] solution(int[] input) {
        for (int i = 1; i &amp;lt; input.length; i++) {
            int target = input[i], j = i - 1;
            while (j &amp;gt;= 0 &amp;amp;&amp;amp; target &amp;lt; input[j]) {
                input[j + 1] = input[j];
                j--;
            }
            input[j + 1] = target;
        }
        // 아래와 같은 방식도 가능하다
//        for (int i = 1; i &amp;lt; input.length; i++) {
//            int tmp = input[i], j;
//            for (j = i - 1; j &amp;gt;= 0; j--) {
//                if (input[j] &amp;gt; tmp) {
//                    input[j + 1] = input[j];
//                } else {
//                    break;
//                }
//            }
//            input[j + 1] = tmp;
//        }
        return input;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] input = new int[N];
        for (int i = 0; i &amp;lt; N; i++) {
            input[i] = sc.nextInt();
        }

        int[] result = T.solution(input);
        for (int i : result) {
            System.out.print(i + &quot; &quot;);
        }
    }
}&lt;/code&gt;&lt;/pre&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-filename=&quot;스크린샷 2024-03-15 17.47.27.png&quot; data-origin-width=&quot;540&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDIG5h/btsFQ9uTuOv/pouQOCIoxWYnKoRPxDwtfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDIG5h/btsFQ9uTuOv/pouQOCIoxWYnKoRPxDwtfk/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDIG5h/btsFQ9uTuOv/pouQOCIoxWYnKoRPxDwtfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDIG5h%2FbtsFQ9uTuOv%2FpouQOCIoxWYnKoRPxDwtfk%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;540&quot; height=&quot;356&quot; data-filename=&quot;스크린샷 2024-03-15 17.47.27.png&quot; data-origin-width=&quot;540&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Java &amp;amp; Kotlin</category>
      <category>java</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/35</guid>
      <comments>https://beandeveloper.tistory.com/35#entry35comment</comments>
      <pubDate>Fri, 15 Mar 2024 17:45:40 +0900</pubDate>
    </item>
    <item>
      <title>[Java] BOJ 10799번: 쇠막대기(자바)</title>
      <link>https://beandeveloper.tistory.com/34</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;문제 링크: &lt;a href=&quot;https://www.acmicpc.net/problem/10799&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/10799&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1708415493052&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;10799번: 쇠막대기&quot; data-og-description=&quot;여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/10799&quot; data-og-url=&quot;https://www.acmicpc.net/problem/10799&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bPyBdp/hyVmWnji3p/HMEQP5vKvnKBzXkG6qlJMK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/bWk5lX/hyVm3Uh2fd/gHZAyFp0W3IWhuxdBQDIG1/img.png?width=534&amp;amp;height=284&amp;amp;face=0_0_534_284&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/10799&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/10799&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bPyBdp/hyVmWnji3p/HMEQP5vKvnKBzXkG6qlJMK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480,https://scrap.kakaocdn.net/dn/bWk5lX/hyVm3Uh2fd/gHZAyFp0W3IWhuxdBQDIG1/img.png?width=534&amp;amp;height=284&amp;amp;face=0_0_534_284');&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;10799번: 쇠막대기&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;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&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;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;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-filename=&quot;스크린샷 2024-02-20 16.55.25.png&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LMI5c/btsE9JjHq7p/fTDxeKqypXGuLZkKbGEAmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LMI5c/btsE9JjHq7p/fTDxeKqypXGuLZkKbGEAmk/img.png&quot; data-alt=&quot;BOJ 10799&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LMI5c/btsE9JjHq7p/fTDxeKqypXGuLZkKbGEAmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLMI5c%2FbtsE9JjHq7p%2FfTDxeKqypXGuLZkKbGEAmk%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;532&quot; height=&quot;284&quot; data-filename=&quot;스크린샷 2024-02-20 16.55.25.png&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;BOJ 10799&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/li&gt;
&lt;li&gt;쇠막대기의 왼쪽 끝은 여는 괄호 '('로, 오른쪽 끝은 닫힌 괄호 ')'로 표현된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예의 괄호 표현은 그림 위에 주어져 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쇠막대기는 레이저에 의해 몇 개의 조각으로 잘려지는데, 위 예에서 가장 위에 있는 두 개의 쇠막대기는 각각 3개와 2개의 조각으로 잘려지고, 이와 같은 방식으로 주어진 쇠막대기들은 총 17개의 조각으로 잘려진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;한 줄에 쇠막대기와 레이저의 배치를 나타내는 괄호 표현이 공백없이 주어진다. 괄호 문자의 개수는 최대 100,000이다.&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;/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;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-02-20 17.04.18.png&quot; data-origin-width=&quot;2330&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chZcUT/btsE0GWHyFF/P4AvK24XpCIkaJiPTz6t7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chZcUT/btsE0GWHyFF/P4AvK24XpCIkaJiPTz6t7k/img.png&quot; data-alt=&quot;BOJ 10799 입출력 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chZcUT/btsE0GWHyFF/P4AvK24XpCIkaJiPTz6t7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchZcUT%2FbtsE0GWHyFF%2FP4AvK24XpCIkaJiPTz6t7k%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;2330&quot; height=&quot;570&quot; data-filename=&quot;스크린샷 2024-02-20 17.04.18.png&quot; data-origin-width=&quot;2330&quot; data-origin-height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;BOJ 10799 입출력 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;코드)&lt;/h2&gt;
&lt;pre id=&quot;code_1708416301041&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Scanner;
import java.util.Stack;

public class Main {
    public int solution(String input) {
        int answer = 0, pastStackSize = 0;
        Stack&amp;lt;Character&amp;gt; stack = new Stack&amp;lt;&amp;gt;();
        for (char c : input.toCharArray()) {
            if (c == '(') {
                stack.push(c);
            } else {
                stack.pop();

                int stackSize = stack.size();
                if (pastStackSize &amp;gt; stackSize) {
                    answer += 1;
                } else {
                    answer += stackSize;
                }
                pastStackSize = stackSize;
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);

        String input = sc.next();
        System.out.println(T.solution(input));
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;결과)&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-02-20 17.05.49.png&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;78&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bG3GRP/btsE9SgEiNb/bsgtti1tVDKXdVAspO1YLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bG3GRP/btsE9SgEiNb/bsgtti1tVDKXdVAspO1YLk/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bG3GRP/btsE9SgEiNb/bsgtti1tVDKXdVAspO1YLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG3GRP%2FbtsE9SgEiNb%2Fbsgtti1tVDKXdVAspO1YLk%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;1145&quot; height=&quot;78&quot; data-filename=&quot;스크린샷 2024-02-20 17.05.49.png&quot; data-origin-width=&quot;1145&quot; data-origin-height=&quot;78&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;</description>
      <category>Algorithm/Java</category>
      <category>boj</category>
      <category>java</category>
      <author>wbnh09</author>
      <guid isPermaLink="true">https://beandeveloper.tistory.com/34</guid>
      <comments>https://beandeveloper.tistory.com/34#entry34comment</comments>
      <pubDate>Tue, 20 Feb 2024 16:58:45 +0900</pubDate>
    </item>
  </channel>
</rss>