<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>운동하는 개발자의 메모장</title>
    <link>https://justdoit0730.tistory.com/</link>
    <description>운동 좋아하는 개발자</description>
    <language>ko</language>
    <pubDate>Tue, 21 Jul 2026 18:32:11 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>justdoIT0730</managingEditor>
    <image>
      <title>운동하는 개발자의 메모장</title>
      <url>https://tistory1.daumcdn.net/tistory/5189324/attach/3f3015adfacd455a81128d3fe601cb5d</url>
      <link>https://justdoit0730.tistory.com</link>
    </image>
    <item>
      <title>[AWS] RDS 로컬 환경에 연동하기</title>
      <link>https://justdoit0730.tistory.com/155</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;ec2 구성 완료. rds 구성 완료. ec2와&amp;nbsp; rds 연동 완료. 이제 로컬에서 rds 연동만 하면 되는.... 외않되&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;로컬환경에서 RDS 접근이 안되어서 구글링하다가 찾았는 데 까먹을까봐 메모.&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;목차&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 내 IP 확인&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. AWS VPC 라우팅 테이블 이동&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 라우팅 테이블 작성&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[1] 내 IP 확인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mac 환경이면 터미널에&lt;/p&gt;
&lt;pre id=&quot;code_1765691390985&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl ifconfig.me&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;window 환경이면 cmd에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1765691396509&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl https://checkip.amazonaws.com&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;으로 확인한 내 ip를 복사해 둔다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 VPC &amp;gt; 보안그룹 &amp;gt; 인바운드 규칙 편집 &amp;gt; 에서 확인 할 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;659&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhsJ4j/dJMb99LGPOn/tJX20AeS4duP3KNpw5ok21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhsJ4j/dJMb99LGPOn/tJX20AeS4duP3KNpw5ok21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhsJ4j/dJMb99LGPOn/tJX20AeS4duP3KNpw5ok21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhsJ4j%2FdJMb99LGPOn%2FtJX20AeS4duP3KNpw5ok21%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;3000&quot; height=&quot;659&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;659&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[2] AWS VPC 라우팅 테이블 이동&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;aws 접속 &amp;gt; vpc 검색 &amp;gt; 좌측 라우팅 테이블&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3356&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyQCQs/dJMcafZrlGu/a7tEc32mqsIos7HuhYedR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyQCQs/dJMcafZrlGu/a7tEc32mqsIos7HuhYedR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyQCQs/dJMcafZrlGu/a7tEc32mqsIos7HuhYedR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyQCQs%2FdJMcafZrlGu%2Fa7tEc32mqsIos7HuhYedR1%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;3356&quot; height=&quot;524&quot; data-origin-width=&quot;3356&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라우팅 테이블 선택 &amp;gt; 작업 &amp;gt; 라우팅 편집&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3356&quot; data-origin-height=&quot;692&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ncQhT/dJMcacBEJnT/NLom44LyzLDptSbmlvlEP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ncQhT/dJMcacBEJnT/NLom44LyzLDptSbmlvlEP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ncQhT/dJMcacBEJnT/NLom44LyzLDptSbmlvlEP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FncQhT%2FdJMcacBEJnT%2FNLom44LyzLDptSbmlvlEP0%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;3356&quot; height=&quot;692&quot; data-origin-width=&quot;3356&quot; data-origin-height=&quot;692&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 라우팅 테이블 작성&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1496&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duNlqY/dJMcajnbD2o/d6agCFLYVSvEKv80OYNxW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duNlqY/dJMcajnbD2o/d6agCFLYVSvEKv80OYNxW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duNlqY/dJMcajnbD2o/d6agCFLYVSvEKv80OYNxW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduNlqY%2FdJMcajnbD2o%2Fd6agCFLYVSvEKv80OYNxW1%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;3000&quot; height=&quot;1496&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1496&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. &lt;b&gt;[1] 내 IP 확인&lt;/b&gt; 에서 확인한 내 IP를 작성한다. 터미널, cmd 에서 ip 확인했다면 &lt;span style=&quot;color: #9d9d9d;&quot;&gt;(&lt;i&gt;단일 IP 주소 하나만 정확히 대상으로 지정하기 위해서&lt;/i&gt;) &lt;/span&gt;맨 뒤에 /32 를 작성!&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 인터넷 게이트 웨이 선택&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. 변경 사항 저장&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;끗.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://sirong-blog.tistory.com/m/entry/AWS-RDS-%EB%A1%9C%EC%BB%AC%EC%97%90%EC%84%9C-RDS-%EC%97%B0%EA%B2%B0%EC%9D%B4-%EC%95%88%EB%90%9C%EB%8B%A4&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://sirong-blog.tistory.com/m/entry/AWS-RDS-%EB%A1%9C%EC%BB%AC%EC%97%90%EC%84%9C-RDS-%EC%97%B0%EA%B2%B0%EC%9D%B4-%EC%95%88%EB%90%9C%EB%8B%A4&lt;/a&gt;&lt;/p&gt;</description>
      <category>초보 개발자의 스터디룸</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/155</guid>
      <comments>https://justdoit0730.tistory.com/155#entry155comment</comments>
      <pubDate>Thu, 27 Nov 2025 10:01:13 +0900</pubDate>
    </item>
    <item>
      <title>[닷홈] [AWS] 나만의 도메인 설정과 HTTPS 를 구현해보자.</title>
      <link>https://justdoit0730.tistory.com/154</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;현재 상태 : 퍼플릭 IPv4(3.39.71.125)에 8080 포트로 접근 가능.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;목표 : 퍼플릭 IPv4 대신 도메인 주소로 이동.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;EC2 보안그룹 인바운드 규칙에&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1775&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OVQLG/dJMcadVleM3/Yesl0wOH4NfFskSkkgtxqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OVQLG/dJMcadVleM3/Yesl0wOH4NfFskSkkgtxqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OVQLG/dJMcadVleM3/Yesl0wOH4NfFskSkkgtxqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOVQLG%2FdJMcadVleM3%2FYesl0wOH4NfFskSkkgtxqK%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;1775&quot; height=&quot;121&quot; data-origin-width=&quot;1775&quot; data-origin-height=&quot;121&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;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;목차&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;준비사항&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 도메인 준비&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. nginx 설정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 인증서 설정&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;준비사항&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS EC2 리눅스 서버에 정상 기동중인 웹 프로젝트&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[1] 도메인 준비&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 도메인 사기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 닷홈 DNS 레코드 관리&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 도메인 사기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;토이프로젝트기도 하고 쉬우니까 닷홈에서 사보기로 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.dothome.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.dothome.co.kr/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1765681897606&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;무료홈페이지 | 무료호스팅 | 닷홈&quot; data-og-description=&quot;닷홈은 도메인, 무료호스팅, 무료홈페이지, 웹호스팅, 웹메일, SSL보안인증서, 서버호스팅 등 호스팅 서비스를 제공하고 있습니다.&quot; data-og-host=&quot;www.dothome.co.kr&quot; data-og-source-url=&quot;https://www.dothome.co.kr/&quot; data-og-url=&quot;https://www.dothome.co.kr/index.php&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Zphp2/hyZOCrUrwi/qgaUkUaG9kRRcHKmkk6AKK/img.jpg?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.dothome.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.dothome.co.kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Zphp2/hyZOCrUrwi/qgaUkUaG9kRRcHKmkk6AKK/img.jpg?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;무료홈페이지 | 무료호스팅 | 닷홈&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;닷홈은 도메인, 무료호스팅, 무료홈페이지, 웹호스팅, 웹메일, SSL보안인증서, 서버호스팅 등 호스팅 서비스를 제공하고 있습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.dothome.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 이름이 autotr 이라 도메인명도 그렇게 해본다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1840&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNUi36/dJMcadmXWi8/HTgkmI3lnzrzBk0m8Q57hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNUi36/dJMcadmXWi8/HTgkmI3lnzrzBk0m8Q57hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNUi36/dJMcadmXWi8/HTgkmI3lnzrzBk0m8Q57hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNUi36%2FdJMcadmXWi8%2FHTgkmI3lnzrzBk0m8Q57hK%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;2550&quot; height=&quot;1840&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1840&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고물가 시대에 1년에 만 원 오우&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZIiRA/dJMcai2SUmO/JXo4maYrDnJeGeBUtB6zpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZIiRA/dJMcai2SUmO/JXo4maYrDnJeGeBUtB6zpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZIiRA/dJMcai2SUmO/JXo4maYrDnJeGeBUtB6zpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZIiRA%2FdJMcai2SUmO%2FJXo4maYrDnJeGeBUtB6zpk%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;2550&quot; height=&quot;1398&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHK1PB/dJMcacazJkI/gD5CAWh5iGdAuURKuLjmUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHK1PB/dJMcacazJkI/gD5CAWh5iGdAuURKuLjmUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHK1PB/dJMcacazJkI/gD5CAWh5iGdAuURKuLjmUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHK1PB%2FdJMcacazJkI%2FgD5CAWh5iGdAuURKuLjmUK%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;2550&quot; height=&quot;1398&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqCpZC/dJMcadAviGM/KJr5gquVYqWc7V20qZOR60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqCpZC/dJMcadAviGM/KJr5gquVYqWc7V20qZOR60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqCpZC/dJMcadAviGM/KJr5gquVYqWc7V20qZOR60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqCpZC%2FdJMcadAviGM%2FKJr5gquVYqWc7V20qZOR60%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;2550&quot; height=&quot;1826&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보 입력이랑&amp;nbsp;결제 다하면 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;DNS 레코드 관리를 해보자.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 닷홈 DNS 레코드 관리&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DNS 레코드 관리 이동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.dothome.co.kr/my/service/domain/dns/index.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.dothome.co.kr/my/service/domain/dns/index.php&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1765684176368&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;https://www.dothome.co.kr/my/service/domain/dns/index.php&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.dothome.co.kr&quot; data-og-source-url=&quot;https://www.dothome.co.kr/my/service/domain/dns/index.php&quot; data-og-url=&quot;https://www.dothome.co.kr/my/service/domain/dns/index.php&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.dothome.co.kr/my/service/domain/dns/index.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.dothome.co.kr/my/service/domain/dns/index.php&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;https://www.dothome.co.kr/my/service/domain/dns/index.php&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.dothome.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tdOiw/dJMcaa4TI2R/I0XwrYibPBd9VwVsEKVtnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tdOiw/dJMcaa4TI2R/I0XwrYibPBd9VwVsEKVtnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tdOiw/dJMcaa4TI2R/I0XwrYibPBd9VwVsEKVtnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtdOiw%2FdJMcaa4TI2R%2FI0XwrYibPBd9VwVsEKVtnk%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;2550&quot; height=&quot;1826&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DNS 레코드 관리 &amp;gt; 레코드 등록&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5hXOK/dJMcafSGcjU/HVn2km2fEJRzxyITuxzB0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5hXOK/dJMcafSGcjU/HVn2km2fEJRzxyITuxzB0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5hXOK/dJMcafSGcjU/HVn2km2fEJRzxyITuxzB0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5hXOK%2FdJMcafSGcjU%2FHVn2km2fEJRzxyITuxzB0k%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;2550&quot; height=&quot;1826&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레코드 등록&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;타입 : A&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이름 :&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;값 :&lt;span&gt; EC2 &lt;/span&gt;IPv4&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;autotr.pe.kr DNS 레코드 관리 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3NQZm/dJMcafSGcqp/xrSsExUprrOled24a5UpeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3NQZm/dJMcafSGcqp/xrSsExUprrOled24a5UpeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3NQZm/dJMcafSGcqp/xrSsExUprrOled24a5UpeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3NQZm%2FdJMcafSGcqp%2FxrSsExUprrOled24a5UpeK%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;2550&quot; height=&quot;1826&quot; data-origin-width=&quot;2550&quot; data-origin-height=&quot;1826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[2] nginx 설정&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. nginx 세팅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. nginx conf 작성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. conf 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. nginx 재기동 및 확인&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. nginx 세팅&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 nginx 가 없다면&lt;/p&gt;
&lt;pre id=&quot;code_1765687998375&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo dnf install -y nginx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;으로 설치!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 설치 되었다면 버전 확인&lt;/p&gt;
&lt;pre id=&quot;code_1765688025842&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nginx -v&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;blob&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3h9B1/dJMcaaX8AYf/VOJiSgw12e7WDJdJtkOe3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3h9B1/dJMcaaX8AYf/VOJiSgw12e7WDJdJtkOe3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3h9B1/dJMcaaX8AYf/VOJiSgw12e7WDJdJtkOe3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3h9B1%2FdJMcaaX8AYf%2FVOJiSgw12e7WDJdJtkOe3k%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;908&quot; height=&quot;126&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버전이 잘 나왔다면 완료.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. nginx conf 작성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동 /etc/nginx/conf.d&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K8HfW/dJMcaajwNQ5/Msy5AipRReMVeSCbDXmun1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K8HfW/dJMcaajwNQ5/Msy5AipRReMVeSCbDXmun1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K8HfW/dJMcaajwNQ5/Msy5AipRReMVeSCbDXmun1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK8HfW%2FdJMcaajwNQ5%2FMsy5AipRReMVeSCbDXmun1%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;1226&quot; height=&quot;768&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;conf 작성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;conf 명은 autotr.conf 으로 해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sudo vi autotr.conf&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmpt7g/dJMcagYlzvb/vUvxzurJtYeFgEOdikcVbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmpt7g/dJMcagYlzvb/vUvxzurJtYeFgEOdikcVbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmpt7g/dJMcagYlzvb/vUvxzurJtYeFgEOdikcVbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmpt7g%2FdJMcagYlzvb%2FvUvxzurJtYeFgEOdikcVbk%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;1312&quot; height=&quot;408&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;408&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1765684725555&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;server {
    listen 80;
    server_name autotr.pe.kr www.autotr.pe.kr;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host Shost;
        proxy_set_header X-Real-IP Sremote_addr;
        proxy_set_header X-Forwarded-For Sproxy_add_x_forwarded_for;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. conf 테스트&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1765688979827&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo nginx -t&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;blob&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfAFle/dJMcafrBEO6/qeK3hZdn36wwTYc2mvhmaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfAFle/dJMcafrBEO6/qeK3hZdn36wwTYc2mvhmaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfAFle/dJMcafrBEO6/qeK3hZdn36wwTYc2mvhmaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfAFle%2FdJMcafrBEO6%2FqeK3hZdn36wwTYc2mvhmaK%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;1312&quot; height=&quot;116&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;successful 확인!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. nginx 재기동 및 확인&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1765689122754&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl reload nginx&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1765689127826&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl status nginx&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;blob&quot; data-origin-width=&quot;1720&quot; data-origin-height=&quot;596&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/enH3g3/dJMb99ZdRTq/CUggij4G5Y47ICElHAyK5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/enH3g3/dJMb99ZdRTq/CUggij4G5Y47ICElHAyK5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/enH3g3/dJMb99ZdRTq/CUggij4G5Y47ICElHAyK5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FenH3g3%2FdJMb99ZdRTq%2FCUggij4G5Y47ICElHAyK5K%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;1720&quot; height=&quot;596&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1720&quot; data-origin-height=&quot;596&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;autotr.pe.kr 로 접속 확인&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3360&quot; data-origin-height=&quot;1784&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bm0sUB/dJMcadmXW5o/zusJChY1t6CERttNrJcWz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bm0sUB/dJMcadmXW5o/zusJChY1t6CERttNrJcWz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bm0sUB/dJMcadmXW5o/zusJChY1t6CERttNrJcWz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbm0sUB%2FdJMcadmXW5o%2FzusJChY1t6CERttNrJcWz1%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;3360&quot; height=&quot;1784&quot; data-origin-width=&quot;3360&quot; data-origin-height=&quot;1784&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;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[3] 인증서 설정&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. certbot 세팅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. ssl 인증서 발급&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 인증서 자동 갱신 설정&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. certbot 세팅&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;certbot 이란?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Let&amp;rsquo;s Encrypt에서 무료 SSL/TLS 인증서를 발급&amp;middot;설치&amp;middot;갱신까지 자동화해주는 공식 클라이언트 도구&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;certbot 설치&lt;/p&gt;
&lt;pre id=&quot;code_1765689272170&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install -y certbot python3-certbot-nginx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 버전으로 확인!&lt;/p&gt;
&lt;pre id=&quot;code_1765689327257&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;certbot --version&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;blob&quot; data-origin-width=&quot;1168&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1zLw2/dJMcajnbDmt/lzncgk80HP2fqVBwpjk9TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1zLw2/dJMcajnbDmt/lzncgk80HP2fqVBwpjk9TK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1zLw2/dJMcajnbDmt/lzncgk80HP2fqVBwpjk9TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1zLw2%2FdJMcajnbDmt%2Flzncgk80HP2fqVBwpjk9TK%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;1168&quot; height=&quot;122&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1168&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. ssl 인증서 발급&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ nginx 자동 설정&lt;/p&gt;
&lt;pre id=&quot;code_1765689361418&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; sudo certbot --nginx -d autotr.pe.kr -d www.autotr.pe.kr&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;blob&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckdcbQ/dJMcacazLd4/oh30HhR7kW6BD22zeoBLkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckdcbQ/dJMcacazLd4/oh30HhR7kW6BD22zeoBLkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckdcbQ/dJMcacazLd4/oh30HhR7kW6BD22zeoBLkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckdcbQ%2FdJMcacazLd4%2Foh30HhR7kW6BD22zeoBLkk%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;1738&quot; height=&quot;668&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;되었다면 한 번 https 로 접속해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1972&quot; data-origin-height=&quot;992&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lVixt/dJMcaiPmdpf/HbL476oDaeUvBZ4PNNkmZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lVixt/dJMcaiPmdpf/HbL476oDaeUvBZ4PNNkmZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lVixt/dJMcaiPmdpf/HbL476oDaeUvBZ4PNNkmZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlVixt%2FdJMcaiPmdpf%2FHbL476oDaeUvBZ4PNNkmZ0%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;1972&quot; height=&quot;992&quot; data-origin-width=&quot;1972&quot; data-origin-height=&quot;992&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 인증서 자동 갱신 설정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 인증서 연장.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Let&amp;rsquo;s Encrypt 인증서 유효기간은 90일이라 3개월 뒤 HTTPS 만료되기 때문에&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자동으로 유효기간을 갱신하도록 해두자!&lt;/p&gt;
&lt;pre id=&quot;code_1765689645773&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo certbot renew --dry-run&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ORntI/dJMcafSGdak/0EKOTziPYZKNm3cTx289Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ORntI/dJMcafSGdak/0EKOTziPYZKNm3cTx289Y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ORntI/dJMcafSGdak/0EKOTziPYZKNm3cTx289Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FORntI%2FdJMcafSGdak%2F0EKOTziPYZKNm3cTx289Y1%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;1454&quot; height=&quot;332&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끗.&lt;/p&gt;</description>
      <category>초보 개발자의 스터디룸</category>
      <category>AWS</category>
      <category>domain</category>
      <category>dothome</category>
      <category>EC2</category>
      <category>project</category>
      <category>ssl</category>
      <category>web</category>
      <category>닷홈</category>
      <category>도메인</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/154</guid>
      <comments>https://justdoit0730.tistory.com/154#entry154comment</comments>
      <pubDate>Thu, 27 Nov 2025 10:01:03 +0900</pubDate>
    </item>
    <item>
      <title>[Python] Basic Data Type</title>
      <link>https://justdoit0730.tistory.com/151</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Type&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Description&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Example&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;int&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;정수형(Integer)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;1, 100, -3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;float&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;실수형(소수점이 있는 숫자)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;3.14, -0.5, 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;bool&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;논리형(Boolean, 참 / 거짓)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;True, False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;str&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;문자열(String)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;'hello', &quot;0010&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;list&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;리스트(배열처럼 사용)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;[1, 2, 3], [0, &quot;one&quot;, 3, &quot;four&quot;]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;tuple&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;튜플(변경 불가능한 리스트)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;(1, &quot;ab&quot;, 3.14, True)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;dict&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;딕셔너리(Key-Value 쌍으로 저장)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;{&quot;name&quot;: &quot;Han&quot;, &quot;age&quot;: 10}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;set&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;집합(중복 없는 요소들의 모음)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;{&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;1, &quot;ab&quot;, 3.14, True&lt;/span&gt;}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;None&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;아무 값도 없음(Null 개념)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;</description>
      <category>개발과 친해지기 - Python</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/151</guid>
      <comments>https://justdoit0730.tistory.com/151#entry151comment</comments>
      <pubDate>Sat, 5 Apr 2025 14:41:36 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 반복문 - for</title>
      <link>https://justdoit0730.tistory.com/150</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;b&gt;▶ &lt;/b&gt;for 문이란?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Iterable(반복 가능한 객체)를 순서대로 하나씩 꺼내면서 block 안의 코드를 반복 실행하는 구조.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;▷ Python에서 Iterable 이 아닌 Type&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;int(정수)&lt;/li&gt;
&lt;li&gt;float(실수)&lt;/li&gt;
&lt;li&gt;bool(논리형)&lt;/li&gt;
&lt;li&gt;None&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;▶&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;기본 문법&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1743829989796&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for [변수] in [반복 가능한 객체]:
	[실행 코드]&lt;/code&gt;&lt;/pre&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;[반복 가능한 객체] : 문자열, list, tuple, dictionary, range 등&lt;/li&gt;
&lt;li&gt;반복 가능한 객체 조건에 따라 [실행 코드] 가 수행된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문자열 반복&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1743830505018&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 문자열 선언
text = &quot;hello&quot;

# 문자열을 순서대로 하나씩 출력한다.
for char in text:
	print(char)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;결과&lt;/p&gt;
&lt;pre id=&quot;code_1743830538651&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;h
e
l
l
o&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Iterable Type의 변수만 가능!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;List 반복&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1743830217418&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# list 선언한다.
fruits = [&quot;apple&quot;,&quot;banana&quot;, &quot;cherry&quot;]

# list 값을 순서대로 fruit 에 넣고 출력한다.
for fruit in fruits:
	print(fruit)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;결과&lt;/p&gt;
&lt;pre id=&quot;code_1743830326897&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# list 값들이 순서대로 출력된다.
apple
banana
cherry&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;enumerate 사용한 반복&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1743832320561&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# list 선언
fruits = [&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;]

# list 인덱스와 값을 차례로 출력
for index, fruit in enumerate(fruits):
	print(index, fruit)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;결과&lt;/p&gt;
&lt;pre id=&quot;code_1743832617941&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;0 apple
1 banana
2 cherry&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과에서 index 와 fruit 사이에 공백이 있는 이유&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print() 함수의 기본 문법은 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1743835205994&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(*objects, sep=' ', end='\n')&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;*objects : 출력할 값&lt;/li&gt;
&lt;li&gt;sep=' ' : 값 들 사이를 구분한 separator. 기본은 한 칸 공백(' ') 이다.&lt;/li&gt;
&lt;li&gt;end='\n' : 출력 후 줄바꿈&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1743835308401&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(index, fruit)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;는&lt;/p&gt;
&lt;pre id=&quot;code_1743835325772&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(str(index) + ' ' + str(fruit))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▷ 공백을 없애거나 바꾸는 법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 공백 없이 붙여 출력&lt;/p&gt;
&lt;pre id=&quot;code_1743835398144&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(index, fruit, sep='')  # 출력 결과 : 0apple&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 구분자 변경하여 출력&lt;/p&gt;
&lt;pre id=&quot;code_1743835425547&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(index, fruit, sep=', ')  # 출력 결과 : 0, apple&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. f-string 사용&lt;/p&gt;
&lt;pre id=&quot;code_1743835452465&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(f&quot;{index}-&amp;gt; {fruit}&quot;)  # 출력 결과 : 0-&amp;gt; apple&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Dictionary 반복&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1743835675608&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# dictionary 선언
person = {'name': 'Alice', 'age': 25}

for key in person:
    print(key, person[key])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;혹은&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1743837325233&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for key, value in person.items():
    print(key, value)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;items() 를 이용해서 key, value 를 동시에 출력할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;중요!&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;python 3.6 version 이하에서는 dict 은 순서를 보장하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;그래서 위 코드를 실행 시 age 가 먼저 출력될 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;python 3.7 version 이상에서는 순서를 보장하여 위처럼 선언 시 name, age 순으로 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;range 반복&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일정한 정수 범위(sequence)를 생성하는 데 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;range() 기본문법&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;range(stop)&lt;/li&gt;
&lt;li&gt;range(start, stop)&lt;/li&gt;
&lt;li&gt;range(start, stop, step)&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;588&quot; data-start=&quot;305&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 26.9767%;&quot;&gt;항목&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 72.907%;&quot;&gt;description&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;485&quot; data-start=&quot;429&quot;&gt;
&lt;td style=&quot;text-align: center; width: 26.9767%;&quot;&gt;start&lt;/td&gt;
&lt;td style=&quot;width: 72.907%;&quot;&gt;시작값 (기본값 = 0)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;536&quot; data-start=&quot;486&quot;&gt;
&lt;td style=&quot;text-align: center; width: 26.9767%;&quot;&gt;stop&lt;/td&gt;
&lt;td style=&quot;width: 72.907%;&quot;&gt;끝값(&lt;b&gt;해당 값의 직전 까지&lt;/b&gt; 반복), &lt;b&gt;반드시 필요&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;588&quot; data-start=&quot;537&quot;&gt;
&lt;td style=&quot;text-align: center; width: 26.9767%;&quot;&gt;step&lt;/td&gt;
&lt;td style=&quot;width: 72.907%;&quot;&gt;증가값 (기본값 = 1, 음수도 가능), 0이 될 수 없다. 0으로 설정 시 error 발생.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;range(stop) 예제&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1743836288556&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(5):
    print(i)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0 부터 &lt;b&gt;4(5가 되기 직전) &lt;/b&gt;까지 1(step 기본값)씩 증가하며 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;range(start, stop) 예제&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1743836337793&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(2, 6):
    print(i)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2 부터 &lt;b&gt;5(6이 되기 직전)&lt;/b&gt; 까지 1(step 기본값)씩 증가하며 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;range(start, stop, step)&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1743836375195&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(1, 10, 2):
    print(i)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1 부터 2씩 증가하여 9(&lt;b&gt;10이 되기 직전&lt;/b&gt;) 까지 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과&lt;/p&gt;
&lt;pre id=&quot;code_1743836451033&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1
3
5
7
9&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;만약 step 이 음수인 경우&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1743836639555&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(5, -1, -1):
    print(i)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5 부터 -1 씩 감소하여 0(&lt;b&gt;-1 이 되기 직전&lt;/b&gt;) 까지 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 예시&lt;/p&gt;
&lt;pre id=&quot;code_1743836702503&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(5, -2, -1):
    print(i)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5 부터 -1씩 감소하여 -1(&lt;b&gt;-2 가 되기 직전&lt;/b&gt;) 까지 출력된다.&lt;/p&gt;</description>
      <category>개발과 친해지기 - Python/반복문</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/150</guid>
      <comments>https://justdoit0730.tistory.com/150#entry150comment</comments>
      <pubDate>Sat, 5 Apr 2025 14:29:43 +0900</pubDate>
    </item>
    <item>
      <title>[Python] AI 에 대한 고찰 : python 시작</title>
      <link>https://justdoit0730.tistory.com/149</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bujhj/btsM1KJPWBo/lwumk9iwj10IZMbviDoBE0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bujhj/btsM1KJPWBo/lwumk9iwj10IZMbviDoBE0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bujhj/btsM1KJPWBo/lwumk9iwj10IZMbviDoBE0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBujhj%2FbtsM1KJPWBo%2Flwumk9iwj10IZMbviDoBE0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;430&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;2025년 대 AI 시대가 도래했다. 아니 이미 AI는 세상을 지배를 하고 있다. 거의 모든 분야에 장악하다시피 AI가 적용되고 있고, 그 속도는 우리(특히 &lt;b&gt;필자&lt;/b&gt;)가 최첨단 기술에서 창출된 새로운 정보를 겨우 바라만 볼 수밖에 없을 정도로 빠르다. 예전에는 정보의 바닷속에서 이리저리 휩쓸린다면 이제는 압도적인 양의 정보 쓰나미에 인지도 못한 체 어느 순간 수장당할 것 같은 느낌이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFxR8d/btsM17SiU2V/9ysdIakDJSUKJwR9mR6Vp1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFxR8d/btsM17SiU2V/9ysdIakDJSUKJwR9mR6Vp1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFxR8d/btsM17SiU2V/9ysdIakDJSUKJwR9mR6Vp1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFxR8d%2FbtsM17SiU2V%2F9ysdIakDJSUKJwR9mR6Vp1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;418&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;469&quot; data-start=&quot;434&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;469&quot; data-start=&quot;434&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;1차 산업혁명은 18세기 후반~19세기 초반에 이뤄줬다. 영국을 중심으로 증기기관과 기계화가 발전한 시기이다. 이동 속도나 생산력이 폭발적으로 성장하게 되었고, 이는 세계화의 발판이 되었다. 2차 산업혁명이 발생한 19세기 후반~20세기 초반에는 전기를 이용한 대량 생산이 이뤄졌으며, 컨베이어 벨트나 전기 모터 따위의 기계가 다량으로 보급되던 시기이다. 그 시기부터 대규모의 공산품이 쏟아져 나오기 시작했다. 3차 산업혁명은 20세기 중반~2000년대 초반에 발생했으며, 예전에는 비교도 상상도 할 수 없는 개념의 세계가 펼쳐졌다. 계산기로 시작된 기계는 컴퓨터라는 이름으로 진화를 거듭하여 상용화가 되었고, 이에 따른 인터넷 및 반도체 등의 기술이 성행하게 되었다. 4차 산업혁명은 그 이후부터 현재까지 진행 중이다. &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;AI, 빅데이터, IoT, 로봇, 자율주행, 블록체인 등 첨단 기술이 세상에 출시되고 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;469&quot; data-start=&quot;434&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;469&quot; data-start=&quot;434&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;모든 산업 혁명은 이전의 시대를 진화시켰다. 각 산업혁명의 공통점은 이전 보다 인간이 더 편해진다는 것이다. 걷지 않아도 이동할 수 있게 되었다. 메지 않아도 짐을 운반할 수 있게 되었다. 직접 꿰지 않아도 옷이 만들어졌다. 쓰지 않아도 말을 전달되었다. 말을 하지 않아도 생각을 전달할 수 있게 되었다. 그런데 4차 산업혁명은 이제 우리가 생각을 할 필요도 없게 만들었다. 자동차에 타기만 하면 신호에 맞춰 생각하며 운전을 할 필요가 없는 시대가 온다. 그림에 대한 영감이 없다면 키워드로 셀 수 없는 이미지가 생성된다. 글을 쓰기 싫다면, 애써 정보를 찾기 싫다면, AI를 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;3~4차 산업혁명만 간략하게 정리해 보았다. 1985년 마이크로 소프트는 windows 1.0을 출시했다. 1995년 windows 95 출시 이후 PC 보급은 엄청나게 급성장하였고, 현재에는 컴퓨터(혹은 Laptop)라는 기계가 없는 가정은 찾기가 힘들어졌다. 2007년에는 아이폰 1세대가 출시되었다. 국내에는 2010년대에 들어서 스마트폰이 대중적으로 보급되기 시작했다. 이 시기에 스마트폰에 관련된 기술이 급성장을 했다. 카카오톡, 토스, 라인 등의 기업은 앞장서서 높아진 보급율에 맞춰 기술을 선보였다. 그리고 지금은 국내 굴지의 기업들이 되었다. 2024년 기준 대한민국 스마트폰 보급율은 98%에 육박한다. 이후 2016년 처음 AI가 바둑으로 사람을 이겼다. 절대 인공지능이 바둑이란 종목으로 사람을 당해낼 수 없을 거란 세간의 예상이 무색하게 당시 전 세계에서 가장 뛰어난 바둑 기사 중 한 명인 이세돌 9단은 5전 중 단 1승을 거뒀다. 그리고 2022년에 chatGPT라는 생성형 AI가 등장했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;처음 운영체제를 갖춘 컴퓨터가 보급된 1985년. 처음 스마트폰이 만들어진 2007년.&amp;nbsp; 22년이란 시간이 필요했다. 이후 체스와 다르게 고전을 겪던 바둑 분야에서 인간을 압승한 알파고의 등장은 2016년. 9년이 필요했다. 그리고 인간과 대화가 가능한 chatGPT의 등장은 2022년. 6년이 필요했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;test-페이지-25.drawio (1).png&quot; data-origin-width=&quot;851&quot; data-origin-height=&quot;113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mIdQ6/btsM3TrYWkO/VCHHUpTjQtU2GIVGz43wgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mIdQ6/btsM3TrYWkO/VCHHUpTjQtU2GIVGz43wgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mIdQ6/btsM3TrYWkO/VCHHUpTjQtU2GIVGz43wgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmIdQ6%2FbtsM3TrYWkO%2FVCHHUpTjQtU2GIVGz43wgk%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;851&quot; height=&quot;113&quot; data-filename=&quot;test-페이지-25.drawio (1).png&quot; data-origin-width=&quot;851&quot; data-origin-height=&quot;113&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;position: absolute;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;생물학적 진화가 우스워질 정도로 발전 속도가 너무나도 빠르다. 앞서 말한 것처럼 우린 미처 다 알기도 전에 다음 기술 등장한다. 그 기술은 어느샌가 우리 앞에서 으름장을 놓다가 눈 깜짝할 사이 그다음 기술이 등장하여 이제는 비웃으며 무시를 할 것만 같다. 개인적으로 멀지 않은 미래에 발생할 5차 산업혁명은 증강 및 가상현실의 보편적 대중화, 양자역학 적용된 기술 및 우주 공학 쪽이 아닐까 싶다. AI는 자동차나 지하철, 노트북과 스마트폰 같이 우리에게 매우 친숙하게 될 것이며, 안드로이드 같은 인공지능 로봇이 마치 영화처럼 현실로 다가올 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;서론이 길었다. 처음 배울 때 Java 언어로 코딩을 시작했다. 2022년 부터 비전공자 출신인 Java 개발자로 일하고 있다. 처리 성능, 효율성, 타 module과의 영향도, 정확도, 유지 보수성 등등 다방면에서 고민하며 개발하고 있다 보면 종종 아이디어를 AI에게 찾는 경우가 있다. 여전히 Java를 이용해서 일하고 있다. 아직도 많이 부족하다. 그렇기에 앞으로도 Java를 이용해서만 일할 것 같았다. 그렇기에 다른 언어 해석 능력은 거의 전무하다고 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;현재 AI 관련 코드는 python으로 이뤄져 있다. 당장 AI에 대해 깊은 지식과 경험을 가지려는 오만한 생각을 가지고 있지는 않다. 다만, AI를 적용하는 프로젝트에 참여하거나, 최소한 구상 정도라도 해보고 싶다는 생각이 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;대 AI 시대. AI를 알고는 있어야한다. 그래서 python 공부를 지금이라도 조금씩 해보려고 한다.&lt;/p&gt;</description>
      <category>개발과 친해지기 - Python/프롤로그</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/149</guid>
      <comments>https://justdoit0730.tistory.com/149#entry149comment</comments>
      <pubDate>Sun, 30 Mar 2025 22:00:33 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 연산자 기초</title>
      <link>https://justdoit0730.tistory.com/148</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 산술 연산자 &lt;b&gt;(Arithmetic Operators)&lt;/b&gt; &lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;506&quot; data-start=&quot;123&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;연산자&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;예시&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;241&quot; data-start=&quot;198&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;+&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;더하기&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 + 3 -&amp;gt; 8&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;286&quot; data-start=&quot;242&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;빼기&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 - 3 -&amp;gt; 2&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;331&quot; data-start=&quot;287&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;*&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;곱하기&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 * 3 -&amp;gt; 15&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;375&quot; data-start=&quot;332&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나누기 (실수)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 / 2 -&amp;gt; 2.5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;418&quot; data-start=&quot;376&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;//&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나누기 (몫)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 // 2 -&amp;gt; 2&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;462&quot; data-start=&quot;419&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;%&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나머지&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 % 2 -&amp;gt; 1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;506&quot; data-start=&quot;463&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;**&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;거듭제곱&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2 ** 3 -&amp;gt; 8&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런,, 기본적인 산술 연산자 부터 자바랑 차이가 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;/, ** 처리를 연산자로만 수행 가능한 게 신기했다. 확실히 편한 언어인 것 같다..&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 비교 연산자 (Comparison Operators)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1040&quot; data-start=&quot;602&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연산자&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;758&quot; data-start=&quot;701&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;==&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;같음&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;5 == 3 -&amp;gt; False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;814&quot; data-start=&quot;759&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;!=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;같지 않음&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;5 != 3 -&amp;gt; True&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;872&quot; data-start=&quot;815&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&amp;gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;크다&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;5 &amp;gt; 3 -&amp;gt; True&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;930&quot; data-start=&quot;873&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&amp;lt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;작다&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;5 &amp;lt; 3 -&amp;gt; False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;985&quot; data-start=&quot;931&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&amp;gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;크거나 같음&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;5 &amp;gt;= 3 -&amp;gt; True&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1040&quot; data-start=&quot;986&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&amp;lt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;작거나 같음&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;5 &amp;lt;= 3 -&amp;gt; False&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 논리 연산자 (Logical Operators)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1351&quot; data-start=&quot;1121&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연산자&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1255&quot; data-start=&quot;1204&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;and&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논리 AND&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;True and False -&amp;gt; False&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1305&quot; data-start=&quot;1256&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;or&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논리 OR&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;True or False -&amp;gt; True&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1351&quot; data-start=&quot;1306&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;not&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논리 NOT&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;not True -&amp;gt; False&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&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;div&gt;
&lt;h3 data-end=&quot;1393&quot; data-start=&quot;1353&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 대입 연산자 (Assignment Operators)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 171px;&quot; border=&quot;1&quot; data-end=&quot;1958&quot; data-start=&quot;1424&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연산자&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1584&quot; data-start=&quot;1531&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a = 5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1637&quot; data-start=&quot;1585&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;+=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;더한 값을 할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a += 3 (a = a + 3)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1691&quot; data-start=&quot;1638&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;뺀 값을 할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a -= 3 (a = a - 3)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1744&quot; data-start=&quot;1692&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;*=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;곱한 값을 할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a *= 3 (a = a * 3)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1797&quot; data-start=&quot;1745&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나눈 값을 할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a /= 3 (a = a / 3)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1853&quot; data-start=&quot;1798&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;//=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;몫을 할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a //= 3 (a = a // 3)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1905&quot; data-start=&quot;1854&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;%=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;나머지를 할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a %= 3 (a = a % 3)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot; data-end=&quot;1958&quot; data-start=&quot;1906&quot;&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;**=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;거듭제곱 값을 할당&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a **= 3 (a = a ** 3)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-end=&quot;2001&quot; data-start=&quot;1960&quot; data-ke-size=&quot;size16&quot;&gt;산술연산자에서 확인한 연산자들이 같은 기능으로 수행된다.&lt;/p&gt;
&lt;h3 data-end=&quot;2001&quot; data-start=&quot;1960&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. 멤버십 연산자 (Membership Operators)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;2281&quot; data-start=&quot;2049&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연산자&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2214&quot; data-start=&quot;2154&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;in&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;포함되어 있으면 True&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 in [1, 2, 3, 5] -&amp;gt; True&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2281&quot; data-start=&quot;2215&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;not in&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;포함되어 있지 않으면 True&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5 not in [1, 2, 3] -&amp;gt; True&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-end=&quot;2321&quot; data-start=&quot;2283&quot; data-ke-size=&quot;size16&quot;&gt;포스팅을 하게된 계기이다..&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2321&quot; data-start=&quot;2283&quot; data-ke-size=&quot;size16&quot;&gt;자바 contains 기능을 연산자 수준에서 처리가 가능하단 점이 신기하다..&lt;/p&gt;
&lt;h3 data-end=&quot;2321&quot; data-start=&quot;2283&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. 식별 연산자 (Identity Operators)&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;2595&quot; data-start=&quot;2380&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연산자&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2539&quot; data-start=&quot;2485&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;is&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두 객체가 동일한 객체일 때 True&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a is b&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2595&quot; data-start=&quot;2540&quot;&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;is not&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두 객체가 동일한 객체가 아닐 때 True&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a is not b&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;두 객체가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;동일한 객체&lt;/b&gt;인지 확인하는 연산자이다. 객체의 메모리 주소를 비교한다는 게 중요!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;1960&quot; data-end=&quot;2001&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;삼항 연산자 (Ternary Operator)&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10.3101%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;언어&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.0076%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.6822%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예시&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10.3101%; text-align: center;&quot;&gt;Java&lt;/td&gt;
&lt;td style=&quot;width: 51.0076%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;b&gt;조건문&lt;/b&gt; ? &lt;i&gt;[True 일 때 return value]&lt;/i&gt; :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: center;&quot;&gt;[False 일 때 return value]&lt;/span&gt;&lt;/u&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.6822%; text-align: left;&quot;&gt;String result = &lt;b&gt;(n % 2 == 0)&lt;/b&gt; ? &lt;i&gt;&quot;Even&quot;&lt;/i&gt; : &lt;u&gt;&quot;Odd&quot;&lt;/u&gt;;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10.3101%; text-align: center;&quot;&gt;Python&lt;/td&gt;
&lt;td style=&quot;width: 51.0076%; text-align: center;&quot;&gt;&lt;i&gt;[True 일 때 return value]&lt;/i&gt; if &lt;b&gt;조건문&lt;/b&gt; else &lt;u&gt;[False 일 때 return value]&lt;/u&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.6822%; text-align: left;&quot;&gt;result = &lt;i&gt;&quot;Even&quot;&lt;/i&gt; if &lt;b&gt;n % 2 == 0&lt;/b&gt; else &lt;u&gt;&quot;Odd&quot;&lt;/u&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;1960&quot; data-end=&quot;2001&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;</description>
      <category>개발과 친해지기 - Python</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/148</guid>
      <comments>https://justdoit0730.tistory.com/148#entry148comment</comments>
      <pubDate>Sun, 30 Mar 2025 21:18:03 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Stream 이란? (장점, 단점, 사용 시기, 성능 Graph)</title>
      <link>https://justdoit0730.tistory.com/146</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;여러 코드를 마주하다보면 Stream이 적지 않게 보이는 걸 알 수 있다. 특히 IO가 많이 발생하는 Client 부분의 코드에서 많이 보였다. 그냥 단순히 반복문을 간결하게 작성하는 기능 선에서만 대충 알고 있었는데, 이번 기회에 알아보기나 하자는 느낌으로 포스팅을 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;일단 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;Stream&lt;/span&gt; 을 왜 사용하는 지 부터 궁금했다. 여러 포스팅을 읽어보고 Java 공식 문서도 읽어보았다. &lt;span style=&quot;background-color: #f6e199;&quot;&gt;사용하는 이유&lt;/span&gt;가 정말 다양했지만 단편적으로 느낀 첫 번째 이유는 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;많은 양의 병렬 처리가 필요할 때 사용하면 좋다&lt;/b&gt;&lt;/span&gt;는 것이다. &lt;span style=&quot;background-color: #f6e199;&quot;&gt;코드&lt;/span&gt; 자체가 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;간결&lt;/span&gt;해져서 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;가독성&lt;/span&gt;이 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;향상&lt;/span&gt;되는 단편적인 장점도 있지만 아무래도 중, 장기적으로는 성능적인 면을 제대로 파악해야 적재적소에 Stream을 사용할 수 있을 것으로 판단했다. 많은 양의 병렬 처리가 필요할 때 사용하면 좋다는 건 적은 양의 단순 처리에 대해서는 오히려 포퍼먼스가 좋지 않은 것일까? Stream의 장점과 단점에 대해서 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;[1] Stream 장점 vs 단점&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h4 style=&quot;color: #333333; text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;[결론]&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;장점&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;/span&gt;&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;/ul&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;단점&amp;nbsp;&lt;/span&gt;&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;&amp;nbsp;Debuging 도 잘 안 되고, 일회성으로 소비되며 수행 시 마다 여러 method가 호출되므로 막 가져다 쓰면 성능이 오히려 저하된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style7&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 코드간결성 및 가독성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점 : 반복문 없이 여러 Method 를 조합하여 가독성 높은 코드 작성이 가능하고, SQL 스타일의 선언형 방식이어서 가공 과정이 명확하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;단점 : 직관적이지 않아 익숙하지 않은 개발자에게 학습 곡선이 가파를 수 있고, 람다 표현식이 복잡해지면 오히려 가독성이 떨어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 재사용성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점 : 변경 불가능한 Collection 조작 가능하고, 원본 데이터를 수정하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;단점 : 선언된 Stream 은 한 번만 소비 가능하여, 재사용 시 새로운 Stream 을 생성해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 성능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점 : 병렬 처리(Parallel Stream)가 가능하다. parallelStream()을 사용하면 대용량 데이터 처리 시 성능 향상을 기대할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;단점 : 비교적 작은 데이터 처리에는 method 호출 비용, 객체 생성 overhead 등의 성능 저하가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. API 종류&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점 : map(), filter(), reduce(), sorted(), collect() 등 다양한 연산 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;단점 : 복잡한 요구사항에 있어 특정 연산이 필요한 경우 별도로 구현해야 할 수도 있다. 예를 들어 break 로 인한 조기 종료 등이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. Debuging&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;장점 : .peek() 등을 이용해 중간 과정에 대해 확인은 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;단점 : 중간 부분의 연산을 파악 등의 Debuging이 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;타 반복문에 비해 복잡하고&amp;nbsp;&lt;span&gt;어려움.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;6. 메모리 관리&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;장점 : Lazy Evaluation(지연 연산)을 통해 필요한 경우에만 실행하여 메모리 사용 최적화가 가능하다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;단점 : 상황에 따라 불필요한 객체 생성이 증가되어 메모리 낭비가 발생할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;위 정리가 정말 맞는 지 한 번 테스트를 해보자!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;[2] Performance Test&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;공통 사항&lt;/span&gt;&lt;/span&gt;&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;각 조건을 총 50회 수행 후 결과의 평균값으로 graph 생성&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Y축 : 처리에 요청된 시간(ms)&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;x축 : legend 참고&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1번 조건 : 1,000 회 반복을 처리&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1796&quot; data-origin-height=&quot;1394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bauA0h/btsMiHNANtz/ENecjATEKssrMkLenlwoN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bauA0h/btsMiHNANtz/ENecjATEKssrMkLenlwoN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bauA0h/btsMiHNANtz/ENecjATEKssrMkLenlwoN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbauA0h%2FbtsMiHNANtz%2FENecjATEKssrMkLenlwoN1%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;1796&quot; height=&quot;1394&quot; data-origin-width=&quot;1796&quot; data-origin-height=&quot;1394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2번 조건 : 1,000,000 회 반복을 처리&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1796&quot; data-origin-height=&quot;1394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwDnxU/btsMjnHRYYg/PslED8ZU3t9cFiOOmNww30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwDnxU/btsMjnHRYYg/PslED8ZU3t9cFiOOmNww30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwDnxU/btsMjnHRYYg/PslED8ZU3t9cFiOOmNww30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwDnxU%2FbtsMjnHRYYg%2FPslED8ZU3t9cFiOOmNww30%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;1796&quot; height=&quot;1394&quot; data-origin-width=&quot;1796&quot; data-origin-height=&quot;1394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;물론 여러 조건을 더 따지지 않고 단순하고 러프한 테스트지만 그래도 위 결과가 한눈에 잘 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;최종 결론&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대량 데이터를 한 번만 반복 처리할 때는 parallelStream()이 가장 유리하다.&lt;/li&gt;
&lt;li&gt;순서를 보장해야 하면&amp;nbsp;Stream&amp;nbsp;또는&amp;nbsp;for문이 더 적합하다.&lt;/li&gt;
&lt;li&gt;작은 데이터에서는 for문이 오히려 더 빠르다.&lt;/li&gt;
&lt;li&gt;반복 사용해야 하면 for문이 좋고, 코드 가독성이 중요하면 Stream을 고려해야 한다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이제 Stream을 언제 사용하는 지 대충 맛은 봤으니, 앞으로 Stream을 어떻게 사용하는 지 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;Java 8 version Stream 공식 문서 Link&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1739508337420&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;Stream (Java Platform SE 8 )&quot; data-og-description=&quot;A sequence of elements supporting sequential and parallel aggregate operations. The following example illustrates an aggregate operation using Stream and IntStream: int sum = widgets.stream() .filter(w -&amp;gt; w.getColor() == RED) .mapToInt(w -&amp;gt; w.getWeight()) &quot; data-og-host=&quot;docs.oracle.com&quot; data-og-source-url=&quot;https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html&quot; data-og-url=&quot;https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;Stream (Java Platform SE 8 )&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A sequence of elements supporting sequential and parallel aggregate operations. The following example illustrates an aggregate operation using Stream and IntStream: int sum = widgets.stream() .filter(w -&amp;gt; w.getColor() == RED) .mapToInt(w -&amp;gt; w.getWeight())&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.oracle.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;Java 11 version Stream 공식 문서 Link&lt;/p&gt;
&lt;figure id=&quot;og_1739508363115&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;Stream (Java SE 11 &amp;amp; JDK 11 )&quot; data-og-description=&quot;A sequence of elements supporting sequential and parallel aggregate operations. The following example illustrates an aggregate operation using Stream and IntStream: int sum = widgets.stream() .filter(w -&amp;gt; w.getColor() == RED) .mapToInt(w -&amp;gt; w.getWeight()) &quot; data-og-host=&quot;docs.oracle.com&quot; data-og-source-url=&quot;https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Stream.html&quot; data-og-url=&quot;https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Stream.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Stream.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Stream.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;Stream (Java SE 11 &amp;amp; JDK 11 )&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A sequence of elements supporting sequential and parallel aggregate operations. The following example illustrates an aggregate operation using Stream and IntStream: int sum = widgets.stream() .filter(w -&amp;gt; w.getColor() == RED) .mapToInt(w -&amp;gt; w.getWeight())&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.oracle.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;</description>
      <category>초보 개발자의 스터디룸</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/146</guid>
      <comments>https://justdoit0730.tistory.com/146#entry146comment</comments>
      <pubDate>Fri, 14 Feb 2025 14:48:13 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA, Programmers] 가장 가까운 같은 글자</title>
      <link>https://justdoit0730.tistory.com/145</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문제 설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #263747; text-align: left;&quot;&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문자열&amp;nbsp;s가&amp;nbsp;주어졌을 때,&amp;nbsp;s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예를 들어,&amp;nbsp;s=&quot;banana&quot;라고 할 때,&amp;nbsp; 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서&amp;nbsp;다음과 같이 진행할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;n도&amp;nbsp;자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;a는 자신보다 두 칸, 네 칸 앞에 a가 있습니다. 이 중 가까운 것은 두 칸 앞이고, 이는 2로 표현합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문자열&amp;nbsp;s이 주어질 때, 위와 같이 정의된 연산을 수행하는 함수 solution을 완성해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;제한사항&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1 &amp;le;&amp;nbsp;s의 길이 &amp;le; 10,000&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;s은 영어 소문자로만 이루어져 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #263747; text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #263747; text-align: left;&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;s&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&quot;banana&quot;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;[-1, -1, -1, 2, 2, 2]&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #263747; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&quot;foobar&quot;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;[-1, -1, 1, -1, -1, -1]&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;입출력 예 설명&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 #1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;지문과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 #2&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명 생략&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1738128250451&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    public int[] solution(String s) {
        byte[] sByte = s.getBytes();
        int sByteLength = sByte.length;
        int[] answer = new int[sByteLength];

        int byteCount = 0;

        for (int i = 0; i &amp;lt; sByteLength; i++) {
            byte b = sByte[i];

            for (int y = i; y &amp;gt;= 0; y--) {
                if (b == sByte[y] &amp;amp;&amp;amp; i - y != 0) {
                    answer[byteCount] = i != 0  ? i - y : -1;
                    break;
                } else {
                    answer[byteCount] = -1;
                }
            }
            byteCount++;
        }
        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하다 보니 역행으로 순회하는 방법을 생각했다. 이중 for 문이라 여전히 더럽다..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1738128261701&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;codingTest/main/java/programmers/level1/lessons_142086_가장_가까운_같은_글자.java at master &amp;middot; justdoit0730/codingTest&quot; data-og-description=&quot;Contribute to justdoit0730/codingTest development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_142086_%EA%B0%80%EC%9E%A5_%EA%B0%80%EA%B9%8C%EC%9A%B4_%EA%B0%99%EC%9D%80_%EA%B8%80%EC%9E%90.java&quot; data-og-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_142086_%EA%B0%80%EC%9E%A5_%EA%B0%80%EA%B9%8C%EC%9A%B4_%EA%B0%99%EC%9D%80_%EA%B8%80%EC%9E%90.java&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YOyWv/hyX7PkXK1N/PO1hyl80Tyhs5y0Jknni9K/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254,https://scrap.kakaocdn.net/dn/UGgWE/hyX4qHdBwi/1vrRPc1Yz6z6epa6lx2UmK/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254&quot;&gt;&lt;a href=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_142086_%EA%B0%80%EC%9E%A5_%EA%B0%80%EA%B9%8C%EC%9A%B4_%EA%B0%99%EC%9D%80_%EA%B8%80%EC%9E%90.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_142086_%EA%B0%80%EC%9E%A5_%EA%B0%80%EA%B9%8C%EC%9A%B4_%EA%B0%99%EC%9D%80_%EA%B8%80%EC%9E%90.java&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YOyWv/hyX7PkXK1N/PO1hyl80Tyhs5y0Jknni9K/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254,https://scrap.kakaocdn.net/dn/UGgWE/hyX4qHdBwi/1vrRPc1Yz6z6epa6lx2UmK/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254');&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;codingTest/main/java/programmers/level1/lessons_142086_가장_가까운_같은_글자.java at master &amp;middot; justdoit0730/codingTest&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to justdoit0730/codingTest development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩테스트(Level 0~1)</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/145</guid>
      <comments>https://justdoit0730.tistory.com/145#entry145comment</comments>
      <pubDate>Wed, 29 Jan 2025 14:20:02 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA, Programmers] 로또의 최고 순위와 최저 순위</title>
      <link>https://justdoit0730.tistory.com/144</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문제 설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;color: #b2c0cc;&quot;&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;순위당첨 내용&lt;/span&gt;
&lt;table style=&quot;color: #000000; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody style=&quot;color: #000000;&quot;&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;6개 번호가 모두 일치&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5개 번호가 일치&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4개 번호가 일치&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3개 번호가 일치&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2개 번호가 일치&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;6(낙첨)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 외&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;알아볼 수 없는 번호를&amp;nbsp;0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가&amp;nbsp;44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가&amp;nbsp;31, 10, 45, 1, 6, 19라면, 당첨 가능한 최고 순위와 최저 순위의 한 예는 아래와 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;table style=&quot;color: #000000; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody style=&quot;color: #000000;&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;당첨 번호&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;31&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;45&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;19&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;결과&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최고 순위 번호&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;&lt;b&gt;31&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;10&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;44&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;&lt;b&gt;1&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;6&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;25&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4개 번호 일치, 3등&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최저 순위 번호&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;&lt;b&gt;31&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;11&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;44&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;&lt;b&gt;1&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;7&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;25&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2개 번호 일치, 5등&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;순서와 상관없이, 구매한 로또에 당첨 번호와 일치하는 번호가 있으면 맞힌 걸로 인정됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;알아볼 수 없는 두 개의 번호를 각각 10, 6이라고 가정하면 3등에 당첨될 수 있습니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3등을 만드는 다른 방법들도 존재합니다. 하지만, 2등 이상으로 만드는 것은 불가능합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;알아볼 수 없는 두 개의 번호를 각각 11, 7이라고 가정하면 5등에 당첨될 수 있습니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5등을 만드는 다른 방법들도 존재합니다. 하지만, 6등(낙첨)으로 만드는 것은 불가능합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;제한사항&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;lottos는 길이 6인 정수 배열입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;lottos의 모든 원소는 0 이상 45 이하인 정수입니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0은 알아볼 수 없는 숫자를 의미합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;lottos의 원소들은 정렬되어 있지 않을 수도 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;win_nums은 길이 6인 정수 배열입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;win_nums의 모든 원소는 1 이상 45 이하인 정수입니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;color: #b2c0cc;&quot;&gt;
&lt;table style=&quot;color: #000000; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody style=&quot;color: #000000;&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;lottos&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;win_nums&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;result&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[44, 1, 0, 0, 31, 25]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[31, 10, 45, 1, 6, 19]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[3, 5]&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[0, 0, 0, 0, 0, 0]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[38, 19, 20, 40, 15, 25]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[1, 6]&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[45, 4, 35, 20, 3, 9]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[20, 9, 3, 45, 4, 35]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;[1, 1]&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 설명&lt;/span&gt;&lt;/b&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 #1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문제 예시와 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 #2&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;알아볼 수 없는 번호들이 아래와 같았다면, 1등과 6등에 당첨될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;color: #000000; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody style=&quot;color: #000000;&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;당첨 번호&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;38&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;19&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;20&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;40&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;15&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;25&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;결과&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최고 순위 번호&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;38&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;19&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;20&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;40&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;15&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;&lt;u&gt;&lt;b&gt;25&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;6개 번호 일치, 1등&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #000000;&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최저 순위 번호&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;21&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;22&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;23&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;24&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;26&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0&amp;rarr;27&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0개 번호 일치, 6등&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입출력 예 #3&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;민우가 구매한 로또의 번호와 당첨 번호가 모두 일치하므로, 최고 순위와 최저 순위는 모두 1등입니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;pre id=&quot;code_1738127488441&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
    public static int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = new int[2];
        int lowRank = 0;
        int count = 0;
        int highRank = 0;

        for (int lottosNum : lottos) {
            if (lottosNum == 0) {
                count++;
                continue;
            }

            if (Arrays.stream(win_nums).anyMatch(num -&amp;gt; num == lottosNum)) {
                lowRank++;
            }
        }

        highRank = lowRank + count;

        answer[0] = getRank(highRank);
        answer[1] = getRank(lowRank);

        return answer;
    }

    public static int getRank(int rank) {
        switch (rank) {
            case 6: return 1;
            case 5: return 2;
            case 4: return 3;
            case 3: return 4;
            case 2: return 5;
            default: return 6;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 문제의 풀이를 종종 보다가 stream 을 보게 되어서 좀 찾아보다가 처음으로 사용해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stream 관련 포스팅을 해봐야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1738127592902&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;codingTest/main/java/programmers/level1/lessons_77484_로또의_최고_순위와_최저_순위.java at master &amp;middot; justdoit0730/co&quot; data-og-description=&quot;Contribute to justdoit0730/codingTest development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_77484_%EB%A1%9C%EB%98%90%EC%9D%98_%EC%B5%9C%EA%B3%A0_%EC%88%9C%EC%9C%84%EC%99%80_%EC%B5%9C%EC%A0%80_%EC%88%9C%EC%9C%84.java&quot; data-og-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_77484_%EB%A1%9C%EB%98%90%EC%9D%98_%EC%B5%9C%EA%B3%A0_%EC%88%9C%EC%9C%84%EC%99%80_%EC%B5%9C%EC%A0%80_%EC%88%9C%EC%9C%84.java&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/QqbNb/hyX7TVhUqK/qHPdmO2orBY0AWoRtr2zzk/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254,https://scrap.kakaocdn.net/dn/twi4t/hyX7XDnf4I/0aadvCkbCIk5OCd18LJSLK/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254&quot;&gt;&lt;a href=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_77484_%EB%A1%9C%EB%98%90%EC%9D%98_%EC%B5%9C%EA%B3%A0_%EC%88%9C%EC%9C%84%EC%99%80_%EC%B5%9C%EC%A0%80_%EC%88%9C%EC%9C%84.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_77484_%EB%A1%9C%EB%98%90%EC%9D%98_%EC%B5%9C%EA%B3%A0_%EC%88%9C%EC%9C%84%EC%99%80_%EC%B5%9C%EC%A0%80_%EC%88%9C%EC%9C%84.java&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/QqbNb/hyX7TVhUqK/qHPdmO2orBY0AWoRtr2zzk/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254,https://scrap.kakaocdn.net/dn/twi4t/hyX7XDnf4I/0aadvCkbCIk5OCd18LJSLK/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254');&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;codingTest/main/java/programmers/level1/lessons_77484_로또의_최고_순위와_최저_순위.java at master &amp;middot; justdoit0730/co&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to justdoit0730/codingTest development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩테스트(Level 0~1)</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/144</guid>
      <comments>https://justdoit0730.tistory.com/144#entry144comment</comments>
      <pubDate>Wed, 29 Jan 2025 14:06:28 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA, Programmers] 완주하지 못한 선수</title>
      <link>https://justdoit0730.tistory.com/143</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&amp;nbsp;설명&lt;/b&gt;&lt;br /&gt;수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.&lt;br /&gt;마라톤에&amp;nbsp;참여한&amp;nbsp;선수들의&amp;nbsp;이름이&amp;nbsp;담긴&amp;nbsp;배열&amp;nbsp;participant와&amp;nbsp;완주한&amp;nbsp;선수들의&amp;nbsp;이름이&amp;nbsp;담긴&amp;nbsp;배열&amp;nbsp;completion이&amp;nbsp;주어질&amp;nbsp;때,&amp;nbsp;완주하지&amp;nbsp;못한&amp;nbsp;선수의&amp;nbsp;이름을&amp;nbsp;return&amp;nbsp;하도록&amp;nbsp;solution&amp;nbsp;함수를&amp;nbsp;작성해주세요.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;제한사항&lt;/b&gt;&lt;br /&gt;마라톤&amp;nbsp;경기에&amp;nbsp;참여한&amp;nbsp;선수의&amp;nbsp;수는&amp;nbsp;1명&amp;nbsp;이상&amp;nbsp;100,000명&amp;nbsp;이하입니다.&lt;br /&gt;completion의&amp;nbsp;길이는&amp;nbsp;participant의&amp;nbsp;길이보다&amp;nbsp;1&amp;nbsp;작습니다.&lt;br /&gt;참가자의&amp;nbsp;이름은&amp;nbsp;1개&amp;nbsp;이상&amp;nbsp;20개&amp;nbsp;이하의&amp;nbsp;알파벳&amp;nbsp;소문자로&amp;nbsp;이루어져&amp;nbsp;있습니다.&lt;br /&gt;참가자&amp;nbsp;중에는&amp;nbsp;동명이인이&amp;nbsp;있을&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 40.7752%; text-align: center;&quot;&gt;&lt;b&gt;participant&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.124%; text-align: center;&quot;&gt;&lt;b&gt;&amp;nbsp;completion&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 23.1007%; text-align: center;&quot;&gt;&lt;b&gt;return&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 40.7752%; text-align: center;&quot;&gt;[&quot;leo&quot;, &quot;kiki&quot;, &quot;eden&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 36.124%; text-align: center;&quot;&gt;[&quot;eden&quot;, &quot;kiki&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 23.1007%; text-align: center;&quot;&gt;&quot;leo&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 40.7752%; text-align: center;&quot;&gt;[&quot;marina&quot;, &quot;josipa&quot;, &quot;nikola&quot;, &quot;vinko&quot;, &quot;filipa&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 36.124%; text-align: center;&quot;&gt;[&quot;josipa&quot;, &quot;filipa&quot;, &quot;marina&quot;, &quot;nikola&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 23.1007%; text-align: center;&quot;&gt;&quot;vinko&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 40.7752%; text-align: center;&quot;&gt;[&quot;mislav&quot;, &quot;stanko&quot;, &quot;mislav&quot;, &quot;ana&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 36.124%; text-align: center;&quot;&gt;[&quot;stanko&quot;, &quot;ana&quot;, &quot;mislav&quot;]&lt;/td&gt;
&lt;td style=&quot;width: 23.1007%; text-align: center;&quot;&gt;&quot;mislav&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력&amp;nbsp;예&amp;nbsp;설명&lt;/b&gt;&lt;br /&gt;예제&amp;nbsp;#1&lt;br /&gt;&quot;leo&quot;는&amp;nbsp;참여자&amp;nbsp;명단에는&amp;nbsp;있지만,&amp;nbsp;완주자&amp;nbsp;명단에는&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;완주하지&amp;nbsp;못했습니다.&lt;br /&gt;&lt;br /&gt;예제&amp;nbsp;#2&lt;br /&gt;&quot;vinko&quot;는&amp;nbsp;참여자&amp;nbsp;명단에는&amp;nbsp;있지만,&amp;nbsp;완주자&amp;nbsp;명단에는&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;완주하지&amp;nbsp;못했습니다.&lt;br /&gt;&lt;br /&gt;예제&amp;nbsp;#3&lt;br /&gt;&quot;mislav&quot;는&amp;nbsp;참여자&amp;nbsp;명단에는&amp;nbsp;두&amp;nbsp;명이&amp;nbsp;있지만,&amp;nbsp;완주자&amp;nbsp;명단에는&amp;nbsp;한&amp;nbsp;명밖에&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;한명은&amp;nbsp;완주하지&amp;nbsp;못했습니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1738052216240&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
    public static String solution(String[] participant, String[] completion) {
        HashMap&amp;lt;String, Integer&amp;gt; participantMap = new HashMap&amp;lt;&amp;gt;();
        String answer = &quot;&quot;;

        for (String p : participant) {
            participantMap.put(p, participantMap.getOrDefault(p, 0) + 1); 
        }

        for (String c : completion) {
            participantMap.put(c, participantMap.get(c) - 1);
        }

        for (String p : participant) {
            if (participantMap.get(p) &amp;gt; 0) {
                 answer = p;
            }
        }
        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;처음에는 ArrayList 의 contains method 를 사용해서 풀이하였으나, 효율성 테스트에서 통과하지 못했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1738052405778&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public static String solution(String[] participant, String[] completion) {
    ArrayList&amp;lt;String&amp;gt; participantList = new ArrayList&amp;lt;&amp;gt;(Arrays.asList(participant));
    for (String c : completion) {
        if (participantList.contains(c)) {
            participantList.remove(c);
        }
    }
    return participantList.get(0);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;효율적으로 코드를 작성하지 않았다는 뜻이겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1738052364647&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Java] 배열과 리스트(Collection) Class 별 기능과 속도 확인&quot; data-og-description=&quot;자료구조특징추가(ADD) 속도읽기(READ) 속도검색(SEARCH) 속도삭제(DELETE) 속도배열(Array)고정 크기.메모리 연속 저장.인텍스 기반 접근.불가(크기 고정)O(1)O(n)-ArrayList크기 동적 증가.인덱스 기반 접근.&quot; data-og-host=&quot;justdoit0730.tistory.com&quot; data-og-source-url=&quot;https://justdoit0730.tistory.com/142&quot; data-og-url=&quot;https://justdoit0730.tistory.com/142&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cwXan8/hyX4qmMXsM/xzl1KmVis2icVA2gvN42pK/img.png?width=518&amp;amp;height=518&amp;amp;face=0_0_518_518,https://scrap.kakaocdn.net/dn/bc0zOw/hyX725EBuW/Oia6pdAsErKll66vwcdsF1/img.png?width=518&amp;amp;height=518&amp;amp;face=0_0_518_518,https://scrap.kakaocdn.net/dn/eLKQl/hyX4vPcHfF/rkYEbr7UqcTupa34c4Crk0/img.png?width=2728&amp;amp;height=1254&amp;amp;face=0_0_2728_1254&quot;&gt;&lt;a href=&quot;https://justdoit0730.tistory.com/142&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://justdoit0730.tistory.com/142&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cwXan8/hyX4qmMXsM/xzl1KmVis2icVA2gvN42pK/img.png?width=518&amp;amp;height=518&amp;amp;face=0_0_518_518,https://scrap.kakaocdn.net/dn/bc0zOw/hyX725EBuW/Oia6pdAsErKll66vwcdsF1/img.png?width=518&amp;amp;height=518&amp;amp;face=0_0_518_518,https://scrap.kakaocdn.net/dn/eLKQl/hyX4vPcHfF/rkYEbr7UqcTupa34c4Crk0/img.png?width=2728&amp;amp;height=1254&amp;amp;face=0_0_2728_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;[Java] 배열과 리스트(Collection) Class 별 기능과 속도 확인&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;자료구조특징추가(ADD) 속도읽기(READ) 속도검색(SEARCH) 속도삭제(DELETE) 속도배열(Array)고정 크기.메모리 연속 저장.인텍스 기반 접근.불가(크기 고정)O(1)O(n)-ArrayList크기 동적 증가.인덱스 기반 접근.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;justdoit0730.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 작성하고 보니 코드 자체는 간단해 보여도 성능적으로는 너무나 비효율적으로 코드를 작성하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;생각나는 대로 코딩하면 안 되겠다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Git hub&lt;/h2&gt;
&lt;figure id=&quot;og_1738052634753&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;codingTest/main/java/programmers/level1/lessons_42576_완주하지_못한_선수.java at master &amp;middot; justdoit0730/codingTest&quot; data-og-description=&quot;Contribute to justdoit0730/codingTest development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_42576_%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80_%EB%AA%BB%ED%95%9C_%EC%84%A0%EC%88%98.java&quot; data-og-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_42576_%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80_%EB%AA%BB%ED%95%9C_%EC%84%A0%EC%88%98.java&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bJvXyL/hyX4lZ6ntd/4cpQX5mlTKwBQnkB5RfwFK/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254,https://scrap.kakaocdn.net/dn/c3XnkK/hyX7Venbld/gnnv3jJcyfGpku8rG8JH7k/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254&quot;&gt;&lt;a href=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_42576_%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80_%EB%AA%BB%ED%95%9C_%EC%84%A0%EC%88%98.java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/justdoit0730/codingTest/blob/master/main/java/programmers/level1/lessons_42576_%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80_%EB%AA%BB%ED%95%9C_%EC%84%A0%EC%88%98.java&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bJvXyL/hyX4lZ6ntd/4cpQX5mlTKwBQnkB5RfwFK/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254,https://scrap.kakaocdn.net/dn/c3XnkK/hyX7Venbld/gnnv3jJcyfGpku8rG8JH7k/img.png?width=1200&amp;amp;height=600&amp;amp;face=973_170_1051_254');&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;codingTest/main/java/programmers/level1/lessons_42576_완주하지_못한_선수.java at master &amp;middot; justdoit0730/codingTest&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to justdoit0730/codingTest development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩테스트(Level 0~1)</category>
      <author>justdoIT0730</author>
      <guid isPermaLink="true">https://justdoit0730.tistory.com/143</guid>
      <comments>https://justdoit0730.tistory.com/143#entry143comment</comments>
      <pubDate>Tue, 28 Jan 2025 17:21:33 +0900</pubDate>
    </item>
  </channel>
</rss>