<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>지구의 코딩공간</title>
    <link>https://jigoo-log.tistory.com/</link>
    <description>IT를 공부하고 있는 지구의 코딩공간입니다!</description>
    <language>ko</language>
    <pubDate>Mon, 18 May 2026 01:18:31 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>지구코드</managingEditor>
    <image>
      <title>지구의 코딩공간</title>
      <url>https://tistory1.daumcdn.net/tistory/5590635/attach/e885075a12c74379bde34c72f1a487ca</url>
      <link>https://jigoo-log.tistory.com</link>
    </image>
    <item>
      <title>[신한투자증권] 프로디지털아카데미 6기 수료 회고</title>
      <link>https://jigoo-log.tistory.com/101</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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2025년 4월 22일부터 10월 24일까지 6개월간 진행된&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;589&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CAUHp/dJMcacakSQH/fVyU7MLXkQ8jkLZ0K7HneK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CAUHp/dJMcacakSQH/fVyU7MLXkQ8jkLZ0K7HneK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CAUHp/dJMcacakSQH/fVyU7MLXkQ8jkLZ0K7HneK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCAUHp%2FdJMcacakSQH%2FfVyU7MLXkQ8jkLZ0K7HneK%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;411&quot; height=&quot;329&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;589&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;반년간 프디아를 하며 생각한 것들을 가볍게 쭉 적어보려고 한다.&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;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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;나는 8학기에 프디아를 시작했다.&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;이미 7학기에 이수학점을 다 채워둔 상태여서&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이때도 꽤 바빴는데 유종의 미로 A+를 받으며 마무리할 수 있어 뿌듯했었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&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;3학년이 끝나고 휴학하고 참여한 친구와 마지막 학기인 나를 제외하고는&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;&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;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;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmchXs/dJMcaiVVwFL/l0FtuhQKnYsJmTowypR2aK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmchXs/dJMcaiVVwFL/l0FtuhQKnYsJmTowypR2aK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmchXs/dJMcaiVVwFL/l0FtuhQKnYsJmTowypR2aK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmchXs%2FdJMcaiVVwFL%2Fl0FtuhQKnYsJmTowypR2aK%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;259&quot; height=&quot;194&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작에 앞서, 증권업 개발자에 관심이 있다면 프디아를 적극 추천한다.&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 style=&quot;color: #333333; text-align: start;&quot; 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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;금융시스템부, 정보시스템부, ICT기획운영부, 플랫폼개발부 등 여러 부서의 선임님들이 오셔서&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각 부서에서는 어떤 일을 하는지, 실무에서는 어떤 식으로 일이 진행되는지 자세히 알려주신다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 이전에 작성해둔 서류 및 면접 합격 후기이다.&lt;/p&gt;
&lt;figure id=&quot;og_1762176518464&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;[신한투자증권] 프로디지털아카데미 6기 서류 &amp;amp; 면접 합격 후기&quot; data-og-description=&quot;신한투자증권 프로디지털아카데미 6기 합격 후기   2025년 4월 22일부터 신한투자증권 프로디지털아카데미에 합격하여 교육을 듣고 있다. 이후에 지원하시는 분들을 위해 서류, 코딩테스트, 면&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/89&quot; data-og-url=&quot;https://jigoo-log.tistory.com/89&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/IxEJu/hyZNeJVgiS/TP6vrj2Xp2kUBPGvPAhyRK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/HiObW/hyZMVFd475/HSPIn9QIcaT4wc5IzFN1Bk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/hlfdt/hyZM0dPLTH/0L78DGlJcuvUOcvQdJPJJK/img.png?width=870&amp;amp;height=3963&amp;amp;face=0_0_870_3963&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/89&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/89&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/IxEJu/hyZNeJVgiS/TP6vrj2Xp2kUBPGvPAhyRK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/HiObW/hyZMVFd475/HSPIn9QIcaT4wc5IzFN1Bk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/hlfdt/hyZM0dPLTH/0L78DGlJcuvUOcvQdJPJJK/img.png?width=870&amp;amp;height=3963&amp;amp;face=0_0_870_3963');&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;[신한투자증권] 프로디지털아카데미 6기 서류 &amp;amp; 면접 합격 후기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;신한투자증권 프로디지털아카데미 6기 합격 후기   2025년 4월 22일부터 신한투자증권 프로디지털아카데미에 합격하여 교육을 듣고 있다. 이후에 지원하시는 분들을 위해 서류, 코딩테스트, 면&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&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;강의&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;&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;size18&quot;&gt;&lt;b&gt;클라우드&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;AWS에 대한 기초 지식이 있다면 수업을 더 잘 따라갈 수 있을 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;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;실습 중심의 수업이 많았고, 그중에서도 EC2 인스턴스 성능 비교 실험을 했던게 가장 기억에 남는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 강사님께서 제작하신 EC2 송이 정말 명곡이다!&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;아래는 EC2 인스턴스 성능 비교 실험을 정리해둔 리드미이다.&lt;/p&gt;
&lt;figure id=&quot;og_1762180750866&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;pda_6th/사랑아호두해(김지수, 김지연) at main &amp;middot; koorukuroo/pda_6th&quot; data-og-description=&quot;Contribute to koorukuroo/pda_6th development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/koorukuroo/pda_6th/tree/main/%EC%82%AC%EB%9E%91%EC%95%84%ED%98%B8%EB%91%90%ED%95%B4(%EA%B9%80%EC%A7%80%EC%88%98%2C%20%EA%B9%80%EC%A7%80%EC%97%B0)&quot; data-og-url=&quot;https://github.com/koorukuroo/pda_6th/tree/main/%EC%82%AC%EB%9E%91%EC%95%84%ED%98%B8%EB%91%90%ED%95%B4(%EA%B9%80%EC%A7%80%EC%88%98%2C%20%EA%B9%80%EC%A7%80%EC%97%B0)&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bMDOmc/hyZMOTBMyS/Ye4tm2OXoT5nnd9sox5BDk/img.png?width=1200&amp;amp;height=600&amp;amp;face=993_121_1051_184,https://scrap.kakaocdn.net/dn/PEVyp/hyZMIY2sll/thvVNHB88zsVdRsnD5ra60/img.png?width=1200&amp;amp;height=600&amp;amp;face=993_121_1051_184&quot;&gt;&lt;a href=&quot;https://github.com/koorukuroo/pda_6th/tree/main/%EC%82%AC%EB%9E%91%EC%95%84%ED%98%B8%EB%91%90%ED%95%B4(%EA%B9%80%EC%A7%80%EC%88%98%2C%20%EA%B9%80%EC%A7%80%EC%97%B0)&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/koorukuroo/pda_6th/tree/main/%EC%82%AC%EB%9E%91%EC%95%84%ED%98%B8%EB%91%90%ED%95%B4(%EA%B9%80%EC%A7%80%EC%88%98%2C%20%EA%B9%80%EC%A7%80%EC%97%B0)&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bMDOmc/hyZMOTBMyS/Ye4tm2OXoT5nnd9sox5BDk/img.png?width=1200&amp;amp;height=600&amp;amp;face=993_121_1051_184,https://scrap.kakaocdn.net/dn/PEVyp/hyZMIY2sll/thvVNHB88zsVdRsnD5ra60/img.png?width=1200&amp;amp;height=600&amp;amp;face=993_121_1051_184');&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;pda_6th/사랑아호두해(김지수, 김지연) at main &amp;middot; koorukuroo/pda_6th&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to koorukuroo/pda_6th 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;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&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 data-ke-size=&quot;size16&quot;&gt;평소에 많이 접해본 백엔드와 인프라에 비해, 프론트엔드는 문외한이라 예습을 열심히 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 예습이 그리 잘 통하지는 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진도가 생각보다 빨라서 얼레벌레 따라가다보니 하루가 뚝딱, 일주일이 뚝딱이었다.&lt;/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;초반에는 JS와 크롤링부터 React.js, Next.js까지 쭉 배운다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중에서도 CSR과 SSR, 브라우저 렌더링을 배울 때가 가장 흥미로웠다.&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;React.js는 라이브러리인가 프레임워크인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next.js는 라이브러리인가 프레임워크인가?&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;정답은 React.js는 라이브러리, Next.js는 프레임워크였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때도 블로그에 글을 남겨놨다면 좋았을텐데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 당시엔 내 머리에 내용을 욱여넣기만 해도 바빴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 중간 프로젝트를 진행하며 &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;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;백엔드, 인프라 측면에서도&lt;span&gt; &lt;/span&gt;&lt;/span&gt;강사님께 많은 것들을 배울 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&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;&amp;nbsp;- JVM은 어떻게 동작할까 (ClassLoacer, loading, linking..)&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java와 Spring에 대해 하나하나 뜯어보는 느낌이었다.&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;516&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fk6gw/dJMcahpbeK0/JP3MKr7rLnEKWnEF7kqmL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fk6gw/dJMcahpbeK0/JP3MKr7rLnEKWnEF7kqmL1/img.png&quot; data-alt=&quot;스프링이 관리하는 객체에 대한 나의 답!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fk6gw/dJMcahpbeK0/JP3MKr7rLnEKWnEF7kqmL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFk6gw%2FdJMcahpbeK0%2FJP3MKr7rLnEKWnEF7kqmL1%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;328&quot; height=&quot;226&quot; data-origin-width=&quot;516&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스프링이 관리하는 객체에 대한 나의 답!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 덕분에 지금은 스프링의 동작 원리나 어노테이션 각각의 의미를 이해하고 사용할 수 있게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 파이널 프로젝트 때에는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강사님께 API 설계나 ERD 설계 과정에서 실무 관점의 피드백을 많이 받아&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;style8&quot; /&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;640&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Glqb3/dJMcafdPq5V/nt4dNkvH4v7i5OlZSPE4P0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Glqb3/dJMcafdPq5V/nt4dNkvH4v7i5OlZSPE4P0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Glqb3/dJMcafdPq5V/nt4dNkvH4v7i5OlZSPE4P0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGlqb3%2FdJMcafdPq5V%2Fnt4dNkvH4v7i5OlZSPE4P0%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;297&quot; height=&quot;297&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;640&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;고찰&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 5月: AWS CLF 취득&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 6月: AWS SAA 취득 + 미니 프로젝트 '템보따리'&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 7月: 정보처리기사 취득 + 중간 프로젝트 'FOMO'&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 8月: 오픽 IH 취득&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 9月, 10月: 파이널 프로젝트 'ToGather'&lt;/p&gt;
&lt;p 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;6개월을 정말 쉴 틈없이 달려온 것 같다.&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;프로젝트 기간에는 PM 혹은 CTO를 계속 맡았기에&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트에 더욱 온전히 집중해 최선의 결과를 내고자 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 프로젝트 회고 글들이다.&lt;/p&gt;
&lt;figure id=&quot;og_1762177196279&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;[프디아] 금융 데이터 흐름부터 알림까지 &amp;ndash; FOMO 프로젝트 회고&quot; data-og-description=&quot;7월 2일부터 7월 29일까지 진행된 신한투자증권 프로디지털아카데미 프론트엔드 프로젝트가 마무리됐다.주제는 'OpenAPI를 활용한 금융 프로젝트' 개발이였다.우리 팀은   한국 투자자를 위한 실&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/94&quot; data-og-url=&quot;https://jigoo-log.tistory.com/94&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bwFYYr/hyZNdEgmDb/G3esB1XioCop5pcuF9dUK0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/j9XQG/hyZMsPsn5X/GvxprLf7osBAHuNF9rDdDk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/oay63/hyZM8Qt6VZ/bR77a5iLgMpyiRdMzZ9q1K/img.png?width=1920&amp;amp;height=1080&amp;amp;face=1272_261_1494_501&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/94&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/94&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bwFYYr/hyZNdEgmDb/G3esB1XioCop5pcuF9dUK0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/j9XQG/hyZMsPsn5X/GvxprLf7osBAHuNF9rDdDk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/oay63/hyZM8Qt6VZ/bR77a5iLgMpyiRdMzZ9q1K/img.png?width=1920&amp;amp;height=1080&amp;amp;face=1272_261_1494_501');&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;[프디아] 금융 데이터 흐름부터 알림까지 &amp;ndash; FOMO 프로젝트 회고&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;7월 2일부터 7월 29일까지 진행된 신한투자증권 프로디지털아카데미 프론트엔드 프로젝트가 마무리됐다.주제는 'OpenAPI를 활용한 금융 프로젝트' 개발이였다.우리 팀은   한국 투자자를 위한 실&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1762177213356&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;[신투 프디아] 그룹형 주식 투자 서비스 - ToGather 프로젝트 회고&quot; data-og-description=&quot;드디어 반 년간의 프디아 교육 기간이 끝나고 최종 발표까지 끝마쳤다!오늘은 파이널 프로젝트였던 ToGather 프로젝트에 대해 간단하게 회고해보려고 한다! 9월 25일부터 10월 23일까지 진행된 신한&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/100&quot; data-og-url=&quot;https://jigoo-log.tistory.com/100&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/DPxDx/hyZM4AxBeD/tcLsNa4LmiCjohD8tIYkFK/img.png?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/cdX8tX/hyZM0rmJ2z/KQGUqUVsSZetcD69G6Kp6k/img.png?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/vVWbb/hyZM7jJnKD/OXbgmT9Jbt8Z2l5ID6Mntk/img.png?width=1367&amp;amp;height=765&amp;amp;face=0_0_1367_765&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/100&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/100&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/DPxDx/hyZM4AxBeD/tcLsNa4LmiCjohD8tIYkFK/img.png?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/cdX8tX/hyZM0rmJ2z/KQGUqUVsSZetcD69G6Kp6k/img.png?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600,https://scrap.kakaocdn.net/dn/vVWbb/hyZM7jJnKD/OXbgmT9Jbt8Z2l5ID6Mntk/img.png?width=1367&amp;amp;height=765&amp;amp;face=0_0_1367_765');&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;[신투 프디아] 그룹형 주식 투자 서비스 - ToGather 프로젝트 회고&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;드디어 반 년간의 프디아 교육 기간이 끝나고 최종 발표까지 끝마쳤다!오늘은 파이널 프로젝트였던 ToGather 프로젝트에 대해 간단하게 회고해보려고 한다! 9월 25일부터 10월 23일까지 진행된 신한&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반년을 돌이켜보며 스스로에게 잘했다고 칭찬해주고 싶은 점은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 책을 많이 읽었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 운동을 꾸준히 했다.&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;3. 일기를 자주 썼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 꾸준히 기술 블로그에 글을 썼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 하고자 계획한 일들을 잘 실천했다.&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;6. 스스로와의 약속을 지켰다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 일주일에 한 개 이상 서류쓰기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;
&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;/b&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;736&quot; data-origin-height=&quot;736&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uHA4D/dJMcabvJk1V/SgNOVxE6ysk0Orx17BIEgk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uHA4D/dJMcabvJk1V/SgNOVxE6ysk0Orx17BIEgk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uHA4D/dJMcabvJk1V/SgNOVxE6ysk0Orx17BIEgk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuHA4D%2FdJMcabvJk1V%2FSgNOVxE6ysk0Orx17BIEgk%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;307&quot; height=&quot;307&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;736&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;PS 공부를 하고 싶었지만&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;&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;p style=&quot;color: #333333; text-align: start;&quot; 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;&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;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZ3Tpm/dJMcadUCpj0/6WGkRHOQ1pfmWsUbYhx9HK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZ3Tpm/dJMcadUCpj0/6WGkRHOQ1pfmWsUbYhx9HK/img.jpg&quot; data-alt=&quot;아좌잣&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZ3Tpm/dJMcadUCpj0/6WGkRHOQ1pfmWsUbYhx9HK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ3Tpm%2FdJMcadUCpj0%2F6WGkRHOQ1pfmWsUbYhx9HK%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;293&quot; height=&quot;293&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아좌잣&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;수료&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;&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;1059&quot; data-origin-height=&quot;1362&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBPZcd/dJMcaawO58e/6yWRNKhh2VrXhAYFhvC9lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBPZcd/dJMcaawO58e/6yWRNKhh2VrXhAYFhvC9lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBPZcd/dJMcaawO58e/6yWRNKhh2VrXhAYFhvC9lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBPZcd%2FdJMcaawO58e%2F6yWRNKhh2VrXhAYFhvC9lk%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;405&quot; height=&quot;521&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;1362&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 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;1512&quot; data-origin-height=&quot;1194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8WMwx/dJMcabbqEd5/LThjykXmaeeQYpthDEP65k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8WMwx/dJMcabbqEd5/LThjykXmaeeQYpthDEP65k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8WMwx/dJMcabbqEd5/LThjykXmaeeQYpthDEP65k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8WMwx%2FdJMcabbqEd5%2FLThjykXmaeeQYpthDEP65k%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;413&quot; height=&quot;326&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;1194&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 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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c25G7P/dJMcadNQMYN/nRCemFBZnRIUH1BMt8IWO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c25G7P/dJMcadNQMYN/nRCemFBZnRIUH1BMt8IWO1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c25G7P/dJMcadNQMYN/nRCemFBZnRIUH1BMt8IWO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc25G7P%2FdJMcadNQMYN%2FnRCemFBZnRIUH1BMt8IWO1%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;310&quot; height=&quot;248&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;384&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;&lt;span style=&quot;color: #666666;&quot;&gt;  프디아 7기 준비하시는 분들 중 궁금한 점이 있으시다면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;편하게 댓글로 물어봐 주세요!&lt;/span&gt;&lt;/p&gt;</description>
      <category>개발 기록</category>
      <category>수료</category>
      <category>신한투자증권</category>
      <category>인턴</category>
      <category>프로디지털아카데미</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/101</guid>
      <comments>https://jigoo-log.tistory.com/101#entry101comment</comments>
      <pubDate>Tue, 4 Nov 2025 00:44:32 +0900</pubDate>
    </item>
    <item>
      <title>[신투 프디아] 그룹형 주식 투자 서비스 - ToGather 프로젝트 회고</title>
      <link>https://jigoo-log.tistory.com/100</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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 파이널 프로젝트였던 ToGather 프로젝트에 대해 간단하게 회고해보려고 한다!&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;736&quot; data-origin-height=&quot;589&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/960RI/dJMcahJtogs/Z3Hdm3hP0UOv4w4UoAR431/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/960RI/dJMcahJtogs/Z3Hdm3hP0UOv4w4UoAR431/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/960RI/dJMcahJtogs/Z3Hdm3hP0UOv4w4UoAR431/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F960RI%2FdJMcahJtogs%2FZ3Hdm3hP0UOv4w4UoAR431%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;369&quot; height=&quot;295&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;589&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;9월 25일부터 10월 23일까지 진행된&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;신한투자증권 프로디지털아카데미 파이널 프로젝트&lt;/b&gt;가 마무리됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #353638;&quot;&gt;주제는 'MSA &amp;amp; 클라우드를 활용한 금융 프로젝트' 개발이였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #353638;&quot;&gt;우리 팀은 &lt;span style=&quot;color: #f0f6fc; text-align: start;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;공동 목표 달성을 위한 그룹형 주식 투자 서비스&lt;/b&gt;&lt;span style=&quot;color: #353638;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;&amp;lsquo;ToGather&amp;rsquo;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #353638;&quot;&gt;를 개발했다.&lt;/span&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;1368&quot; data-origin-height=&quot;766&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vBRM7/dJMcaaKlC5L/E8mRYMJJBoeiWEfoK9B4L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vBRM7/dJMcaaKlC5L/E8mRYMJJBoeiWEfoK9B4L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vBRM7/dJMcaaKlC5L/E8mRYMJJBoeiWEfoK9B4L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvBRM7%2FdJMcaaKlC5L%2FE8mRYMJJBoeiWEfoK9B4L1%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;664&quot; height=&quot;372&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;766&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;아래는 ToGather 프로젝트의 GitHub 레포지토리다.&lt;/p&gt;
&lt;figure id=&quot;og_1761988455956&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;ToGather-Final&quot; data-og-description=&quot;ToGather-Final has 3 repositories available. Follow their code on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/ToGather-Final&quot; data-og-url=&quot;https://github.com/ToGather-Final&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ccD3xk/hyZML9J4fS/uZXXa69BHe611C5YBzgj91/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280,https://scrap.kakaocdn.net/dn/cUWN0N/hyZMy2WkPx/xuK2qOnJUG8uOQJoRK1mHk/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280,https://scrap.kakaocdn.net/dn/b7rooI/hyZMXh1w4S/UbVp16Ogkyyk5KKIFpzKmK/img.jpg?width=1080&amp;amp;height=2280&amp;amp;face=0_0_1080_2280&quot;&gt;&lt;a href=&quot;https://github.com/ToGather-Final&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/ToGather-Final&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ccD3xk/hyZML9J4fS/uZXXa69BHe611C5YBzgj91/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280,https://scrap.kakaocdn.net/dn/cUWN0N/hyZMy2WkPx/xuK2qOnJUG8uOQJoRK1mHk/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280,https://scrap.kakaocdn.net/dn/b7rooI/hyZMXh1w4S/UbVp16Ogkyyk5KKIFpzKmK/img.jpg?width=1080&amp;amp;height=2280&amp;amp;face=0_0_1080_2280');&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;ToGather-Final&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;ToGather-Final has 3 repositories available. Follow their code 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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 id=&quot;FOMO%EB%9E%80%20%EB%AD%98%EA%B9%8C%3F-1&quot; style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;기획 배경&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작은 모임 통장이었다.&lt;/p&gt;
&lt;p data-end=&quot;163&quot; data-start=&quot;83&quot; data-ke-size=&quot;size16&quot;&gt;친구들과 여행 자금을 모으거나, 계모임&amp;middot;동아리 회비를 관리하기 위해&lt;/p&gt;
&lt;p data-end=&quot;163&quot; data-start=&quot;83&quot; data-ke-size=&quot;size16&quot;&gt;모임통장을 이용해 정기적으로 돈을 모으는 사람들이 늘고 있다.&lt;/p&gt;
&lt;p data-end=&quot;231&quot; data-start=&quot;165&quot; data-ke-size=&quot;size16&quot;&gt;최근 금융권에서도 이러한 모임통장을 고객 락인(Lock-in) 수단으로 주목하며 전략적으로 확대하고 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpdH0C/dJMcaiO9h2m/akV8iK6xIB1lH9D9NlCc51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpdH0C/dJMcaiO9h2m/akV8iK6xIB1lH9D9NlCc51/img.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;765&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4509%; margin-right: 10px;&quot; data-widthpercent=&quot;50.03&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpdH0C/dJMcaiO9h2m/akV8iK6xIB1lH9D9NlCc51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpdH0C%2FdJMcaiO9h2m%2FakV8iK6xIB1lH9D9NlCc51%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;1364&quot; height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I6EmL/dJMcaesrGPi/nWLqUhGOXfCMcfkHILmR60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I6EmL/dJMcaesrGPi/nWLqUhGOXfCMcfkHILmR60/img.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;766&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3863%;&quot; data-widthpercent=&quot;49.97&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I6EmL/dJMcaesrGPi/nWLqUhGOXfCMcfkHILmR60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI6EmL%2FdJMcaesrGPi%2FnWLqUhGOXfCMcfkHILmR60%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;1364&quot; height=&quot;766&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;모임 통장의 인기!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C%20%EC%83%81%ED%99%A9%20%26%20%ED%95%B5%EC%8B%AC%20%EA%B8%B0%EB%8A%A5-1-2&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;문제 상황&lt;/h4&gt;
&lt;p data-end=&quot;368&quot; data-start=&quot;249&quot; data-ke-size=&quot;size16&quot;&gt;하지만 모임통장을 사용하다 보면, 돈이 쌓이기만 하고 활용되지 못한 채 묵혀지는 경우가 많다.&lt;br /&gt;특히, 예금이나 입출금 계좌 위주로 구성되어 있다 보니 모은 돈을 적극적으로 불려나가기엔 한계가 있다.&lt;/p&gt;
&lt;p data-end=&quot;368&quot; data-start=&quot;249&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;465&quot; data-start=&quot;370&quot; data-ke-size=&quot;size16&quot;&gt;이에 우리 팀은 &lt;b&gt;&amp;lsquo;국내 주식 소수점 거래&amp;rsquo;&lt;/b&gt;에 주목하여&lt;br /&gt;모임통장의 자금을 함께 투자하고 성장시킬 수 있는 서비스 'ToGather'를 기획하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s61BL/dJMcaaQ7ekN/Kr1yoqXyCTlwIcIaqTjKs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s61BL/dJMcaaQ7ekN/Kr1yoqXyCTlwIcIaqTjKs0/img.png&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;765&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4651%; margin-right: 10px;&quot; data-widthpercent=&quot;50.05&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s61BL/dJMcaaQ7ekN/Kr1yoqXyCTlwIcIaqTjKs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs61BL%2FdJMcaaQ7ekN%2FKr1yoqXyCTlwIcIaqTjKs0%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;1367&quot; height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ChUFQ/dJMcag4ROuq/DKb0rwFsyMF4I9YNtKK9G0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ChUFQ/dJMcag4ROuq/DKb0rwFsyMF4I9YNtKK9G0/img.png&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;767&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3722%;&quot; data-widthpercent=&quot;49.95&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ChUFQ/dJMcag4ROuq/DKb0rwFsyMF4I9YNtKK9G0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FChUFQ%2FdJMcag4ROuq%2FDKb0rwFsyMF4I9YNtKK9G0%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;1368&quot; height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;주식도 다함께 할 수 있으면 좋겠다!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C%20%EC%83%81%ED%99%A9%20%26%20%ED%95%B5%EC%8B%AC%20%EA%B8%B0%EB%8A%A5-1-2&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;핵심 기능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차례대로 다음과 같은 흐름으로 구성되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 계좌 개설 &amp;amp; 그룹 생성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HwpVk/dJMcajgdCpa/uFLvoNS4Dm3tIBU9Nf2uAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HwpVk/dJMcajgdCpa/uFLvoNS4Dm3tIBU9Nf2uAK/img.png&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;769&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3181%; margin-right: 10px;&quot; data-widthpercent=&quot;49.9&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HwpVk/dJMcajgdCpa/uFLvoNS4Dm3tIBU9Nf2uAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHwpVk%2FdJMcajgdCpa%2FuFLvoNS4Dm3tIBU9Nf2uAK%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;1367&quot; height=&quot;769&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqj5cx/dJMcaaQ7epA/oiUjoJbH7gmcgyd6d90dp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqj5cx/dJMcaaQ7epA/oiUjoJbH7gmcgyd6d90dp1/img.png&quot; data-origin-width=&quot;1369&quot; data-origin-height=&quot;767&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.5191%;&quot; data-widthpercent=&quot;50.1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqj5cx/dJMcaaQ7epA/oiUjoJbH7gmcgyd6d90dp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdqj5cx%2FdJMcaaQ7epA%2FoiUjoJbH7gmcgyd6d90dp1%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;1369&quot; height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;계좌 개설 &amp;amp; 그룹 생성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;- 포트폴리오&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yN1fS/dJMcag4ROIF/pkTVO7Nb4J9et8luIhbY6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yN1fS/dJMcag4ROIF/pkTVO7Nb4J9et8luIhbY6k/img.png&quot; data-alt=&quot;포트폴리오&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yN1fS/dJMcag4ROIF/pkTVO7Nb4J9et8luIhbY6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyN1fS%2FdJMcag4ROIF%2FpkTVO7Nb4J9et8luIhbY6k%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;537&quot; height=&quot;301&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;포트폴리오&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 주식 리스트 &amp;amp; 캔들 차트&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/79tnI/dJMcaj8mnRW/rY2KjOtQU1Nu3Wdsxhp65K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/79tnI/dJMcaj8mnRW/rY2KjOtQU1Nu3Wdsxhp65K/img.png&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;769&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4085%; margin-right: 10px;&quot; data-widthpercent=&quot;49.99&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/79tnI/dJMcaj8mnRW/rY2KjOtQU1Nu3Wdsxhp65K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F79tnI%2FdJMcaj8mnRW%2FrY2KjOtQU1Nu3Wdsxhp65K%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;1368&quot; height=&quot;769&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbvhWV/dJMcaiuQwrJ/zvSDXYHm7RLcuL9SPkMgNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbvhWV/dJMcaiuQwrJ/zvSDXYHm7RLcuL9SPkMgNK/img.png&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;767&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;50.01&quot; style=&quot;width: 49.4287%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbvhWV/dJMcaiuQwrJ/zvSDXYHm7RLcuL9SPkMgNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbvhWV%2FdJMcaiuQwrJ%2FzvSDXYHm7RLcuL9SPkMgNK%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;1365&quot; height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;주식 리스트 &amp;amp; 캔들 차트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 주식 매매 (매수, 매도)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O5vDG/dJMcaiuQwGa/cQRR7Kt97o6IODLrNzi9m1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O5vDG/dJMcaiuQwGa/cQRR7Kt97o6IODLrNzi9m1/img.png&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;765&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.5012%; margin-right: 10px;&quot; data-widthpercent=&quot;50.08&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O5vDG/dJMcaiuQwGa/cQRR7Kt97o6IODLrNzi9m1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO5vDG%2FdJMcaiuQwGa%2FcQRR7Kt97o6IODLrNzi9m1%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;1368&quot; height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3nv4U/dJMcaaKlEai/mRM3Td4LIGfMotLMrZsfUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3nv4U/dJMcaaKlEai/mRM3Td4LIGfMotLMrZsfUk/img.png&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;767&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.336%;&quot; data-widthpercent=&quot;49.92&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3nv4U/dJMcaaKlEai/mRM3Td4LIGfMotLMrZsfUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3nv4U%2FdJMcaaKlEai%2FmRM3Td4LIGfMotLMrZsfUk%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;1367&quot; height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;매수 &amp;amp; 매도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 투표 &amp;amp; 히스토리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTTBCm/dJMcaj8mocG/6kIEOYpSw1UYcDoK46sHz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTTBCm/dJMcaj8mocG/6kIEOYpSw1UYcDoK46sHz1/img.png&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;765&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.5655%; margin-right: 10px;&quot; data-widthpercent=&quot;50.15&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTTBCm/dJMcaj8mocG/6kIEOYpSw1UYcDoK46sHz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTTBCm%2FdJMcaj8mocG%2F6kIEOYpSw1UYcDoK46sHz1%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;1368&quot; height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TJslw/dJMcaesrHgI/INuCXFleXkYm39ISkwHK6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TJslw/dJMcaesrHgI/INuCXFleXkYm39ISkwHK6K/img.png&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;769&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;49.85&quot; style=&quot;width: 49.2717%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TJslw/dJMcaesrHgI/INuCXFleXkYm39ISkwHK6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTJslw%2FdJMcaesrHgI%2FINuCXFleXkYm39ISkwHK6K%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;1367&quot; height=&quot;769&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;투표 &amp;amp; 히스토리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 페이(거래 내역, QR 스캔)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvLNEv/dJMcaiInF43/PCDpDtKaxfjnzJ4jIlaUq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvLNEv/dJMcaiInF43/PCDpDtKaxfjnzJ4jIlaUq1/img.png&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;768&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3864%; margin-right: 10px;&quot; data-widthpercent=&quot;49.97&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvLNEv/dJMcaiInF43/PCDpDtKaxfjnzJ4jIlaUq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvLNEv%2FdJMcaiInF43%2FPCDpDtKaxfjnzJ4jIlaUq1%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;1365&quot; height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxl4sh/dJMcabJfXlL/VQzpwL6PDo287BurUgbP8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxl4sh/dJMcabJfXlL/VQzpwL6PDo287BurUgbP8K/img.png&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;767&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4508%;&quot; data-widthpercent=&quot;50.03&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxl4sh/dJMcabJfXlL/VQzpwL6PDo287BurUgbP8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbxl4sh%2FdJMcabJfXlL%2FVQzpwL6PDo287BurUgbP8K%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;1365&quot; height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;페이(거래 내역, QR 스캔)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C%20%EC%83%81%ED%99%A9%20%26%20%ED%95%B5%EC%8B%AC%20%EA%B8%B0%EB%8A%A5-1-2&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;시연 영상&lt;/h4&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/458991738&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bv2G0B/hyZMT7Pjwy/bBgjiRvCPp1eKj6T65wvZk/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/GwLYX/hyZMOrSmtU/8YPpaRvoON1d83j5gNs610/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-play-service=&quot;daum_tistory&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/458991738?service=daum_tistory&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;프로젝트 회고&lt;/b&gt;&lt;/h4&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설계부터 개발까지 고려해야 할 요소들이 정말 많았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중에서도 특히 기억에 남는 이슈를 꼽자면,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 매매 로직 구현을 위한 캐싱 테이블 도입 &amp;amp; ERD 전면 수정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;ㄴ 중간 발표 QnA 시간에, 선임님께서 &amp;ldquo;ERD가 실제 매매에 사용되는 실무 테이블 구조와 굉장히 유사하네요.&amp;rdquo;라고 말씀해주셨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무! 큰 감동..이었다. 사실 그 ERD를 만들면서 하루 반이 걸렸었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프론트엔드, 백엔드 강사님 바짓가랑이를 붙잡아가면서 수정하고 수정했는데 알아봐주셔서 정말 감사했다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1761996598786&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;[신투 프디아] ERD 트레이딩 시스템 개선기 - 왜 다시 설계했을까?&quot; data-og-description=&quot;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다 ERD 트레이딩 시스템 개선기프로젝트 2주차&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/96&quot; data-og-url=&quot;https://jigoo-log.tistory.com/96&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HJ054/hyZML22CkS/xo5j5iFJvJ046keoJjo8ek/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bz6AP3/hyZMJqBSkZ/CsKQ3LeINGWV5jg5kGLR3k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Pkr2f/hyZMQiUI07/FTqTdwiXPg0yyOoP9ANCv0/img.png?width=2150&amp;amp;height=992&amp;amp;face=0_0_2150_992&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/96&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/96&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HJ054/hyZML22CkS/xo5j5iFJvJ046keoJjo8ek/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bz6AP3/hyZMJqBSkZ/CsKQ3LeINGWV5jg5kGLR3k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Pkr2f/hyZMQiUI07/FTqTdwiXPg0yyOoP9ANCv0/img.png?width=2150&amp;amp;height=992&amp;amp;face=0_0_2150_992');&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;[신투 프디아] ERD 트레이딩 시스템 개선기 - 왜 다시 설계했을까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다 ERD 트레이딩 시스템 개선기프로젝트 2주차&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 결제가 정수가 되도록 매매 로직 개선&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄴ 그룹원별 결제 금액이 &lt;b&gt;소수점 단위로 분배&lt;/b&gt;되면서, 일부 그룹원의 &lt;b&gt;원화 결제 처리에 오류&lt;/b&gt;가 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 삼성전자(84,000원)를 세 명이 공동 구매할 경우 인당 약 &lt;b&gt;0.3333주&lt;/b&gt;, 즉 &lt;b&gt;27,997.2원&lt;/b&gt;이 결제되어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 주식 거래는 소수점 단위가 가능해도, &lt;b&gt;결제는 반드시 정수 단위&lt;/b&gt;여야 한다.&lt;br /&gt;그래서 체결 금액이 정수가 되도록 &lt;b&gt;금액을 조정&lt;/b&gt;하는 방식을 도입했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막까지 머리를 굴려가며 고민했던 기능이라 더욱 기억에 남는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRXYB5/dJMcabWM9l0/ckwgZJ4zvKxKZTjc9zOot1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRXYB5/dJMcabWM9l0/ckwgZJ4zvKxKZTjc9zOot1/img.png&quot; data-origin-width=&quot;1370&quot; data-origin-height=&quot;766&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.505%; margin-right: 10px;&quot; data-widthpercent=&quot;50.09&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRXYB5/dJMcabWM9l0/ckwgZJ4zvKxKZTjc9zOot1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRXYB5%2FdJMcabWM9l0%2FckwgZJ4zvKxKZTjc9zOot1%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;1370&quot; height=&quot;766&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zjYLk/dJMcafZbUyN/BkKsnKPL2pjZyKy7cDE59k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zjYLk/dJMcafZbUyN/BkKsnKPL2pjZyKy7cDE59k/img.png&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;767&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3322%;&quot; data-widthpercent=&quot;49.91&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zjYLk/dJMcafZbUyN/BkKsnKPL2pjZyKy7cDE59k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzjYLk%2FdJMcafZbUyN%2FBkKsnKPL2pjZyKy7cDE59k%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;1367&quot; height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;매매 시 가격 조정 로직&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1761996574129&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[신투 프디아] 그룹 단위 주식 공동 매매 - 결제는 정수, 거래는 소수&quot; data-og-description=&quot;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다 바쁘다 바빠 현대 사회  &amp;zwj;♀️ 투게더&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/99&quot; data-og-url=&quot;https://jigoo-log.tistory.com/99&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/lDREj/hyZMSHQadl/oDmntyKOr0zfgrUqTIysL1/img.jpg?width=380&amp;amp;height=291&amp;amp;face=152_83_253_194,https://scrap.kakaocdn.net/dn/eavNcE/hyZMQJ1z3c/VjmrZ9Tq59ij5kZhmUh5UK/img.jpg?width=380&amp;amp;height=291&amp;amp;face=152_83_253_194,https://scrap.kakaocdn.net/dn/coOW8Y/hyZMM8F4BF/S2yYBK3NEfpOXoJESGw7ak/img.png?width=3012&amp;amp;height=3980&amp;amp;face=0_0_3012_3980&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/99&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/99&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/lDREj/hyZMSHQadl/oDmntyKOr0zfgrUqTIysL1/img.jpg?width=380&amp;amp;height=291&amp;amp;face=152_83_253_194,https://scrap.kakaocdn.net/dn/eavNcE/hyZMQJ1z3c/VjmrZ9Tq59ij5kZhmUh5UK/img.jpg?width=380&amp;amp;height=291&amp;amp;face=152_83_253_194,https://scrap.kakaocdn.net/dn/coOW8Y/hyZMM8F4BF/S2yYBK3NEfpOXoJESGw7ak/img.png?width=3012&amp;amp;height=3980&amp;amp;face=0_0_3012_3980');&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;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다 바쁘다 바빠 현대 사회  &amp;zwj;♀️ 투게더&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. MSA 설계 &amp;amp; API Gateway 활용 &lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ㄴ MSA 구조로 설계하며 정말 많은 이슈를 마주했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 &lt;b&gt;JWT 검증 로직에서 중복 문제&lt;/b&gt;를 해결한 과정이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bm6OLc/dJMcajUPcvQ/tRcv9cIyNDY2356HxYSGrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bm6OLc/dJMcajUPcvQ/tRcv9cIyNDY2356HxYSGrk/img.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;765&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3539%; margin-right: 10px;&quot; data-widthpercent=&quot;49.93&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bm6OLc/dJMcajUPcvQ/tRcv9cIyNDY2356HxYSGrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbm6OLc%2FdJMcajUPcvQ%2FtRcv9cIyNDY2356HxYSGrk%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;1364&quot; height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b94x9g/dJMcad1nlOy/yX4YSITYKUgdfxZByVePKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b94x9g/dJMcad1nlOy/yX4YSITYKUgdfxZByVePKK/img.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;763&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4833%;&quot; data-widthpercent=&quot;50.07&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b94x9g/dJMcad1nlOy/yX4YSITYKUgdfxZByVePKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb94x9g%2FdJMcad1nlOy%2FyX4YSITYKUgdfxZByVePKK%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;1364&quot; height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;JWT 검증 로직 중복 이슈&lt;/figcaption&gt;
&lt;/figure&gt;
&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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;차례대로 &lt;b&gt;왜 MSA 구조를 선택했는지&lt;/b&gt;, 그리고 &lt;b&gt;API Gateway를 통해 어떤 문제를 해결했는지 &lt;/b&gt;그 과정을 자세히 정리했다.  &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;figure id=&quot;og_1761996888296&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;[신투 프디아] MSA 좋은 듯 어렵다 - 왜 투게더는 MSA로 설계했을까?&quot; data-og-description=&quot;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다. 이번 글에서 다룰 내용은 바로!우리 서비&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/98&quot; data-og-url=&quot;https://jigoo-log.tistory.com/98&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cERM04/hyZLbIhO50/XHnCkdWf9yIkGKpwq70voK/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/e9cNQ/hyZMANe0zj/Rg34XyvhUJK79mIiOIBWh0/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/cdGgZk/hyZMXvB5U7/PUeebmEyV6HN0vtEo7PwAK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/98&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cERM04/hyZLbIhO50/XHnCkdWf9yIkGKpwq70voK/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/e9cNQ/hyZMANe0zj/Rg34XyvhUJK79mIiOIBWh0/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/cdGgZk/hyZMXvB5U7/PUeebmEyV6HN0vtEo7PwAK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&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;[신투 프디아] MSA 좋은 듯 어렵다 - 왜 투게더는 MSA로 설계했을까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다. 이번 글에서 다룰 내용은 바로!우리 서비&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1761996929401&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;[신투 프디아] API Gateway와 MSA에서의 경로 설계 - /api 접두사, 꼭 써야 할까?&quot; data-og-description=&quot;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다 이얏호 중간 발표가 끝나고 드디어 제대로&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/97&quot; data-og-url=&quot;https://jigoo-log.tistory.com/97&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/RYCPv/hyZMWXLJij/otsTf6LghpNnQagIGfRbsK/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/bdEDmu/hyZMulWJdK/ZkAwbPo56re50pHAdK1SMk/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/Z2pRq/hyZMXvB7OF/Rlz1y5ArAPIdBq8iQkgzg0/img.png?width=6000&amp;amp;height=3375&amp;amp;face=0_0_6000_3375&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/97&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/97&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/RYCPv/hyZMWXLJij/otsTf6LghpNnQagIGfRbsK/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/bdEDmu/hyZMulWJdK/ZkAwbPo56re50pHAdK1SMk/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/Z2pRq/hyZMXvB7OF/Rlz1y5ArAPIdBq8iQkgzg0/img.png?width=6000&amp;amp;height=3375&amp;amp;face=0_0_6000_3375');&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;[신투 프디아] API Gateway와 MSA에서의 경로 설계 - /api 접두사, 꼭 써야 할까?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 알파코에서 진행되는 [신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'를 기반으로 작성되었습니다 이얏호 중간 발표가 끝나고 드디어 제대로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. Websocket: 프론트 - 백엔드 연동 이슈&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ㄴ 처음에는 기본&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;WebSocket(ws)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;으로 잘 동작하고 있었지만, 프론트엔드에서 SockJS로 교체한 뒤부터 문제가 발생했다.&lt;/p&gt;
&lt;p data-start=&quot;251&quot; data-end=&quot;356&quot; data-ke-size=&quot;size16&quot;&gt;우리 서비스는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;API Gateway를 통해 포트별로 요청을 라우팅&lt;/b&gt;하기 때문에 별도의 CORS 설정이 필요 없었다.&lt;br /&gt;그런데 이상하게도 계속&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;CORS 에러&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;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 style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;358&quot; data-end=&quot;484&quot; data-ke-size=&quot;size16&quot;&gt;속는 셈치고 하위 서비스에도 CORS 설정을 추가해봤지만, 이번엔&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;403 Forbidden&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;오류가 떴다.&lt;br /&gt;Gateway에서 이미&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;인증&amp;middot;인가 필터&lt;/b&gt;를 거친 요청만 통과하도록 되어 있었기 때문에, CORS 요청이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Gateway 단에서 차단&lt;/b&gt;된 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;358&quot; data-end=&quot;484&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;573&quot; data-end=&quot;729&quot; data-ke-size=&quot;size16&quot;&gt;문제의 근본적인 원인은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;SockJS의 통신 방식&lt;/b&gt;에 있었다.&lt;br /&gt;SockJS는 초기 연결 시 WebSocket으로 바로 접속하지 않고&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;573&quot; data-end=&quot;729&quot; data-ke-size=&quot;size16&quot;&gt;먼저&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;HTTP 요청(XHR 폴백 방식)&lt;/b&gt;으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;핸드셰이크&lt;/b&gt;를 시도한 뒤&lt;br /&gt;그 다음에야 WebSocket으로 업그레이드한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;731&quot; data-end=&quot;901&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;731&quot; data-end=&quot;901&quot; data-ke-size=&quot;size16&quot;&gt;즉, 첫 요청이 WebSocket이 아닌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;일반 HTTP 요청&lt;/b&gt;이기 때문에&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;731&quot; data-end=&quot;901&quot; data-ke-size=&quot;size16&quot;&gt;Gateway 입장에서는 이를 WebSocket 요청으로 인식하지 못하고&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;731&quot; data-end=&quot;901&quot; data-ke-size=&quot;size16&quot;&gt;기존의 CORS&amp;middot;인증 필터를 타게 된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;731&quot; data-end=&quot;901&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;731&quot; data-end=&quot;901&quot; data-ke-size=&quot;size16&quot;&gt;그 결과,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;CORS가 이중으로 검증&lt;/b&gt;되고 핸드셰이크가 정상적으로 완료되지 않았던 것이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-start=&quot;919&quot; data-end=&quot;964&quot;&gt;CORS는&lt;span&gt;&amp;nbsp;&lt;/span&gt;API Gateway에서만 허용, 하위 서비스에서는 제거&lt;/li&gt;
&lt;li data-start=&quot;965&quot; data-end=&quot;1009&quot;&gt;Gateway가 WebSocket 연결을 직접 받아 하위 서비스로 라우팅&lt;/li&gt;
&lt;li data-start=&quot;1010&quot; data-end=&quot;1057&quot;&gt;프론트엔드는&lt;span&gt;&amp;nbsp;&lt;/span&gt;SockJS 대신 순수 WebSocket(ws)&lt;span&gt;&amp;nbsp;&lt;/span&gt;으로 복귀&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 방식으로 해결했다. 이 이슈는 따로 글을 써서 첨부해야 할 것 같다!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AwgLf/dJMcaksE8Sd/JodfBlR7a8lkjNka9diQY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AwgLf/dJMcaksE8Sd/JodfBlR7a8lkjNka9diQY0/img.png&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;766&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.487%; margin-right: 10px;&quot; data-widthpercent=&quot;50.07&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AwgLf/dJMcaksE8Sd/JodfBlR7a8lkjNka9diQY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAwgLf%2FdJMcaksE8Sd%2FJodfBlR7a8lkjNka9diQY0%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;1367&quot; height=&quot;766&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGhYhY/dJMcae63glO/wzlbdXvazpI3zGW2iWxP6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGhYhY/dJMcae63glO/wzlbdXvazpI3zGW2iWxP6K/img.png&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;767&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3502%;&quot; data-widthpercent=&quot;49.93&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGhYhY/dJMcae63glO/wzlbdXvazpI3zGW2iWxP6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGhYhY%2FdJMcae63glO%2FwzlbdXvazpI3zGW2iWxP6K%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;1365&quot; height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;웹소켓 연결 중 CORS 중복 에러 이슈&lt;/figcaption&gt;
&lt;/figure&gt;
&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;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5. 현재가 - Rest 방식, 호가 - 웹소켓 구독 이슈&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ㄴ 주식 화면에서는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;202&quot; data-start=&quot;123&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;157&quot; data-start=&quot;123&quot;&gt;리스트 페이지에서 종목의 현재가를 보여주고&lt;/li&gt;
&lt;li data-end=&quot;202&quot; data-start=&quot;158&quot;&gt;매매 페이지에서는 호가창(매수&amp;middot;매도 단가) 을 표시해야 했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;372&quot; data-start=&quot;204&quot; data-ke-size=&quot;size16&quot;&gt;그러나 현재가와 호가 데이터가 각각 별도의 WebSocket 채널로 구독되어야 해서&lt;/p&gt;
&lt;p data-end=&quot;372&quot; data-start=&quot;204&quot; data-ke-size=&quot;size16&quot;&gt;두 데이터를 동시에 받으려면 &lt;b&gt;구독 수가 두 배&lt;/b&gt;로 늘어났다.&lt;br /&gt;게다가 API에서 제공하는 &lt;b&gt;최대 구독 한도&lt;/b&gt;가 있어 그대로 구현하기엔 부담이 컸다.&lt;/p&gt;
&lt;p data-end=&quot;392&quot; data-start=&quot;374&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;392&quot; data-start=&quot;374&quot; data-ke-size=&quot;size16&quot;&gt;따라서, 다음처럼 해결했다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;504&quot; data-start=&quot;393&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;440&quot; data-start=&quot;393&quot;&gt;&lt;b&gt;호가 &lt;/b&gt;데이터 &amp;rarr; 실시간성이 중요하므로 &lt;b&gt;WebSocket으로 구독&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;504&quot; data-start=&quot;441&quot;&gt;&lt;b&gt;현재가 &lt;/b&gt;데이터 &amp;rarr; 초 단위 실시간성보다 안정성이 중요하므로 &lt;b&gt;1분 주기 REST API로 갱신&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, &lt;b&gt;장 마감 이후에는&lt;/b&gt; WebSocket 구독이 불가능하기 때문에&lt;br /&gt;그 시점부터는 자동으로 &lt;b&gt;REST API로 폴백(fallback)&lt;/b&gt; 하도록 설계했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;546&quot; data-start=&quot;506&quot; data-ke-size=&quot;size16&quot;&gt;이 방식으로 서버 부하를 줄이면서도 실시간성을 유지할 수 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;765&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvdkJw/dJMcaj1ANmQ/seGkVh9DcdlxlYUDPq3YA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvdkJw/dJMcaj1ANmQ/seGkVh9DcdlxlYUDPq3YA0/img.png&quot; data-alt=&quot;웹소켓 현재가, 호가 구독 이슈&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvdkJw/dJMcaj1ANmQ/seGkVh9DcdlxlYUDPq3YA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvdkJw%2FdJMcaj1ANmQ%2FseGkVh9DcdlxlYUDPq3YA0%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;669&quot; height=&quot;374&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;웹소켓 현재가, 호가 구독 이슈&lt;/figcaption&gt;
&lt;/figure&gt;
&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;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;6. 팀 로그!&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 언급한 것들 외에도, 정말 많은 &lt;b&gt;기술적 이슈&lt;/b&gt;들이 있었다.&lt;br /&gt;그때마다 우리 팀은 매주 작성하는 &lt;b&gt;이슈 리포트&lt;/b&gt;에 최대한 자세히 기록하려고 노력했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발 일정에 쫓기면서도 매주 금요일마다 팀 로그를 자세히 쓰려니 쉽지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 지금 돌이켜보면, 이 기록들이 우리 팀이 성장하는 발자취가 되었다고 생각한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/befFoZ/dJMcajmZdD8/rDpduwULY2Lfk3Z2pZoO6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/befFoZ/dJMcajmZdD8/rDpduwULY2Lfk3Z2pZoO6K/img.png&quot; data-alt=&quot;한땀한땀 팀로그&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/befFoZ/dJMcajmZdD8/rDpduwULY2Lfk3Z2pZoO6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbefFoZ%2FdJMcajmZdD8%2FrDpduwULY2Lfk3Z2pZoO6K%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;1272&quot; height=&quot;176&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;한땀한땀 팀로그&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;7. 최종 발표 회고&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 최종 발표 직전까지도 이슈가 많았다.&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;바로 배포 과정에서 문제가 생겨, 만들어둔 몇몇 기능들이 하루 전에 모두 날아가 버린 것이다.&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;그래서 다같이 급하게 날라간 기능을 복구시키느라 돌아가면서 한 명씩 울 뻔했다.&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;사실 난 전 날 밤에 피피티 만들다가 정말 울었다..&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;다행히 거의 다 복구를 시켰고&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;기존 개발 단계에서의 완성도가 100이었다면 최종 발표 때의 완성도는 85 정도였던 것 같다.&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;아직도 이게 아쉽다!&lt;/p&gt;
&lt;p data-end=&quot;155&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 장 마감 이후에도 매매 제안이 가능하도록 구현해두었는데,&lt;br /&gt;시연 당일 배포된 서비스에서는 WebSocket 연동 이상으로 매매 창이 뜨지 않는 문제가 발생했다.&lt;br /&gt;그래서 급하게 로컬 환경에서 실행한 버전을 보여드려 임기응변으로 문제를 해결했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직도 요상한 것은 최종 발표가 끝나고 인프라 팀원이 재배포하니 매매창이 멀쩡하게 잘 떴다는 점..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말 뭐였을까..?&lt;/p&gt;
&lt;p 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;결국 당일까지 팀원 모두가 밤을 새워 PPT를 완성했고&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;발표 후에 QnA 때&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;ldquo;필요한 내용이 잘 정리되어 있어서 보기 좋았다&amp;rdquo;는 피드백을 들었다.&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;p data-end=&quot;189&quot; data-start=&quot;100&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;457&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Iq04R/dJMcaaDz0Nd/B6BKhQxp3diqYNFyXHt0j1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Iq04R/dJMcaaDz0Nd/B6BKhQxp3diqYNFyXHt0j1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Iq04R/dJMcaaDz0Nd/B6BKhQxp3diqYNFyXHt0j1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIq04R%2FdJMcaaDz0Nd%2FB6BKhQxp3diqYNFyXHt0j1%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;354&quot; height=&quot;265&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;457&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;189&quot; data-start=&quot;100&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;189&quot; data-start=&quot;100&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;189&quot; data-start=&quot;100&quot; data-ke-size=&quot;size16&quot;&gt;우리 서비스가 잘한 점은,&lt;br /&gt;&lt;b&gt;유저 &amp;rarr; 그룹 &amp;rarr; 투표 &amp;rarr; 매매 &amp;rarr; 페이&lt;/b&gt;로 이어지는&lt;/p&gt;
&lt;p data-end=&quot;189&quot; data-start=&quot;100&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;하나의 완전한 로직 사이클을 설계하고 구현했다는 것&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-end=&quot;279&quot; data-start=&quot;191&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;279&quot; data-start=&quot;191&quot; data-ke-size=&quot;size16&quot;&gt;MSA 구조라 복잡함이 많았음에도&lt;/p&gt;
&lt;p data-end=&quot;279&quot; data-start=&quot;191&quot; data-ke-size=&quot;size16&quot;&gt;각 서비스 간의 연동을 끝까지 해냈고,&lt;br /&gt;실제로 굴러가는 하나의 사이클을 완성한 것이 정말 뿌듯했다!&lt;/p&gt;
&lt;p data-end=&quot;279&quot; data-start=&quot;191&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;357&quot; data-start=&quot;281&quot; data-ke-size=&quot;size16&quot;&gt;특히 매매에서 멈추지 않고 페이까지 연결한 점이&lt;br /&gt;우리 서비스만의 확실한 차별점이었다고 생각한다.&lt;/p&gt;
&lt;p data-end=&quot;357&quot; data-start=&quot;281&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nsD1b/dJMcagjuKwB/KjSG4KfcjTiK0Jm4ZPRwU0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nsD1b/dJMcagjuKwB/KjSG4KfcjTiK0Jm4ZPRwU0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nsD1b/dJMcagjuKwB/KjSG4KfcjTiK0Jm4ZPRwU0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnsD1b%2FdJMcagjuKwB%2FKjSG4KfcjTiK0Jm4ZPRwU0%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;387&quot; height=&quot;229&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;173&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;무엇보다 다섯 명의 모든 팀원들이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각자의 영역에서 굵직하고 도전적인 개발 과제를 하나씩 맡아&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝까지 완성해냈다는 점이 정말 자랑스럽다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회고를 쓰는 지금은 수료도 했고, 우수 수료생 발표도 나온 상황이다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y4n0U/dJMcakzqKjs/ik3LBR4KijUDqmGFSLIqy0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y4n0U/dJMcakzqKjs/ik3LBR4KijUDqmGFSLIqy0/img.jpg&quot; data-alt=&quot;가보자!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y4n0U/dJMcakzqKjs/ik3LBR4KijUDqmGFSLIqy0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy4n0U%2FdJMcakzqKjs%2Fik3LBR4KijUDqmGFSLIqy0%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;369&quot; height=&quot;325&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;가보자!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>[프디아] 파이널 프로젝트</category>
      <category>금융</category>
      <category>프디아</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/100</guid>
      <comments>https://jigoo-log.tistory.com/100#entry100comment</comments>
      <pubDate>Sat, 1 Nov 2025 22:18:40 +0900</pubDate>
    </item>
    <item>
      <title>[신투 프디아] 그룹 단위 주식 공동 매매 - 결제는 정수, 거래는 소수</title>
      <link>https://jigoo-log.tistory.com/99</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot; data-start=&quot;121&quot; data-end=&quot;141&quot;&gt;&lt;span style=&quot;color: #1d1c1d; text-align: left;&quot;&gt;이 글은 알파코에서 진행되는&lt;/span&gt;&lt;b data-stringify-type=&quot;bold&quot;&gt;&amp;nbsp;[신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'&lt;/b&gt;&lt;span style=&quot;color: #1d1c1d; text-align: left;&quot;&gt;를 기반으로 작성되었습니다&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;바쁘다 바빠 현대 사회  &amp;zwj;♀️ &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;투게더를 개발하기 시작한게 엊그제 같은데 벌써 다음 주면 발표와 수료식이&amp;nbsp;다가온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막까지 힘내서 달려보자!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H2iF6/dJMb9fLLzCm/Mych6TvK4CB0OjWE5CnY5k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H2iF6/dJMb9fLLzCm/Mych6TvK4CB0OjWE5CnY5k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H2iF6/dJMb9fLLzCm/Mych6TvK4CB0OjWE5CnY5k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH2iF6%2FdJMb9fLLzCm%2FMych6TvK4CB0OjWE5CnY5k%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;380&quot; height=&quot;291&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;291&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 data-ke-size=&quot;size16&quot;&gt;이번 주는 이슈가 정말 많았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중에서도 특히 기억에 남는 두 가지가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1️⃣ 그룹 단위 공동 매매 시, 결제 이슈&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2️⃣ 한국투자증권 OpenAPI WebSocket 연동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 그중 첫 번째, &lt;b&gt;그룹 공동 매매 결제 이슈&lt;/b&gt;에 대해 이야기해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OuNJe/dJMb9L42fwK/bcqZE594f1CKyLir2O30ak/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OuNJe/dJMb9L42fwK/bcqZE594f1CKyLir2O30ak/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OuNJe/dJMb9L42fwK/bcqZE594f1CKyLir2O30ak/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOuNJe%2FdJMb9L42fwK%2FbcqZE594f1CKyLir2O30ak%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;300&quot; height=&quot;300&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제의 시작: 소수점은 거래되는데, 결제는 정수만 된다?&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주식 거래는 소수점 단위로 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 42,500원의 주식을 7명이 공동으로 산다면, 인당 &lt;b&gt;6071.428571..&lt;/b&gt;원을 내야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 결제 시스템(은행, 결제 API)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결제 시에는 소수점을 지원하지 않기에, &lt;b&gt;6,071원&lt;/b&gt; 또는 &lt;b&gt;6,072원&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 금액을 &lt;b&gt;내림 처리&lt;/b&gt;하면 총 결제 금액이 부족해 주문 실패&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 금액을 &lt;b&gt;올림 처리&lt;/b&gt;하면 일부 사용자가 초과 납부 &amp;rarr; 잔액 정산 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 보유 수량은 소수점인데 결제 금액은 정수 &amp;rarr; &lt;b&gt;매도 시 금액 불일치 발생&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; 해결 방안 1️⃣ : 서비스에서 차액을 보전해주자 (실패)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 이렇게 생각했다.&lt;br /&gt;&amp;ldquo;금액이 애매하게 남는다면, 서비스에서 그만큼 메워주면 되지 않을까?&amp;rdquo;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 &lt;b&gt;카카오페이의 자투리 금액 지원&lt;/b&gt;을 보고 떠올린 아이디어였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image 107.png&quot; data-origin-width=&quot;3012&quot; data-origin-height=&quot;3980&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CeFuR/dJMb84coZXv/kgujObl0xpbvmPkHM2BlF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CeFuR/dJMb84coZXv/kgujObl0xpbvmPkHM2BlF1/img.png&quot; data-alt=&quot;자투리 금액 지원&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CeFuR/dJMb84coZXv/kgujObl0xpbvmPkHM2BlF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCeFuR%2FdJMb84coZXv%2FkgujObl0xpbvmPkHM2BlF1%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;348&quot; height=&quot;460&quot; data-filename=&quot;image 107.png&quot; data-origin-width=&quot;3012&quot; data-origin-height=&quot;3980&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;자투리 금액 지원&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 42,500원을 7명이 나누면 인당 6,071.428&amp;hellip;원이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그룹원마다 6,071원으로 결제하고 &lt;b&gt;남은 0.428원 x 7명분은 우리 서비스가 부담&lt;/b&gt;하는 방식을 떠올렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 &lt;b&gt;매도 시에는 소수점 차액을 올림 처리&lt;/b&gt;하여 서비스가 소액을 회수하는 구조다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카카오페이는 여러 명이 금액을 나눌 때 &lt;b&gt;잔액이 생기면 플랫폼이 대신 부담&lt;/b&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 간 정산의 복잡성을 플랫폼이 대신 해결해주는 방식이다.&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;결제 서비스가 아닌, 투자&amp;middot;거래 시스템&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 서비스를 통해 돈을 메워주는 방식으로는 문제가 근본적으로 해결되지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. DB에 기록된 &lt;b&gt;보유 단가와 실제 결제 금액이 일치하지 않아&lt;/b&gt;, 매도 시 오차가 누적된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 사용자 거래 내역이 소수점 없이 저장되어 &amp;gt;&lt;b&gt; 데이터 정합성 유지가 불가능하다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국, '서비스가 대신 내주는 방식'은 결제 플랫폼에는 통하지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;거래 정합성이 중요한 트레이딩 시스템에서는 통하지 않는다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; 해결 방안 2️⃣ : 애초에 &amp;lsquo;나누어 떨어지는 값&amp;rsquo;만 계산하자 (성공)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 결제 단계에서 맞추는 대신,&lt;br /&gt;&lt;b&gt;매수 투표 단계에서부터 나누어떨어지는 금액만 계산&lt;/b&gt;하기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;42,500 &amp;divide; 7 = 6,071.428&amp;hellip;&amp;nbsp;&amp;rarr; 자동으로 &lt;b&gt;6,071원 &amp;times; 7 = 42,497원&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;p data-ke-size=&quot;size16&quot;&gt;사용자에게 그 값을 매매 투표 생성 전 보여주기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기에는 이 로직을 &lt;b&gt;Trading-service&lt;/b&gt;에 두려고 했지만,&lt;br /&gt;이 서비스는 주문&amp;middot;체결에 집중해야 하므로&lt;br /&gt;소수점 반올림과 같은 비즈니스 로직은 &lt;b&gt;프론트엔드 혹은 Vote-serice로 분리&lt;/b&gt;하는 것이 낫다고 판단했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;정리하자면!&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&lt;b&gt; 프론트엔드에서&lt;/b&gt; 먼저 정수 단위로 나누어 떨어지는 금액을 계산한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 사용자에게 나누어 떨어지는 금액을 표시하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 확인된 금액으로 투표를 진행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;Trading-service&lt;/b&gt;는 전달받은 정수 금액으로만 실제 주문, 체결을 수행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 이후에는 &lt;b&gt;Vote-service(백엔드)&lt;/b&gt;에서 프론트가 전달한 금액을 한 번 더 검증, 확정하는 구조로 고도화하는 방식을 고민중이다.&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; 결론 ✍️&lt;/b&gt;&lt;/h4&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;/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;&amp;nbsp;&lt;/p&gt;</description>
      <category>[프디아] 파이널 프로젝트</category>
      <category>MSA</category>
      <category>소수점거래</category>
      <category>트레이딩</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/99</guid>
      <comments>https://jigoo-log.tistory.com/99#entry99comment</comments>
      <pubDate>Fri, 17 Oct 2025 16:08:27 +0900</pubDate>
    </item>
    <item>
      <title>[신투 프디아] MSA 좋은 듯 어렵다 - 왜 투게더는 MSA로 설계했을까?</title>
      <link>https://jigoo-log.tistory.com/98</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;이&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;/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;&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;우리 서비스에 '왜 MSA 방식을 도입했느냐'이다!&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;350&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QNqha/btsQ58lVqRG/9UiqIeYNZ8aTedcNi4Izf1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QNqha/btsQ58lVqRG/9UiqIeYNZ8aTedcNi4Izf1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QNqha/btsQ58lVqRG/9UiqIeYNZ8aTedcNi4Izf1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQNqha%2FbtsQ58lVqRG%2F9UiqIeYNZ8aTedcNi4Izf1%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;210&quot; height=&quot;206&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;344&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;style8&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  시작에 앞서 MSA 란 무엇일까?&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 MSA(Microservice Architecture)와 모놀리식(Monolithic Architecture)의 차이를 간단히 짚고 넘어가자.&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;1280&quot; data-origin-height=&quot;619&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C8iTT/btsQ7zXdi8L/cglZYsLGacKF4jwpiuTU2K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C8iTT/btsQ7zXdi8L/cglZYsLGacKF4jwpiuTU2K/img.jpg&quot; data-alt=&quot;모놀리식 vs MSA&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C8iTT/btsQ7zXdi8L/cglZYsLGacKF4jwpiuTU2K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC8iTT%2FbtsQ7zXdi8L%2FcglZYsLGacKF4jwpiuTU2K%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;717&quot; height=&quot;347&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;619&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모놀리식 vs MSA&lt;/figcaption&gt;
&lt;/figure&gt;
&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;모놀리식(Monolithic Architecture)&lt;/b&gt;&lt;/h4&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; &amp;nbsp;ex) 결제 모듈 하나를 수정하더라도 전체 빌드 및 배포가 필요하다.&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;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;763&quot; data-start=&quot;665&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;695&quot; data-start=&quot;665&quot;&gt;구조가 단순해 &lt;b&gt;초기 개발 속도가 빠르다.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;740&quot; data-start=&quot;696&quot;&gt;&lt;b&gt;트랜잭션 일관성&lt;/b&gt;을 유지하기 쉽다. (모든 기능이 한 DB를 공유)&lt;/li&gt;
&lt;li data-end=&quot;763&quot; data-start=&quot;741&quot;&gt;테스트 및 디버깅이 비교적 단순하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;❌ 단점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;889&quot; data-start=&quot;775&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;804&quot; data-start=&quot;775&quot;&gt;규모가 커질수록 &lt;b&gt;유지보수가 복잡해진다.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;836&quot; data-start=&quot;805&quot;&gt;하나의 기능 수정이 전체 시스템에 영향을 미친다.&lt;/li&gt;
&lt;li data-end=&quot;869&quot; data-start=&quot;837&quot;&gt;&lt;b&gt;부분 장애가 전체 장애로 번질 위험&lt;/b&gt;이 있다.&lt;/li&gt;
&lt;li data-end=&quot;889&quot; data-start=&quot;870&quot;&gt;기술 교체나 리팩토링이 어렵다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&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;b&gt;MSA(Microservice Architecture)&lt;/b&gt;&lt;/h4&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;&amp;nbsp;- 각 서비스가 독립적으로 실행되고, API로 통신한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 즉, User, Trading, Pay, Vote가 각각의 작은 서버로 존재하는 것과 같다.&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;330&quot; data-start=&quot;322&quot; data-ke-size=&quot;size18&quot;&gt;✅ 장점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;877&quot; data-start=&quot;332&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;439&quot; data-start=&quot;332&quot;&gt;&lt;b&gt;서비스별 독립 개발 및 배포 가능&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 거래 기능만 수정하더라도 다른 서비스에 영향을 주지 않는다.&lt;br /&gt;&amp;nbsp; 각 서비스가 자기 주기로 배포되기 때문에 장애 범위가 최소화된다.&lt;/li&gt;
&lt;li data-end=&quot;552&quot; data-start=&quot;441&quot;&gt;&lt;b&gt;확장성&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 트래픽이 몰리는 특정 서비스만 선택적으로 확장 가능하다.&lt;br /&gt;&amp;nbsp; ex) 매매 트래픽이 급증하면 trading-service만 스케일 아웃 가능&lt;/li&gt;
&lt;li data-end=&quot;692&quot; data-start=&quot;554&quot;&gt;&lt;b&gt;장애 격리&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 하나의 서비스에 문제가 발생해도 다른 서비스는 정상적으로 동작한다.&lt;br /&gt;&amp;nbsp; ex) 결제 서버(pay-serviec)가 잠시 중단되어도 로그인(user-service)은 유지&lt;/li&gt;
&lt;li data-end=&quot;781&quot; data-start=&quot;694&quot;&gt;&lt;b&gt;기술 스택 선택의 자유&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 장기적으로 새로운 기술 도입이 유연하다.&lt;/li&gt;
&lt;li data-end=&quot;877&quot; data-start=&quot;783&quot;&gt;&lt;b&gt;유지보수 및 팀 협업에 유리&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 서비스 단위로 코드베이스가 분리되어 있어 팀별 병렬 개발이 가능하다.&lt;br /&gt;&amp;nbsp; 한 팀이 한 서비스에 집중할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;892&quot; data-start=&quot;884&quot; data-ke-size=&quot;size18&quot;&gt;❌ 단점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1400&quot; data-start=&quot;894&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1005&quot; data-start=&quot;894&quot;&gt;&lt;b&gt;초기 설정 및 인프라 구성 복잡&lt;/b&gt;&lt;br /&gt;&amp;nbsp;서비스 간 통신, API Gateway, Eureka(서비스 디스커버리, 클라이언트 사이드인 경우) 설정이 필요하다.&lt;/li&gt;
&lt;li data-end=&quot;1129&quot; data-start=&quot;1007&quot;&gt;&lt;b&gt; 데이터 일관성 유지의 어려움&lt;/b&gt; &lt;br /&gt;&amp;nbsp;서비스별로 DB가 분리되어 있어 &lt;b&gt;분산 트랜잭션 관리&lt;/b&gt;가 복잡하다.&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;ex)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 거래와 결제 서비스의 데이터가 동시에 반영되어야 할 때, 트랜잭션 처리가 어렵다.&lt;/li&gt;
&lt;li data-end=&quot;1245&quot; data-start=&quot;1131&quot;&gt;&lt;b&gt;운영 및 모니터링 복잡도 증가&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 로그, 트래픽, 장애를 통합해서 관리하려면 별도의 모니터링 시스템(ELK, Prometheus 등)이 필요하다.&lt;br /&gt;&amp;nbsp; 장애 추적이 어려워질 수 있다,&lt;/li&gt;
&lt;li data-end=&quot;1323&quot; data-start=&quot;1247&quot;&gt;&lt;b&gt;통신 비용 증가&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 서비스 간 REST API 또는 메시지 큐(RabbitMQ/Kafka) 호출로 인한 오버헤드가 존재한다.&lt;/li&gt;
&lt;li data-end=&quot;1400&quot; data-start=&quot;1325&quot;&gt;&lt;b&gt;배포 및 테스트 환경 관리가 까다로움&lt;/b&gt;&lt;br /&gt;&amp;nbsp; 서비스가 여러 개라 CI/CD 파이프라인과 테스트 시나리오 관리가 복잡해진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-end=&quot;129&quot; data-start=&quot;97&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;129&quot; data-start=&quot;97&quot; data-ke-size=&quot;size26&quot;&gt;  그래서! 우리 서비스는 왜 MSA를 도입했을까?&lt;/h2&gt;
&lt;p data-end=&quot;198&quot; data-start=&quot;182&quot; data-ke-size=&quot;size18&quot;&gt;1️⃣ 금융 서비스&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;446&quot; data-start=&quot;199&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;230&quot; data-start=&quot;199&quot;&gt;&lt;b&gt;금융 서비스는 안정성과 확장성이 핵심&lt;/b&gt;이다.&lt;/li&gt;
&lt;li data-end=&quot;324&quot; data-start=&quot;231&quot;&gt;실제로 대부분의 증권사, 은행, 페이 서비스가 &lt;b&gt;MSA 구조를 채택&lt;/b&gt;하고 있다.&lt;br /&gt;&amp;nbsp; 거래량이 많고, 장애가 전체 시스템에 영향을 주면 안 되기 때문이다.&lt;/li&gt;
&lt;li data-end=&quot;399&quot; data-start=&quot;325&quot;&gt;예를 들어 매매, 결제, 투표 등 각 기능이 독립적으로 동작해야 장애가 발생하더라도 다른 기능이 정상적으로 유지된다.&lt;/li&gt;
&lt;li data-end=&quot;446&quot; data-start=&quot;400&quot;&gt;따라서 '투게더&amp;rsquo; 역시 &lt;b&gt;그룹형 주식 투자 서비스&lt;/b&gt;라는 특성상, &lt;b&gt;MSA&lt;/b&gt;로 설계하기로 결정했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;487&quot; data-start=&quot;453&quot; data-ke-size=&quot;size18&quot;&gt;2️⃣ 페이 / 매매 / 투표 / 유저 - 명확한 기능 분리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;828&quot; data-start=&quot;488&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;562&quot; data-start=&quot;488&quot;&gt;우리 서비스는 Pay, Trading, Vote, User 등 &lt;b&gt;역할이 명확한 기능 단위&lt;/b&gt;로 구성되어 있다.&lt;/li&gt;
&lt;li data-end=&quot;562&quot; data-start=&quot;488&quot;&gt;&lt;b&gt;투표, 거래, 결제&lt;/b&gt;처럼 서로 다른 책임을 가진 기능들은&lt;br /&gt;&lt;b&gt;독립적인 서비스로 분리되어야 각자의 로직을 안정적으로 유지&lt;/b&gt;할 수 있다.&lt;/li&gt;
&lt;li data-end=&quot;734&quot; data-start=&quot;631&quot;&gt;이런 구조는 MSA가 가진 &lt;b&gt;도메인 단위 분리(Domain Separation)&lt;/b&gt;와 맞다고 판단했다.&lt;/li&gt;
&lt;li data-end=&quot;828&quot; data-start=&quot;735&quot;&gt;특히, 투표 결과에 따라 거래를 실행하거나, 거래 결과를 알림으로 전달하는 등 서비스 간 연동이 많기 때문에&lt;br /&gt;서비스 간의 결합도를 낮춤으로서 장애 전파를 최소화할 수 있다.&lt;/li&gt;
&lt;li data-end=&quot;828&quot; data-start=&quot;735&quot;&gt;기능 간 경계를 명확히 하고, 각 서비스의 독립성을 보장하기 위해 MSA를 결정했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;876&quot; data-start=&quot;835&quot; data-ke-size=&quot;size18&quot;&gt;3️⃣ 서비스 확장성 &amp;amp; 팀 단위 협업 용이&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1175&quot; data-start=&quot;877&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;927&quot; data-start=&quot;877&quot;&gt;현재 서비스 규모가 작기에 &lt;b&gt;MSA가 필수적이지는 않다.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1059&quot; data-start=&quot;928&quot;&gt;하지만 장기적으로 서비스를 확장하거나 기능을 추가할 때, MSA 구조는 &lt;b&gt;변화에 강하고 확장에 유연하다.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1122&quot; data-start=&quot;1060&quot;&gt;또한, 개발팀 입장에서도 &lt;b&gt;MSA 설계 경험&lt;/b&gt;은 대규모 시스템 설계 능력을 기르는 데 큰 도움이 되고, 팀 단위의 협업에서도 용이하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1214&quot; data-start=&quot;1182&quot; data-ke-size=&quot;size18&quot;&gt;4️⃣ DB는 하나로 통합&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1470&quot; data-start=&quot;1215&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1288&quot; data-start=&quot;1215&quot;&gt;현재는 &lt;b&gt;하나의 공용 DB&lt;/b&gt;를 사용하기로 결정했다.&lt;br /&gt;&amp;nbsp; 개발 효율성과 데이터 일관성 유지가 용이하기 때문이다.&lt;br /&gt;&amp;nbsp; DB를 서비스별로 분리할 경우, 서비스간 JOIN이 불가능하고 데이터 정합성 유지가 어려워지는 단점이 있다.&lt;/li&gt;
&lt;li data-end=&quot;1288&quot; data-start=&quot;1215&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;따라서, 서비스 간 JOIN은 허용하되, &lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;b&gt;각 서비스는 자기 도메인의 데이터만 수정&lt;/b&gt;하도록 설계했다. &lt;br /&gt;&lt;/span&gt;ex) trading-service가 vote 테이블을 조회할 수는 있지만, 데이터 수정(INSERT/UPDATE/DELETE)은 하지 않도록 설계&lt;/li&gt;
&lt;li data-end=&quot;1403&quot; data-start=&quot;1289&quot;&gt;이후, 서비스가 커진다면 &lt;b&gt;스탠바이 DB(Standby DB)&lt;/b&gt;를 도입하여 장애 발생 시 &lt;b&gt;즉시 복구가 가능한 구조로 전환&lt;/b&gt;할 계획이다. DB를 쪼개지 않더라도, &lt;b&gt;장애 복원력&lt;/b&gt;과 &lt;b&gt;고가용성&lt;/b&gt;의 장점은 취하려고 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1489&quot; data-start=&quot;1477&quot; 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;span style=&quot;color: #666666; text-align: start;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;명확한 도메인 분리&lt;/b&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;확장성 확보&lt;/b&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;팀 단위 협업 효율&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;이 네 가지 이유로 MSA 구조를 도입했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 투게더의 초기 아키텍처이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdZXow/btsQ7OGH0nK/lwDvRkfQsFfTXYgOJCc161/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdZXow/btsQ7OGH0nK/lwDvRkfQsFfTXYgOJCc161/img.jpg&quot; data-alt=&quot;초기 아키텍처&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdZXow/btsQ7OGH0nK/lwDvRkfQsFfTXYgOJCc161/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdZXow%2FbtsQ7OGH0nK%2FlwDvRkfQsFfTXYgOJCc161%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;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;초기 아키텍처&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서비스는 총 네 개의 주요 모듈로 구성되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Trading Service&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;rarr;&lt;span&gt; 주식 매수/매도, 체결, 예수금 관리 등 거래 관련 핵심 로직&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. User Service&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;rarr;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; 사용자 정보 관리, 로그인/회원가입 등 인증 및 사용자 관리&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. Pay Service&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;rarr;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; 그룹 자금을 활용한 페이 결제&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. Vote Aervice&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;rarr;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; 매도/매수/예수금 충전 등 투자 의사결정 투표&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;1477&quot; data-end=&quot;1489&quot;&gt;  지금까지 MSA로 개발을 하며 느낀 점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 MSA로 개발을 하며 느낀 점은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MSA 좋은 듯 어렵다..&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MYaAY/btsQ6hCUnW6/1FtuiuB4f6evGy1OY4TpqK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MYaAY/btsQ6hCUnW6/1FtuiuB4f6evGy1OY4TpqK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MYaAY/btsQ6hCUnW6/1FtuiuB4f6evGy1OY4TpqK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMYaAY%2FbtsQ6hCUnW6%2F1FtuiuB4f6evGy1OY4TpqK%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;224&quot; height=&quot;155&quot; data-origin-width=&quot;480&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;application.yml 같은 환경 설정이나 build.gradle 빌드 설정부터 시작해서,&lt;br /&gt;서비스 간 기능이 연결될 때마다 &lt;b&gt;한 번 더 구조를 고민해야 한다는 점이 쉽지 않았다.&lt;/b&gt;&lt;br /&gt;작은 수정 하나를 하더라도 다른 서비스에 미치는 영향을 고려해야 해서,&lt;br /&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;736&quot; data-origin-height=&quot;589&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chCK9Z/btsQ5YRnI6t/3h7It89QiQOR9FbKWbJTFk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chCK9Z/btsQ5YRnI6t/3h7It89QiQOR9FbKWbJTFk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chCK9Z/btsQ5YRnI6t/3h7It89QiQOR9FbKWbJTFk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchCK9Z%2FbtsQ5YRnI6t%2F3h7It89QiQOR9FbKWbJTFk%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;346&quot; height=&quot;277&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;589&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;b&gt;서비스별 독립성&lt;/b&gt;이 뚜렷하게 느껴졌다.&lt;br /&gt;특히 내가 맡은 트레이딩 시스템을 개발하면서,&lt;br /&gt;매매 기능이 &lt;b&gt;하나의 완결된 시스템처럼 돌아가는 과정&lt;/b&gt;이 흥미로웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정은 복잡하지만, &lt;b&gt;명확한 구조 안에서 개발할 수 있다는 점&lt;/b&gt;이&lt;br /&gt;결국 &lt;b&gt;MSA의 가장 큰 매력&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>[프디아] 파이널 프로젝트</category>
      <category>MSA</category>
      <category>모놀리식</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/98</guid>
      <comments>https://jigoo-log.tistory.com/98#entry98comment</comments>
      <pubDate>Sat, 11 Oct 2025 21:20:39 +0900</pubDate>
    </item>
    <item>
      <title>[신투 프디아] API Gateway와 MSA에서의 경로 설계 - /api 접두사, 꼭 써야 할까?</title>
      <link>https://jigoo-log.tistory.com/97</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; data-start=&quot;121&quot; data-end=&quot;141&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot; data-start=&quot;121&quot; data-end=&quot;141&quot;&gt;&lt;span style=&quot;color: #1d1c1d; text-align: left;&quot;&gt;이 글은 알파코에서 진행되는&lt;/span&gt;&lt;b data-stringify-type=&quot;bold&quot;&gt;&amp;nbsp;[신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'&lt;/b&gt;&lt;span style=&quot;color: #1d1c1d; text-align: left;&quot;&gt;를 기반으로 작성되었습니다&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;121&quot; data-end=&quot;141&quot;&gt;&amp;nbsp;&lt;/h3&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;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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;저번 주에는 MSA 구조 고민하고, ERD 하루 종일 만드느라..&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이번 주 월요일과 화요일에는 중간 발표를 위한 PPT를 만드느라 정신이 없었다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;피그마부터 피피티까지!&lt;/span&gt; 이정도면 나름.. 디자이너가 됐다고 봐도 무방하다. 실력은 그렇지 못하지만..&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;발표 10분에 질의응답만 30분!을 받았는데 이 내용은 다음 글에 자세히 정리해보겠다.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;6000&quot; data-origin-height=&quot;3375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wwXlE/btsQ06OZJlZ/Pc72WV8T1zMB4K7Ogc0JR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wwXlE/btsQ06OZJlZ/Pc72WV8T1zMB4K7Ogc0JR1/img.png&quot; data-alt=&quot;투게더!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wwXlE/btsQ06OZJlZ/Pc72WV8T1zMB4K7Ogc0JR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwwXlE%2FbtsQ06OZJlZ%2FPc72WV8T1zMB4K7Ogc0JR1%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;654&quot; height=&quot;368&quot; data-origin-width=&quot;6000&quot; data-origin-height=&quot;3375&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;투게더!&lt;/figcaption&gt;
&lt;/figure&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;&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;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN9t22/btsQ1uB45KY/FVU7LQl5YnbXtlnqogInz0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN9t22/btsQ1uB45KY/FVU7LQl5YnbXtlnqogInz0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN9t22/btsQ1uB45KY/FVU7LQl5YnbXtlnqogInz0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN9t22%2FbtsQ1uB45KY%2FFVU7LQl5YnbXtlnqogInz0%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;259&quot; height=&quot;194&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매매 기능을 구현하기 위해 user와 group 컨트롤러를 보다가 이상한 부분을 포착했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 RequestMapping 어노테이션에서 왼쪽의 유저는 (&quot;/api/users) 오른쪽의 그룹 (&quot;/group&quot;)인 점이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u55kf/btsQX7H3vKh/mxEcF4aklxTu14rnePaMg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u55kf/btsQX7H3vKh/mxEcF4aklxTu14rnePaMg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u55kf/btsQX7H3vKh/mxEcF4aklxTu14rnePaMg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu55kf%2FbtsQX7H3vKh%2FmxEcF4aklxTu14rnePaMg1%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;993&quot; height=&quot;113&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;113&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;사실 난 항상 접두사로 &quot;/api&quot;를 습관처럼 붙여왔는데 왜 사용하는지, 꼭 필수로 사용해야하는지는 정확히 모르고 있었다.&amp;nbsp;그래서 이번 기회에 정확하게 정리해보았다!&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;1. 정적 리소스와 구분해야 할 때&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Springboot에서는 /resource/static 폴더 내에 HTML, CSS, JS 등 정적 리소스를 둘 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, /api/users라는 API와 /users.html이라는 정적 리소스가 함께 존재한다고 가정해 보자.&lt;br /&gt;만약 api/ 접두사를 사용하지 않는다면 다음과 같은 상황이 생긴다.&lt;/p&gt;
&lt;pre id=&quot;code_1759380779959&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/users (API)
/users.html (정적 리소스)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;427&quot; data-start=&quot;363&quot; data-ke-size=&quot;size16&quot;&gt;이 경우 프론트엔드에서 users를 호출할 때, 이것이 API 요청인지 정적 파일 요청인지 혼동될 수 있다.&lt;/p&gt;
&lt;p data-end=&quot;427&quot; data-start=&quot;363&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;488&quot; data-start=&quot;429&quot; data-ke-size=&quot;size16&quot;&gt;  이런 문제를 방지하기 위해 &lt;b&gt;API에는 /api 접두사를 붙여 구분&lt;/b&gt;하는 것이 일반적이다.&lt;/p&gt;
&lt;p data-end=&quot;488&quot; data-start=&quot;429&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;577&quot; data-start=&quot;490&quot; data-ke-size=&quot;size16&quot;&gt;다만 React.js, Next.js 등 프론트엔드 프레임워크를 사용해 정적 리소스를 별도로 서빙하는 경우에는 이러한 충돌이 직접적으로 발생하지 않는다.&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;h4 data-ke-size=&quot;size20&quot;&gt;2. 프론트엔드와 백엔드가 같은 도메인을 사용할 때 (feat. 리버스 프록시)&lt;/h4&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot; data-start=&quot;108&quot; data-end=&quot;130&quot;&gt;✔&amp;nbsp;같은 도메인 (예: togather.com)&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;108&quot; data-end=&quot;130&quot;&gt;Nginx 혹은 CloudFront와 같은 리버스 프록시를 사용하면, 프론트엔드와 백엔드의 도메인 주소를 같게 맞춰줄 수 있다.&amp;nbsp;이 경우, 라우팅이 충돌할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;108&quot; data-end=&quot;130&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;108&quot; data-end=&quot;130&quot;&gt;예를 들어,&amp;nbsp;/trading이라는 경로가 프론트 페이지인지, 백엔드 API인지 구분하기 애매해진다.&lt;/p&gt;
&lt;p data-end=&quot;337&quot; data-start=&quot;284&quot; data-ke-size=&quot;size16&quot;&gt;  이런 문제를 피하려면 /api 접두사를 붙여 명확하게 구분하는 것이 사실상 필수다.&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;✔ 다른 도메인 (예: togather.com vs api.togather.com) &lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;618&quot; data-start=&quot;418&quot; data-ke-size=&quot;size16&quot;&gt;프론트와 API 서버가 아예 다른 도메인을 사용한다면 경로 충돌은 발생하지 않는다. 이 경우 /api 접두사는 선택사항이 된다.&amp;nbsp;추가로, 다른 도메인을 사용하는 경우에는 &lt;b&gt;CORS 설정&lt;/b&gt;을 반드시 해주어야 한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;160&quot; data-end=&quot;358&quot;&gt;
&lt;li style=&quot;list-style-type: none;&quot; data-start=&quot;250&quot; data-end=&quot;358&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end=&quot;90&quot; data-start=&quot;66&quot; data-ke-size=&quot;size20&quot;&gt;3. 프론트엔드 입장에서 명확하다!&lt;/h4&gt;
&lt;p data-end=&quot;236&quot; data-start=&quot;92&quot; data-ke-size=&quot;size16&quot;&gt;설령 /api 접두사가 필수가 아닌 상황이라 하더라도,&lt;br /&gt;경로를 /api로 통일하면 &lt;b&gt;프론트엔드 입장에서 API 요청임이 명확&lt;/b&gt;하다.&lt;br /&gt;또한 가독성이 높아지고, 업계 관례상 /api를 사용하는 것이 일반적이므로 일관성을 유지할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d55b8G/btsQ17myVTw/8j57ug5n5LxLG6MNSLNob0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d55b8G/btsQ17myVTw/8j57ug5n5LxLG6MNSLNob0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d55b8G/btsQ17myVTw/8j57ug5n5LxLG6MNSLNob0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd55b8G%2FbtsQ17myVTw%2F8j57ug5n5LxLG6MNSLNob0%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;173&quot; height=&quot;173&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;512&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;그래서 우리 팀은 어떻게 하기로 했을까?&lt;/p&gt;
&lt;p 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;1. 우리 서비스는 프론트엔드를 Next.js를 써서 정적 리소스 충돌 문제는 발생하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 하지만, MSA 구조에서 &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Gateway가 리버스 프록시 역할을 하므로&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;같은 도메인에서 프론트와 백엔드를 함께 서비스한다.&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;3. 게다가 프론트엔드 입장에서도 /api로 구분하면 훨씬 명확하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  결론적으로 우리는 /api를 사용하기로 했다. /api는 &lt;b&gt;선택이 아니라 필수에 가깝다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 한 가지 더 고민이 있었다.&lt;/p&gt;
&lt;pre id=&quot;code_1759382739658&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(&quot;/api/users&quot;)
@RequestMapping(&quot;/users&quot;)&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;b&gt;MSA + 게이트웨이 구조에서 내부 서비스에도 /api를 붙여야 할까?&lt;/b&gt;&lt;br /&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;MSA + 게이트웨이 구조에서의 /api&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;우리 팀은 이렇게 결정했다:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;외부 진입점(게이트웨이):&lt;/b&gt;&amp;nbsp;프론트엔드 입장에서는 API가 하나처럼 보이도록 /api를 통일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;내부 서비스&lt;/b&gt;: 각 서비스는 자기 도메인 중심 경로만 관리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1759409210091&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 외부 진입점 (게이트웨이): 프론트엔드 입장에서는 API가 하나처럼 보이도록 /api를 통일
/api/user
/api/trading
/api/vote

// 내부 서비스: 각 서비스는 자기 도메인 중심 경로만 관리
/user
/trading
/vote&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;668&quot; data-start=&quot;617&quot; data-ke-size=&quot;size16&quot;&gt;즉, 게이트웨이가 /api를 붙여주고, 내부로 들어올 때는 잘라내서 전달하는 구조이다.&lt;/p&gt;
&lt;p data-end=&quot;668&quot; data-start=&quot;617&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-end=&quot;668&quot; data-start=&quot;617&quot; data-ke-size=&quot;size20&quot;&gt;Spring Cloud Gateway 설정 (application.yml)&lt;/h4&gt;
&lt;pre id=&quot;code_1759382265859&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      routes:
        # 사용자 서비스
        - id: user-service
          uri: http://user-service:8080
          predicates:
            - Path=/api/users/**
          filters:
            - StripPrefix=1  # /api 제거&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1074&quot; data-start=&quot;1001&quot; data-ke-size=&quot;size16&quot;&gt;filters: StripPrefix=1을 사용하면 &lt;b&gt;게이트웨이에서 /api를 떼고 내부 서비스로 전달&lt;/b&gt;할 수 있다.&lt;/p&gt;
&lt;p data-end=&quot;1105&quot; data-start=&quot;1076&quot; data-ke-size=&quot;size16&quot;&gt;따라서 내부에서는 이렇게만 작성하면 된다:&lt;/p&gt;
&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;@RestController
@RequestMapping(&quot;/users&quot;)
public class UserController {

}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-end=&quot;2511&quot; data-start=&quot;2421&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2511&quot; data-start=&quot;2421&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2511&quot; data-start=&quot;2421&quot; data-ke-size=&quot;size16&quot;&gt;최종적으로 아래와 같이 수정했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckHTwj/btsQ5iOvJgl/FWHtHd94DzFUU1kLx5Dwm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckHTwj/btsQ5iOvJgl/FWHtHd94DzFUU1kLx5Dwm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckHTwj/btsQ5iOvJgl/FWHtHd94DzFUU1kLx5Dwm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckHTwj%2FbtsQ5iOvJgl%2FFWHtHd94DzFUU1kLx5Dwm1%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;1296&quot; height=&quot;138&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;138&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;  이렇게 하면 프론트엔드에는 /api가 일관되게 노출되고,&lt;br /&gt;내부 서비스는 불필요하게 /api를 중복해서 가질 필요가 없으니 훨씬 깔끔하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>[프디아] 파이널 프로젝트</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/97</guid>
      <comments>https://jigoo-log.tistory.com/97#entry97comment</comments>
      <pubDate>Thu, 2 Oct 2025 14:38:37 +0900</pubDate>
    </item>
    <item>
      <title>[신투 프디아] ERD 트레이딩 시스템 개선기 - 왜 다시 설계했을까?</title>
      <link>https://jigoo-log.tistory.com/96</link>
      <description>&lt;p data-end=&quot;141&quot; data-start=&quot;121&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;141&quot; data-start=&quot;121&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1d1c1d; text-align: left;&quot;&gt;이 글은 알파코에서 진행되는&lt;/span&gt;&lt;b data-stringify-type=&quot;bold&quot;&gt;&amp;nbsp;[신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'&lt;/b&gt;&lt;span style=&quot;color: #1d1c1d; text-align: left;&quot;&gt;를 기반으로 작성되었습니다&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 data-end=&quot;141&quot; data-start=&quot;121&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-end=&quot;141&quot; data-start=&quot;121&quot; data-ke-size=&quot;size23&quot;&gt;ERD 트레이딩 시스템 개선기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 2주차!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 주의 가장 큰 이슈는 세 가지였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 디자인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. MSA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ERD&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;이번 글에서는 ERD에 있었던 이슈를 정리해보겠다.&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;2150&quot; data-origin-height=&quot;992&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgY4PM/btsQQmr41jI/6fghveuvVXUxOBwRRzQbQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgY4PM/btsQQmr41jI/6fghveuvVXUxOBwRRzQbQ0/img.png&quot; data-alt=&quot;초기 ERD&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgY4PM/btsQQmr41jI/6fghveuvVXUxOBwRRzQbQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgY4PM%2FbtsQQmr41jI%2F6fghveuvVXUxOBwRRzQbQ0%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;2150&quot; height=&quot;992&quot; data-origin-width=&quot;2150&quot; data-origin-height=&quot;992&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;초기 ERD&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기 ERD를 바탕으로 trading-service의 Entity를 구현하던 도중 몇몇 문제들을 확인했다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문제 1. 개인/그룹 계좌와 주식 테이블 간 연결 부재&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; InvestmentAccount(개인 투자 계좌)와 InvestmentAccountLedger(원장)가 Stock 테이블이 연결되어 있지 않았다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 그룹 투자 구조에서도 동일한 문제가 존재하여, 실제 주식 매매 데이터와 계좌 데이터가 끊겨있었다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그래서! 1차로 수정한 ERD는 다음과 같다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;786&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ALvJx/btsQP81pzeX/obs1WITCyqCA3ziBk1ydtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ALvJx/btsQP81pzeX/obs1WITCyqCA3ziBk1ydtk/img.png&quot; data-alt=&quot;1차 수정 ERD&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ALvJx/btsQP81pzeX/obs1WITCyqCA3ziBk1ydtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FALvJx%2FbtsQP81pzeX%2Fobs1WITCyqCA3ziBk1ydtk%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;2048&quot; height=&quot;786&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;786&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;1차 수정 ERD&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;gt; 계좌&amp;ndash;주식 연결 구조 보완을 중점으로, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;InvestmentAccount와 Stock을 직접 연결하고, 그룹 투자 구조도 동일하게 수정하여 데이터 흐름이 자연스럽게 이어지도록 개선했다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-end=&quot;983&quot; data-start=&quot;856&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;983&quot; data-start=&quot;856&quot; data-ke-size=&quot;size16&quot;&gt;하지만.. 이 ERD에서도 문제는 발생했으니.. 바로&lt;/p&gt;
&lt;p data-end=&quot;983&quot; data-start=&quot;856&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문제 2. 매매 관련 테이블 미구성&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Order(주문), Trade(체결)와 같은 핵심 매매 테이블이 없었다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;계좌 원장(InvestmentAccountLedger)에 입출금과 주식 거래가 뒤섞여 있어 구조가 비효율적이였다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문제 3. 집계/조회 데이터와 원본 트랜잭션 데이터의 혼재&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Holding, CashBalance, History 등 집계&amp;middot;조회 성격의 테이블이 원본 트랜잭션과 같은 레벨에서 관리되었다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이로 인해 정합성 관리가 복잡해지고, 대량 집계 시 성능 부담이 예상됐다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&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;이 문제들이였다. 가장 중요한 매매 관련 테이블이 없었던 것!!&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;그래서 다시 고친 최종(을 바라는) ERD!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;973&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzxrqc/btsQPfNso0a/rSm0UTMH49CilOKvxzQZD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzxrqc/btsQPfNso0a/rSm0UTMH49CilOKvxzQZD1/img.png&quot; data-alt=&quot;최종 ERD&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzxrqc/btsQPfNso0a/rSm0UTMH49CilOKvxzQZD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdzxrqc%2FbtsQPfNso0a%2FrSm0UTMH49CilOKvxzQZD1%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;2048&quot; height=&quot;973&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;973&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;최종 ERD&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;gt;&amp;nbsp; 매매 트랜잭션 테이블 추가&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Order(주문), Trade(체결) 테이블을 새롭게 도입하여 실제 증권 매매 프로세스를 반영했다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 계좌 원장에서 거래 기능을 분리하고, 입출금 전용 CashTransaction 테이블을 추가했다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;gt; 캐시 테이블 분리 및 명시화&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Holding(Cache), CashBalance(Cache), History(Cache) 등 집계/조회 목적의 테이블을 캐시테이블로 분리했다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 원본 데이터는 정합성을 보장하고, 캐시는 조회 성능 최적화에 집중할 수 있도록 역할을 분리했다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 큰 문제를 해결한 최종 ERD 완성&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;캐시 테이블에 FK를 등록하느냐였다.&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;ERD만큼 고민했던 디자인과 MSA 글도 빠르게 써야지&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;그럼 ERD 개선기 끝!&lt;/p&gt;</description>
      <category>[프디아] 파이널 프로젝트</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/96</guid>
      <comments>https://jigoo-log.tistory.com/96#entry96comment</comments>
      <pubDate>Fri, 26 Sep 2025 15:43:48 +0900</pubDate>
    </item>
    <item>
      <title>[신투 프디아] 파이널 프로젝트 '투게더' 기획</title>
      <link>https://jigoo-log.tistory.com/95</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/twBF1/btsQH1zCSw3/BXyJWNiUEkaUeNgqUhRBRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/twBF1/btsQH1zCSw3/BXyJWNiUEkaUeNgqUhRBRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/twBF1/btsQH1zCSw3/BXyJWNiUEkaUeNgqUhRBRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtwBF1%2FbtsQH1zCSw3%2FBXyJWNiUEkaUeNgqUhRBRK%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;316&quot; height=&quot;316&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;&lt;br /&gt;이 글은 알파코에서 진행되는&lt;/span&gt;&lt;b data-stringify-type=&quot;bold&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;[신한투자증권] 프로디지털아카데미 과정 중, 김송아 강사님과 함께하는 '파이널 프로젝트'&lt;/b&gt;&lt;span style=&quot;background-color: #f8f8f8; color: #1d1c1d; text-align: left;&quot;&gt;를 기반으로 작성되었습니다.&lt;/span&gt;&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;&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;중간 프로젝트 'FOMO' 개발이 끝나고, 정신차리니 파이널 프로젝트가 다가왔다.&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;이번 프로젝트에서는 CTO를 맡았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;열심히 해봐야지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서는 가볍게 우리가 하려는 프로젝트에 대해 기록하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 한 줄 소개하자면!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;공동 목표 달성을 위한 그룹형 주식 투자 서비스 &lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이제 글 시작!&lt;/span&gt;&lt;/span&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;599&quot; data-origin-height=&quot;749&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DUMD5/btsQFVtQl47/kD6Sn8ZXvFKln2ofMAPZKK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DUMD5/btsQFVtQl47/kD6Sn8ZXvFKln2ofMAPZKK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DUMD5/btsQFVtQl47/kD6Sn8ZXvFKln2ofMAPZKK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDUMD5%2FbtsQFVtQl47%2FkD6Sn8ZXvFKln2ofMAPZKK%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;242&quot; height=&quot;303&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;749&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;h4 data-ke-size=&quot;size20&quot;&gt;발단&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 우리 팀의 초기 아이디어는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 목표를 위해 다같이 투자하는 서비스를 만들자! 였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들면.. 여행을 위해 같이 목표액을 모으는 서비스 이제 투자를 곁들인..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 우리는 카카오뱅크의 '모임통장'에서 출발해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그룹장의 명의로 만드는 '모임투자통장'을 생각해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그룹원들이 매수, 매도를 제안하고 투표로 결정되면 재미있을 것 같았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;전개&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 우리는 '그룹 매매 규칙을 꼼꼼히 정한다면, 큼지막한 법적 이슈들은 피할 수 있지 않을까?' 라고 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들면, 계좌 개설 후 모임에 참여하면 공동으로 운영되는 방식에 동의해야한다는 약관을 보여주거나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서킷 브레이크 같은 상황에 대비해서, 매수 제안 후 일정 퍼센트 이상 하락하면 투표가 취소된다거나.. 하는 식으로&lt;/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;h4 data-ke-size=&quot;size20&quot;&gt;위기&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 현직자 피드백 하루 전날.. &quot;그래도 감안해야 할 법적 이슈가 너무 크다!&quot;라는 피드백을 들었다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;오후 4시.. 교육이 끝나기 한 시간 전이였다.&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;p style=&quot;color: #333333; text-align: start;&quot; 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;&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;절정&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;서비스 시작 시, 그룹원 모두가 개인 명의의 CMA 투자계좌를 개설하고, 서버에서&amp;nbsp;각&amp;nbsp;계좌의&amp;nbsp;거래&amp;nbsp;내역&amp;nbsp;및&amp;nbsp;투자&amp;nbsp;정보를&amp;nbsp;집계하여&amp;nbsp;제공한다.&lt;br /&gt;&lt;br /&gt;예를 들어, 한 그룹원이 엔비디아 1주(245,000원) 매수를 제안하면,&amp;nbsp; 매수&amp;middot;매도 투표를 통해 가결 시 동일한 가격에 소수점 단위로 분할 매수되는 방식이다. (예:&amp;nbsp;245,000&amp;nbsp;&amp;divide;&amp;nbsp;5&amp;nbsp;&amp;rarr;&amp;nbsp;인당&amp;nbsp;0.2주&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 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;h4 data-ke-size=&quot;size20&quot;&gt;결말&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 서비스 '투게더' 기획 완료!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후에도 있었던 큼지막한 이슈들은 이러했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 매매 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Open API를 써서, 트레이딩 시스템을 구현할지, 직접 매매 시스템을 서버단에서 구현할지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 예수금 충전&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;3. 페이 or 환전&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다함께 참여해서 공동의 목표로 나아가는 것이 목적인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 페이나 환전 등 실제 사용으로 이뤄지는 플로우가 있으면 좋지 않을까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 이슈들은 따로 글을 써서 자세히 다뤄보겠다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;737&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfBUyo/btsQHj8C9nu/UY4dHcWO1Yl96SwTTkQoj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfBUyo/btsQHj8C9nu/UY4dHcWO1Yl96SwTTkQoj1/img.png&quot; data-alt=&quot;읏쇼읏쇼 만든 와이어프레임&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfBUyo/btsQHj8C9nu/UY4dHcWO1Yl96SwTTkQoj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfBUyo%2FbtsQHj8C9nu%2FUY4dHcWO1Yl96SwTTkQoj1%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;596&quot; height=&quot;632&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;737&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;읏쇼읏쇼 만든 와이어프레임&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;목표!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 파이널 프로젝트에서 백엔드, 인프라 개발을 맡았고, 계좌 개설부터 매매까지의 로직을 설계하고 구현해볼 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트러블슈팅 과정을 짧게라도 블로그에 많이 남겨야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7OiZG/btsQHA3nDXi/YvI4KxatZKUxEmwCZ00KKk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7OiZG/btsQHA3nDXi/YvI4KxatZKUxEmwCZ00KKk/img.jpg&quot; data-alt=&quot;고잉메리호 팀 파이팅!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7OiZG/btsQHA3nDXi/YvI4KxatZKUxEmwCZ00KKk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7OiZG%2FbtsQHA3nDXi%2FYvI4KxatZKUxEmwCZ00KKk%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;225&quot; height=&quot;224&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;고잉메리호 팀 파이팅!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>[프디아] 파이널 프로젝트</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/95</guid>
      <comments>https://jigoo-log.tistory.com/95#entry95comment</comments>
      <pubDate>Fri, 19 Sep 2025 14:19:04 +0900</pubDate>
    </item>
    <item>
      <title>[프디아] 금융 데이터 흐름부터 알림까지 &amp;ndash; FOMO 프로젝트 회고</title>
      <link>https://jigoo-log.tistory.com/94</link>
      <description>&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;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7월 2일부터 7월 29일까지 진행된 &lt;b&gt;신한투자증권 프로디지털아카데미 프론트엔드 프로젝트&lt;/b&gt;가 마무리됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주제는 'OpenAPI를 활용한 금융 프로젝트' 개발이였다.&lt;br /&gt;우리 팀은 &lt;span style=&quot;color: #f0f6fc; text-align: start;&quot;&gt;  &lt;/span&gt;&lt;b&gt;한국 투자자를 위한 실시간 미국 시장 요약 &amp;amp; 알림 서비스&lt;/b&gt;, &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;&amp;lsquo;FOMO&amp;rsquo;&lt;/b&gt;&lt;/span&gt;를 개발했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;아래는 FOMO 프로젝트의 GitHub 레포지토리다.&lt;/p&gt;
&lt;figure id=&quot;og_1754616766721&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;FOMO_SOL&quot; data-og-description=&quot;FOMO_SOL has 8 repositories available. Follow their code on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/fomo-sol&quot; data-og-url=&quot;https://github.com/fomo-sol&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ccR6sV/hyZuKiTNR9/nvfw6hpqTUIqdpEPr2JKo0/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280,https://scrap.kakaocdn.net/dn/bVvVfl/hyZuEwcBUw/kHKOCqUGQXmCxTwNeCzPv0/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280&quot;&gt;&lt;a href=&quot;https://github.com/fomo-sol&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/fomo-sol&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ccR6sV/hyZuKiTNR9/nvfw6hpqTUIqdpEPr2JKo0/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280,https://scrap.kakaocdn.net/dn/bVvVfl/hyZuEwcBUw/kHKOCqUGQXmCxTwNeCzPv0/img.png?width=280&amp;amp;height=280&amp;amp;face=0_0_280_280');&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;FOMO_SOL&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;FOMO_SOL has 8 repositories available. Follow their code 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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그럼 지금 바로 회고 시작!  &lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;FOMO란 뭘까?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FOMO는 &lt;i&gt;Fear Of Missing Out &lt;/i&gt;의 줄임말로, 어떤 흐름이나 기회에서 소외될까 봐 느끼는 불안감을 뜻한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9Ew3D/btsPKh54RrP/KYObAKSY4kqwDoHdLQc5bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9Ew3D/btsPKh54RrP/KYObAKSY4kqwDoHdLQc5bk/img.png&quot; data-origin-width=&quot;1792&quot; data-origin-height=&quot;905&quot; data-is-animation=&quot;false&quot; width=&quot;484&quot; height=&quot;244&quot; style=&quot;width: 50.5773%; margin-right: 10px;&quot; data-widthpercent=&quot;51.17&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9Ew3D/btsPKh54RrP/KYObAKSY4kqwDoHdLQc5bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9Ew3D%2FbtsPKh54RrP%2FKYObAKSY4kqwDoHdLQc5bk%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;1792&quot; height=&quot;905&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HnR0i/btsPK4E7VZ1/kpw9Co3hCUhzidXpgxB0r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HnR0i/btsPK4E7VZ1/kpw9Co3hCUhzidXpgxB0r0/img.png&quot; data-origin-width=&quot;1691&quot; data-origin-height=&quot;895&quot; data-is-animation=&quot;false&quot; width=&quot;497&quot; height=&quot;263&quot; style=&quot;width: 48.2599%;&quot; data-widthpercent=&quot;48.83&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HnR0i/btsPK4E7VZ1/kpw9Co3hCUhzidXpgxB0r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHnR0i%2FbtsPK4E7VZ1%2Fkpw9Co3hCUhzidXpgxB0r0%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;1691&quot; height=&quot;895&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;포모 증후군 from 웬즈데이 시즌 2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;투자자라면 한 번쯤 겪어봤을 감정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;투자를 하다보면 &amp;lsquo;나만 안 사면 어쩌지?&amp;rsquo;, &amp;lsquo;나만 들고 있으면 어쩌지?&amp;rsquo; 같은 생각과 함께, 타이밍을 놓칠까 하는 불안이 따라온다.&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;b&gt;&amp;lsquo;FOMO&amp;rsquo;&lt;/b&gt;를 기획하게 되었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cP7F6z/btsPKQUsXi3/K4mcXoAA9lEmEkElzkzc9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cP7F6z/btsPKQUsXi3/K4mcXoAA9lEmEkElzkzc9k/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;5.png&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cP7F6z/btsPKQUsXi3/K4mcXoAA9lEmEkElzkzc9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcP7F6z%2FbtsPKQUsXi3%2FK4mcXoAA9lEmEkElzkzc9k%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;1920&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN6NxK/btsPLMjr7GK/fkchBZQqdrO0tjL7vt6TM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN6NxK/btsPLMjr7GK/fkchBZQqdrO0tjL7vt6TM0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;30.png&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN6NxK/btsPLMjr7GK/fkchBZQqdrO0tjL7vt6TM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN6NxK%2FbtsPLMjr7GK%2FfkchBZQqdrO0tjL7vt6TM0%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;1920&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;페르소나!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기획 배경&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작은 한국인의 미국 주식 투자가 급증하고 있다는 점에 주목했다.&lt;br /&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;FOMC&lt;/b&gt;와&lt;b&gt; 기업 실적 발표&lt;/b&gt;라고 판단했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wMp4B/btsPJ4ezqUx/xGCRlQIm9AwAaeSdulMAik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wMp4B/btsPJ4ezqUx/xGCRlQIm9AwAaeSdulMAik/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;6.png&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wMp4B/btsPJ4ezqUx/xGCRlQIm9AwAaeSdulMAik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwMp4B%2FbtsPJ4ezqUx%2FxGCRlQIm9AwAaeSdulMAik%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;1920&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cotrHb/btsPJGkI9Sj/Enkj2vkKrhc38IwX2OsLr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cotrHb/btsPJGkI9Sj/Enkj2vkKrhc38IwX2OsLr1/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;7.png&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cotrHb/btsPJGkI9Sj/Enkj2vkKrhc38IwX2OsLr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcotrHb%2FbtsPJGkI9Sj%2FEnkj2vkKrhc38IwX2OsLr1%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;1920&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;미국 주식에 투자하는 한국인들을 위한 맞춤형 서비스를 만들어보자!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 상황 &amp;amp; 핵심 기능&lt;/b&gt;&lt;/h3&gt;
&lt;p data-end=&quot;145&quot; data-start=&quot;54&quot; data-ke-size=&quot;size16&quot;&gt;하지만! &lt;b&gt;미국 주식 정보를 빠르게 접하기란 쉽지 않다.&lt;/b&gt;&lt;br /&gt;특히 영어 원문 자료에 대한 접근성과 이해가 어려워, 중요한 이슈가 생겨도 제때 대응하지 못하는 경우가 많다.&lt;/p&gt;
&lt;p data-end=&quot;145&quot; data-start=&quot;54&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;261&quot; data-start=&quot;152&quot; data-ke-size=&quot;size16&quot;&gt;이를 해결하기 위해 우리 팀은,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;261&quot; data-start=&quot;152&quot;&gt;실시간 정보 수집&lt;/li&gt;
&lt;li data-end=&quot;261&quot; data-start=&quot;152&quot;&gt;번역 및 요약&lt;/li&gt;
&lt;li data-end=&quot;261&quot; data-start=&quot;152&quot;&gt;차트 제공&lt;/li&gt;
&lt;li data-end=&quot;261&quot; data-start=&quot;152&quot;&gt;맞춤형 알림&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;을 핵심 기능으로 삼아 서비스를 설계했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btnQNR/btsPKRFMwTh/2F6H6RLgYAIbWVYCtICj7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btnQNR/btsPKRFMwTh/2F6H6RLgYAIbWVYCtICj7K/img.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btnQNR/btsPKRFMwTh/2F6H6RLgYAIbWVYCtICj7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtnQNR%2FbtsPKRFMwTh%2F2F6H6RLgYAIbWVYCtICj7K%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;1920&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eu1HGs/btsPKfmSVzw/2HRWuBVMwmVQsA8lzx7UK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eu1HGs/btsPKfmSVzw/2HRWuBVMwmVQsA8lzx7UK0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;15.png&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eu1HGs/btsPKfmSVzw/2HRWuBVMwmVQsA8lzx7UK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feu1HGs%2FbtsPKfmSVzw%2F2HRWuBVMwmVQsA8lzx7UK0%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;1920&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&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-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;주요 페이지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;1. FOMC 상세 페이지&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;187&quot; data-start=&quot;98&quot; data-ke-size=&quot;size16&quot;&gt;금리 결정, 연설, 의사록을 하나의 세트로 묶어 구성했다.&lt;br /&gt;영어 원문, 한국어 번역문, AI 요약&amp;middot;분석을 한 탭에서 함께 확인할 수 있도록 했다.&lt;/p&gt;
&lt;p data-end=&quot;187&quot; data-start=&quot;98&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;324&quot; data-start=&quot;189&quot; data-ke-size=&quot;size16&quot;&gt;또한, 금리 결정에 따라 가장 영향을 많이 받는 지수인 S&amp;amp;P 500 차트와 사용자가 선택한 종목의 차트를 동시에 볼 수 있게 했다.&lt;br /&gt;차트에서는 과거 금리 결정 및 의사록 발표 날짜를 확인할 수 있으며, 실시간 차트도 확인 가능하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1894&quot; data-origin-height=&quot;902&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cN4HHf/btsPLG5TBpf/cag3ESrj23gA9H8OmMWfBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cN4HHf/btsPLG5TBpf/cag3ESrj23gA9H8OmMWfBk/img.png&quot; data-alt=&quot;FOMC 상세 페이지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cN4HHf/btsPLG5TBpf/cag3ESrj23gA9H8OmMWfBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcN4HHf%2FbtsPLG5TBpf%2Fcag3ESrj23gA9H8OmMWfBk%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;797&quot; height=&quot;380&quot; data-origin-width=&quot;1894&quot; data-origin-height=&quot;902&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;FOMC 상세 페이지&lt;/figcaption&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;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 실적 발표 상세 페이지&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;189&quot; data-end=&quot;324&quot; data-ke-size=&quot;size16&quot;&gt;좌측 상단에 종목 차트, 하단에는 재무 정보를 배치해 실적 발표 내용을 한 눈에 확인 가능하게 했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;893&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mLEAz/btsPL30SGh7/oLFfq1TrVpTGp9pT0KOyh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mLEAz/btsPL30SGh7/oLFfq1TrVpTGp9pT0KOyh0/img.png&quot; data-alt=&quot;실적 발표 상세 페이지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mLEAz/btsPL30SGh7/oLFfq1TrVpTGp9pT0KOyh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmLEAz%2FbtsPL30SGh7%2FoLFfq1TrVpTGp9pT0KOyh0%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;793&quot; height=&quot;402&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;893&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실적 발표 상세 페이지&lt;/figcaption&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;&lt;b&gt;3. 알림 페이지 (FCM, 텔레그램)&lt;/b&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;선택한 관심 종목에 따라 FOMC, 실적 발표에 대한 요약 알림을 발송한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저 알림(Firebase Cloud Messaging)과 모바일 알림(텔레그램) 모두 지원한다!&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1xapd/btsPLGZbOGf/BCzSSbAm0YBC9iAAw2BAo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1xapd/btsPLGZbOGf/BCzSSbAm0YBC9iAAw2BAo1/img.png&quot; data-origin-width=&quot;1889&quot; data-origin-height=&quot;900&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.2336%; margin-right: 10px;&quot; data-widthpercent=&quot;49.81&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1xapd/btsPLGZbOGf/BCzSSbAm0YBC9iAAw2BAo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1xapd%2FbtsPLGZbOGf%2FBCzSSbAm0YBC9iAAw2BAo1%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;1889&quot; height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MJlCH/btsPMNKeWF7/XdxKCZeWAfJN7NB0vPoXY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MJlCH/btsPMNKeWF7/XdxKCZeWAfJN7NB0vPoXY1/img.png&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;907&quot; data-is-animation=&quot;false&quot; width=&quot;528&quot; height=&quot;250&quot; data-widthpercent=&quot;50.19&quot; style=&quot;width: 49.6036%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MJlCH/btsPMNKeWF7/XdxKCZeWAfJN7NB0vPoXY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMJlCH%2FbtsPMNKeWF7%2FXdxKCZeWAfJN7NB0vPoXY1%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;1918&quot; height=&quot;907&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;알림 페이지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;  &lt;b&gt;서비스 URL&lt;/b&gt;  &lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;FOMO 서비스는 아래 링크에서 직접 확인할 수 있다!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⬇ 노트북이나 아이패드로 접속하시기를 추천드린다. ⬇&lt;/p&gt;
&lt;figure id=&quot;og_1754718173727&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;FOMO - 실시간 주식 정보 및 투자 분석 플랫폼&quot; data-og-description=&quot;FOMO 발표가&amp;nbsp;끝나면&amp;nbsp;바로&amp;nbsp;도착하는 &amp;nbsp;한글&amp;nbsp;요약 해외 주식 정보에 한 발 늦었다고 생각한 당신에게 시작하기&quot; data-og-host=&quot;pdafomo.site&quot; data-og-source-url=&quot;https://pdafomo.site/&quot; data-og-url=&quot;https://pdafomo.site/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pdafomo.site/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pdafomo.site/&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;FOMO - 실시간 주식 정보 및 투자 분석 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;FOMO 발표가&amp;nbsp;끝나면&amp;nbsp;바로&amp;nbsp;도착하는 &amp;nbsp;한글&amp;nbsp;요약 해외 주식 정보에 한 발 늦었다고 생각한 당신에게 시작하기&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pdafomo.site&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;시연 영상&lt;/b&gt;&lt;/h3&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/457119168&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/zLZNV/hyZvs9WdnT/o254WdNKkCiP7GAMMsUstk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/qWWsk/hyZuxDSpQE/YZJzsObwa8MOV95hXEzN90/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-play-service=&quot;daum_tistory&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/457119168?service=daum_tistory&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  프로젝트 회고&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;/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;&lt;b&gt;1. 프로젝트 주제 선정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;팀원 모두 컴퓨터공학 전공이라 금융 전공자가 없었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다보니 실제로 투자자들이 쓰고 싶어할 서비스가 무엇일지 고민하는 과정이 길어졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히, 초반에는 우리가 하고자 하는 목표가 명확하지 않아 서비스 기획이 의식의 흐름대로 뻗어나갔다가 다시 원래대로 되돌아오기를 반복했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 확실한 서비스 목표를 정한 후에는, 팀 노션 가장 위에 대문짝만하게 적어두었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 이후로는, 회의나 작업 중에 방향이 흐트러지는 일이 거의 없었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서비스 기획에서 명확한 목표 설정이 얼마나 중요한지 몸소 느낄 수 있었다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;571&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/txS4G/btsPMZjqnGs/KcEsa2E90PLhfOcKtIvpRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/txS4G/btsPMZjqnGs/KcEsa2E90PLhfOcKtIvpRk/img.png&quot; data-alt=&quot;포모 팀 노션의 대문&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/txS4G/btsPMZjqnGs/KcEsa2E90PLhfOcKtIvpRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtxS4G%2FbtsPMZjqnGs%2FKcEsa2E90PLhfOcKtIvpRk%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;646&quot; height=&quot;359&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;571&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;포모 팀 노션의 대문&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 피그마 깎기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방망이 깎던 노인처럼.. 나는 피그마를 깎았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FOMO 서비스에는 관심 종목, 캘린더, 알림처럼 구현해야 할 소소한 페이지가 많았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발하던 도중에 피그마로 다시는! 돌아오고 싶지 않았기에, 한 번에 끝내버리겠다는 마음으로 열심히 피그마를 구웠다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론.. 막판에도 피그마로 회귀할 일은 계속 생기긴 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히, 초반에는 아이디어가 조금씩 바뀌면서 만들어야 할 페이지가 출아법처럼 증식했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비록 피그마 지옥에 빠졌지만, 개발을 시작하고 나서는 바로 기억이 미화됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;덕분에 나는 피그마 짱이 될 수 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B0mbG/btsPNHifh3y/oPryCBlJgI23MDI8CTFt6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B0mbG/btsPNHifh3y/oPryCBlJgI23MDI8CTFt6K/img.png&quot; data-alt=&quot;한땀한땀 피그마&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B0mbG/btsPNHifh3y/oPryCBlJgI23MDI8CTFt6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB0mbG%2FbtsPNHifh3y%2FoPryCBlJgI23MDI8CTFt6K%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;673&quot; height=&quot;353&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;한땀한땀 피그마&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 사용자 맞춤형 알림 (FCM, 텔레그램)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FOMO 서비스에서 가장 중요하게 생각한 것 중 하나는 FOMC와 실적 발표 내용을 최대한 빠르게 번역&amp;middot;요약해 사용자에게 알림으로 보내는 것이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 위해, 다양한 알림 구현 방안을 검토했다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;카카오톡 챗봇&lt;/b&gt; &amp;rarr; 무료/유료 버전이 나뉘어 있었고, 우리가 원하는 맞춤형 알림은 유료 버전에서만 가능했다. 게다가 사업자 등록도 필요했다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PWA&lt;/b&gt; &amp;rarr; 유력 후보였지만, 모바일에서도 완벽하게 보이는 반응형 UI를 만들어야 했다. 서비스 특성상 차트와 번역&amp;middot;요약문을 모두 보여줘야 하는데 모바일 화면까지 구현하기는 어려움이 있어 탈락했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 아래의 두 방안을 선택했다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;FCM(Firebase Cloud Messaging)&lt;/b&gt; &amp;rarr; 브라우저 알림. 로그아웃 상태여도 브라우저에 저장된 FCM 토큰으로 알림을 받을 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;텔레그램 봇&lt;/b&gt; &amp;rarr; 주식 투자자들이 자주 사용하는 플랫폼이고, 모바일로도 알림을 받을 수 있다.&lt;/li&gt;
&lt;/ol&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;알림 개발 과정에서 겪은 이슈는 &lt;b&gt;한 크롬 계정에서 여러 FOMO 계정으로 로그인할 경우 알림이 중복으로 오는 문제&lt;/b&gt;였다.&lt;br /&gt;이를 해결하기 위해 FCM 토큰이 이미 존재하면 이전 계정에서 삭제하고, 최근 로그인한 계정에만 등록되도록 로직을 수정했다.&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;FOMC 요약 알림은 관심 종목과 연결된 &lt;b&gt;sector&lt;/b&gt;&amp;nbsp;기준으로 매핑해 발송했다.&lt;br /&gt;예를 들어 마이크로소프트의 경우 technology 섹션으로 분류해 알림을 주는 방식이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1940&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3l6d5/btsPO6huinG/Vd1fkfFyXdE8B6G5vBkst0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3l6d5/btsPO6huinG/Vd1fkfFyXdE8B6G5vBkst0/img.png&quot; data-alt=&quot;FOMC 맞춤형 요약 알림!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3l6d5/btsPO6huinG/Vd1fkfFyXdE8B6G5vBkst0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3l6d5%2FbtsPO6huinG%2FVd1fkfFyXdE8B6G5vBkst0%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;201&quot; height=&quot;361&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1940&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;FOMC 맞춤형 요약 알림!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;937&quot; data-start=&quot;867&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;알림이 오는게 눈에 바로 보이니 개발하며 무척 흥미진진했고, 걱정과 달리 FCM, 텔레그램 알림 전송 자체는 순조롭게 마무리됐다.&lt;/p&gt;
&lt;p data-end=&quot;958&quot; data-start=&quot;939&quot; data-ke-size=&quot;size16&quot;&gt;가장 큰 고난은&amp;hellip; 바로 다음에.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 스케줄러 및 알림 연동&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 이게 나에게 있어 가장 큰 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동 스케줄링 코드가 꽤 복잡했고, 이를 알림으로 테스트하는 과정에서 물리적인 시간이 필요했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스케줄러 코드를 한 번 돌리고 &amp;rarr; 알림이 오는 걸 기다리고 &amp;rarr; 문제를 고치고 &amp;rarr; 다시 돌리는 과정을 반복하다 보니, 그야말로 시간과 인내의 방이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 성공했을 때의 뿌듯함과 쾌감은 이 때가 가장 컸다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 실시간 알림 아키텍처(실적 발표)의 간단한 흐름이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;353&quot; data-start=&quot;318&quot;&gt;&lt;b&gt;SEC.GOV&lt;/b&gt;에서 실적 발표 데이터를 수집한다.&lt;/li&gt;
&lt;li data-end=&quot;420&quot; data-start=&quot;354&quot;&gt;실적 발표가 올라온 경우, &lt;b&gt;GPT API&lt;/b&gt;와 &lt;b&gt;DeepL API&lt;/b&gt;를 통해 요약 및 번역문을 생성한다.&lt;/li&gt;
&lt;li data-end=&quot;448&quot; data-start=&quot;421&quot;&gt;생성된 결과를 &lt;b&gt;S3&lt;/b&gt;에 업로드한다.&lt;/li&gt;
&lt;li data-end=&quot;524&quot; data-start=&quot;449&quot;&gt;이를 기점으로, 스케줄러 서버에서 FOMO 서버로 &lt;b&gt;FCM 알림 요청&lt;/b&gt;을 보내고, 동시에 &lt;b&gt;텔레그램 알림&lt;/b&gt;도 발송한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1513&quot; data-origin-height=&quot;888&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BvhUe/btsPMzrLTtE/gUmKvulFMpgx5ICkoRZA11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BvhUe/btsPMzrLTtE/gUmKvulFMpgx5ICkoRZA11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BvhUe/btsPMzrLTtE/gUmKvulFMpgx5ICkoRZA11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBvhUe%2FbtsPMzrLTtE%2FgUmKvulFMpgx5ICkoRZA11%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;562&quot; height=&quot;330&quot; data-origin-width=&quot;1513&quot; data-origin-height=&quot;888&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;size18&quot;&gt;&lt;b&gt;5. OpenAPI&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 프로젝트의 주제가 OpenAPI를 활용한 금융 서비스 개발이었는데,&lt;br /&gt;우리 팀은 다양한 오픈 API를 활용했기에 주제를 충실히 이행했다고 생각한다! ✌&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;차트: 한국투자증권 OpenAPI&lt;/li&gt;
&lt;li&gt;번역: DeepL OpenAPI&lt;/li&gt;
&lt;li&gt;요약: GPT OpenAPI&lt;/li&gt;
&lt;li&gt;알림: Telegram OpenAPI&lt;/li&gt;
&lt;li&gt;실적 발표: Finhub Stock API &amp;amp; Sec.gov&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1731&quot; data-origin-height=&quot;913&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oa3dJ/btsPLZjVu9d/Nw1ZD0K5OecaAK9Brrs9W0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oa3dJ/btsPLZjVu9d/Nw1ZD0K5OecaAK9Brrs9W0/img.png&quot; data-alt=&quot;Open API 장표&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oa3dJ/btsPLZjVu9d/Nw1ZD0K5OecaAK9Brrs9W0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foa3dJ%2FbtsPLZjVu9d%2FNw1ZD0K5OecaAK9Brrs9W0%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;703&quot; height=&quot;371&quot; data-origin-width=&quot;1731&quot; data-origin-height=&quot;913&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Open API 장표&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;6. 배포 및 CI/CD 파이프라인 구축&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;템보따리 서비스(미니 프로젝트)에 이어 이번에도 배포 및 CI/CD 파이프라인 구축을 맡았다.&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;한 EC2 서버에 스케줄링, Next.js(프론트엔드), Node.js(백엔드) 서버 세 개를 모두 올리는 과정에서 문제가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스케줄러 서버에서 PDF를 TXT로 변환하는 과정에서 'pdfjs-dist'를 사용했는데, 이 라이브러리가 브라우저 환경(window)에 의존해 배포 서버에서는 오류가 발생했다.&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;이후에는 Node 환경에서도 동작하는 PDF 파싱 방식으로 변경해, 배포 서버에서도 문제없이 돌아가도록 했다.&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;br /&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;size18&quot;&gt;&lt;b&gt;7. 발표와 PPT&lt;/b&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;zwj; &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 발표할 때 긴장하는 스타일이 아니라서, 발표 자체보다 PPT를 만드는 과정이 더 까다롭게 느껴졌다.&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;15분의 발표로 모든 걸 보여줘야 한다는 점에서 알찬 흐름의 PPT를 만들기 위해 다 같이 열심히 준비했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;발표 전 주말 이틀 내내 밥도 거르고 카페에 모여 10시간 넘게 프로젝트 마무리만 했을 정도로!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 발표자인 나를 많이 배려해준 팀원들에게 정말 고마웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 내내 우리 팀원들이 최고였다. 진짜로!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/craykx/btsPMoYao5h/8YSOfrNjkZcEmM9CXc3A2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/craykx/btsPMoYao5h/8YSOfrNjkZcEmM9CXc3A2k/img.png&quot; data-alt=&quot;열심히 만든 피피티&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/craykx/btsPMoYao5h/8YSOfrNjkZcEmM9CXc3A2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcraykx%2FbtsPMoYao5h%2F8YSOfrNjkZcEmM9CXc3A2k%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;593&quot; height=&quot;334&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;열심히 만든 피피티&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;7. 마지막으로!&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;130&quot; data-start=&quot;72&quot; data-ke-size=&quot;size16&quot;&gt;이번 프로젝트를 하면서, 사용자 관점에서 더 쓰기 편한 로직을 고민해봐야겠다는 생각이 들었다.&lt;/p&gt;
&lt;p data-end=&quot;301&quot; data-start=&quot;132&quot; data-ke-size=&quot;size16&quot;&gt;우리 서비스의 일부 기능은 접근 경로가 직관적이지 않아, 처음 이용하는 사용자 입장에서는 흐름을 따라가기 조금 어려웠을 것 같다.&lt;br /&gt;이 부분은 개발 당시에도 인지하고 있었지만, 여러 기능을 어디에 배치하면 좋을지 결정하는 게 쉽지 않았다.&lt;br /&gt;다음 프로젝트에서는 이 부분을 더욱 신경 써보고 싶다.&lt;/p&gt;
&lt;p data-end=&quot;301&quot; data-start=&quot;132&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;301&quot; data-start=&quot;132&quot; data-ke-size=&quot;size16&quot;&gt;추가로, QnA와 신투 멘토링데이에 들은 피드백을 바탕으로 FOMC 상세 페이지의 정보를 추가하거나, 요약 부분을 개선하면 좋을 것 같다고 느꼈다.&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;br /&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;</description>
      <category>개발 기록</category>
      <category>신한투자증권</category>
      <category>프로디지털아카데미</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/94</guid>
      <comments>https://jigoo-log.tistory.com/94#entry94comment</comments>
      <pubDate>Sat, 9 Aug 2025 18:05:46 +0900</pubDate>
    </item>
    <item>
      <title>AWS Solutions Architect - Associate(SAA-C03) 자격증 취득 후기</title>
      <link>https://jigoo-log.tistory.com/91</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;2025년 5월 18일에 AWS Cloud Practitioner(CLF-C02)를 취득하고, 약 한 달 후인 6월 22일에 Solution Archtect Associate(SAA-C03)까지 취득했다!&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;아래는 AWS CLF 취득 후기이다.&lt;/p&gt;
&lt;figure id=&quot;og_1751172571354&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;AWS Cloud Practitioner (CLF-C02) 자격증 취득 후기&quot; data-og-description=&quot;2025년 5월 18일에 AWS Cloud Practitioner(CLF-C02)를 취득하고, 약 한 달 후인 6월 22일에 Solution Archtect Associate(SAA-C03)까지 취득했다! 아래는 AWS SAA 취득 후기이다! AWS Voucher에 대한 내용도 자세히 적어두었&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/92&quot; data-og-url=&quot;https://jigoo-log.tistory.com/92&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YaRUi/hyZfYU5JcY/ZkP65ULXDGJO4NaK46doPk/img.png?width=800&amp;amp;height=393&amp;amp;face=0_0_800_393,https://scrap.kakaocdn.net/dn/bNm1uS/hyZgbmALyA/CoekQi587Ist1VnCQov0K1/img.png?width=800&amp;amp;height=393&amp;amp;face=0_0_800_393,https://scrap.kakaocdn.net/dn/obLGi/hyZfYOj9tS/UKlgHMtXw570HxFBo0YDzk/img.png?width=1131&amp;amp;height=808&amp;amp;face=0_0_1131_808&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/92&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/92&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YaRUi/hyZfYU5JcY/ZkP65ULXDGJO4NaK46doPk/img.png?width=800&amp;amp;height=393&amp;amp;face=0_0_800_393,https://scrap.kakaocdn.net/dn/bNm1uS/hyZgbmALyA/CoekQi587Ist1VnCQov0K1/img.png?width=800&amp;amp;height=393&amp;amp;face=0_0_800_393,https://scrap.kakaocdn.net/dn/obLGi/hyZfYOj9tS/UKlgHMtXw570HxFBo0YDzk/img.png?width=1131&amp;amp;height=808&amp;amp;face=0_0_1131_808');&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;AWS Cloud Practitioner (CLF-C02) 자격증 취득 후기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2025년 5월 18일에 AWS Cloud Practitioner(CLF-C02)를 취득하고, 약 한 달 후인 6월 22일에 Solution Archtect Associate(SAA-C03)까지 취득했다! 아래는 AWS SAA 취득 후기이다! AWS Voucher에 대한 내용도 자세히 적어두었&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1751167552677&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;AWS Certified Solutions Architect - Associate 자격증&quot; data-og-description=&quot;시험 준비(Exam Prep) 과정에 등록하세요. 시험 준비 표준 과정(Exam Prep Standard Course)은 AWS Skill Builder 계정이 있는 사람이라면 누구나 이용할 수 있습니다. 시험 대비 심화 과정(Exam Prep Enhanced)에는 추&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/certification/certified-solutions-architect-associate/&quot; data-og-url=&quot;https://aws.amazon.com/ko/certification/certified-solutions-architect-associate/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/NmfeW/hyZcnCc0sM/nyp3L45HKjD0OlGOtWPA1k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cOg0qG/hyZfVYmEtC/HZJR6aJms2GBSIb6WWPuEK/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/certification/certified-solutions-architect-associate/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/certification/certified-solutions-architect-associate/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/NmfeW/hyZcnCc0sM/nyp3L45HKjD0OlGOtWPA1k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cOg0qG/hyZfVYmEtC/HZJR6aJms2GBSIb6WWPuEK/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109');&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;AWS Certified Solutions Architect - Associate 자격증&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;시험 준비(Exam Prep) 과정에 등록하세요. 시험 준비 표준 과정(Exam Prep Standard Course)은 AWS Skill Builder 계정이 있는 사람이라면 누구나 이용할 수 있습니다. 시험 대비 심화 과정(Exam Prep Enhanced)에는 추&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;AWS Voucher&lt;/span&gt;&lt;/h4&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;올해 1월, AWS Education(&lt;a href=&quot;https://www.awseducate.com/student/s/content&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.awseducate.com/student/s/content&lt;/a&gt;)을 통해 credit을 모으면 Foundational 혹은 Associate 100% 바우처를 얻을 수 있다는 사실을 알게 되었다. 계산상 바우처를 얻을 때까지 네 달이 소요될 것이라고 생각하였고.. 5월에 SAA Voucher로 교환하려 했지만! 정말 불미스럽게도 포인트를 모두 모은 당일 오전에 SAA 바우처 재고가 소진되었다.. 하지만 150달러를 통으로 낼 수는 없다는 마음으로.. 울며 겨자먹기로 CLF를 보기 위해 Foundational 바우처를 교환했다. 참고로 4500 credits = Foundational voucher(100달러), 5200 credits = Associate voucher(150달러)였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzx5K2/btsOL3Oilmk/zY8KTP57YrogKsWZTjrKo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzx5K2/btsOL3Oilmk/zY8KTP57YrogKsWZTjrKo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzx5K2/btsOL3Oilmk/zY8KTP57YrogKsWZTjrKo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbzx5K2%2FbtsOL3Oilmk%2FzY8KTP57YrogKsWZTjrKo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;612&quot; height=&quot;334&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;455&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;CLF라도 무료로 봐야겠다고 생각한 이유는 AWS에서 Certification을 취득하면 50% Voucher를 주기 때문이다! 나는 CLF를 무료로 응시하고 합격하여 50% Voucher를 받았고, 이 바우처를 SAA 응시에 사용했다.&amp;nbsp;덕분에 CLF와 SAA 두 자격증 시험을 75달러(한화 10만원)으로 볼 수 있었다. 만세.. 참고로, AWS Education를 통한 방식이 아니더라도, AWS는 1년에 약 두 번 50% 바우처를 주기 때문에 시기가 맞다면 이를 사용하기를 추천한다. 2025년 상반기는 이미 50% 바우처가 만료되었고, 하반기에 바우처가 또 제공될 것 같다. (작년 하반기에는 12월 31일까지 사용 가능한 50% 바우처를 줬던 것으로 기억한다.) 추가로, 시험 불합격 시 한 번더 기회를 주는 이벤트도 종종 한다.&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;아래의 Reddit에서 현재 받을 수 있는 AWS Voucher와 이벤트를 수시로 업데이트해준다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1750643677309&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;From the AWSCertifications community on Reddit&quot; data-og-description=&quot;Explore this post and more from the AWSCertifications community&quot; data-og-host=&quot;www.reddit.com&quot; data-og-source-url=&quot;https://www.reddit.com/r/AWSCertifications/comments/1hlhj0k/2025_aws_vouchers_exam_discounts_coupons_other/&quot; data-og-url=&quot;https://www.reddit.com/r/AWSCertifications/comments/1hlhj0k/2025_aws_vouchers_exam_discounts_coupons_other/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b3dp4A/hyZbA8icO2/gzsejQ234C3TfEaQ3OgZx0/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584,https://scrap.kakaocdn.net/dn/6bFuY/hyY8VF6Hpg/JUAhabOt6O1rlva6WkT131/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584&quot;&gt;&lt;a href=&quot;https://www.reddit.com/r/AWSCertifications/comments/1hlhj0k/2025_aws_vouchers_exam_discounts_coupons_other/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.reddit.com/r/AWSCertifications/comments/1hlhj0k/2025_aws_vouchers_exam_discounts_coupons_other/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b3dp4A/hyZbA8icO2/gzsejQ234C3TfEaQ3OgZx0/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584,https://scrap.kakaocdn.net/dn/6bFuY/hyY8VF6Hpg/JUAhabOt6O1rlva6WkT131/img.jpg?width=1120&amp;amp;height=584&amp;amp;face=0_0_1120_584');&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;From the AWSCertifications community on Reddit&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Explore this post and more from the AWSCertifications community&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.reddit.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&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;AWS Certification 시험 신청은 아래 링크에서 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1750642475539&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;AWS Certification - AWS 클라우드 기술 검증 - AWS 인증 받기&quot; data-og-description=&quot;&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/certification/&quot; data-og-url=&quot;https://aws.amazon.com/ko/certification/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/GSwul/hyZbyo4YhX/MKmKfjrMWsyVtkh5DtA2ik/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/ccu8c2/hyY8L4yLzo/QEvhjDEtcJ4nY1KuHC5fKk/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/c4GQFJ/hyY8Mh5Dft/cKoG6Te2Ikp1nqANrLFDWK/img.png?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/certification/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/certification/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/GSwul/hyZbyo4YhX/MKmKfjrMWsyVtkh5DtA2ik/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/ccu8c2/hyY8L4yLzo/QEvhjDEtcJ4nY1KuHC5fKk/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/c4GQFJ/hyY8Mh5Dft/cKoG6Te2Ikp1nqANrLFDWK/img.png?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300');&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;AWS Certification - AWS 클라우드 기술 검증 - AWS 인증 받기&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;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;AWS SAA 공부 방법&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강의는 SAA로 유명한 아래의 유데미 강의를 완강했다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwOPCi/btsOLDIUGhY/GRK4AqY1QclwpwU4yqsMlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwOPCi/btsOLDIUGhY/GRK4AqY1QclwpwU4yqsMlK/img.png&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;699&quot; data-is-animation=&quot;false&quot; width=&quot;626&quot; height=&quot;305&quot; style=&quot;width: 47.4194%; margin-right: 10px;&quot; data-widthpercent=&quot;47.98&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwOPCi/btsOLDIUGhY/GRK4AqY1QclwpwU4yqsMlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwOPCi%2FbtsOLDIUGhY%2FGRK4AqY1QclwpwU4yqsMlK%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;1436&quot; height=&quot;699&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byG02e/btsOWrnsOGX/M3KpPmoC7vBWNQM0fpduPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byG02e/btsOWrnsOGX/M3KpPmoC7vBWNQM0fpduPK/img.png&quot; data-origin-width=&quot;969&quot; data-origin-height=&quot;435&quot; data-is-animation=&quot;false&quot; width=&quot;557&quot; height=&quot;250&quot; style=&quot;width: 51.4178%;&quot; data-widthpercent=&quot;52.02&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byG02e/btsOWrnsOGX/M3KpPmoC7vBWNQM0fpduPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyG02e%2FbtsOWrnsOGX%2FM3KpPmoC7vBWNQM0fpduPK%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;969&quot; height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;/div&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;정확히는 대본만 쭉 읽었다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양이 많긴 하지만, 다 보고 나면 확실히 뭔가 많이 알게 된다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자격증을 떠나서 머리에 든게 많아진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 자격증 취득만이 목표라면.. SAA 공부용으로 정리된 블로그 등을 훑고 덤프를 바로 푸는 것도 괜찮다고 생각한다.&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;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Examtopics 유료 덤프를 함께 공부할 사람들과 나눠서 대략 3000원에 샀다. 최신 문제까지 총 1019 문제였으나 절반인 550문제를 풀었다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;아래의 braindumps 사이트에서도 550문제까지 무료로 볼 수 있다. (Examtopics 사이트는 일정 문제 이후로 막혀있다.) 유료 덤프를 결제하라는 창이 뜨면 오른쪽 상단에 회색 X 표시를 누르면 계속 문제를 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1751167863793&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;Free SAA-C03 Exam braindumps download (SAA-C03 exam dumps Free)&quot; data-og-description=&quot;12280 12280 students passed the SAA-C03 Exam 91.1% Average score for the SAA-C03 Exam 542 Questions and Answers in this SAA-C03 Exam&quot; data-og-host=&quot;free-braindumps.com&quot; data-og-source-url=&quot;https://free-braindumps.com/amazon/free-saa-c03-braindumps.html&quot; data-og-url=&quot;https://free-braindumps.com/amazon/free-saa-c03-braindumps.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://free-braindumps.com/amazon/free-saa-c03-braindumps.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://free-braindumps.com/amazon/free-saa-c03-braindumps.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;Free SAA-C03 Exam braindumps download (SAA-C03 exam dumps Free)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;12280 12280 students passed the SAA-C03 Exam 91.1% Average score for the SAA-C03 Exam 542 Questions and Answers in this SAA-C03 Exam&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;free-braindumps.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&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;나는 3주 동안 시험을 준비했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;평일 중에는 8 - 5시까지 교육을 들어야했기 때문에, 최대 두, 세 시간 정도 공부할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(특히, 6월에 프론트엔드 교육 기간이라.. 모르는 게 많아 복습 시간도 필요했고, 해커톤도 동시에 준비해 SAA 공부를 못한 날도 많았다.)&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;6/1(일) - 6/13(금): 유데미 강의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6/15(일) - 6/21(토): 덤프 풀기 (550문제 풀이)&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;6/22(일) 오전 9시 15분 시험 응시&lt;/p&gt;
&lt;p 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;참고로, 오전 9시 15분에 시작해 딱 두 시간만인 11시 15분에 시험을 마쳤다. 검토를 약 한 시간 정도 했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;결과는 당일 오후 8시 20분에 나왔다.&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;합격!&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Group 104.png&quot; data-origin-width=&quot;4548&quot; data-origin-height=&quot;3412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/psGok/btsOWNqfFU6/bKR4DJlGhGB3jVMXJfAHP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/psGok/btsOWNqfFU6/bKR4DJlGhGB3jVMXJfAHP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/psGok/btsOWNqfFU6/bKR4DJlGhGB3jVMXJfAHP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpsGok%2FbtsOWNqfFU6%2FbKR4DJlGhGB3jVMXJfAHP1%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;680&quot; height=&quot;510&quot; data-filename=&quot;Group 104.png&quot; data-origin-width=&quot;4548&quot; data-origin-height=&quot;3412&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 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;그렇게 나는 3주의 전사로 자격증 취득에 성공했다. 아마.. 실제로 공부한 날만 따지면 2주 반 정도 될 것 같다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;개인적으로는 응시비가 만만치 않다보니, 안정적이게 취득하기 위해선 적어도 3주가 딱 괜찮다고 생각한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;만약, 클라우드 지식이 있고 이 시험에만 집중할 수 있다면 2주로도 가능할 것 같다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daJK4t/btsOXkaqc0p/jccPBozhubDEqScbh3Wrc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daJK4t/btsOXkaqc0p/jccPBozhubDEqScbh3Wrc1/img.png&quot; data-alt=&quot;얏호&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daJK4t/btsOXkaqc0p/jccPBozhubDEqScbh3Wrc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaJK4t%2FbtsOXkaqc0p%2FjccPBozhubDEqScbh3Wrc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;529&quot; height=&quot;279&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;480&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;얏호&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글을 보시는 AWS SAA 시험을 준비하시는 분들 모두 한 번에 착! 붙으시기를 바란다!  &lt;/p&gt;</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>KDT교육</category>
      <category>k디지털트레이닝</category>
      <category>SAA</category>
      <category>부트캠프</category>
      <category>신한투자증권</category>
      <category>알파코</category>
      <category>알파코캠퍼스</category>
      <category>프디아</category>
      <category>프로디지털아카데미</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/91</guid>
      <comments>https://jigoo-log.tistory.com/91#entry91comment</comments>
      <pubDate>Sun, 29 Jun 2025 13:49:47 +0900</pubDate>
    </item>
    <item>
      <title>AWS Cloud Practitioner (CLF-C02) 자격증 취득 후기</title>
      <link>https://jigoo-log.tistory.com/92</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;2025년 5월 18일에 AWS Cloud Practitioner(CLF-C02)를 취득하고, 약 한 달 후인 6월 22일에 Solution Archtect Associate(SAA-C03)까지 취득했다!&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;아래는 AWS SAA 취득 후기이다! AWS Voucher에 대한 내용도 자세히 적어두었다.&lt;/p&gt;
&lt;figure id=&quot;og_1751170885312&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;AWS Solutions Architect - Associate(SAA-C03) 자격증 취득 후기&quot; data-og-description=&quot;2025년 5월 18일에 AWS Cloud Practitioner(CLF-C02)를 취득하고, 약 한 달 후인 6월 22일에 Solution Archtect Associate(SAA-C03)까지 취득했다! AWS Certified Solutions Architect - Associate 자격증시험 준비(Exam Prep) 과정에 등&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/91&quot; data-og-url=&quot;https://jigoo-log.tistory.com/91&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cczsYw/hyZcdfhyEP/rzYDAQXlaKcTlcOXOP0uMK/img.png?width=800&amp;amp;height=421&amp;amp;face=0_0_800_421,https://scrap.kakaocdn.net/dn/JDKBE/hyZfZGr3Ca/F91UvxzK5U6jDgLhp9RqwK/img.png?width=800&amp;amp;height=421&amp;amp;face=0_0_800_421,https://scrap.kakaocdn.net/dn/cIDHRJ/hyZclEoJgn/9OwVKlTYpZaqVoGzN6jXe0/img.png?width=1436&amp;amp;height=699&amp;amp;face=1213_78_1269_140&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/91&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/91&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cczsYw/hyZcdfhyEP/rzYDAQXlaKcTlcOXOP0uMK/img.png?width=800&amp;amp;height=421&amp;amp;face=0_0_800_421,https://scrap.kakaocdn.net/dn/JDKBE/hyZfZGr3Ca/F91UvxzK5U6jDgLhp9RqwK/img.png?width=800&amp;amp;height=421&amp;amp;face=0_0_800_421,https://scrap.kakaocdn.net/dn/cIDHRJ/hyZclEoJgn/9OwVKlTYpZaqVoGzN6jXe0/img.png?width=1436&amp;amp;height=699&amp;amp;face=1213_78_1269_140');&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;AWS Solutions Architect - Associate(SAA-C03) 자격증 취득 후기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2025년 5월 18일에 AWS Cloud Practitioner(CLF-C02)를 취득하고, 약 한 달 후인 6월 22일에 Solution Archtect Associate(SAA-C03)까지 취득했다! AWS Certified Solutions Architect - Associate 자격증시험 준비(Exam Prep) 과정에 등&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1751171013227&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;AWS Certified Cloud Practitioner 자격증 | AWS 자격증 | AWS&quot; data-og-description=&quot;이 자격증을 취득하면 AWS 클라우드, 서비스 및 용어에 대한 높은 수준의 이해가 입증됩니다. 이 자격증은 IT 배경이 아닌 사람이 클라우드로 전환하는 후보자가 클라우드 경력을 쌓을 수 있는 입&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/certification/certified-cloud-practitioner/&quot; data-og-url=&quot;https://aws.amazon.com/ko/certification/certified-cloud-practitioner/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cVJFDc/hyZcmwxqmM/hqvx5IOjCZEkIO4zCb1e2k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/uAlnp/hyZga2h2kt/YWpmUVBRDdLHn7AVwJru51/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/certification/certified-cloud-practitioner/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/certification/certified-cloud-practitioner/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cVJFDc/hyZcmwxqmM/hqvx5IOjCZEkIO4zCb1e2k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/uAlnp/hyZga2h2kt/YWpmUVBRDdLHn7AVwJru51/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109');&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;AWS Certified Cloud Practitioner 자격증 | AWS 자격증 | AWS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 자격증을 취득하면 AWS 클라우드, 서비스 및 용어에 대한 높은 수준의 이해가 입증됩니다. 이 자격증은 IT 배경이 아닌 사람이 클라우드로 전환하는 후보자가 클라우드 경력을 쌓을 수 있는 입&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style3&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzx5K2/btsOL3Oilmk/zY8KTP57YrogKsWZTjrKo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzx5K2/btsOL3Oilmk/zY8KTP57YrogKsWZTjrKo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzx5K2/btsOL3Oilmk/zY8KTP57YrogKsWZTjrKo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbzx5K2%2FbtsOL3Oilmk%2FzY8KTP57YrogKsWZTjrKo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;612&quot; height=&quot;334&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;AWS Education(&lt;/span&gt;&lt;a href=&quot;https://www.awseducate.com/student/s/content&quot;&gt;https://www.awseducate.com/student/s/content&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;)을 통해 credit을 모아 100% Voucher를 받아 무료로 시험에 응시했다. 더 자세한 이야기는 상단에 첨부한 AWS SAA 합격 후기 글에 나와있다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;AWS CLF 공부 방법&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;AWS CLF는 이틀만에 땄다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 요약 정리된 블로그 글을 싹 훑고, 바로 덤프를 풀기 시작했다.&lt;/p&gt;
&lt;figure id=&quot;og_1751171722264&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;핵심요약 정리: AWS Cloud Practitioner 자격증 시험(+시험출제포함)&quot; data-og-description=&quot;핵심 요약 정리: AWS Cloud Practitioner 자격증 시험 (+시험출제포함) [ 목차 ] 1. AWS Cloud Practitioner 반드시 알아야 하는 내용 2. 알기쉬운 Amazon EC2 요금 모델 비교 정리 [ AWS Cloud Practitioner 반드시 알아야 &quot; data-og-host=&quot;tbvjrornfl.tistory.com&quot; data-og-source-url=&quot;https://tbvjrornfl.tistory.com/188&quot; data-og-url=&quot;https://tbvjrornfl.tistory.com/188&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YMV0N/hyZfsIIb0j/XygMwD1uWXyxSZko0w2Tf0/img.png?width=320&amp;amp;height=196&amp;amp;face=0_0_320_196,https://scrap.kakaocdn.net/dn/tPbVE/hyZganGQ85/dcG6Ik8kdrjlGDWI5Yqlx0/img.png?width=320&amp;amp;height=196&amp;amp;face=0_0_320_196,https://scrap.kakaocdn.net/dn/CCTjD/hyZf2DciDZ/DdnV2CbYRUywv1f0TWhbqk/img.png?width=1369&amp;amp;height=637&amp;amp;face=0_0_1369_637&quot;&gt;&lt;a href=&quot;https://tbvjrornfl.tistory.com/188&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://tbvjrornfl.tistory.com/188&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YMV0N/hyZfsIIb0j/XygMwD1uWXyxSZko0w2Tf0/img.png?width=320&amp;amp;height=196&amp;amp;face=0_0_320_196,https://scrap.kakaocdn.net/dn/tPbVE/hyZganGQ85/dcG6Ik8kdrjlGDWI5Yqlx0/img.png?width=320&amp;amp;height=196&amp;amp;face=0_0_320_196,https://scrap.kakaocdn.net/dn/CCTjD/hyZf2DciDZ/DdnV2CbYRUywv1f0TWhbqk/img.png?width=1369&amp;amp;height=637&amp;amp;face=0_0_1369_637');&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;핵심요약 정리: AWS Cloud Practitioner 자격증 시험(+시험출제포함)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;핵심 요약 정리: AWS Cloud Practitioner 자격증 시험 (+시험출제포함) [ 목차 ] 1. AWS Cloud Practitioner 반드시 알아야 하는 내용 2. 알기쉬운 Amazon EC2 요금 모델 비교 정리 [ AWS Cloud Practitioner 반드시 알아야&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;tbvjrornfl.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 braindump를 이용했고, 1 - 180번까지는 3회독, 181 - 350번까지는 1.5회독했다.&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;AWS CLF는 난이도가 그리 높지 않아, 기본적인 클라우드 지식이 있다면 개인적으로 삼 일 안에 충분히 볼 수 있을 것이라 생각한다. 덤프에서 보기 번호까지 똑같이 나오는 문제가 많고, 직관적으로 키워드와 서비스만 잘 매치시키면 되기에 진입장벽이 낮은 AWS 자격증같다. (ex. Inspector - 취약점, GuardDuty - 잠재 위협, Artifact - 규정 준수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1751171396170&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;Free CLF-C02 Exam braindumps download (CLF-C02 exam dumps Free)&quot; data-og-description=&quot;12912 12912 students passed the CLF-C02 Exam 92.2% Average score for the CLF-C02 Exam 679 Questions and Answers in this CLF-C02 Exam&quot; data-og-host=&quot;free-braindumps.com&quot; data-og-source-url=&quot;https://free-braindumps.com/amazon/free-clf-c02-braindumps.html&quot; data-og-url=&quot;https://free-braindumps.com/amazon/free-clf-c02-braindumps.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://free-braindumps.com/amazon/free-clf-c02-braindumps.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://free-braindumps.com/amazon/free-clf-c02-braindumps.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;Free CLF-C02 Exam braindumps download (CLF-C02 exam dumps Free)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;12912 12912 students passed the CLF-C02 Exam 92.2% Average score for the CLF-C02 Exam 679 Questions and Answers in this CLF-C02 Exam&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;free-braindumps.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;합격!&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Group 105.png&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;808&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nespC/btsOVvqn0xL/WgJtVZWVEGLf7d83MUwzkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nespC/btsOVvqn0xL/WgJtVZWVEGLf7d83MUwzkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nespC/btsOVvqn0xL/WgJtVZWVEGLf7d83MUwzkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnespC%2FbtsOVvqn0xL%2FWgJtVZWVEGLf7d83MUwzkK%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;700&quot; height=&quot;500&quot; data-filename=&quot;Group 105.png&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;808&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;4380&quot; data-origin-height=&quot;2152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cw9Ws4/btsOWpJZ2oO/kkMRHFMGqYh6slHFf7RDkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cw9Ws4/btsOWpJZ2oO/kkMRHFMGqYh6slHFf7RDkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cw9Ws4/btsOWpJZ2oO/kkMRHFMGqYh6slHFf7RDkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcw9Ws4%2FbtsOWpJZ2oO%2FkkMRHFMGqYh6slHFf7RDkk%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;596&quot; height=&quot;293&quot; data-origin-width=&quot;4380&quot; data-origin-height=&quot;2152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;&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;</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>ClF</category>
      <category>KDT교육</category>
      <category>k디지털트레이닝</category>
      <category>부트캠프</category>
      <category>신한투자증권</category>
      <category>알파코</category>
      <category>알파코캠퍼스</category>
      <category>프디아</category>
      <category>프로디지털아카데미</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/92</guid>
      <comments>https://jigoo-log.tistory.com/92#entry92comment</comments>
      <pubDate>Sun, 29 Jun 2025 13:49:12 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] EC2</title>
      <link>https://jigoo-log.tistory.com/90</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Group 102.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3pVRv/btsOno6m6H5/Oayu8Ujzir9YhW28HRWiPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3pVRv/btsOno6m6H5/Oayu8Ujzir9YhW28HRWiPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3pVRv/btsOno6m6H5/Oayu8Ujzir9YhW28HRWiPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3pVRv%2FbtsOno6m6H5%2FOayu8Ujzir9YhW28HRWiPk%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;513&quot; height=&quot;513&quot; data-filename=&quot;Group 102.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;h2 data-end=&quot;311&quot; data-start=&quot;291&quot; data-ke-size=&quot;size26&quot;&gt;  EC2 인스턴스 유형 정리&lt;/h2&gt;
&lt;h3 data-end=&quot;349&quot; data-start=&quot;313&quot; data-ke-size=&quot;size23&quot;&gt;1. &lt;b&gt;Compute Optimized&lt;/b&gt; (C 시리즈)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;428&quot; data-start=&quot;350&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;368&quot; data-start=&quot;350&quot;&gt;고성능 프로세서가 필요한 경우&lt;/li&gt;
&lt;li data-end=&quot;410&quot; data-start=&quot;369&quot;&gt;&lt;b&gt;머신 러닝&lt;/b&gt;, 전용 게임 서버, 고성능 웹 서버, HPC 작업 등&lt;/li&gt;
&lt;li data-end=&quot;428&quot; data-start=&quot;411&quot;&gt;예: c6g, c7i&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;465&quot; data-start=&quot;430&quot; data-ke-size=&quot;size23&quot;&gt;2. &lt;b&gt;Memory Optimized&lt;/b&gt; (R 시리즈)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;552&quot; data-start=&quot;466&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;478&quot; data-start=&quot;466&quot;&gt;RAM(메모리) 최적화 작업&lt;/li&gt;
&lt;li data-end=&quot;528&quot; data-start=&quot;479&quot;&gt;In-memory DB (Redis, Memcached), BI, 대규모 데이터 처리&lt;/li&gt;
&lt;li data-end=&quot;552&quot; data-start=&quot;529&quot;&gt;예: r6g, x1, z1d&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;596&quot; data-start=&quot;554&quot; data-ke-size=&quot;size23&quot;&gt;3. &lt;b&gt;Storage Optimized&lt;/b&gt; (I, D, H 시리즈)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;665&quot; data-start=&quot;597&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;611&quot; data-start=&quot;597&quot;&gt;Storage 최적화&lt;/li&gt;
&lt;li data-end=&quot;611&quot; data-start=&quot;597&quot;&gt;고속 디스크 IO 필요&lt;/li&gt;
&lt;li data-end=&quot;641&quot; data-start=&quot;612&quot;&gt;OLTP, NoSQL DB, 분산 파일 시스템 등&lt;/li&gt;
&lt;li data-end=&quot;665&quot; data-start=&quot;642&quot;&gt;예: i3, d3en, h1&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;670&quot; data-start=&quot;667&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;692&quot; data-start=&quot;672&quot; data-ke-size=&quot;size26&quot;&gt;  EC2 과금 및 절약 전략&lt;/h2&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1002&quot; data-start=&quot;694&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;항목&lt;/td&gt;
&lt;td&gt;Saving Plan&lt;/td&gt;
&lt;td&gt;Reserved Instance(RI)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;850&quot; data-start=&quot;807&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;813&quot; data-start=&quot;807&quot;&gt;유연성&lt;/td&gt;
&lt;td data-end=&quot;842&quot; data-start=&quot;813&quot; data-col-size=&quot;sm&quot;&gt;✅ 높음 (Compute Plan은 매우 높음)&lt;/td&gt;
&lt;td data-end=&quot;850&quot; data-start=&quot;842&quot; data-col-size=&quot;sm&quot;&gt;❌ 낮음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;884&quot; data-start=&quot;851&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;859&quot; data-start=&quot;851&quot;&gt;할인 방식&lt;/td&gt;
&lt;td data-end=&quot;867&quot; data-start=&quot;859&quot; data-col-size=&quot;sm&quot;&gt;자동 적용&lt;/td&gt;
&lt;td data-end=&quot;884&quot; data-start=&quot;867&quot; data-col-size=&quot;sm&quot;&gt;예약 조건 일치 시 할인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;925&quot; data-start=&quot;885&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;894&quot; data-start=&quot;885&quot;&gt;지원 서비스&lt;/td&gt;
&lt;td data-end=&quot;917&quot; data-start=&quot;894&quot; data-col-size=&quot;sm&quot;&gt;EC2, Fargate, Lambda&lt;/td&gt;
&lt;td data-end=&quot;925&quot; data-start=&quot;917&quot; data-col-size=&quot;sm&quot;&gt;EC2만&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;974&quot; data-start=&quot;926&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;935&quot; data-start=&quot;926&quot;&gt;변경 가능성&lt;/td&gt;
&lt;td data-end=&quot;949&quot; data-start=&quot;935&quot; data-col-size=&quot;sm&quot;&gt;별도 조정 없이 유연&lt;/td&gt;
&lt;td data-end=&quot;974&quot; data-start=&quot;949&quot; data-col-size=&quot;sm&quot;&gt;Convertible RI만 일부 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1120&quot; data-start=&quot;1004&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1066&quot; data-start=&quot;1004&quot;&gt;&lt;b&gt;Savings Plan&lt;/b&gt;: &quot;매달 $x만큼 EC2/Fargate 쓸게요&quot; &amp;rarr; 서비스/인스턴스 변경 가능&lt;/li&gt;
&lt;li data-end=&quot;1120&quot; data-start=&quot;1067&quot;&gt;&lt;b&gt;RI&lt;/b&gt;: &quot;us-east-1a에서 m5.large 1년 예약할게요&quot; &amp;rarr; 변경 거의 불가&lt;/li&gt;
&lt;li data-end=&quot;1120&quot; data-start=&quot;1067&quot;&gt;따라서, 예약 인스턴스 대신 Savings Plan을 사용하는 추세 (변경의 유연성 때문)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1125&quot; data-start=&quot;1122&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1169&quot; data-start=&quot;1127&quot; data-ke-size=&quot;size26&quot;&gt;  Dedicated Instance vs Dedicated Host&lt;/h2&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 166px;&quot; border=&quot;1&quot; data-end=&quot;1470&quot; data-start=&quot;1171&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;항목&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;Dedicated Instance&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;Dedicated Host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;1311&quot; data-start=&quot;1281&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1296&quot; data-start=&quot;1281&quot;&gt;물리적 서버 독점 사용&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1303&quot; data-start=&quot;1296&quot; data-col-size=&quot;sm&quot;&gt;✅ 있음&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1311&quot; data-start=&quot;1303&quot; data-col-size=&quot;sm&quot;&gt;✅ 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;1339&quot; data-start=&quot;1312&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1322&quot; data-start=&quot;1312&quot;&gt;인스턴스 제어&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1328&quot; data-start=&quot;1322&quot; data-col-size=&quot;sm&quot;&gt;제한적&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1339&quot; data-start=&quot;1328&quot; data-col-size=&quot;sm&quot;&gt;세밀하게 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;1366&quot; data-start=&quot;1340&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1351&quot; data-start=&quot;1340&quot;&gt;하드웨어 가시성&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1358&quot; data-start=&quot;1351&quot; data-col-size=&quot;sm&quot;&gt;❌ 없음&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1366&quot; data-start=&quot;1358&quot; data-col-size=&quot;sm&quot;&gt;✅ 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;1395&quot; data-start=&quot;1367&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1379&quot; data-start=&quot;1367&quot;&gt;라이선스 BYOL&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1387&quot; data-start=&quot;1379&quot; data-col-size=&quot;sm&quot;&gt;❌ 제한적&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1395&quot; data-start=&quot;1387&quot; data-col-size=&quot;sm&quot;&gt;✅ 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;1424&quot; data-start=&quot;1396&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1404&quot; data-start=&quot;1396&quot;&gt;과금 단위&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1414&quot; data-start=&quot;1404&quot; data-col-size=&quot;sm&quot;&gt;인스턴스 단위&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1424&quot; data-start=&quot;1414&quot; data-col-size=&quot;sm&quot;&gt;호스트 단위&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;1470&quot; data-start=&quot;1425&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1432&quot; data-start=&quot;1425&quot;&gt;사용 예&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1451&quot; data-start=&quot;1432&quot; data-col-size=&quot;sm&quot;&gt;격리된 인스턴스가 필요한 경우&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;1470&quot; data-start=&quot;1451&quot; data-col-size=&quot;sm&quot;&gt;규정/라이선스 준수 필요 시&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1483&quot; data-start=&quot;1472&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;비유하자면!&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1564&quot; data-start=&quot;1484&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1526&quot; data-start=&quot;1484&quot;&gt;&lt;b&gt;Dedicated Instance&lt;/b&gt;: 전 층을 임대한 호텔 객실&lt;/li&gt;
&lt;li data-end=&quot;1564&quot; data-start=&quot;1527&quot;&gt;&lt;b&gt;Dedicated Host&lt;/b&gt;: 호텔 건물 자체를 내가 소유&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1569&quot; data-start=&quot;1566&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1591&quot; data-start=&quot;1571&quot; data-ke-size=&quot;size26&quot;&gt;  스팟 인스턴스와 스팟 플릿&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1687&quot; data-start=&quot;1593&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1627&quot; data-start=&quot;1593&quot;&gt;&lt;b&gt;스팟 인스턴스&lt;/b&gt;: 남는 EC2 리소스를 저렴하게 활
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-end=&quot;1627&quot; data-start=&quot;1593&quot;&gt;원하는 인스턴스 유형과 AZ를 정확히 아는 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1668&quot; data-start=&quot;1628&quot;&gt;&lt;b&gt;스팟 플릿&lt;/b&gt;: 가장 낮은 가격으로 스팟 인스턴스를 자동으로 요청
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-end=&quot;1668&quot; data-start=&quot;1628&quot;&gt;조건을 만족하는 모든 인스턴스 유형과 모든 AZ를 선택해라! 이때 조건은 가장 낮은 가격으로 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1692&quot; data-start=&quot;1689&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1712&quot; data-start=&quot;1694&quot; data-ke-size=&quot;size26&quot;&gt;  EC2 보안 설정&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1893&quot; data-start=&quot;1714&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1771&quot; data-start=&quot;1714&quot;&gt;&lt;b&gt;포트 번호&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1771&quot; data-start=&quot;1728&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1746&quot; data-start=&quot;1728&quot;&gt;22: Linux용 SSH&lt;/li&gt;
&lt;li data-end=&quot;1771&quot; data-start=&quot;1749&quot;&gt;3389: Windows용 RDP&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1837&quot; data-start=&quot;1772&quot;&gt;&lt;b&gt;보안 그룹&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1837&quot; data-start=&quot;1786&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1812&quot; data-start=&quot;1786&quot;&gt;인스턴스 외부에 존재 (VPC 지역에 종속)&lt;/li&gt;
&lt;li data-end=&quot;1837&quot; data-start=&quot;1815&quot;&gt;리전이나 VPC 변경 시 재생성 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1893&quot; data-start=&quot;1838&quot;&gt;&lt;b&gt;SSH는 공용 IP로 접속&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1893&quot; data-start=&quot;1861&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1893&quot; data-start=&quot;1861&quot;&gt;사설 IP는 동일 네트워크(VPC) 내에서만 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1898&quot; data-start=&quot;1895&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1918&quot; data-start=&quot;1900&quot; data-ke-size=&quot;size26&quot;&gt;  EC2 배치 그룹(Placement Group)&lt;/h2&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 100px;&quot; border=&quot;1&quot; data-end=&quot;2096&quot; data-start=&quot;1920&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 18.1395%;&quot;&gt;배치 그룹&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 49.186%;&quot;&gt;설명&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 32.5581%;&quot;&gt;사용 사례&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;2007&quot; data-start=&quot;1976&quot;&gt;
&lt;td style=&quot;height: 22px; width: 18.1395%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1987&quot; data-start=&quot;1976&quot;&gt;분산 배치 그룹&lt;/td&gt;
&lt;td style=&quot;height: 22px; width: 49.186%;&quot; data-end=&quot;1999&quot; data-start=&quot;1987&quot; data-col-size=&quot;sm&quot;&gt;여러 AZ에 인스턴스를 여러 가용 영역(AZ)에 분산 배치&lt;/td&gt;
&lt;td style=&quot;height: 22px; width: 32.5581%;&quot; data-end=&quot;2007&quot; data-start=&quot;1999&quot; data-col-size=&quot;sm&quot;&gt;고가용성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;2051&quot; data-start=&quot;2008&quot;&gt;
&lt;td style=&quot;height: 22px; width: 18.1395%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;2021&quot; data-start=&quot;2008&quot;&gt;클러스터 배치 그룹&lt;/td&gt;
&lt;td style=&quot;height: 22px; width: 49.186%;&quot; data-end=&quot;2036&quot; data-start=&quot;2021&quot; data-col-size=&quot;sm&quot;&gt;인스턴스를 물리적으로 가까운 하드웨어에 배치&lt;/td&gt;
&lt;td style=&quot;height: 22px; width: 32.5581%;&quot; data-end=&quot;2051&quot; data-start=&quot;2036&quot; data-col-size=&quot;sm&quot;&gt;HPC(고성능 컴퓨팅), 저지연 네트워킹&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;2096&quot; data-start=&quot;2052&quot;&gt;
&lt;td style=&quot;height: 22px; width: 18.1395%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;2063&quot; data-start=&quot;2052&quot;&gt;분할 배치 그룹&lt;/td&gt;
&lt;td style=&quot;height: 22px; width: 49.186%;&quot; data-end=&quot;2082&quot; data-start=&quot;2063&quot; data-col-size=&quot;sm&quot;&gt;인스턴스를 서로 다른 논리적 파티션(하드웨어)에 배치&lt;/td&gt;
&lt;td style=&quot;height: 22px; width: 32.5581%;&quot; data-end=&quot;2096&quot; data-start=&quot;2082&quot; data-col-size=&quot;sm&quot;&gt;장애 격리 필요 시&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;2101&quot; data-start=&quot;2098&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2130&quot; data-start=&quot;2103&quot; data-ke-size=&quot;size26&quot;&gt;  EC2 절전 모드 (Hibernate)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2244&quot; data-start=&quot;2132&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2176&quot; data-start=&quot;2132&quot;&gt;&lt;b&gt;RAM 상태를 디스크(EBS)에 저장&lt;/b&gt;해 두었다가 부팅 시 그대로 복원&lt;/li&gt;
&lt;li data-end=&quot;2176&quot; data-start=&quot;2132&quot;&gt;운영체제가 계속 돌아가고 있다고 착각하게 함&lt;/li&gt;
&lt;li data-end=&quot;2176&quot; data-start=&quot;2132&quot;&gt;RAM에 있던 인 메모리 상태는 그대로 보존되므로, 인스턴스 부팅이 빨라짐&lt;/li&gt;
&lt;li data-end=&quot;2202&quot; data-start=&quot;2177&quot;&gt;빠른 재부팅, 장시간 프로세스 유지에 적합&lt;/li&gt;
&lt;li data-end=&quot;2244&quot; data-start=&quot;2203&quot;&gt;루트 EBS가 암호화되어야 하며, &lt;b&gt;RAM 크기만큼 저장공간 필요&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2256&quot; data-start=&quot;2246&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;사용 사례&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2310&quot; data-start=&quot;2257&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2269&quot; data-start=&quot;2257&quot;&gt;부팅 시간이 긴 앱&lt;/li&gt;
&lt;li data-end=&quot;2289&quot; data-start=&quot;2270&quot;&gt;중단 없이 재시작 필요한 서비스&lt;/li&gt;
&lt;li data-end=&quot;2310&quot; data-start=&quot;2290&quot;&gt;인메모리 상태 유지가 필요한 환경(RAM 상태를 저장하고 싶을 때)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2315&quot; data-start=&quot;2312&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2337&quot; data-start=&quot;2317&quot; data-ke-size=&quot;size26&quot;&gt;  알아두면 좋은 내용&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2500&quot; data-start=&quot;2339&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2390&quot; data-start=&quot;2339&quot;&gt;&lt;b&gt;IPAM (IP Address Manager)&lt;/b&gt;: VPC 내 IP 관리를 효율적으로&lt;/li&gt;
&lt;li data-end=&quot;2437&quot; data-start=&quot;2391&quot;&gt;&lt;b&gt;탄력적 IP&lt;/b&gt;는 구조적으로 좋지 못한 선택 &lt;b&gt; &lt;/b&gt;&amp;nbsp;&amp;rarr; &lt;b&gt;Route 53 + DNS&lt;/b&gt;가 더 좋은 선택
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-end=&quot;2437&quot; data-start=&quot;2391&quot;&gt;&amp;nbsp;Route 53 - 임의의 공용 IP를 사용하여 DNS 이름을 할당하는 것이 좋다! (제어 &amp;amp; 확장 가능성  )&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;2500&quot; data-start=&quot;2438&quot;&gt;&lt;b&gt;Capacity Reservation&lt;/b&gt;: 특정 AZ에 리소스를 사전 확보 (사용 안 해도 비용 부과됨)&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>KDT교육</category>
      <category>k디지털트레이닝</category>
      <category>부트캠프</category>
      <category>신한투자증권</category>
      <category>알파코</category>
      <category>알파코캠퍼스</category>
      <category>프디아</category>
      <category>프로디지털아카데미</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/90</guid>
      <comments>https://jigoo-log.tistory.com/90#entry90comment</comments>
      <pubDate>Wed, 4 Jun 2025 09:35:40 +0900</pubDate>
    </item>
    <item>
      <title>[신한투자증권] 프로디지털아카데미 6기 서류 &amp;amp; 면접 합격 후기</title>
      <link>https://jigoo-log.tistory.com/89</link>
      <description>&lt;h4 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;신한투자증권 프로디지털아카데미 6기 합격 후기  &lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;2025년 4월 22일부터 신한투자증권 프로디지털아카데미에 합격하여 교육을 듣고 있다. 이후에 지원하시는 분들을 위해 서류, 코딩테스트, 면접 과정을 자세히 적어보려고 한다. 교육 과정에 대한 자세한 내용은 아래와 같다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;870&quot; data-origin-height=&quot;3963&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLpdZH/btsNDMzH95p/kq5TDTIRXgVW95SaUKLk4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLpdZH/btsNDMzH95p/kq5TDTIRXgVW95SaUKLk4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLpdZH/btsNDMzH95p/kq5TDTIRXgVW95SaUKLk4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLpdZH%2FbtsNDMzH95p%2Fkq5TDTIRXgVW95SaUKLk4K%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;870&quot; height=&quot;3963&quot; data-origin-width=&quot;870&quot; data-origin-height=&quot;3963&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;지원 자격&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;✔ 금융권 &lt;/span&gt;&lt;span&gt;ICT &lt;/span&gt;&lt;span&gt;개발자를 준비하는 분&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;✔ 도메인에 대한 이해를 바탕으로 &lt;/span&gt;&lt;span&gt;ICT &lt;/span&gt;&lt;span&gt;연계와 활용을 통찰할 수 있는 종합적이고 유연한 사고능력&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;✔ 데이터 중심 문제 분석 및 서비스 기획을 통한 서비스 구현 능력&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;서류&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;서류는 네 문항으로 이루어져 있었다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 디지털/ICT분야에서 어떤 인재로 성장하고 싶은지 향후 계획 및 포부를 작성해주세요. (700자) &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;➡ 개발자로서의 가치관과 금융 IT 분야에 대한 관심을 바탕으로 서술&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;&amp;nbsp;➡ 특히, 개발과 금융(핀테크, 금융 데이터 등) 도메인 모두 집중해서 쓰려고 노력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 디지털/ICT역량을 갖추기 위하여 노력한 활동(공모전, 프로젝트, 인턴, 개인공부 등)에 대해 구체적으로 작성해주세요. [활동 전반에 대한 구체적인 과정 및 결과, 본인의 수행역할 등]* (700자) &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;➡&lt;span&gt;&lt;span&gt; (백엔드) 졸업프로젝트 ~ 네트워크와 프로토콜 호환성에 있어 발생한 기술적 문제와 해결 방안을 구체적으로 작성&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 신한투자증권이 본인을 선발해야 하는 이유를 작성해주세요.* (700자) &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;➡&lt;span&gt;&lt;span&gt; 핀테크 산업과 내 좌우명, 개발자로서 필요한 자세를 연관지어 작성, 신한금융그룹과 함께하는 빅데이터 해커톤에서 신한투자증권의 금융 데이터를 활용해 데이터 분석을 진행한 경험 ~ '디지털 금융' 이라는 키워드를 중심으로 작성&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 선택사항(상기 항목에서 기재하지 못한 내용 및 기타 사항을 자유롭게 작성해주세요.)* (1000자) &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;➡&lt;span&gt;&lt;span&gt;&lt;span&gt; (백엔드) '찐친고사' 프로젝트 무중단 CI/CD 배포 경험, 보안과 사용자 경험을 향상시킨 경험 (약 500자)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;&amp;nbsp;➡&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;(인프라 &amp;amp; 백엔드) ACC(AWS Cloud Club)에서 활동하며 클라우드 세미나 &amp;amp; 핸즈온 실습 진행, Redis, RabbitMQ 등 대규모 채팅 아키텍처 설계 및 개발 경험 (약 500자)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;코딩테스트&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;&amp;nbsp;➡&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 코딩테스트는 프로그래머스 사이트에서 진행됐다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;코딩테스트 환경에 대해 기억나는 내용을 간략히 적어보자면,&amp;nbsp;&lt;/span&gt;듀얼 모니터는 옷으로 덮어야 하고, 외부 키보드를 사용하지 못한다.&amp;nbsp;코딩 테스트 전에 앱으로 영상을 찍어 제출하는데도 불구하고, 노트북 내장 캠으로 책상을 또 확인했다. 물, 음료는 마시지 못하고, 지우개 사용이 불가능하며, 필기구도 딱! 하나 사용할 수 있다.&amp;nbsp;사전에 알았던 내용은 듀얼 모니터를 옷으로 덮어야 한다는 것 뿐이여서 감독관 메세지를 받고, 키보드도 열심히 치우고 펜도 하나 빼고 다 치웠다. 철저한 환경이였다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7; color: #353638; text-align: left;&quot;&gt;1. DFS + Greedy (멀티탭 전력 문제)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;: 멀티탭에 다른 멀티탭을 연결하거나, 디지털 기기의 콘센트를 연결할 수 있다. 허용 전력을 초과하는 경우, 디지털 기기의 콘센트를 뽑는 최소한의 수를 출력해라.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;아래의 문제와 유사하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1700&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1700&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1931&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1931&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7; color: #353638; text-align: left;&quot;&gt;2. 2차원 배열, HashSet (통장 계좌 문제)&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1748677169916&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42577&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bI5pCO/hyY0oAVKQw/kexylwKq7OLlnBcPbXrfKK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bPM0W4/hyY0rRV27i/trmSg3mbgNdqhXqJG03Wr1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42577&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42577&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bI5pCO/hyY0oAVKQw/kexylwKq7OLlnBcPbXrfKK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bPM0W4/hyY0rRV27i/trmSg3mbgNdqhXqJG03Wr1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7; color: #353638; text-align: left;&quot;&gt;3. HashMap (영화관 발권 문제)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;예상보다 조금 더 어려웠고, 2솔을 했다! 체감상 첫 번째 문제는 골드 5, 두, 세 번째 문제는 실버 3~4 정도로 느껴졌다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;첫 번째 문제는 대략적인 DFS 코드만 제출하고, 다른 두 문제를 풀었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;합격한 사람들은 대체로 2솔이 많았고, 적지만 0솔, 1솔, 3솔하신 분들도 있었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;서류를 잘 쓴다면 코테를 잘 못 봐도 서류 통과를 할 수 있을 것이니 코테를 많이 걱정하지 않으시면 좋겠다!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;만약, 코테를 잘 못 본 상황에서 면접을 간다면, 아마 코테 관련 질문을 받을텐데 이 부분을 대비하시길 추천드린다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;면접&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;면접은 다대다 방식으로 네 명의 면접관과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;다섯 명의 면접자&lt;/span&gt;로, 약 40분 동안 이루어졌다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;내가 들어간 시간에는 &lt;span style=&quot;background-color: #ffffff;&quot;&gt;은&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;행권 인턴 1, 석사 1, 현직자 1, 졸업생 1, 그리고 나까지 다섯이서 면접을 봤다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;다섯 중 나 포함 네 분이 합격해서 함께 교육을 듣고 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;1. (공통) 자신의 강점을 포함한 자기소개&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;2. (공통) 본 아카데미에서 기대되는 활동 &amp;amp; 개발하고자 하는 서비스&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;3. (공통) 다른 교육 과정 말고 프로디지털아카데미여야 하는 이유가 있는지&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;4. 신빅해(신한금융그룹 빅데이터 해커톤) 관련 질문 다섯 개&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;&amp;nbsp;➡ 여기서 꼬리 질문을 엄청 받았다! 신한금융그룹 중에서도 신한투자증권의 금융 데이터로 진행한 대회라 더욱 관심을 가져주신 듯하다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;- 해당 해커톤에서 제시한 활용 방안인 '소액 자동 투자 시스템'이 구체적으로 어떤 것인지 설명&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;- 객관적으로 해당 대회에서의 데이터 분석의 깊이가 어느 정도였는지&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;- 팀원 대부분이 해당 대회에서 데이터 분석을 처음 접했다고 했는데 어떤 방식으로 진행했는지&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;- 팀장이라고 했는데 그렇다면 팀장으로서의 역할이 크게 없었던 것 아닌지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 해당 대회에 대한 회고이다.&lt;/p&gt;
&lt;figure id=&quot;og_1748675556880&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[신.빅.해] 제1회 신한금융그룹 빅데이터 해커톤 회고&quot; data-og-description=&quot;신.빅.해 - 신한금융그룹과 함께 하는 빅데이터 해커톤 회고   안녕하세요. 지구입니다! 9월 16일부터 3주동안 진행되었던 '신한금융그룹과 함께 하는 빅데이터 해커톤'의 결선이 10월 7일, 어제 &quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/4&quot; data-og-url=&quot;https://jigoo-log.tistory.com/4&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/nixOa/hyY0nINCNe/3KxLZPE47XIZxeTX8i6yk1/img.jpg?width=630&amp;amp;height=891&amp;amp;face=0_0_630_891,https://scrap.kakaocdn.net/dn/cz4OLw/hyY1hVBVHE/0GScLUd4XlDlNZlokCckjK/img.jpg?width=630&amp;amp;height=891&amp;amp;face=0_0_630_891,https://scrap.kakaocdn.net/dn/b0gbTM/hyY1aPHio8/bPm6n6JpQ4RnjxKSoJQV91/img.png?width=1117&amp;amp;height=805&amp;amp;face=0_0_1117_805&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/4&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/nixOa/hyY0nINCNe/3KxLZPE47XIZxeTX8i6yk1/img.jpg?width=630&amp;amp;height=891&amp;amp;face=0_0_630_891,https://scrap.kakaocdn.net/dn/cz4OLw/hyY1hVBVHE/0GScLUd4XlDlNZlokCckjK/img.jpg?width=630&amp;amp;height=891&amp;amp;face=0_0_630_891,https://scrap.kakaocdn.net/dn/b0gbTM/hyY1aPHio8/bPm6n6JpQ4RnjxKSoJQV91/img.png?width=1117&amp;amp;height=805&amp;amp;face=0_0_1117_805');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[신.빅.해] 제1회 신한금융그룹 빅데이터 해커톤 회고&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;신.빅.해 - 신한금융그룹과 함께 하는 빅데이터 해커톤 회고   안녕하세요. 지구입니다! 9월 16일부터 3주동안 진행되었던 '신한금융그룹과 함께 하는 빅데이터 해커톤'의 결선이 10월 7일, 어제&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 서류에 적은 내용을 정확히 본인이 이해하고, 실제로 한 것이 맞는지 검증하는 느낌의 질문을 전체적으로 하셨다.&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;h4 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;합격!&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;4320&quot; data-origin-height=&quot;3384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TtjKC/btsOmVhr7mq/FQfJHjNUtGkiH0nt4hFSyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TtjKC/btsOmVhr7mq/FQfJHjNUtGkiH0nt4hFSyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TtjKC/btsOmVhr7mq/FQfJHjNUtGkiH0nt4hFSyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTtjKC%2FbtsOmVhr7mq%2FFQfJHjNUtGkiH0nt4hFSyk%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;382&quot; height=&quot;299&quot; data-origin-width=&quot;4320&quot; data-origin-height=&quot;3384&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;면접을 4/10 목요일(첫 날 두 번째 타임)에 보았는데, 4/14 월요일 오후 6시 50분 경에 합격 연락을 받았다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 예상보다 빨리 연락이 와서 무척 다행이였다. 하고 있던 알바를 그만둔다고 말씀드려야 했기에..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 벌써 교육을 다닌지 한 달이 넘었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라우드, 기획 수업을 거쳐 지난 주부터 프론트엔드 수업을 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;교육을 한 달째 수강하면서 든 생각은 주변인들에게 정말 추천하고 싶다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벌써 신한투자증권 현직자 멘토링을 네, 다섯 번 진행했고, 현직자 분들의 실무 이야기를 들을 수 있다는게 정말 큰 장점이자 동기 부여가 된다고 생각한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;교육에서도 정말 많은 걸 배우고 있다.&amp;nbsp;교육에 대한 내용도 정리해서 블로그에 작성하고 싶은데, 생각보다 교육이 휘몰아치고 자격증과 예습, 복습을 함께 하고 있다보니 시간이 잘 나지 않는다. 기회가 된다면 특히 클라우드 실습 부분을 작성해보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주말 약 이틀동안 공부해서 AWS CLF를 취득했고, 지금은 AWS SAA를 준비 중이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 좋은 것은 함께 교육을 듣는 사람들이 너무 좋다. 모두가 정말 열심히 살아온! 멋진 사람들이고, 교육에도 모두 성실히 참여하다보니 다같이 상향평준화되는 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;마지막으로, 신한투자증권 프로디지털아카데미를 준비하시는 분이 있다면, 이 글이 작은 도움이 되었으면 좋겠다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;+ 25.11.04&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신한투자증권 프로디지털아카데미를 수료하고 쓴 글을 첨부합니다!&lt;/p&gt;
&lt;figure id=&quot;og_1762184751652&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;[신한투자증권] 프로디지털아카데미 6기 수료 회고&quot; data-og-description=&quot;드디어!2025년 4월 22일부터 10월 24일까지 6개월간 진행된신한투자증권 프로디지털 아카데미를 수료했다. 반년간 프디아를 하며 생각한 것들을 가볍게 쭉 적어보려고 한다. 아래는 여담이다!더보&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/101&quot; data-og-url=&quot;https://jigoo-log.tistory.com/101&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bKo4iP/hyZMFgXnoR/0je7wv7gLFPEjFZrfK6i6k/img.png?width=800&amp;amp;height=1028&amp;amp;face=0_0_800_1028,https://scrap.kakaocdn.net/dn/dxWRUz/hyZMznuCEj/KwUMPmyKJTfq8BuxwWqUD1/img.png?width=800&amp;amp;height=1028&amp;amp;face=0_0_800_1028,https://scrap.kakaocdn.net/dn/bBVUU7/hyZMYIJyQL/QVE6A8YJl1N3sG25RydxUK/img.png?width=1059&amp;amp;height=1362&amp;amp;face=0_0_1059_1362&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/101&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/101&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bKo4iP/hyZMFgXnoR/0je7wv7gLFPEjFZrfK6i6k/img.png?width=800&amp;amp;height=1028&amp;amp;face=0_0_800_1028,https://scrap.kakaocdn.net/dn/dxWRUz/hyZMznuCEj/KwUMPmyKJTfq8BuxwWqUD1/img.png?width=800&amp;amp;height=1028&amp;amp;face=0_0_800_1028,https://scrap.kakaocdn.net/dn/bBVUU7/hyZMYIJyQL/QVE6A8YJl1N3sG25RydxUK/img.png?width=1059&amp;amp;height=1362&amp;amp;face=0_0_1059_1362');&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;[신한투자증권] 프로디지털아카데미 6기 수료 회고&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;드디어!2025년 4월 22일부터 10월 24일까지 6개월간 진행된신한투자증권 프로디지털 아카데미를 수료했다. 반년간 프디아를 하며 생각한 것들을 가볍게 쭉 적어보려고 한다. 아래는 여담이다!더보&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발 기록</category>
      <category>신한투자증권</category>
      <category>프로디지털아카데미</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/89</guid>
      <comments>https://jigoo-log.tistory.com/89#entry89comment</comments>
      <pubDate>Sat, 31 May 2025 17:32:46 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] Springboot EC2 배포 - Ubuntu</title>
      <link>https://jigoo-log.tistory.com/87</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스를 생성한 이후부터 작성합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스에 연결!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1794&quot; data-origin-height=&quot;676&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tgNLM/btsK6Aia2R0/WiAyyb1zwnMP7IYOcTGkS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tgNLM/btsK6Aia2R0/WiAyyb1zwnMP7IYOcTGkS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tgNLM/btsK6Aia2R0/WiAyyb1zwnMP7IYOcTGkS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtgNLM%2FbtsK6Aia2R0%2FWiAyyb1zwnMP7IYOcTGkS0%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;1794&quot; height=&quot;676&quot; data-origin-width=&quot;1794&quot; data-origin-height=&quot;676&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1735219711220&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod 400 &quot;프라이빗키이름&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키 권한을 수정하지 않으면, 실행이 안 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1735219727166&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh -i &quot;aws-AirChat-key.pem&quot; ubuntu@ec2-3-35-171-53.ap-northeast-2.compute.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;이때, 실행이 안 된다면 절대 경로로 .pem 키를 입력해보세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 절대 경로로 해야 실행이 됐습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1735&quot; data-origin-height=&quot;651&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhoS95/btsK6ovt400/9iaezDkE2BS2kISfGlxcAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhoS95/btsK6ovt400/9iaezDkE2BS2kISfGlxcAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhoS95/btsK6ovt400/9iaezDkE2BS2kISfGlxcAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhoS95%2FbtsK6ovt400%2F9iaezDkE2BS2kISfGlxcAk%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;1735&quot; height=&quot;651&quot; data-origin-width=&quot;1735&quot; data-origin-height=&quot;651&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;이제 깃을 클론해줍니다. 만약, private 레포지토리라면 ssh 키를 다음과 같이 생성해주어야 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1735219738558&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh-keygen -t rsa -C 깃허브주소&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;940&quot; data-origin-height=&quot;493&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b45YuV/btsLAtBqfwu/oTgbUYFmqPg5a3DZw7BKeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b45YuV/btsLAtBqfwu/oTgbUYFmqPg5a3DZw7BKeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b45YuV/btsLAtBqfwu/oTgbUYFmqPg5a3DZw7BKeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb45YuV%2FbtsLAtBqfwu%2FoTgbUYFmqPg5a3DZw7BKeK%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;940&quot; height=&quot;493&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;493&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;1227&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gbu6T/btsK52MXXXX/BSBbPUTEkrd5P5NoF8Kw1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gbu6T/btsK52MXXXX/BSBbPUTEkrd5P5NoF8Kw1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gbu6T/btsK52MXXXX/BSBbPUTEkrd5P5NoF8Kw1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGbu6T%2FbtsK52MXXXX%2FBSBbPUTEkrd5P5NoF8Kw1K%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;1227&quot; height=&quot;323&quot; data-origin-width=&quot;1227&quot; data-origin-height=&quot;323&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lGtu4/btsK8sv8MRc/GclBHulwUeik6oh90aykV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lGtu4/btsK8sv8MRc/GclBHulwUeik6oh90aykV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lGtu4/btsK8sv8MRc/GclBHulwUeik6oh90aykV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlGtu4%2FbtsK8sv8MRc%2FGclBHulwUeik6oh90aykV0%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;525&quot; height=&quot;333&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;333&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;git clone [ssh 주소]를 입력해줍니다.&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;만약, 코드가 수정되었다면 pull을 받아옵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git pull origin main&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;1760&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VarTa/btsK8ugsF1g/WD0KZwqFwowIZxeaKHbwV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VarTa/btsK8ugsF1g/WD0KZwqFwowIZxeaKHbwV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VarTa/btsK8ugsF1g/WD0KZwqFwowIZxeaKHbwV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVarTa%2FbtsK8ugsF1g%2FWD0KZwqFwowIZxeaKHbwV1%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;1760&quot; height=&quot;326&quot; data-origin-width=&quot;1760&quot; data-origin-height=&quot;326&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;빌드는 pull을 받을 때마다 해주어야 합니다. 만약! 처음 build를 시도하면 실행이 안 될 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1735219762551&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod +x gradlew&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어 실행 후, 빌드하면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1735219774092&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;./gradlew build&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나, 빌드 도중 무한 로딩이 되는 경우가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는, aws 프리티어의 용량의 문제입니다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MBP4p/btsK8sCWRy7/Bk01w7ZNPKNWgTi3NpAIBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MBP4p/btsK8sCWRy7/Bk01w7ZNPKNWgTi3NpAIBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MBP4p/btsK8sCWRy7/Bk01w7ZNPKNWgTi3NpAIBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMBP4p%2FbtsK8sCWRy7%2FBk01w7ZNPKNWgTi3NpAIBk%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;739&quot; height=&quot;73&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;73&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;build/libs 경로로 가서.jar 파일을 찾아줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1735219788162&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd build/libs

ls &amp;rarr; java -jar airchat-0.0.1-SNAPSHOT.jar&lt;/code&gt;&lt;/pre&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;1768&quot; data-origin-height=&quot;257&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zlsHV/btsK8GHKN29/INVu1iXjQv3wyiUCEyVDl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zlsHV/btsK8GHKN29/INVu1iXjQv3wyiUCEyVDl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zlsHV/btsK8GHKN29/INVu1iXjQv3wyiUCEyVDl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzlsHV%2FbtsK8GHKN29%2FINVu1iXjQv3wyiUCEyVDl1%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;1768&quot; height=&quot;257&quot; data-origin-width=&quot;1768&quot; data-origin-height=&quot;257&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1735219802585&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nohup [java -jar airchat-0.0.1-SNAPSHOT.jar] &amp;amp;

tail -f nohup.out&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;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;pull을 받게 되면, 실행 중인 서버를 재시작해야합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1735219817884&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ps aux | grep java

kill &amp;lt;PID&amp;gt;

sudo kill -9 2493&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;프로세스 아이디가 1338이라면 kill 1338로 서버를 멈추고,&amp;nbsp;클론받은 폴더 경로에서 아래의 순서로 하시면 됩니다!&lt;/p&gt;
&lt;pre id=&quot;code_1735219854010&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git pull origin main
./gradlew build 
cd build/libs 
nohup [java -jar airchat-0.0.1-SNAPSHOT.jar] &amp;amp;
tail -f nohup.out&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Back-end/Spring</category>
      <category>EC2</category>
      <category>springboot</category>
      <category>ubuntu</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/87</guid>
      <comments>https://jigoo-log.tistory.com/87#entry87comment</comments>
      <pubDate>Thu, 26 Dec 2024 22:31:22 +0900</pubDate>
    </item>
    <item>
      <title>21921번 - 블로그 | 슬라이딩 윈도우 알고리즘 (C++)</title>
      <link>https://jigoo-log.tistory.com/85</link>
      <description>&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;21921_블로그.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmjZz0/btsIOHKLaU3/UefWRxx5K96F6ExvQvlAB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmjZz0/btsIOHKLaU3/UefWRxx5K96F6ExvQvlAB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmjZz0/btsIOHKLaU3/UefWRxx5K96F6ExvQvlAB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmjZz0%2FbtsIOHKLaU3%2FUefWRxx5K96F6ExvQvlAB0%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;475&quot; height=&quot;475&quot; data-filename=&quot;21921_블로그.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1103&quot; data-origin-height=&quot;857&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dh1IEb/btsIQe1CXNE/F8sBKl5hlwhKAWbkgXfmtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dh1IEb/btsIQe1CXNE/F8sBKl5hlwhKAWbkgXfmtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dh1IEb/btsIQe1CXNE/F8sBKl5hlwhKAWbkgXfmtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdh1IEb%2FbtsIQe1CXNE%2FF8sBKl5hlwhKAWbkgXfmtK%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;1103&quot; height=&quot;857&quot; data-origin-width=&quot;1103&quot; data-origin-height=&quot;857&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;1125&quot; data-origin-height=&quot;765&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjO72Q/btsIPZKqLjT/7ngk0pjnZ17rPV1XAURPq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjO72Q/btsIPZKqLjT/7ngk0pjnZ17rPV1XAURPq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjO72Q/btsIPZKqLjT/7ngk0pjnZ17rPV1XAURPq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjO72Q%2FbtsIPZKqLjT%2F7ngk0pjnZ17rPV1XAURPq1%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;1125&quot; height=&quot;765&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;슬라이딩 윈도우 알고리즘을 이용해 풀이했다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&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;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;예를 들어 예제 입력 2의 경우에는 '1 1 1 1 5', '1 1 1 5 1'로 총 방문자 수가 9인 기간 두 개가 있기 때문에 출력 값이 '9 2'가 된다.&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;따라서, 기간의 개수를 세기 위해 cnt 값을 추가해주어야 한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1722002264708&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;2559번 - 수열 | 슬라이딩 윈도우 알고리즘 (C++)&quot; data-og-description=&quot;문제풀이슬라이딩 윈도우 알고리즘을 이용해 풀이했다.&amp;nbsp;&amp;nbsp; 1. 0부터 k-1까지는 모두 sum에 더한다. 이때, 최대가 되는 합을 저장할 answer에 sum의 값을 넣는다. for (int i = 0; i &amp;nbsp;&amp;nbsp;&amp;nbsp; 2. k부터 n-1까지는 ar&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/84&quot; data-og-url=&quot;https://jigoo-log.tistory.com/84&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ba56tP/hyWCLFPvmj/cHOLCVtu5k6yqEyUkS0wmK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/epUnFm/hyWCBQJ8ZE/i0qF0bKOthLjksIqzKiISK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dpKQ0A/hyWG3dKccj/o5vWHcNwETuxJ1S7JjKOxk/img.png?width=1120&amp;amp;height=898&amp;amp;face=0_0_1120_898&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/84&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/84&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ba56tP/hyWCLFPvmj/cHOLCVtu5k6yqEyUkS0wmK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/epUnFm/hyWCBQJ8ZE/i0qF0bKOthLjksIqzKiISK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dpKQ0A/hyWG3dKccj/o5vWHcNwETuxJ1S7JjKOxk/img.png?width=1120&amp;amp;height=898&amp;amp;face=0_0_1120_898');&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;2559번 - 수열 | 슬라이딩 윈도우 알고리즘 (C++)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문제풀이슬라이딩 윈도우 알고리즘을 이용해 풀이했다.&amp;nbsp;&amp;nbsp; 1. 0부터 k-1까지는 모두 sum에 더한다. 이때, 최대가 되는 합을 저장할 answer에 sum의 값을 넣는다. for (int i = 0; i &amp;nbsp;&amp;nbsp;&amp;nbsp; 2. k부터 n-1까지는 ar&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1. 0부터 x-1까지는 모두 sum에 더한다. 이때, 최대가 되는 합을 저장할 answer에 sum의 값을 넣는다.&lt;/p&gt;
&lt;pre id=&quot;code_1722002312056&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; x; i++) {
		sum += arr[i];
	}

	answer = sum;
	cnt = 1;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 2. x부터 n-1까지는 arr[i]는 sum에 더하고, arr[i - k]는 sum에서 뺀다. answer과 sum 중 최댓값을 answer에 저장한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 최대 조회수인 기간이 갱신되면(sum &amp;gt; answer), cnt를 1로 초기화 해야한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 또한, 같은 최대 조회수 기간이 더 있다면(sum == answer), cnt 값을 1 증가시켜야한다.&lt;/p&gt;
&lt;pre id=&quot;code_1722002725651&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = x; i &amp;lt; n; i++) {
		sum += arr[i];
		sum -= arr[i - x];
		if (sum &amp;gt; answer) {
			answer = sum;
			cnt = 1;	// 최대 조회수인 기간이 갱신되면, cnt도 1로 초기화
		}
		else if (sum == answer) {
			cnt++;		// 같은 최대 조회수인 기간이 더 있다면 cnt++
		}
	}&lt;/code&gt;&lt;/pre&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 3. answer이 0인 경우에는 SAD를 출력, 아닌 경우에는 answer과 cnt를 차례로 출력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1722002978787&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	if (answer == 0) {
		cout &amp;lt;&amp;lt; &quot;SAD&quot;;
	}
	else {
		cout &amp;lt;&amp;lt; answer &amp;lt;&amp;lt; &quot;\n&quot;;
		cout &amp;lt;&amp;lt; cnt;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1722002154690&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n, x, cnt = 0, sum = 0, answer, max = -1;
	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; x;

	int arr[250001];

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; arr[i];
	}

	for (int i = 0; i &amp;lt; x; i++) {
		sum += arr[i];
	}

	answer = sum;
	cnt = 1;

	for (int i = x; i &amp;lt; n; i++) {
		sum += arr[i];
		sum -= arr[i - x];
		if (sum &amp;gt; answer) {
			answer = sum;
			cnt = 1;
		}
		else if (sum == answer) {
			cnt++;		// 최대 조회수인 기간이 더 있다면 cnt++
		}
	}

	if (answer == 0) {
		cout &amp;lt;&amp;lt; &quot;SAD&quot;;
	}
	else {
		cout &amp;lt;&amp;lt; answer &amp;lt;&amp;lt; &quot;\n&quot;;
		cout &amp;lt;&amp;lt; cnt;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;769&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qpO0J/btsIOTjWEOV/2cPkyoeItwcSxXXHa3Sg6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qpO0J/btsIOTjWEOV/2cPkyoeItwcSxXXHa3Sg6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qpO0J/btsIOTjWEOV/2cPkyoeItwcSxXXHa3Sg6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqpO0J%2FbtsIOTjWEOV%2F2cPkyoeItwcSxXXHa3Sg6k%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;769&quot; height=&quot;73&quot; data-origin-width=&quot;769&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div data-ad-creative-wrap=&quot;outer&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>슬라이딩윈도우</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/85</guid>
      <comments>https://jigoo-log.tistory.com/85#entry85comment</comments>
      <pubDate>Fri, 26 Jul 2024 23:10:18 +0900</pubDate>
    </item>
    <item>
      <title>2559번 - 수열 | 슬라이딩 윈도우 알고리즘 (C++)</title>
      <link>https://jigoo-log.tistory.com/84</link>
      <description>&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2559_수열.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRspVt/btsIOFsIHLp/VmfdldEG7Wt7Sk6ZpcNei0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRspVt/btsIOFsIHLp/VmfdldEG7Wt7Sk6ZpcNei0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRspVt/btsIOFsIHLp/VmfdldEG7Wt7Sk6ZpcNei0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRspVt%2FbtsIOFsIHLp%2FVmfdldEG7Wt7Sk6ZpcNei0%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;417&quot; height=&quot;417&quot; data-filename=&quot;2559_수열.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;898&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dEUAHl/btsIQEew5Z5/ZK2gxn74FhF84Axpsknn20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dEUAHl/btsIQEew5Z5/ZK2gxn74FhF84Axpsknn20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dEUAHl/btsIQEew5Z5/ZK2gxn74FhF84Axpsknn20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEUAHl%2FbtsIQEew5Z5%2FZK2gxn74FhF84Axpsknn20%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;1120&quot; height=&quot;898&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;898&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;1128&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvCdoy/btsIQdPcFDD/dqm2oLP1tLCdAZf68lIny1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvCdoy/btsIQdPcFDD/dqm2oLP1tLCdAZf68lIny1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvCdoy/btsIQdPcFDD/dqm2oLP1tLCdAZf68lIny1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvCdoy%2FbtsIQdPcFDD%2Fdqm2oLP1tLCdAZf68lIny1%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;1128&quot; height=&quot;442&quot; data-origin-width=&quot;1128&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;슬라이딩 윈도우 알고리즘을 이용해 풀이했다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1. 0부터 k-1까지는 모두 sum에 더한다. 이때, 최대가 되는 합을 저장할 answer에 sum의 값을 넣는다.&lt;/p&gt;
&lt;pre id=&quot;code_1722001434403&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; k; i++) {
		sum += arr[i];
	}

	answer = sum;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&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;&amp;nbsp; 2. k부터 n-1까지는 arr[i]는 sum에 더하고, arr[i - k]는 sum에서 뺀다. answer과 sum 중 최댓값을 answer에 저장한다.&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;pre id=&quot;code_1722001511181&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = k; i &amp;lt; n; i++) {
		sum += arr[i];
		sum -= arr[i - k];
		answer = max(answer, sum);
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1722001236747&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

int arr[100001];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n, k, sum = 0, answer = 0;

	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; k;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; arr[i];
	}

	for (int i = 0; i &amp;lt; k; i++) {
		sum += arr[i];
	}

	answer = sum;

	for (int i = k; i &amp;lt; n; i++) {
		sum += arr[i];
		sum -= arr[i - k];
		answer = max(answer, sum);
	}

	cout &amp;lt;&amp;lt; answer;

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFyizi/btsIP81uBLU/MZzbVgRY0KGAr5Vqnf2Le1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFyizi/btsIP81uBLU/MZzbVgRY0KGAr5Vqnf2Le1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFyizi/btsIP81uBLU/MZzbVgRY0KGAr5Vqnf2Le1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFyizi%2FbtsIP81uBLU%2FMZzbVgRY0KGAr5Vqnf2Le1%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;485&quot; height=&quot;105&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>슬라이딩윈도우</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/84</guid>
      <comments>https://jigoo-log.tistory.com/84#entry84comment</comments>
      <pubDate>Fri, 26 Jul 2024 22:55:25 +0900</pubDate>
    </item>
    <item>
      <title>1620번-나는야 포켓몬 마스터 이다솜 | 스택 오버플로우 by 지역변수 (C++)</title>
      <link>https://jigoo-log.tistory.com/82</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1620.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckbIhC/btsIbvCLwcU/Q55bD0KOIOZ0lUyyaBOwiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckbIhC/btsIbvCLwcU/Q55bD0KOIOZ0lUyyaBOwiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckbIhC/btsIbvCLwcU/Q55bD0KOIOZ0lUyyaBOwiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckbIhC%2FbtsIbvCLwcU%2FQ55bD0KOIOZ0lUyyaBOwiK%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;465&quot; height=&quot;465&quot; data-filename=&quot;1620.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1491&quot; data-origin-height=&quot;758&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nxed5/btsH95LOxkB/bjJKewfO3Jw8kI5E1AK571/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nxed5/btsH95LOxkB/bjJKewfO3Jw8kI5E1AK571/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nxed5/btsH95LOxkB/bjJKewfO3Jw8kI5E1AK571/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnxed5%2FbtsH95LOxkB%2FbjJKewfO3Jw8kI5E1AK571%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;1491&quot; height=&quot;758&quot; data-origin-width=&quot;1491&quot; data-origin-height=&quot;758&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;1160&quot; data-origin-height=&quot;905&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fe7co/btsIbuRnPum/J5SgcGiKEkwODDgMMdhoY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fe7co/btsIbuRnPum/J5SgcGiKEkwODDgMMdhoY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fe7co/btsIbuRnPum/J5SgcGiKEkwODDgMMdhoY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFe7co%2FbtsIbuRnPum%2FJ5SgcGiKEkwODDgMMdhoY1%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;1160&quot; height=&quot;905&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;905&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력값이 숫자인 경우와 문자인 경우를 분류해 구하는게 까다로운 부분이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;1. 입력값이 숫자인 경우&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; string 배열을 이용해 문자열을 저장해둔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp; 입력을 받을 때 for문으로 0부터 배열에 저장되었기 때문에, -1 을 해주었다.&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_1719243694704&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;string name[100001];		// 입력이 숫자인 경우에 사용

	if (isdigit(str[0]) != 0) {		// isdigit == 0: 문자 | isdigit != 0: 숫자
			cout &amp;lt;&amp;lt; name[stoi(str) - 1] &amp;lt;&amp;lt; &quot;\n&quot;;		// 입력값: 숫자
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;2. 입력값이 문자인 경우&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; key값과 value값이 함께 저장되는 map을 이용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 이 문제는 입력값이 많기 때문에 시간 초과를 주의해야 하므로 map을 선택했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 문자가 입력된 경우, map에서 key 값을 찾아 전달하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 이때,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;for문으로 0부터 배열에 저장되었기 때문에 +1 을 해주었다.&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_1719243694705&quot; class=&quot;arduino&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;map&amp;lt;string, int&amp;gt; num;

	else {
		cout &amp;lt;&amp;lt; num.find(str)-&amp;gt;second + 1 &amp;lt;&amp;lt; &quot;\n&quot;;		// 입력값: 문자
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;처음부터, for문을 1부터 m까지 돌도록 하면 -1, +1을 고려하지 않아도 된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;첫 번째 풀이 _ 스택 오버플로우 발생 (&lt;span style=&quot;color: #006dd7;&quot;&gt;실패&lt;/span&gt;) | 지역 변수 name의 크기가 너무 큼&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1719242600997&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 스택 오버플로우
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;map&amp;gt;
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n, m;
	string str;
	map&amp;lt;string, int&amp;gt; num;		// 입력이 문자인 경우에 사용
	string name[100001];		// 입력이 숫자인 경우에 사용

	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; str;
		num.insert({ str, i });		// num.inset(make_pair(name[i], i))
		name[i] = str;
	}

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; str;

		if (isdigit(str[0]) != 0) {		// isdigit == 0: 문자 | isdigit != 0: 숫자
			cout &amp;lt;&amp;lt; name[stoi(str) - 1] &amp;lt;&amp;lt; &quot;\n&quot;;		// 입력값: 숫자
		}
		else {
			cout &amp;lt;&amp;lt; num.find(str)-&amp;gt;second + 1 &amp;lt;&amp;lt; &quot;\n&quot;;		// 입력값: 문자
		}
	}
	
	return 0;
}&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;style3&quot; /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tEf8n/btsIakvrqol/S1VZbJPAK8nWAs5xfRzuN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tEf8n/btsIakvrqol/S1VZbJPAK8nWAs5xfRzuN0/img.png&quot; data-alt=&quot;스택 오버플로우&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tEf8n/btsIakvrqol/S1VZbJPAK8nWAs5xfRzuN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtEf8n%2FbtsIakvrqol%2FS1VZbJPAK8nWAs5xfRzuN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;231&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스택 오버플로우&lt;/figcaption&gt;
&lt;/figure&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;size18&quot;&gt;위와 같이 '예외가 처리되지 않음'이라는 &lt;b&gt;스택 오버플로우(Stack Overflow)&lt;/b&gt;가 발생했다.&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 style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;스택 오버플로우가 발생하는 이유&lt;/b&gt;&lt;/span&gt;는 다음과 같다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;재귀 호출이 너무 깊어지는 경우&lt;/li&gt;
&lt;li&gt;지역 변수나 배열이 너무 커서 스택 메모리를 초과하는 경우&lt;/li&gt;
&lt;/ol&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;num의 배열이 너무 커서 스택 메모리를 초과해서 발생한 스택 오버플로우였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이를 해결하기 위해 &lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;두 가지 방안&lt;/b&gt;&lt;/span&gt;을 생각해보았다.&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;array가 아닌 vector를 이용하여 동적 할당하기&lt;/li&gt;
&lt;li&gt;지역 변수를 전역 변수로 설정해주기&lt;/li&gt;
&lt;/ol&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;style8&quot; /&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 style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;전역 변수와 지역 변수의 메모리 할당이 다르기 때문이다.&lt;/b&gt;&lt;/span&gt;&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;전역 변수&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;프로그램이 시작될 때 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;데이터 세그먼트에 할당&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;따라서, 크기가 커도 스택 메모리 사용량에 영향을 미치지 않음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;지역 변수&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;함수가 호출될 때 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;스택 메모리에 할당&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;지역 변수가 할당되는 스택 메모리는 주로 함수의 호출, 종료마다 할당되고 해제됨.&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot;&gt;스택 메모리는 제한된 크기를 가지기 때문에, 재귀 호출이나 큰 지역 변수가 있으면 스택 오버플로우가 발생함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;두 번째 코드 (&lt;span style=&quot;color: #ee2323;&quot;&gt;성공&lt;/span&gt;) | 전역 변수로 설정해 스택 오버플로우 해결&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1719242601000&quot; class=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;map&amp;gt;
#include &amp;lt;vector&amp;gt;
using namespace std;

int n, m;
string str;
map&amp;lt;string, int&amp;gt; num;		// 입력이 문자인 경우에 사용
string name[100001];		// 입력이 숫자인 경우에 사용

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; str;
		num.insert({ str, i });		// num.insert(make_pair(name[i], i))
		name[i] = str;
	}

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; str;

		if (isdigit(str[0]) != 0) {		// isdigit == 0: 문자 | isdigit != 0: 숫자
			cout &amp;lt;&amp;lt; name[stoi(str) - 1] &amp;lt;&amp;lt; &quot;\n&quot;;		// 입력값: 숫자
		}
		else {
			cout &amp;lt;&amp;lt; num.find(str)-&amp;gt;second + 1 &amp;lt;&amp;lt; &quot;\n&quot;;		// 입력값: 문자
		}
	}
	
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBWFHu/btsIbg69QbS/sKhHqGZTgiLbHaZOHHOqx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBWFHu/btsIbg69QbS/sKhHqGZTgiLbHaZOHHOqx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBWFHu/btsIbg69QbS/sKhHqGZTgiLbHaZOHHOqx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBWFHu%2FbtsIbg69QbS%2FsKhHqGZTgiLbHaZOHHOqx0%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;890&quot; height=&quot;112&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;112&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;a href=&quot;https://www.acmicpc.net/problem/1620&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1620&lt;/a&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;</description>
      <category>Programming/C++ - 백준</category>
      <category>스택 오버플로우</category>
      <category>지역 변수</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/82</guid>
      <comments>https://jigoo-log.tistory.com/82#entry82comment</comments>
      <pubDate>Tue, 25 Jun 2024 00:46:13 +0900</pubDate>
    </item>
    <item>
      <title>Large files detected.</title>
      <link>https://jigoo-log.tistory.com/81</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sF0z7/btsH1kCPkub/8ZxPuEE6kwULxly7vcB5Fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sF0z7/btsH1kCPkub/8ZxPuEE6kwULxly7vcB5Fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sF0z7/btsH1kCPkub/8ZxPuEE6kwULxly7vcB5Fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsF0z7%2FbtsH1kCPkub%2F8ZxPuEE6kwULxly7vcB5Fk%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;939&quot; height=&quot;131&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;131&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;깃에 장고 서버 파일을 올리던 중, 오류가 발생했는데 바로 'Large files detected' 용량이 큰 파일 때문이었다.&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;머신러닝을 진행하면 저장되는 .h5 파일이 100mb를 넘어가 발생하는 오류였다.&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;이를 해결하기 위해서는 LFS을 사용해야한다.&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;mixed reset을 사용해서, 내용은 그대로 두고 커밋 메세지만 삭제한다.&lt;/p&gt;
&lt;pre class=&quot;cpp&quot; style=&quot;color: #000000; text-align: left;&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;$ git reset --mixed {1번 commit hash}
$ git reset --soft HEAD^&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(초반에는, 커밋 메세지 내의 파일만 삭제하는 방법을 찾아보았으나, 오히려 더 복잡하여 리셋을 하는 방법을 택했다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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. Hard reset: Discard all change&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Mixed reset: Keep working copy but reset index&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Soft reset: Keep all change&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;그리고, 아래와 같이 LFS를 이용해주면 해결이다.. 깃의 세계는 끝이 없구나..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;cpp&quot; style=&quot;color: #000000; text-align: left;&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;$ git lfs install

$ git lfs track &quot;file.py&quot;
// git lfs track &quot;model.h5&quot;

$ git add .gitattributes
$ git commit -m &quot;commit message&quot;
$ git push origin main&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Back-end/Django</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/81</guid>
      <comments>https://jigoo-log.tistory.com/81#entry81comment</comments>
      <pubDate>Tue, 18 Jun 2024 23:37:09 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] DB | RDS, DynamoDB</title>
      <link>https://jigoo-log.tistory.com/80</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ACC 6주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buXDgQ/btsHqtmSL8K/Xu2CXouKkchv0J8xw4V2eK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buXDgQ/btsHqtmSL8K/Xu2CXouKkchv0J8xw4V2eK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buXDgQ/btsHqtmSL8K/Xu2CXouKkchv0J8xw4V2eK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuXDgQ%2FbtsHqtmSL8K%2FXu2CXouKkchv0J8xw4V2eK%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;410&quot; height=&quot;410&quot; data-filename=&quot;ACC 6주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;☁ AWS Cloud Clubs(ACC)_6주차&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;☁ DB | RDS, DynamoDB&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Amazon RDS(Relational Database Service)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;클라우드에서 데이터베이스를 자동으로 구성, 유지 관리하는 SaaS 기반 서비스&lt;/li&gt;
&lt;li&gt;즉각적인 컴퓨팅 규모 조정 가능, 스토리지 규모 조정 간편&lt;/li&gt;
&lt;li&gt;DB 인스턴스의 복제본을 하나 이상 생성해 대량 애플리케이션 읽기 트래픽을 처리&lt;/li&gt;
&lt;li&gt;6개의 DB 엔진을 지원 &amp;gt;&amp;nbsp; 필요에 맞는 DB 엔진 선택 가능
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Amazon Aurora: MySQL 및 PostgreSQL 호환 관계형 데이터 베이스&lt;/li&gt;
&lt;li&gt;MySQL: 세계적으로 가장 많이 사용되는 오픈 소스 관계형 데이터 베이스&lt;/li&gt;
&lt;li&gt;PostgreSQL: 오픈 소스 관계형 데이터 베이스&lt;/li&gt;
&lt;li&gt;MariaDB: MySQL의 수정된 버전으로, JSON 데이터 처리를 다르게 하는 점에서 차이가 있음. (JSON_QUERY, JSON_EXISTS, JSON_TABLE 지원)&lt;/li&gt;
&lt;li&gt;Oracle: Oracle 사의 관계형 데이터 베이스&lt;/li&gt;
&lt;li&gt;SQL Server(MSSQL): Microsoft에서 개발한 관계형 데이터 베이스 관리 시스템&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; 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;1411&quot; data-origin-height=&quot;419&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFmz5W/btsHqOYBfAg/Bf2R1vYUImuwSaSMwYrcCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFmz5W/btsHqOYBfAg/Bf2R1vYUImuwSaSMwYrcCK/img.png&quot; data-alt=&quot;Amazon RDS 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFmz5W/btsHqOYBfAg/Bf2R1vYUImuwSaSMwYrcCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFmz5W%2FbtsHqOYBfAg%2FBf2R1vYUImuwSaSMwYrcCK%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;1411&quot; height=&quot;419&quot; data-origin-width=&quot;1411&quot; data-origin-height=&quot;419&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Amazon RDS 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1715849901960&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;Amazon EC2를 써야 하나요, Amazon RDS를 써야 하나요? | EC2, RDS 비교 | 스마일샤크&quot; data-og-description=&quot;Amazon EC2와 RDS 중 어느 서비스를 선택할 지 고민하는 분들을 위한 의사 결정 프로세스 | EC2, RDS | EC2 인스턴스 타입 | RDS 데이터베이스 종류 | EC2 비용, RDS 비용&quot; data-og-host=&quot;www.smileshark.kr&quot; data-og-source-url=&quot;https://www.smileshark.kr/post/amazon-ec2-vs-amazon-rds-how-to-choose-right-hosted-database&quot; data-og-url=&quot;https://www.smileshark.kr/post/amazon-ec2-vs-amazon-rds-how-to-choose-right-hosted-database&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/q8nrI/hyV6e1ypTV/u24zbgMzelHYrdvM9ShI60/img.png?width=1000&amp;amp;height=751&amp;amp;face=0_0_1000_751,https://scrap.kakaocdn.net/dn/cLNvHP/hyV56P09cB/WYZ0C2WMqkgIT6HY6sGZ51/img.png?width=1000&amp;amp;height=751&amp;amp;face=0_0_1000_751,https://scrap.kakaocdn.net/dn/TlmkC/hyV57Bm5Og/B5imgbeUwMm16KkVdY63F1/img.png?width=980&amp;amp;height=736&amp;amp;face=0_0_980_736&quot;&gt;&lt;a href=&quot;https://www.smileshark.kr/post/amazon-ec2-vs-amazon-rds-how-to-choose-right-hosted-database&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.smileshark.kr/post/amazon-ec2-vs-amazon-rds-how-to-choose-right-hosted-database&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/q8nrI/hyV6e1ypTV/u24zbgMzelHYrdvM9ShI60/img.png?width=1000&amp;amp;height=751&amp;amp;face=0_0_1000_751,https://scrap.kakaocdn.net/dn/cLNvHP/hyV56P09cB/WYZ0C2WMqkgIT6HY6sGZ51/img.png?width=1000&amp;amp;height=751&amp;amp;face=0_0_1000_751,https://scrap.kakaocdn.net/dn/TlmkC/hyV57Bm5Og/B5imgbeUwMm16KkVdY63F1/img.png?width=980&amp;amp;height=736&amp;amp;face=0_0_980_736');&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;Amazon EC2를 써야 하나요, Amazon RDS를 써야 하나요? | EC2, RDS 비교 | 스마일샤크&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon EC2와 RDS 중 어느 서비스를 선택할 지 고민하는 분들을 위한 의사 결정 프로세스 | EC2, RDS | EC2 인스턴스 타입 | RDS 데이터베이스 종류 | EC2 비용, RDS 비용&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.smileshark.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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Amazon DynamoDB
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;모든 규모에서 10밀리초 미만의 성능을 제공하는 서버리스 NoSQL 완전 관리형 데이터 베이스&lt;/li&gt;
&lt;li&gt;Key-Value 형태
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;파티션 키: 테이블에 무조건 하나만 존재해야 하는 값, 테이블에 있는 아이템을 어디에 나눌지 정하는 KEY&lt;/li&gt;
&lt;li&gt;정렬 키: 정렬할 때 사용하는 KEY, 필수 X&lt;/li&gt;
&lt;li&gt;글로벌 보조 인덱스(GSI): 테이블을 만든 후 추가 가능, 현재 테이블과 동기화해 동일한 테이블 작성 가능&lt;/li&gt;
&lt;li&gt;로컬 세컨더리 인덱스(LSI): 대체 정렬 키로 쿼리, 스캔 시 사용, 데이터를 생성하는 시점에서만 만들 수 있음&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;대규모 성능: 일관된 고성능, 거의 무제한의 처리량 및 스토리지를 갖춘 애플리케이션 제공&lt;/li&gt;
&lt;li&gt;99.9% SLA를 위한 설계: 다중 리전 글로벌 테이블 데이터베이스를 사용하여 로컬 읽기 및 쓰기 성능을 높임&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1449&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn50mG/btsHq47YBDM/noq36QwHYldmVmKom09cc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn50mG/btsHq47YBDM/noq36QwHYldmVmKom09cc1/img.png&quot; data-alt=&quot;Amazon DynamoDB 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn50mG/btsHq47YBDM/noq36QwHYldmVmKom09cc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn50mG%2FbtsHq47YBDM%2Fnoq36QwHYldmVmKom09cc1%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;1449&quot; height=&quot;524&quot; data-origin-width=&quot;1449&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Amazon DynamoDB 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;RDS를 삭제하는 과정에서, 마지막 이미지가 스냅샷으로 저장된다고 함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;833&quot; data-origin-height=&quot;619&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/egW5fi/btsHzpKYQfq/lIQgIAYlps5f7FHZqoZ15k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/egW5fi/btsHzpKYQfq/lIQgIAYlps5f7FHZqoZ15k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/egW5fi/btsHzpKYQfq/lIQgIAYlps5f7FHZqoZ15k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FegW5fi%2FbtsHzpKYQfq%2FlIQgIAYlps5f7FHZqoZ15k%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;833&quot; height=&quot;619&quot; data-origin-width=&quot;833&quot; data-origin-height=&quot;619&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1804&quot; data-origin-height=&quot;867&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBcirP/btsHz0YeLu5/GtpaDgXl20SxmpKaKDKouK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBcirP/btsHz0YeLu5/GtpaDgXl20SxmpKaKDKouK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBcirP/btsHz0YeLu5/GtpaDgXl20SxmpKaKDKouK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBcirP%2FbtsHz0YeLu5%2FGtpaDgXl20SxmpKaKDKouK%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;1804&quot; height=&quot;867&quot; data-origin-width=&quot;1804&quot; data-origin-height=&quot;867&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;1816&quot; data-origin-height=&quot;817&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btV2vW/btsHyPDAcVa/XHembtXl362l9pHsYwm29K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btV2vW/btsHyPDAcVa/XHembtXl362l9pHsYwm29K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btV2vW/btsHyPDAcVa/XHembtXl362l9pHsYwm29K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtV2vW%2FbtsHyPDAcVa%2FXHembtXl362l9pHsYwm29K%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;1816&quot; height=&quot;817&quot; data-origin-width=&quot;1816&quot; data-origin-height=&quot;817&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;1793&quot; data-origin-height=&quot;858&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvpyPI/btsHzcE5EAt/TY74w7TYGlEenQN80AmdH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvpyPI/btsHzcE5EAt/TY74w7TYGlEenQN80AmdH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvpyPI/btsHzcE5EAt/TY74w7TYGlEenQN80AmdH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvpyPI%2FbtsHzcE5EAt%2FTY74w7TYGlEenQN80AmdH1%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;1793&quot; height=&quot;858&quot; data-origin-width=&quot;1793&quot; data-origin-height=&quot;858&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;868&quot; data-origin-height=&quot;369&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kk9br/btsHApDo0yD/i1GTrIWR5MPGGJtMP5kTBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kk9br/btsHApDo0yD/i1GTrIWR5MPGGJtMP5kTBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kk9br/btsHApDo0yD/i1GTrIWR5MPGGJtMP5kTBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKk9br%2FbtsHApDo0yD%2Fi1GTrIWR5MPGGJtMP5kTBk%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;868&quot; height=&quot;369&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;369&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>Cloud</category>
      <category>DB</category>
      <category>DynamoDB</category>
      <category>RDS</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/80</guid>
      <comments>https://jigoo-log.tistory.com/80#entry80comment</comments>
      <pubDate>Thu, 16 May 2024 18:20:12 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] Network | Cloudfront, ELB</title>
      <link>https://jigoo-log.tistory.com/78</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ACC 4주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p2zyp/btsG49V6cdx/qVp3S07PHxLKpltEA2lGn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p2zyp/btsG49V6cdx/qVp3S07PHxLKpltEA2lGn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p2zyp/btsG49V6cdx/qVp3S07PHxLKpltEA2lGn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp2zyp%2FbtsG49V6cdx%2FqVp3S07PHxLKpltEA2lGn1%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;415&quot; height=&quot;415&quot; data-filename=&quot;ACC 4주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;☁ AWS Cloud Clubs(ACC)_4주차&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;☁ Network&amp;nbsp;|&amp;nbsp;Cloudfront,&amp;nbsp;ELB&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;CloudFront&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: circle; color: #666666;&quot;&gt;&lt;b&gt;콘텐츠 전송 네트워크(CDN, Content Delivery Network)&lt;/b&gt; 서비스
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&amp;nbsp;&lt;b&gt;CDN 서비스란,&lt;/b&gt; 클라이언트의 콘텐츠 요청으로 서버에서 받아온 콘텐츠를 캐싱하고, 같은 요청이 오면 캐싱해 둔 것을 제공하는 서비스&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&amp;nbsp;데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;캐싱이란, 더 빠른 데이터 액세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;짧은 지연 시간과 빠른 전송 속도로 안전하게 콘텐츠를 전송&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;캐싱의 종류
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Static Caching (정적 캐싱)&lt;/li&gt;
&lt;li&gt;Dynamic Caching (동적 캐싱)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;CDN 장점
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;페이지 로드 시간 단축&lt;/li&gt;
&lt;li&gt;대역폭 비용 절감&lt;/li&gt;
&lt;li&gt;콘텐츠 가용성 제고&lt;/li&gt;
&lt;li&gt;웹 사이트 보안 강화&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;CDN 예시
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;고속 컨텐츠 전송: Reuters- 세계 최대 뉴스 통신사&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;실시간 스트리밍: Disney의 Hulu - 온라인 비디오 스트리밍 플랫폼&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다중 사용자 확장: King - 언제 어디서든 디바이스에 관계없이 플레이할 수 있는 소셜 연결 교차 플랫폼 게임을 만드는 게임 회사&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1180&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lfBjO/btsG5usgxTJ/p3nYfuIdHJwK23kTiPKVp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lfBjO/btsG5usgxTJ/p3nYfuIdHJwK23kTiPKVp0/img.png&quot; data-alt=&quot;CloudFront&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lfBjO/btsG5usgxTJ/p3nYfuIdHJwK23kTiPKVp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlfBjO%2FbtsG5usgxTJ%2Fp3nYfuIdHJwK23kTiPKVp0%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;1180&quot; height=&quot;660&quot; data-origin-width=&quot;1180&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CloudFront&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Edge Location
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;데이터 센터의 전 세계 네트워크&lt;/li&gt;
&lt;li&gt;CloudFront 서비스가 콘텐츠를 캐싱하고, 클라이언트에게 제공하는 지점 혹은 캐시 서버&lt;/li&gt;
&lt;li&gt;AWS 네트워크를 사용하면, 사용자의 요청이 반드시 통과해야 하는 네트워크 수가 줄어들어 성능이 향상&lt;/li&gt;
&lt;li&gt;CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면 지연 시간이 가자 낮은 엣지 로케이션으로 요청이 라우팅 &amp;gt; 가능한 최고의 성능으로 콘텐츠가 제공
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;콘텐츠가 이미 지연 시간이 가장 낮은 Edge Location에 있는 경우, CloudFront가 콘텐츠를 즉시 제공&lt;/li&gt;
&lt;li&gt;콘텐츠가 Edge Location에 없는 경우, CloudFront는 콘텐츠의 최종 버전에 대한 소스로 지정된 오리진(Amazon S3 버킷, MediaPackage 채널, 웹 서버 등)에서 콘텐츠를 검색&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Regional Edge Cache(REC)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;사용자가 접근할 수 있는 글로벌하게 배포되어 있는 CloudFront 위치&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;Edge Location보다 용량이 더 크고, 오래 저장&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CloudFront 기능
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;정적/동적 컨텐츠 처리&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;HTTPS 지원: 인증키 설치 등의 작업을 해주지 않아도 됨.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;특정 지역 콘텐츠 접근 제한 기능&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt; &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;Signed URL: 허용된 사용자에게만 Signed url 제공하는 기능 (하나의 콘텐츠에만 사용 가능)&lt;/span&gt; &lt;br /&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;ex) 유료 결제한 사람에게만 보이는 스트리밍 동영상, 쿠키 구운 네이버 웹툰 독자&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;S&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;igned Cookie: 하나가 아닌 다수의 컨텐츠에 적용 가능 &lt;br /&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;ex) &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;ID/PW 입력한 유료 회원에서 모든 컨텐츠를 제공해야할 때&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; 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;900&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bawzFF/btsG5j5qvlN/klYcfZeG3kNN1aTZvmXMX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bawzFF/btsG5j5qvlN/klYcfZeG3kNN1aTZvmXMX0/img.png&quot; data-alt=&quot;Edge Location&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bawzFF/btsG5j5qvlN/klYcfZeG3kNN1aTZvmXMX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbawzFF%2FbtsG5j5qvlN%2FklYcfZeG3kNN1aTZvmXMX0%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;900&quot; height=&quot;488&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Edge Location&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ELB(Elasic Load Balancing)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;네트워크 트래픽을 분산하여 애플리케이션 확장성을 개선&lt;/li&gt;
&lt;li&gt;즉, 로드밸런싱을 이용해 특정 서버에 부하가 몰리지 않도록 적절히 분산&lt;/li&gt;
&lt;li&gt;EC2, ECS의 컨테이너, Lambda 등을 상대로 서버 부하를 분산&lt;/li&gt;
&lt;li&gt;로드밸런서를 만들 때, 하나 이상의 리스너를 만들어야 함 (최대 10개까지 가능)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리스너 안에서도 룰을 만들어, 분산이 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzK6MZ/btsG5Ijx0y1/GLOatqnlLyKE8codmIdM0k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzK6MZ/btsG5Ijx0y1/GLOatqnlLyKE8codmIdM0k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzK6MZ/btsG5Ijx0y1/GLOatqnlLyKE8codmIdM0k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzK6MZ%2FbtsG5Ijx0y1%2FGLOatqnlLyKE8codmIdM0k%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;200&quot; height=&quot;197&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;197&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Application Load Balancer(ALB)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rCKER/btsG5E2zO46/kOcCkl0wgeHR4XLhLOLuU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rCKER/btsG5E2zO46/kOcCkl0wgeHR4XLhLOLuU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rCKER/btsG5E2zO46/kOcCkl0wgeHR4XLhLOLuU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrCKER%2FbtsG5E2zO46%2FkOcCkl0wgeHR4XLhLOLuU1%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;1280&quot; height=&quot;646&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;646&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;2. Gateway Load Balancer(GLB)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;599&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WwKqJ/btsG7oj9sHr/K6wnzzMUpzMBvcTmBHBrKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WwKqJ/btsG7oj9sHr/K6wnzzMUpzMBvcTmBHBrKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WwKqJ/btsG7oj9sHr/K6wnzzMUpzMBvcTmBHBrKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWwKqJ%2FbtsG7oj9sHr%2FK6wnzzMUpzMBvcTmBHBrKK%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;1280&quot; height=&quot;599&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;599&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;3. Network Load Balancer(NLB)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk3H1N/btsG5F8bQt7/CUCUg6jAnyx9KlGVK5Obqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk3H1N/btsG5F8bQt7/CUCUg6jAnyx9KlGVK5Obqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk3H1N/btsG5F8bQt7/CUCUg6jAnyx9KlGVK5Obqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk3H1N%2FbtsG5F8bQt7%2FCUCUg6jAnyx9KlGVK5Obqk%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;1280&quot; height=&quot;620&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;620&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;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;&amp;nbsp;출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1714615832812&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;Amazon CloudFront란 무엇입니까? - Amazon CloudFront&quot; data-og-description=&quot;Amazon CloudFront란 무엇입니까? Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gJ21W/hyVVymU9XV/i3ODVfo3AQOdItRzcLuDG1/img.png?width=598&amp;amp;height=500&amp;amp;face=0_0_598_500&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gJ21W/hyVVymU9XV/i3ODVfo3AQOdItRzcLuDG1/img.png?width=598&amp;amp;height=500&amp;amp;face=0_0_598_500');&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;Amazon CloudFront란 무엇입니까? - Amazon CloudFront&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon CloudFront란 무엇입니까? Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.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;figure id=&quot;og_1714615823640&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;웹 서버 로드 밸런싱 | 서버 로드 밸런싱 | Amazon Web Services&quot; data-og-description=&quot;Application Load Balancer Gateway Load Balancer Network Load Balancer&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/elasticloadbalancing/&quot; data-og-url=&quot;https://aws.amazon.com/ko/elasticloadbalancing/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bDHWWH/hyVZp2W5bJ/jF9jsko86Wzxv5IqHjcvkk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/AWWzk/hyVVALN07w/mjct3IO0IBy6sJPUCXcuj1/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/b4zuZt/hyVVEOcQct/rEOumAGFqohGz1JCWkHX7K/img.png?width=2360&amp;amp;height=1192&amp;amp;face=0_0_2360_1192&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/elasticloadbalancing/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/elasticloadbalancing/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bDHWWH/hyVZp2W5bJ/jF9jsko86Wzxv5IqHjcvkk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/AWWzk/hyVVALN07w/mjct3IO0IBy6sJPUCXcuj1/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109,https://scrap.kakaocdn.net/dn/b4zuZt/hyVVEOcQct/rEOumAGFqohGz1JCWkHX7K/img.png?width=2360&amp;amp;height=1192&amp;amp;face=0_0_2360_1192');&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;웹 서버 로드 밸런싱 | 서버 로드 밸런싱 | Amazon Web Services&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Application Load Balancer Gateway Load Balancer Network Load Balancer&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.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>Cloud</category>
      <category>AWS</category>
      <category>cloudfront</category>
      <category>edgelocation</category>
      <category>ELB</category>
      <category>Network</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/78</guid>
      <comments>https://jigoo-log.tistory.com/78#entry78comment</comments>
      <pubDate>Thu, 2 May 2024 11:12:13 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] Container | Docker, ECS</title>
      <link>https://jigoo-log.tistory.com/77</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ACC 2주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUfp4e/btsG0F8qmow/kJEfNwi9E24cQXP2EiLty0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUfp4e/btsG0F8qmow/kJEfNwi9E24cQXP2EiLty0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUfp4e/btsG0F8qmow/kJEfNwi9E24cQXP2EiLty0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUfp4e%2FbtsG0F8qmow%2FkJEfNwi9E24cQXP2EiLty0%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;422&quot; height=&quot;422&quot; data-filename=&quot;ACC 2주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;☁ AWS Cloud Clubs(ACC)_3주차&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;☁ Container&amp;nbsp;|&amp;nbsp;Docker,&amp;nbsp;ECS&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;Container
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;애플리케이션 코드, 라이브러리 및 클라우드에서 실행하기 위해 필요한 기타 종속성이 포함된 소프트웨어 코드 패키지&lt;/li&gt;
&lt;li&gt;소프트웨어 및 모든 종속성을 어디서나 실행할 수 있는 단일 파일로 패키징함&lt;/li&gt;
&lt;li&gt;코드, 런타임, 라이브러리, 환경 변수, 구성 파일 등 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 이미지 파일&lt;/li&gt;
&lt;li&gt; : 애플리케이션 배포 간소화, 유연성, 복원력, 확장성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Virtual Machine vs Container&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;523&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQjzxN/btsGwJxiLf5/BFWNI0CI9d1EO3TVfTGo5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQjzxN/btsGwJxiLf5/BFWNI0CI9d1EO3TVfTGo5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQjzxN/btsGwJxiLf5/BFWNI0CI9d1EO3TVfTGo5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQjzxN%2FbtsGwJxiLf5%2FBFWNI0CI9d1EO3TVfTGo5k%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;596&quot; height=&quot;341&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;523&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;hypervisor는 guest OS 를 사용할 수 있게 해주는 역할이고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상머신은 guest OS 때문에 무겁다하는 거임!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DOCKER 는 리눅스와 같이 다같은 OS를 쓰게 해줘서 가볍다는 뜻임.&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker Container
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;도커 컨테이너는 가상화된 공간을 생성할 때, 리눅스 자체 기능을 사용해 프로세스 단위의 격리 환경을 만듦 &amp;gt; 성능 손실 X&lt;/li&gt;
&lt;li&gt;가상머신과 달리 커널을 공유해 사용하여, 컨테이너에는 라이브러리 및 실행 파일만 있음 &amp;gt; 용량 작음&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X5elM/btsGyfWxCGJ/EbTVNcuHuy91N0XQwsTFqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X5elM/btsGyfWxCGJ/EbTVNcuHuy91N0XQwsTFqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X5elM/btsGyfWxCGJ/EbTVNcuHuy91N0XQwsTFqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX5elM%2FbtsGyfWxCGJ%2FEbTVNcuHuy91N0XQwsTFqk%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;921&quot; height=&quot;531&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;531&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ECS(Amazon Elastic Container Service)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;클러스터에서 컨테이너를 실행, 중지 및 관리할 수 있게 해주는 컨테이너 관리 서비스&lt;/li&gt;
&lt;li&gt;ECS Console&lt;/li&gt;
&lt;li&gt;Cluster&lt;/li&gt;
&lt;li&gt;Service&lt;/li&gt;
&lt;li&gt;Container instance&lt;/li&gt;
&lt;li&gt;Task&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&amp;nbsp;컨테이너: 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술&lt;/li&gt;
&lt;li&gt;&amp;nbsp;컨테이너 런타임: 컨테이너를 다루는 도구&lt;/li&gt;
&lt;li&gt;&amp;nbsp;도커: 컨테이너를 다루는 도구 중 가장 유명한 것&lt;/li&gt;
&lt;li&gt;&amp;nbsp;쿠버네티스: 컨테이너 런타임을 통해 컨테이너를 오케스트레이션하는 도구&lt;/li&gt;
&lt;li&gt;&amp;nbsp;오케스트레이션: 여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컨테이너: 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 SW 패키지
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;환경 의존에서 해방: 의존 관계가 포함된 패키지가 배포 단위가 됨&lt;/li&gt;
&lt;li&gt;신속한 배포: 컨테이너는 가벼우며 시작 시간이 짧기 때문에 신속한 배포가 가능 &amp;amp; 개발자가 애플리케이션을 컨테이너 이미지로 빌드하면, 이 이미지를 서버에 배포하는 과정이 매우 빠르고 간단&lt;/li&gt;
&lt;li&gt;자원 공유 및 최적화: 호스트 운영 체제의 커널을 공유하면서 격리된 실행 환경을 제공하여 가볍고 빠르게 시작될 수 있음&lt;/li&gt;
&lt;li&gt;자동화 및 관리 용이성: 오케스트레이션 툴을 사용하면 컨테이너의 배포, 확장, 모니터링 및 관리 자동화가 가능함.&lt;/li&gt;
&lt;li&gt;확정성 및 이식성: 쉽게 이동 가능하고, 쉽게 복제가 가능&lt;/li&gt;
&lt;li&gt;보안 및 안정성: 격리된 실행 환경&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컨테이너 오케스트레이터
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;클러스터 관리&lt;/li&gt;
&lt;li&gt;스케일링 관리&lt;/li&gt;
&lt;li&gt;자동 복구 기능&lt;/li&gt;
&lt;li&gt;모니터링 및 로깅&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;예시) 쿠버네티스&lt;/li&gt;
&lt;/ul&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;[ aws가 제공하는 컨테이너 서비스 ]&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;ECR&lt;/li&gt;
&lt;li&gt;ECS&lt;/li&gt;
&lt;li&gt;EKS&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;ECS, EKS&amp;nbsp; - &amp;gt; 제어 플레인(Control Plane)&lt;/li&gt;
&lt;li&gt;EC2, Fargate -&amp;gt; 데이터 플레인(Data Plane)&lt;/li&gt;
&lt;li&gt;따라서, &lt;b&gt;ECS와 EKS 중 하나를 제어 플레인으로&lt;/b&gt; 선택하고, &lt;b&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;EC2 혹은 Fargate&lt;span&gt; 중 하나를&lt;/span&gt;&lt;/span&gt; 데이터 플레인으로&lt;/b&gt; 선택해야 함.&lt;/li&gt;
&lt;/ul&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;[ ECS와 EKS의 비교]&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ECS
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;AWS 서비스와 자원을 더 활용&lt;/li&gt;
&lt;li&gt;클러스터 설정, 관리 및 확장이 간편&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;AWS 네이티브 서비스 중 하나 , 추가 비용 없이 사용가능&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;AWS-ONLY 서비스
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;EC2: 가상 서버를 완전히 제어 가능
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;인스턴스 유형, 용량 , 스케일링 직접 관리&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;유형 및 크기에 따라 비용 지불&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;실제 사용하지 않는 시간에도 비용 발생 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Fargate: 서버리스 컴퓨팅 엔진&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;애플리케이션 구축에 집중할 수 있음&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;관리 부담을 줄이고, 결제 방법을 선택하고, 설계에 적용된 격리를 통해 보안을 강화함e&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;EKS
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;쿠버네티스 서비스&lt;/li&gt;
&lt;li&gt;어떤 인프라에서도 실행 가능&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;쿠버네티스가 지원하는 환경을 다 활용 가능&lt;/li&gt;
&lt;/ul&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;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;쿠버네티스 = k8s = kubernetes&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;대규모 시스템 관리에 굿, 근데 우리의 로컬로는 무거워서 돌리기 힘듦&lt;/li&gt;
&lt;li&gt;우리가 돌려보려면 minikube를 써보면 굿&lt;/li&gt;
&lt;li&gt;쿠버네티스 자격증 &amp;gt; CK8&lt;/li&gt;
&lt;/ul&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;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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모놀리식 아키텍처
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;서비스에 관련된 모든 것이 하나의 서버에 배치&lt;/li&gt;
&lt;li&gt;아키텍처가 단순함&lt;/li&gt;
&lt;li&gt;장애가 발생 시 근원지 발견이 어려움&lt;/li&gt;
&lt;li&gt;기능 변경에 빠르게 대응이 힘듦&lt;/li&gt;
&lt;li&gt;서버 증설 &amp;gt; 자원 낭비&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;마이크로서비스 아키텍처
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;  한 서비스에서 기능 별로 여러 서버로 분리해서 운영&lt;/li&gt;
&lt;li&gt;소스, 서버 증설 시 자원을 효율적으로 사용&lt;/li&gt;
&lt;li&gt;장애가 발생 시 근원지 발견이 쉬움&lt;/li&gt;
&lt;li&gt;서버 증설 시 자원을 효율적으로 사용&lt;/li&gt;
&lt;li&gt; &amp;nbsp;너무 많은 서버를 유지, 보수해야&lt;/li&gt;
&lt;li style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;아키텍처의 복잡도가 높아짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;가상화
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;서버 관리에 대한 해결책&lt;/li&gt;
&lt;li&gt;하나의 큰 서버를 가상화 기술을 통해 잘게 쪼개서 마이크로서비스의 해당 기능들을 격리된 가상화 공간에 배치&lt;/li&gt;
&lt;li&gt;서버는 한 대만 유지, 보수하지만 여러 대의 서버를 사용하는 효과&lt;/li&gt;
&lt;li&gt;하이퍼바이저를 거쳐야 하기 때문에 무거움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하이퍼바이저: 단일 물리적 머신에서 여러 가상 머신을 실행하는 데 사용할 수 있는 소프트웨어
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;하이퍼바이저를 운영체제의 컨테이너 기술로 대체&lt;/li&gt;
&lt;li&gt;인프라의 규모 확대 시 동적 확장과 축소가 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;style6&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AWS Identity and Access Management(IAM): AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #16191f; text-align: start;&quot;&gt;IAM을 사용하면 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 중앙에서 관리&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #16191f; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #16191f; text-align: start;&quot;&gt;IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;helm: 쿠버네티스 애플리케이션의 설치 밒 관리를 단순화하는 명령어
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #16191f; text-align: start;&quot;&gt;깃에서 받아와서 업데이트해줘야 함&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #16191f; text-align: start;&quot;&gt;pod 안에 여러 개의 container를 가질 수 있음&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;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;⬇️&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1714563677684&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b5hnAZ/hyVMWVnAX3/3eWWc7FJtzgkvGLmk5ajU1/img.jpg?width=900&amp;amp;height=600&amp;amp;face=0_0_900_600,https://scrap.kakaocdn.net/dn/exoUke/hyVPYxdYA4/HAVWRQcyQVLSEvS128cPK0/img.jpg?width=844&amp;amp;height=530&amp;amp;face=0_0_844_530,https://scrap.kakaocdn.net/dn/dSekRp/hyVPUawbYG/y4zlYCjJyN41BVG4y9qy51/img.jpg?width=844&amp;amp;height=368&amp;amp;face=0_0_844_368&quot; data-og-url=&quot;https://www.samsungsds.com/kr/story/220222_kubernetes1.html?backTypeId=inthenews&amp;amp;category=all&amp;amp;moreCnt=1&quot; data-og-source-url=&quot;https://www.samsungsds.com/kr/story/220222_kubernetes1.html?moreCnt=1&amp;amp;backTypeId=inthenews&amp;amp;category=all&quot; data-og-host=&quot;www.samsungsds.com&quot; data-og-description=&quot;요즘 IT 생태계에 관심이 많으신 분들이라면 쿠버네티스라는 단어를 들어 보셨을 텐데요. 쿠버네티스에 대해 개발자들의 관심이 높아지고 있고, 여러 대기업에서 새로운 시스템을 쿠버네티스를&quot; data-og-title=&quot;쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념&quot; data-og-type=&quot;article&quot; data-ke-align=&quot;alignCenter&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.samsungsds.com/kr/story/220222_kubernetes1.html?moreCnt=1&amp;amp;backTypeId=inthenews&amp;amp;category=all&quot; data-source-url=&quot;https://www.samsungsds.com/kr/story/220222_kubernetes1.html?moreCnt=1&amp;amp;backTypeId=inthenews&amp;amp;category=all&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b5hnAZ/hyVMWVnAX3/3eWWc7FJtzgkvGLmk5ajU1/img.jpg?width=900&amp;amp;height=600&amp;amp;face=0_0_900_600,https://scrap.kakaocdn.net/dn/exoUke/hyVPYxdYA4/HAVWRQcyQVLSEvS128cPK0/img.jpg?width=844&amp;amp;height=530&amp;amp;face=0_0_844_530,https://scrap.kakaocdn.net/dn/dSekRp/hyVPUawbYG/y4zlYCjJyN41BVG4y9qy51/img.jpg?width=844&amp;amp;height=368&amp;amp;face=0_0_844_368');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;요즘 IT 생태계에 관심이 많으신 분들이라면 쿠버네티스라는 단어를 들어 보셨을 텐데요. 쿠버네티스에 대해 개발자들의 관심이 높아지고 있고, 여러 대기업에서 새로운 시스템을 쿠버네티스를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;www.samsungsds.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;figure id=&quot;og_1714563677687&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/witOF/hyVPLdzOfJ/KujFA4MQDKV7ajPjPA46Ik/img.jpg?width=900&amp;amp;height=600&amp;amp;face=0_0_900_600,https://scrap.kakaocdn.net/dn/b3RBiL/hyVPVmX5Wu/itYSWK77M2oNi4jJ292yek/img.jpg?width=900&amp;amp;height=600&amp;amp;face=0_0_900_600,https://scrap.kakaocdn.net/dn/fbTzU/hyVMV3dH0b/ZuLQTVJ6OzyqsO84GadUH1/img.jpg?width=844&amp;amp;height=633&amp;amp;face=0_0_844_633&quot; data-og-url=&quot;https://www.samsungsds.com/kr/insights/kubernetes-3.html&quot; data-og-source-url=&quot;https://www.samsungsds.com/kr/insights/kubernetes-3.html&quot; data-og-host=&quot;www.samsungsds.com&quot; data-og-description=&quot;쿠버네티스 구성 요소인 쿠버네티스 컴포넌트에 대해 살펴보겠습니다.&quot; data-og-title=&quot;쿠버네티스 알아보기 3편: 쿠버네티스를 이루고 있는 여러 가지 구성 요소 | 인사이트리포트 | 삼&quot; data-og-type=&quot;article&quot; data-ke-align=&quot;alignCenter&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.samsungsds.com/kr/insights/kubernetes-3.html&quot; data-source-url=&quot;https://www.samsungsds.com/kr/insights/kubernetes-3.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/witOF/hyVPLdzOfJ/KujFA4MQDKV7ajPjPA46Ik/img.jpg?width=900&amp;amp;height=600&amp;amp;face=0_0_900_600,https://scrap.kakaocdn.net/dn/b3RBiL/hyVPVmX5Wu/itYSWK77M2oNi4jJ292yek/img.jpg?width=900&amp;amp;height=600&amp;amp;face=0_0_900_600,https://scrap.kakaocdn.net/dn/fbTzU/hyVMV3dH0b/ZuLQTVJ6OzyqsO84GadUH1/img.jpg?width=844&amp;amp;height=633&amp;amp;face=0_0_844_633');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;쿠버네티스 알아보기 3편: 쿠버네티스를 이루고 있는 여러 가지 구성 요소 | 인사이트리포트 | 삼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;쿠버네티스 구성 요소인 쿠버네티스 컴포넌트에 대해 살펴보겠습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;www.samsungsds.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;</description>
      <category>Cloud</category>
      <category>Container</category>
      <category>docker</category>
      <category>ECS</category>
      <category>쿠버네티스</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/77</guid>
      <comments>https://jigoo-log.tistory.com/77#entry77comment</comments>
      <pubDate>Thu, 11 Apr 2024 18:20:34 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] Computing Service | EC2, Lightsail</title>
      <link>https://jigoo-log.tistory.com/76</link>
      <description>&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;ACC 1주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SP7Nq/btsG0VwvKOa/NIWNocgspM9nWFxYgBvtw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SP7Nq/btsG0VwvKOa/NIWNocgspM9nWFxYgBvtw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SP7Nq/btsG0VwvKOa/NIWNocgspM9nWFxYgBvtw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSP7Nq%2FbtsG0VwvKOa%2FNIWNocgspM9nWFxYgBvtw1%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;459&quot; height=&quot;459&quot; data-filename=&quot;ACC 1주차.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&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;☁ AWS Cloud Clubs(ACC)_2주차&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;☁ Computing Service | EC2, Lightsail&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;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인스턴스란?
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;타사 클라우드 서비스에서 제공하는 서버 리소스 (= 가상 서버)&lt;/li&gt;
&lt;li&gt;기업이 자체적으로 IT 인프라를 소유하고 관리 및 운영하는 경우 (On-Premise), 물리적 서버 리소스를 관리하고 유지할 수도 있지만, 비용이 많이 들고 비효율적&lt;/li&gt;
&lt;li&gt;따라서, 클라우드 제공업체는 데이터 센터에서 하드웨어를 유지 관리하고 인스턴스라는 형태로 컴퓨팅 리소스에 대한 가상 액세스를 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;EC2
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;가상화 서버 서비스. 아마존의 각국 데이터 센터에서 서버용 컴퓨터를 임대하는 것&lt;/li&gt;
&lt;li&gt;AWS에서 가장 기본적이고 널리 쓰이며, VM(Virtual Macine)으로 제공됨.&lt;/li&gt;
&lt;li&gt;크기를 조정할 수 있는 컴퓨팅 용량을 제공하는 웹 서비스&lt;/li&gt;
&lt;li&gt;AWS에서 가장 기본적이고 널리 쓰이며, VM(Virtual Macine)으로 제공됨.&lt;/li&gt;
&lt;li&gt;On-Demand 형식: 외부 서비스 공급자가 데이터를 관리하는 방식
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;클라우드 공급자가 모든 물리적 및 가상의 미들웨어, 하드웨어, 소프트웨어, 데이터베이스 및 기타 자원 인프라를 조달하고 자사의 데이터 센터에 설치 및 관리&lt;/li&gt;
&lt;li&gt;&amp;harr; On-Premise 형식: IT 서비스를 기업이 자체적으로 보유한 물리적인 서버에 직접 설치해 운영하는 방식 (On-Demand과 반대)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LightSail&lt;br /&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초보자 친화적인 서비스로, 주어진 리소스 옵션 중 하나를 골라 단일 가상 서버를 간단히 설정 가능&lt;/li&gt;
&lt;li&gt;VPS(가상 네트워크 공간)_ Virtual Private Server, 일종의 패키지 상품과 유사&lt;/li&gt;
&lt;li&gt;EC2나 RBB 등 개별 서비스를 따로 설정해서 사용하는 것보다 Lightsail 하나의 서비스로 웹서비스를 운용하는데에 더욱 저렴, 추가 비용없이 애플리케이션을 저장 및 실행하는데 필요한 AWS 리소스에 대해서만 요금을 지불&lt;/li&gt;
&lt;li&gt;사전에 구성된 템플릿을 이용해 빠른 인스턴스 배포 가능&lt;/li&gt;
&lt;li&gt; : EC2에 비해 간단하고 직관적이기에, 초보자와 소규모 프로그램에 적합&lt;/li&gt;
&lt;li&gt; : 계정 당 최대 20개의 인스턴스, 5개의 로드 밸런서 등 자원이 한정되어 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Elastic Beanstalk(EB)&lt;br /&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스 (Paas)&lt;/li&gt;
&lt;li&gt;코드를 업로드하기만 하면, 로드 밸런싱, Auto Scaling, 운영체제 관리 등의 개발과 배포 자동화&lt;/li&gt;
&lt;li&gt; : 사용이 매우 간편하고, 무중단 배포 롤백이 가능, 서비스 자체 비용 X&lt;/li&gt;
&lt;li&gt; : 모니터링과 디버깅이 어렵기 때문에 안정화된 서비스에 좋음, 많은 환경 변수가 필요한 경우에 문제 발생.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Amazon EBS: EC2를 위해 설계된 스토리지 서비스&lt;/li&gt;
&lt;li&gt;Snapshot: EC2 사용 후 중요하거나 재사용할 데이터를 다시 복구시키는 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>Cloud</category>
      <category>클라우드</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/76</guid>
      <comments>https://jigoo-log.tistory.com/76#entry76comment</comments>
      <pubDate>Thu, 11 Apr 2024 14:26:25 +0900</pubDate>
    </item>
    <item>
      <title>1764번 - 듣보잡 | 시간초과, binary search (C++)</title>
      <link>https://jigoo-log.tistory.com/74</link>
      <description>&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-filename=&quot;1764_듣보잡.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yQsTv/btsGjQcufLb/TYNPqiATux06GKo9I2li90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yQsTv/btsGjQcufLb/TYNPqiATux06GKo9I2li90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yQsTv/btsGjQcufLb/TYNPqiATux06GKo9I2li90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyQsTv%2FbtsGjQcufLb%2FTYNPqiATux06GKo9I2li90%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;388&quot; height=&quot;388&quot; data-filename=&quot;1764_듣보잡.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1321&quot; data-origin-height=&quot;816&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PeGxB/btsGmw4rm8N/pqrbtUuQYEW6Dwlq1IkVW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PeGxB/btsGmw4rm8N/pqrbtUuQYEW6Dwlq1IkVW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PeGxB/btsGmw4rm8N/pqrbtUuQYEW6Dwlq1IkVW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPeGxB%2FbtsGmw4rm8N%2FpqrbtUuQYEW6Dwlq1IkVW0%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;1321&quot; height=&quot;816&quot; data-origin-width=&quot;1321&quot; data-origin-height=&quot;816&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;1321&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UBL53/btsGlgabA4H/N1UnG9fU91A7XitMtSIkw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UBL53/btsGlgabA4H/N1UnG9fU91A7XitMtSIkw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UBL53/btsGlgabA4H/N1UnG9fU91A7XitMtSIkw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUBL53%2FbtsGlgabA4H%2FN1UnG9fU91A7XitMtSIkw1%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;1321&quot; height=&quot;361&quot; data-origin-width=&quot;1321&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1. 처음에는 이중 for문을 이용해 풀이했다. 당연히 시간초과 발생 &lt;i&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ➡ 애초에 최댓값이 50만씩이여서, 50만 x 50만 = 시간 초과가 날 수 밖에 없었음..&lt;/i&gt;&lt;/p&gt;
&lt;p 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;&amp;nbsp; 2. 시간초과 문제를 해결하기 위해서는, map 또는 binary search를 사용해야 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➡&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt; map: O(logn), Red-Black Tree, key - valued의 pair로 저장된다. 중복 허용 X&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➡&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;binary search: O(logn), 꼭 정렬을 먼저 해줘야 한다.&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;나는 binary search를 이용해 문제를 해결했다.&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;추가로, vector는 데이터 순차 저장이므로 검색 속도가 느리다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;검색에는 hash_map(unordered_map)과 map을 사용하는 것이 빠르다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;hash_map(unordered_map)은 정렬을 하지 않기 때문에, 시간복잡도가 O(1)이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;map은 자동으로 정렬하며, 시간복잡도가 O(logn)이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;첫 번째 풀이 _ 시간초과 발생 | 이중 for문, &lt;i&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/i&gt; &lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1712148105715&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;// 시간초과 

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int n, m;
	string hearname, seename;
	vector&amp;lt;string&amp;gt; hearv, seev, answerv;

	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; hearname;
		hearv.push_back(hearname);
	}

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; seename;
		seev.push_back(seename);
	}
	
	sort(hearv.begin(), hearv.end());
	sort(seev.begin(), seev.end());


	for (int i = 0; i &amp;lt; n; i++) {
		for (int j = 0; j &amp;lt; m; j++) {
			if (hearv[i] == seev[j]) {
				answerv.push_back(hearv[i]);
			}
		}
	}

	cout &amp;lt;&amp;lt; answerv.size() &amp;lt;&amp;lt; &quot;\n&quot;;
	
	for (auto a : answerv) {
		cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; &quot;\n&quot;;
	}
	
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style3&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;두 번째 코드 | binary search, O(logn)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1712149511621&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// binary_search 사용 | O(logn)
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;string&amp;gt;

using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);

	string hearname, seename;
	vector&amp;lt;string&amp;gt; hearv, answerv;
	int n, m;

	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; hearname;
		hearv.push_back(hearname);
	}

	sort(hearv.begin(), hearv.end());

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; seename;
		if (binary_search(hearv.begin(), hearv.end(), seename)) {
			answerv.push_back(seename);
		}
	}
	
	sort(answerv.begin(), answerv.end());

	cout &amp;lt;&amp;lt; answerv.size() &amp;lt;&amp;lt; &quot;\n&quot;;

	for (auto a : answerv) {
		cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rm695/btsGlRH0Plp/Fy8HfWPn7BuKNl81kjfTw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rm695/btsGlRH0Plp/Fy8HfWPn7BuKNl81kjfTw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rm695/btsGlRH0Plp/Fy8HfWPn7BuKNl81kjfTw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frm695%2FbtsGlRH0Plp%2FFy8HfWPn7BuKNl81kjfTw0%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;636&quot; height=&quot;89&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;113&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;figure id=&quot;og_1712149562639&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;1764번: 듣보잡&quot; data-og-description=&quot;첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1764&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1764&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iHoe8/hyVJZDCrew/VIRxKWmyzF8lvRe6qXSXKk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1764&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1764&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iHoe8/hyVJZDCrew/VIRxKWmyzF8lvRe6qXSXKk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1764번: 듣보잡&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;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>Programming/C++ - 백준</category>
      <category>binary search</category>
      <category>시간복잡도</category>
      <category>시간초과</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/74</guid>
      <comments>https://jigoo-log.tistory.com/74#entry74comment</comments>
      <pubDate>Wed, 3 Apr 2024 22:07:02 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 10816번 : 숫자 카드 2 | binary search &amp;amp; unordered map (C++)</title>
      <link>https://jigoo-log.tistory.com/73</link>
      <description>&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10816_숫자 카드 2.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbuxZ5/btsGiPW4IYP/QRk3BLj6i0dPyaCL5xe0hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbuxZ5/btsGiPW4IYP/QRk3BLj6i0dPyaCL5xe0hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbuxZ5/btsGiPW4IYP/QRk3BLj6i0dPyaCL5xe0hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbuxZ5%2FbtsGiPW4IYP%2FQRk3BLj6i0dPyaCL5xe0hK%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;449&quot; height=&quot;449&quot; data-filename=&quot;10816_숫자 카드 2.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;868&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbMEaE/btsGeNAgfvR/xSJtF8BuR8sAPr20vgXeI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbMEaE/btsGeNAgfvR/xSJtF8BuR8sAPr20vgXeI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbMEaE/btsGeNAgfvR/xSJtF8BuR8sAPr20vgXeI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbMEaE%2FbtsGeNAgfvR%2FxSJtF8BuR8sAPr20vgXeI1%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;1133&quot; height=&quot;868&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;868&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;binary_search를 이용해 풀이했다. O(logn)&lt;/li&gt;
&lt;li&gt;문제를 맞춘 후, unordered_map을 이용해도 가능한 것을 확인해 사용해보았다. O(1)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제를 풀며 놀라웠던 점은 시간복잡도가 O(logn)인 binary_search가 O(1)인 unordered_map보다 빨랐다는 것이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;찾아보니 이에 대한 질문 글이 있어 답변을 가져왔다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;&amp;nbsp;현실 세계에서는 N이 무한히 큰 경우가 거의 없기 때문에 O(lgN)과 O(1) 정도의 차이는 N의 크기에 따라 시간복잡도에 붙은 상수로 자주 뒤집어집니다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;가령, 최소한의 비교로 원하는 수를 찾아야 하는 가상의 문제가 있다고 합시다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;N에 관계없이 항상 50번의 비교로 수를 찾는 어떤 O(1) 알고리즘과 N에 대해 ceil(lgN)번의 비교를 하는 O(lgN) 알고리즘이 있으면, 복잡도만 봤을 때는 O(1)이 나음에도 불구하고, N이 조 단위를 넘어가지 않는 이상 O(lgN)이 O(1)보다도 빠릅니다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;이런 상황은 심지어 O(N)과 O(N^2)같이 시간복잡도가 크게 차이나는 경우에도 자주 일어납니다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1711967038027&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;글 읽기 - HashMap이 이분탐색보다 느린 이유가 뭔가요?&quot; data-og-description=&quot;댓글을 작성하려면 로그인해야 합니다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/board/view/57406&quot; data-og-url=&quot;https://www.acmicpc.net/board/view/57406&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YYXtF/hyVGHjOQw9/Tw6SYwKAjVIykaKyBBhVY0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/board/view/57406&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/board/view/57406&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YYXtF/hyVGHjOQw9/Tw6SYwKAjVIykaKyBBhVY0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;글 읽기 - HashMap이 이분탐색보다 느린 이유가 뭔가요?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;댓글을 작성하려면 로그인해야 합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;첫 번째 코드 | binary_search, O(logn)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;lower_bound: 찾고자하는 값 (이상)이 처음 나타나는 위치&lt;/li&gt;
&lt;li&gt;upper_bound: 찾고자 하는 값의 다음 값이 나타나는 최초의 위치&lt;/li&gt;
&lt;li&gt;ex) 1 3 5 5 7 9 이고 findnum = 4라면, lower_bound = 3, upper_bound = 5&lt;/li&gt;
&lt;li&gt;따라서, 차를 통해 개수를 구할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1711966770212&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;vector&amp;gt;
using namespace std;

//	binary search 풀이 | O(logn)
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);

	int n, m, listnum, findnum;
	vector&amp;lt;int&amp;gt; listv;

	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; listnum;
		listv.push_back(listnum);
	}

	sort(listv.begin(), listv.end());

	cin &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; findnum;

		// lower_bound: 찾고자하는 값 (이상)이 처음 나타나는 위치
		// upper_bound: 찾고자 하는 값의 다음 값이 나타나는 최초의 위치
		// ex) 1 3 5 5 7 9 이고 findnum = 4라면
		// lower_bound = 3, upper_bound = 5 | 따라서, 차를 통해 개수를 구할 수 있음.
		cout &amp;lt;&amp;lt; upper_bound(listv.begin(), listv.end(), findnum) - lower_bound(listv.begin(), listv.end(), findnum) &amp;lt;&amp;lt; &quot; &quot;;

	}
    
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;&lt;b&gt;&amp;nbsp;두 번째 코드 | unordered_map, O(1)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;map: red-black tree, O(logn) | unordered_map: hash table, O(1) | vector: O(n)&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;unordered_map은&amp;nbsp;많은&amp;nbsp;양의&amp;nbsp;데이터를&amp;nbsp;저장할&amp;nbsp;때&amp;nbsp;good&amp;nbsp;(수천&amp;nbsp;이상)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;따라서,&amp;nbsp;저장한&amp;nbsp;자료가&amp;nbsp;적다면&amp;nbsp;메모리&amp;nbsp;낭비와&amp;nbsp;검색&amp;nbsp;시&amp;nbsp;오버헤드&amp;nbsp;발생&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #555555; text-align: left;&quot;&gt;정렬 없이 자료를 보관하므로, map 보다 속도가 빠름.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1711967127038&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;unordered_map&amp;gt;
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);

	// map: red-black tree, O(logn) | unordered_map: hash table, O(1) | vector: O(n)
	// unordered_map은 많은 양의 데이터를 저장할 때 good (수천 이상)
    // 따라서, 저장한 자료가 적다면 메모리 낭비와 검색 시 오버헤드 발생
	unordered_map &amp;lt;int, int&amp;gt; um;		// 정렬 없이 자료를 보관하므로, map 보다 속도가 빠름. 
	int n, m, listnum, findnum;

	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; listnum;
		um[listnum]++;		// listnum의 개수에 따라 unordered_map에 저장
	}

	cin &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; findnum;
		// unordered_map에 &amp;lt;key, value&amp;gt; 형태로 저장, value가 true로 존재하면 같은 문자열 O
		cout &amp;lt;&amp;lt; um[findnum] &amp;lt;&amp;lt; &quot; &quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZZCo6/btsGgCdBH5u/NolkOIKKsRdI86xO6cLnWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZZCo6/btsGgCdBH5u/NolkOIKKsRdI86xO6cLnWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZZCo6/btsGgCdBH5u/NolkOIKKsRdI86xO6cLnWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZZCo6%2FbtsGgCdBH5u%2FNolkOIKKsRdI86xO6cLnWK%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;895&quot; height=&quot;86&quot; data-origin-width=&quot;895&quot; data-origin-height=&quot;86&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;figure id=&quot;og_1711967615366&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;10816번: 숫자 카드 2&quot; data-og-description=&quot;첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 &amp;le; N &amp;le; 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/10816&quot; data-og-url=&quot;https://www.acmicpc.net/problem/10816&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/S0iHR/hyVGIpu8pb/k12gvxqnh6qWxjPGKDIDUK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/10816&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/10816&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/S0iHR/hyVGIpu8pb/k12gvxqnh6qWxjPGKDIDUK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;10816번: 숫자 카드 2&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 &amp;le; N &amp;le; 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>binary_search</category>
      <category>unordered_map</category>
      <category>이진탐색</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/73</guid>
      <comments>https://jigoo-log.tistory.com/73#entry73comment</comments>
      <pubDate>Mon, 1 Apr 2024 19:34:13 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 1920번 : 수 찾기 | binary search (C++)</title>
      <link>https://jigoo-log.tistory.com/72</link>
      <description>&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1920_수 찾기.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzmM17/btsGgb1qu3V/B6jDtZFtfWeTGsDOKQ7mek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzmM17/btsGgb1qu3V/B6jDtZFtfWeTGsDOKQ7mek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzmM17/btsGgb1qu3V/B6jDtZFtfWeTGsDOKQ7mek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzmM17%2FbtsGgb1qu3V%2FB6jDtZFtfWeTGsDOKQ7mek%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;439&quot; height=&quot;439&quot; data-filename=&quot;1920_수 찾기.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;870&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GYmWp/btsGgbNSfh2/l7rDqGxCDCWUZ2W8KidXEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GYmWp/btsGgbNSfh2/l7rDqGxCDCWUZ2W8KidXEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GYmWp/btsGgbNSfh2/l7rDqGxCDCWUZ2W8KidXEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGYmWp%2FbtsGgbNSfh2%2Fl7rDqGxCDCWUZ2W8KidXEk%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;1086&quot; height=&quot;870&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;870&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;C++ 내 내장되어 있는 binary_search( ) 함수&lt;/span&gt;&lt;/b&gt;를 이용해 풀이했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;시간복잡도는 O(logn)&lt;/b&gt;으로 빠른 속도로 계산할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;입력받는 정수의 범위가 2의 31승까지 이므로 long long으로 선언한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711963157655&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	int n, m;
	long long listnum, findnum;
    
        cin &amp;gt;&amp;gt; n;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;vector을 이용해 입력받은 값을 저장한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711963114901&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; 	vector&amp;lt;int&amp;gt; listv;

        for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; listnum;
		listv.push_back(listnum);
	}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;binary search는 가운데에 있는 값(중간 크기의 값)을 기준으로 정렬하기 때문에, 꼭 오름차순 혹은 내림차순으로 정렬해야 한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;따라서, sort() 함수를 이용해 정렬한 후 bianry_search() 함수를 사용한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711963548468&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        binary_search(listv.begin(), listv.end(), findnum);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;vector listv의 처음부터 끝까지 findnum이 있는지 확인하고 있으면 true, 없으면 false를 반환하는 코드이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711963278288&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	sort(listv.begin(), listv.end());

	cin &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; findnum;

		bool isFound = binary_search(listv.begin(), listv.end(), findnum);	// binary search를 사용할 때는 먼저 오름차순, 내림차순 정렬을 해줘야 함.
		// vector listv의 처음부터 끝까지 findnum이 있는지 확인하고 있으면 true, 없으면 false 반환
        cout &amp;lt;&amp;lt; isFound &amp;lt;&amp;lt; &quot;\n&quot;;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1711962756385&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;vector&amp;gt;
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);

	int n, m;
	long long listnum, findnum;
	vector&amp;lt;int&amp;gt; listv;

	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; listnum;
		listv.push_back(listnum);
	}

	sort(listv.begin(), listv.end());

	cin &amp;gt;&amp;gt; m;

	for (int i = 0; i &amp;lt; m; i++) {
		cin &amp;gt;&amp;gt; findnum;

		bool isFound = binary_search(listv.begin(), listv.end(), findnum);	// binary search를 사용할 때는 먼저 오름차순, 내림차순 정렬을 해줘야 함.
		cout &amp;lt;&amp;lt; isFound &amp;lt;&amp;lt; &quot;\n&quot;;
	}
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lJ6jt/btsGfzOXuWd/rakWuN9lkB95KyqT960S21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lJ6jt/btsGfzOXuWd/rakWuN9lkB95KyqT960S21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lJ6jt/btsGfzOXuWd/rakWuN9lkB95KyqT960S21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlJ6jt%2FbtsGfzOXuWd%2FrakWuN9lkB95KyqT960S21%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;802&quot; height=&quot;77&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1920&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/1920&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1711963478474&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;1920번: 수 찾기&quot; data-og-description=&quot;첫째 줄에 자연수 N(1 &amp;le; N &amp;le; 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], &amp;hellip;, A[N]이 주어진다. 다음 줄에는 M(1 &amp;le; M &amp;le; 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1920&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1920&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bphPpf/hyVJ6WxJSl/QfBsjCJBphozTYa26jbyxK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1920&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1920&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bphPpf/hyVJ6WxJSl/QfBsjCJBphozTYa26jbyxK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1920번: 수 찾기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 자연수 N(1 &amp;le; N &amp;le; 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], &amp;hellip;, A[N]이 주어진다. 다음 줄에는 M(1 &amp;le; M &amp;le; 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>binary_search</category>
      <category>이진탐색</category>
      <category>정렬</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/72</guid>
      <comments>https://jigoo-log.tistory.com/72#entry72comment</comments>
      <pubDate>Mon, 1 Apr 2024 18:27:00 +0900</pubDate>
    </item>
    <item>
      <title>[백준] C++로 풀이 시 시간 초과가 난다면?</title>
      <link>https://jigoo-log.tistory.com/71</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;시간초과.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGumqD/btsGfxDGVFl/1XlLqImwQZatLi3zq43aok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGumqD/btsGfxDGVFl/1XlLqImwQZatLi3zq43aok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGumqD/btsGfxDGVFl/1XlLqImwQZatLi3zq43aok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGumqD%2FbtsGfxDGVFl%2F1XlLqImwQZatLi3zq43aok%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;375&quot; height=&quot;375&quot; data-filename=&quot;시간초과.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;추가하자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1711592804042&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ios_base::sync_with_stdio(false);
cin.tie(0);&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/C++ - 백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/71</guid>
      <comments>https://jigoo-log.tistory.com/71#entry71comment</comments>
      <pubDate>Thu, 28 Mar 2024 11:27:44 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 1431번 : 시리얼 번호 | vector 구조체 (C++)</title>
      <link>https://jigoo-log.tistory.com/70</link>
      <description>&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1431_시리얼 번호.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FSgtR/btsFPHHgXXj/CQrccuB6zarc5pyBjhxeK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FSgtR/btsFPHHgXXj/CQrccuB6zarc5pyBjhxeK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FSgtR/btsFPHHgXXj/CQrccuB6zarc5pyBjhxeK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFSgtR%2FbtsFPHHgXXj%2FCQrccuB6zarc5pyBjhxeK1%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;424&quot; height=&quot;424&quot; data-filename=&quot;1431_시리얼 번호.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ovmU0/btsFSZMGK0G/KqtZ8zsJEsdAINsYkqinm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ovmU0/btsFSZMGK0G/KqtZ8zsJEsdAINsYkqinm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ovmU0/btsFSZMGK0G/KqtZ8zsJEsdAINsYkqinm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FovmU0%2FbtsFSZMGK0G%2FKqtZ8zsJEsdAINsYkqinm1%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;1177&quot; height=&quot;826&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;826&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;1167&quot; data-origin-height=&quot;843&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfeLIt/btsFRzHJfhT/hc0kFl9P9IMiCntTMY9gh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfeLIt/btsFRzHJfhT/hc0kFl9P9IMiCntTMY9gh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfeLIt/btsFRzHJfhT/hc0kFl9P9IMiCntTMY9gh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfeLIt%2FbtsFRzHJfhT%2Fhc0kFl9P9IMiCntTMY9gh1%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;1167&quot; height=&quot;843&quot; data-origin-width=&quot;1167&quot; data-origin-height=&quot;843&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;1165&quot; data-origin-height=&quot;278&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uP4Qk/btsFP9JXiM0/9yNSkj2exa4VkN0641qy11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uP4Qk/btsFP9JXiM0/9yNSkj2exa4VkN0641qy11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uP4Qk/btsFP9JXiM0/9yNSkj2exa4VkN0641qy11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuP4Qk%2FbtsFP9JXiM0%2F9yNSkj2exa4VkN0641qy11%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;1165&quot; height=&quot;278&quot; data-origin-width=&quot;1165&quot; data-origin-height=&quot;278&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;'구조체를 이용한 벡터'&lt;/span&gt;로&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;풀이했다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;비슷한 정렬 문제 풀이를 아래에 첨부한다. 아래는 vector에 구조체를 넣어 같은 방식으로 풀이한 정렬 문제이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1710692960136&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;[백준] 10825번 : 국영수 (C++)&quot; data-og-description=&quot;문제 풀이 vector에 구조체를 넣어 풀이했다. 아래는 array에 구조체를 넣어 풀이한 문제이다. 또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/68#recentEntries&quot; data-og-url=&quot;https://jigoo-log.tistory.com/68&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bMmYXS/hyVyeWJP0s/0JS3KiqPM7MIQJMFrwpuFk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/K3ixK/hyVBNb8adC/4Pvuezibc3JV0Z851LkAV0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/CuVxb/hyVBFZrVaD/84c9vfVN13GUsHMwNK7Iv0/img.png?width=1313&amp;amp;height=901&amp;amp;face=0_0_1313_901&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/68#recentEntries&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/68#recentEntries&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bMmYXS/hyVyeWJP0s/0JS3KiqPM7MIQJMFrwpuFk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/K3ixK/hyVBNb8adC/4Pvuezibc3JV0Z851LkAV0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/CuVxb/hyVBFZrVaD/84c9vfVN13GUsHMwNK7Iv0/img.png?width=1313&amp;amp;height=901&amp;amp;face=0_0_1313_901');&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;[백준] 10825번 : 국영수 (C++)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문제 풀이 vector에 구조체를 넣어 풀이했다. 아래는 array에 구조체를 넣어 풀이한 문제이다. 또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;array에 구조체를 넣어 풀이한 정렬 문제이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽어보는걸 추천한다! &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1710693091559&quot; style=&quot;color: #555555; text-align: start;&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZAAyb/hyVAF5U5C3/a2474CntG1ATzpDgUNCHO0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/f18Cv/hyVxBYpS67/K5QrxMMFkTnedcbLTNz6u0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/KTfFp/hyVxoreKcR/ilSOKFDwsLdBtdVIptBoIK/img.png?width=1326&amp;amp;height=766&amp;amp;face=0_0_1326_766&quot; data-og-url=&quot;https://jigoo-log.tistory.com/67&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/67&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-description=&quot;문제 풀이 '이차원 벡터'와 '이차원 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for&quot; data-og-title=&quot;[백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare &amp;amp; Array와 Vector 풀이 (C++)&quot; data-og-type=&quot;article&quot; data-ke-align=&quot;alignCenter&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://jigoo-log.tistory.com/67&quot; data-source-url=&quot;https://jigoo-log.tistory.com/67&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZAAyb/hyVAF5U5C3/a2474CntG1ATzpDgUNCHO0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/f18Cv/hyVxBYpS67/K5QrxMMFkTnedcbLTNz6u0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/KTfFp/hyVxoreKcR/ilSOKFDwsLdBtdVIptBoIK/img.png?width=1326&amp;amp;height=766&amp;amp;face=0_0_1326_766');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;[백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare &amp;amp; Array와 Vector 풀이 (C++)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;문제 풀이 '이차원 벡터'와 '이차원 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1. vector를 선언하기 위한 구조체(struct) 생성&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710693166032&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;struct serial {		// vector 구조체 생성
	string str;
	int jarisu = 0, length = 0;
};&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;2. 구조체 vector 선언&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710693166034&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;	vector&amp;lt;serial&amp;gt; v;	// 구조체 vector 선언&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;3. 구조체 이름 설정, 구조체의 각 값에 입력 값 저장&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자릿수를 구해서 저장하는게 중요!&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710693166035&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; s;
		l = s.length();

		serial code;    // 구조체의 이름 설정
		code.str = s;    // 구조체의 각 값에 입력받은 값 저장
		code.length = l;

		for (int k = 0; k &amp;lt; s.length(); k++) {	// 아스키코드 이용해서 자릿수 구하고 저장
			if (0 &amp;lt;= (s[k] - 48) &amp;amp;&amp;amp; (s[k] - 48) &amp;lt;= 9) {
				j += (s[k] - 48);
			}
		}
		code.jarisu = j;

		j = 0;	// 꼭 자릿수 초기화시켜줘야 함

		v.push_back({ code.str, code.jarisu, code.length });    // vector에 붙임
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;4. 조건에 맞게 정렬&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710693166038&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt; // 사용자 지정 compare
bool compare(serial a, serial b) {	// (주의) a.str 뒤에 괄호 없음
	if (a.length == b.length &amp;amp;&amp;amp; a.jarisu == b.jarisu) {	// 3. 길이와 자릿수가 모두 같다면,
		return a.str &amp;lt; b.str;	// 사전 순대로(아스키코드 순)
	}
	else if (a.length == b.length) {	// 2. 길이만 같다면,
		return a.jarisu &amp;lt; b.jarisu;	// 자릿수를 오름차순으로
	}
	else {
		return a.length &amp;lt; b.length;	// 1. 길이 순으로
	}
}

	sort(v.begin(), v.end(), compare);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;5. 구조체 vector에서 str 값만 출력&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710693166043&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; v[i].str &amp;lt;&amp;lt; &quot;\n&quot;;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1710692844152&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

struct serial {		// vector 구조체 생성
	string str;
	int jarisu = 0, length = 0;
};

 // 사용자 지정 compare
bool compare(serial a, serial b) {	// (주의) a.str 뒤에 괄호 없음
	if (a.length == b.length &amp;amp;&amp;amp; a.jarisu == b.jarisu) {	// 3. 길이와 자릿수가 모두 같다면,
		return a.str &amp;lt; b.str;	// 사전 순대로(아스키코드 순)
	}
	else if (a.length == b.length) {	// 2. 길이만 같다면,
		return a.jarisu &amp;lt; b.jarisu;	// 자릿수를 오름차순으로
	}
	else {
		return a.length &amp;lt; b.length;	// 1. 길이 순으로
	}
}

int main() {
	int n, j = 0, l;
	string s;
	vector&amp;lt;serial&amp;gt; v;	// 구조체 vector 선언

	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; s;
		l = s.length();

		serial code;    // 구조체의 이름 설정
		code.str = s;    // 구조체의 각 값에 입력받은 값 저장
		code.length = l;

		for (int k = 0; k &amp;lt; s.length(); k++) {	// 아스키코드 이용해서 자릿수 구하고 저장
			if (0 &amp;lt;= (s[k] - 48) &amp;amp;&amp;amp; (s[k] - 48) &amp;lt;= 9) {
				j += (s[k] - 48);
			}
		}
		code.jarisu = j;

		j = 0;	// 꼭 자릿수 초기화시켜줘야 함

		v.push_back({ code.str, code.jarisu, code.length });    // vector에 붙임
	
		// cout &amp;lt;&amp;lt; v[i].str &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; v[i].jarisu &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; v[i].length &amp;lt;&amp;lt; &quot;\n&quot;;   // 출력 확인용 코드
	}

	sort(v.begin(), v.end(), compare);

	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; v[i].str &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;66&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxgCC1/btsFQOr3GeU/1eUHujcFZLaBxdFI51dWz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxgCC1/btsFQOr3GeU/1eUHujcFZLaBxdFI51dWz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxgCC1/btsFQOr3GeU/1eUHujcFZLaBxdFI51dWz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxgCC1%2FbtsFQOr3GeU%2F1eUHujcFZLaBxdFI51dWz0%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;819&quot; height=&quot;66&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;66&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;figure id=&quot;og_1710694339992&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;1431번: 시리얼 번호&quot; data-og-description=&quot;첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1431&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1431&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/LHIvJ/hyVAz6EmAR/FVBG9kWY0K7MNpRmPknd4k/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1431&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1431&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/LHIvJ/hyVAz6EmAR/FVBG9kWY0K7MNpRmPknd4k/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1431번: 시리얼 번호&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>구조체</category>
      <category>구조체 벡터</category>
      <category>시리얼 번호</category>
      <category>정렬</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/70</guid>
      <comments>https://jigoo-log.tistory.com/70#entry70comment</comments>
      <pubDate>Mon, 18 Mar 2024 01:55:14 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 11656번 : 접미사 배열 | string.substr() 함수를 이용한 '부분 문자열 추출' (C++)</title>
      <link>https://jigoo-log.tistory.com/69</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;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11656_접미사 배열.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBXJkU/btsFMPLzwH2/HZKs3GtTURNwmNH1kk6ZIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBXJkU/btsFMPLzwH2/HZKs3GtTURNwmNH1kk6ZIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBXJkU/btsFMPLzwH2/HZKs3GtTURNwmNH1kk6ZIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBXJkU%2FbtsFMPLzwH2%2FHZKs3GtTURNwmNH1kk6ZIk%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;415&quot; height=&quot;415&quot; data-filename=&quot;11656_접미사 배열.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;909&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bilB9d/btsFNxDE619/hkGt00m0xrDHGA2yTb3US0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bilB9d/btsFNxDE619/hkGt00m0xrDHGA2yTb3US0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bilB9d/btsFNxDE619/hkGt00m0xrDHGA2yTb3US0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbilB9d%2FbtsFNxDE619%2FhkGt00m0xrDHGA2yTb3US0%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;968&quot; height=&quot;909&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;909&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;string.substr() 함수&lt;/span&gt;를 이용하여 부분적으로 문자열을 추출했다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 substr() 함수에 대한 설명이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710426013070&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string&amp;gt; //substr() 함수를 사용하기 위한 헤더 파일 &amp;lt;string&amp;gt;

string str = &quot;CandyShop&quot;;

// str.substr(첫 번째 문자의 위치, 추출할 문자열의 길이);

str.substr();	// CandyShop | 인수가 없으면, 문자열 그대로 반환

str.substr(1);	// andyShop  | 시작 인수만 있다면, 해당 인덱스부터 마지막까지
str.substr(2);	// ndyShop
str.substr(3);	// dyShop

str.substr(4, 3); // ySh&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;string 형식의 vector을 선언하고, substr() 함수를 이용해 모든 접미사를 구해 vector에 저장했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710426090738&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	string s;
	vector&amp;lt;string&amp;gt; v;	// string 형식의 vector 선언
	cin &amp;gt;&amp;gt; s;

	// 모든 접미사를 찾아 vector에 저장 
	for (int i = 0; i &amp;lt; s.length(); i++) {
		v.push_back(s.substr(i));	// 문자열을 추출하는 substr 이용
	}&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;마지막으로, sort() 함수를 이용해 접미사들을 사전 순으로 정렬했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710426161151&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	sort(v.begin(), v.end());&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1710425341416&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

int main() {
	string s;
	vector&amp;lt;string&amp;gt; v;
	cin &amp;gt;&amp;gt; s;

	// 모든 접미사를 찾아 vector에 저장 - 문자열을 부분 추출하는 substr 이용
	for (int i = 0; i &amp;lt; s.length(); i++) {
		v.push_back(s.substr(i));
	}

	// 벡터를 사전 순으로 정렬
	sort(v.begin(), v.end());

	for (int i = 0; i &amp;lt; s.length(); i++) {
		cout &amp;lt;&amp;lt; v.at(i) &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;80&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oH7dn/btsFNvTnDAJ/EWMXJ4TKzhkyEizQI1gw81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oH7dn/btsFNvTnDAJ/EWMXJ4TKzhkyEizQI1gw81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oH7dn/btsFNvTnDAJ/EWMXJ4TKzhkyEizQI1gw81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoH7dn%2FbtsFNvTnDAJ%2FEWMXJ4TKzhkyEizQI1gw81%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;921&quot; height=&quot;80&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;80&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;figure id=&quot;og_1710425434738&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;11656번: 접미사 배열&quot; data-og-description=&quot;첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11656&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11656&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/9LUYF/hyVAOaNSCz/9sLuJBVnkVZdFY94yWNlqK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11656&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11656&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/9LUYF/hyVAOaNSCz/9sLuJBVnkVZdFY94yWNlqK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;11656번: 접미사 배열&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>substr</category>
      <category>부분 문자열 추출</category>
      <category>접미사 배열</category>
      <category>정렬</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/69</guid>
      <comments>https://jigoo-log.tistory.com/69#entry69comment</comments>
      <pubDate>Thu, 14 Mar 2024 23:25:51 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 10825번 : 국영수 (C++)</title>
      <link>https://jigoo-log.tistory.com/68</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10825_국영수.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZJZi3/btsFK5OkBIl/YESn0QDKrOvWEgJ01WpzbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZJZi3/btsFK5OkBIl/YESn0QDKrOvWEgJ01WpzbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZJZi3/btsFK5OkBIl/YESn0QDKrOvWEgJ01WpzbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZJZi3%2FbtsFK5OkBIl%2FYESn0QDKrOvWEgJ01WpzbK%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;440&quot; height=&quot;440&quot; data-filename=&quot;10825_국영수.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;901&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq0CjP/btsFMDKjmN3/W0HPdi6sEAkn7DmIzKwmW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq0CjP/btsFMDKjmN3/W0HPdi6sEAkn7DmIzKwmW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq0CjP/btsFMDKjmN3/W0HPdi6sEAkn7DmIzKwmW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq0CjP%2FbtsFMDKjmN3%2FW0HPdi6sEAkn7DmIzKwmW1%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;1313&quot; height=&quot;901&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;901&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;1310&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpY9r4/btsFLpZ9yom/beKzEKhWzKbldckKxC3bn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpY9r4/btsFLpZ9yom/beKzEKhWzKbldckKxC3bn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpY9r4/btsFLpZ9yom/beKzEKhWzKbldckKxC3bn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpY9r4%2FbtsFLpZ9yom%2FbeKzEKhWzKbldckKxC3bn1%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;1310&quot; height=&quot;502&quot; data-origin-width=&quot;1310&quot; data-origin-height=&quot;502&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;vector에 구조체를 넣어&lt;/span&gt; 풀이했다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 array에 구조체를 넣어 풀이한 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽어보시는걸 추천한다!&amp;nbsp; &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1710345402033&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;[백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare &amp;amp; Array와 Vector 풀이 (C++)&quot; data-og-description=&quot;문제 풀이 '이차원 벡터'와 '이차원 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for &quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/67&quot; data-og-url=&quot;https://jigoo-log.tistory.com/67&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZAAyb/hyVAF5U5C3/a2474CntG1ATzpDgUNCHO0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/f18Cv/hyVxBYpS67/K5QrxMMFkTnedcbLTNz6u0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/KTfFp/hyVxoreKcR/ilSOKFDwsLdBtdVIptBoIK/img.png?width=1326&amp;amp;height=766&amp;amp;face=0_0_1326_766&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/67&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/67&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZAAyb/hyVAF5U5C3/a2474CntG1ATzpDgUNCHO0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/f18Cv/hyVxBYpS67/K5QrxMMFkTnedcbLTNz6u0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/KTfFp/hyVxoreKcR/ilSOKFDwsLdBtdVIptBoIK/img.png?width=1326&amp;amp;height=766&amp;amp;face=0_0_1326_766');&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;[백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare &amp;amp; Array와 Vector 풀이 (C++)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문제 풀이 '이차원 벡터'와 '이차원 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1. vector를 선언하기 위한 구조체(struct) 생성&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710345741773&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;struct score {	// vector 구조체 생성
	string name;
	int kor, eng, math;
};&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;2. 구조체 vector 선언&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710345741774&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	vector&amp;lt;score&amp;gt; v;	// 구조체 vector 선언&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;3. 구조체 이름 설정, 구조체의 각 값에 입력 값 저장&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710345741775&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; k &amp;gt;&amp;gt; e &amp;gt;&amp;gt; m;
		
		score s;	// 구조체의 이름 설정
		s.name = n;		// 구조체의 각 값에 입력받은 값을 저장
		s.kor = k;
		s.eng = e;
		s.math = m;
		
		v.push_back({ s.name, s.kor, s.eng, s.math });		// vector에 붙임
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;4. 조건에 맞게 정렬&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710345741775&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; // 사용자 지정 compare
bool compare(score a, score b) {
	if (a.kor == b.kor &amp;amp;&amp;amp; a.eng == b.eng &amp;amp;&amp;amp; a.math == b.math) {	// 4. 모든 점수가 같으면,
		return a.name &amp;lt; b.name;	// 이름이 사전 순
	}
	else if (a.kor == b.kor &amp;amp;&amp;amp; a.eng == b.eng) {	// 3. 국어 점수와 영어 점수가 같으면,
		return a.math &amp;gt; b.math;	// 수학 점수가 감소하는 순서로 (내림차순)
	}
	else if (a.kor == b.kor) {	// 2. 국어 점수가 같으면,
		return a.eng &amp;lt; b.eng;	// 영어 점수가 증가하는 순서로 (오름차순)
	}
	else {
		return a.kor &amp;gt; b.kor;	// 1. 국어 점수가 감소하는 순서로 (내림차순)
	}
}

	sort(v.begin(), v.end(), compare);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;5. 구조체 vector에서 name 값만 출력&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710345741776&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; N; i++) {
		cout &amp;lt;&amp;lt; v[i].name &amp;lt;&amp;lt; &quot;\n&quot;;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710345049764&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

struct score {	// vector 구조체 생성
	string name;
	int kor, eng, math;
};

bool compare(score a, score b) {
	if (a.kor == b.kor &amp;amp;&amp;amp; a.eng == b.eng &amp;amp;&amp;amp; a.math == b.math) {	// 4. 모든 점수가 같으면,
		return a.name &amp;lt; b.name;	// 이름이 사전 순
	}
	else if (a.kor == b.kor &amp;amp;&amp;amp; a.eng == b.eng) {	// 3. 국어 점수와 영어 점수가 같으면,
		return a.math &amp;gt; b.math;	// 수학 점수가 감소하는 순서로 (내림차순)
	}
	else if (a.kor == b.kor) {	// 2. 국어 점수가 같으면,
		return a.eng &amp;lt; b.eng;	// 영어 점수가 증가하는 순서로 (오름차순)
	}
	else {
		return a.kor &amp;gt; b.kor;	// 1. 국어 점수가 감소하는 순서로 (내림차순)
	}
}

int main() {
	int N, k, e, m;
	string n;
	vector&amp;lt;score&amp;gt; v;	// 구조체 vector 선언

	cin &amp;gt;&amp;gt; N;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; k &amp;gt;&amp;gt; e &amp;gt;&amp;gt; m;
		
		score s;	// 구조체의 이름 설정
		s.name = n;		// 구조체의 각 값에 입력받은 값을 저장
		s.kor = k;
		s.eng = e;
		s.math = m;
		
		v.push_back({ s.name, s.kor, s.eng, s.math });		// vector에 붙임
	}

	sort(v.begin(), v.end(), compare);

	for (int i = 0; i &amp;lt; N; i++) {
		cout &amp;lt;&amp;lt; v[i].name &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq9pGA/btsFMtgJEhp/grGHc8NFi4aeafqofpqVg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq9pGA/btsFMtgJEhp/grGHc8NFi4aeafqofpqVg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq9pGA/btsFMtgJEhp/grGHc8NFi4aeafqofpqVg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq9pGA%2FbtsFMtgJEhp%2FgrGHc8NFi4aeafqofpqVg1%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;921&quot; height=&quot;77&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1710345078980&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;10825번: 국영수&quot; data-og-description=&quot;첫째 줄에 도현이네 반의 학생의 수 N (1 &amp;le; N &amp;le; 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/10825&quot; data-og-url=&quot;https://www.acmicpc.net/problem/10825&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gu3tb/hyVAKe6hV0/JklyIagQeFxWpcwyWKUQ30/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/10825&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/10825&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gu3tb/hyVAKe6hV0/JklyIagQeFxWpcwyWKUQ30/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;10825번: 국영수&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 도현이네 반의 학생의 수 N (1 &amp;le; N &amp;le; 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/68</guid>
      <comments>https://jigoo-log.tistory.com/68#entry68comment</comments>
      <pubDate>Thu, 14 Mar 2024 01:12:02 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare &amp;amp; Array와 Vector 풀이 (C++)</title>
      <link>https://jigoo-log.tistory.com/67</link>
      <description>&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-filename=&quot;11650_좌표 정렬하기.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bG13KU/btsFJG9zPs8/6jQvPw9KbMypt9nrjFk5y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bG13KU/btsFJG9zPs8/6jQvPw9KbMypt9nrjFk5y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bG13KU/btsFJG9zPs8/6jQvPw9KbMypt9nrjFk5y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG13KU%2FbtsFJG9zPs8%2F6jQvPw9KbMypt9nrjFk5y0%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;428&quot; height=&quot;428&quot; data-filename=&quot;11650_좌표 정렬하기.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;766&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qq0wV/btsFLrcmgXi/ZdskEVilCghYOO4LoDezsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qq0wV/btsFLrcmgXi/ZdskEVilCghYOO4LoDezsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qq0wV/btsFLrcmgXi/ZdskEVilCghYOO4LoDezsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqq0wV%2FbtsFLrcmgXi%2FZdskEVilCghYOO4LoDezsk%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;1326&quot; height=&quot;766&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;766&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;1334&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/my3Js/btsFJ2RVAyc/CBzuseZf4RKnLPkKiA4QFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/my3Js/btsFJ2RVAyc/CBzuseZf4RKnLPkKiA4QFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/my3Js/btsFJ2RVAyc/CBzuseZf4RKnLPkKiA4QFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmy3Js%2FbtsFJ2RVAyc%2FCBzuseZf4RKnLPkKiA4QFk%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;1334&quot; height=&quot;301&quot; data-origin-width=&quot;1334&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;'이차원 벡터'&lt;/span&gt;와 &lt;span style=&quot;background-color: #99cefa;&quot;&gt;'구조체를 이용한 배열'&lt;/span&gt;로&lt;/b&gt; 풀이했다. 총 세 가지의 풀이로 문제를 해결했다!&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;[ '이차원 벡터'&amp;nbsp; 풀이 ]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1. 이차원 벡터 선언&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710338014069&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	vector&amp;lt;pair&amp;lt;int, int&amp;gt;&amp;gt; v; // 이차원 벡터 선언&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;2. 이차원 벡터 요소 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710338190943&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; n; i++){
    	cin &amp;gt;&amp;gt; x &amp;gt;&amp;gt; y;
    	// 첫 번째 - 이차원 벡터 입력 방법
    	v.push_back({x, y});
        // 두 번째 - 이차원 벡터 입력 방법
        v.push_back(make_pair(x, y));
    }&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;3. 오름차순 정렬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710338241351&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 사용자 지정 compare 생략 - 오름차순 정렬이기 때문에 가능
    sort(v.begin(), v.end()); // 오름차순
    sort(v.begin(), v.end(), less&amp;lt;int&amp;gt;()); // 오름차순
    
 
 
 // 사용자 지정 compare
bool compare(pair&amp;lt;int, int&amp;gt;a, pair&amp;lt;int, int&amp;gt;b) {
	if (a.first == b.first) {	// x가 같은 경우에만, 
		return a.second &amp;lt; b.second;	// y를 기준으로 오름차순
	}
	else {
		return a.first &amp;lt; b.first;	// x를 기준으로 오름차순
	}
}


    sort(v.begin(), v.end(), comapare);&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;4. 이차원 배열 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710338288887&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; v[i].first &amp;lt;&amp;lt; &quot; &quot;&amp;lt;&amp;lt; v[i].second &amp;lt;&amp;lt; &quot;\n&quot;;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt; &lt;b&gt;[ '구조체를 이용한 배열'&amp;nbsp; 풀이 ]&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1. array를 만들기 위한 구조체(struct) 생성&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710340607833&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;struct coordinate {		// array 구조체 생성
	int x, y;
};&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;2. 구조체 array 선언&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710340607833&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;struct coordinate arr[100001];&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; &amp;nbsp;처음에는, int main() 안에 array를 선언했으나 아래와 같은 '함수가 스택의 바이트를 사용합니다. 일부 데이터를 힙으로 이동하는 것이 좋습니다'라는 경고가 발생했다. 이는 전역변수로 바꾸어 해결했다.&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;840&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5wZKY/btsFKRQjZhy/wibTzZCPbfyWV5LhFyJvkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5wZKY/btsFKRQjZhy/wibTzZCPbfyWV5LhFyJvkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5wZKY/btsFKRQjZhy/wibTzZCPbfyWV5LhFyJvkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5wZKY%2FbtsFKRQjZhy%2FwibTzZCPbfyWV5LhFyJvkk%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;840&quot; height=&quot;56&quot; data-origin-width=&quot;840&quot; data-origin-height=&quot;56&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;3. 값 입력받기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710341140244&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; arr[i].x &amp;gt;&amp;gt; arr[i].y;
	}&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;4. 오름차순 정렬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710340607834&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt; // 사용자 지정 compare
bool compare(coordinate a, coordinate b) {
	if (a.x == b.x) {
		return a.y &amp;lt; b.y;
	}
	else {
		return a.x &amp;lt; b.x;
	}
}

	sort(arr, arr+ n, compare);&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. 배열 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710340607835&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; arr[i].x &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; arr[i].y &amp;lt;&amp;lt; &quot;\n&quot;;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;첫 번째 코드&amp;nbsp; - &lt;span style=&quot;background-color: #f6e199;&quot;&gt;Vector&lt;/span&gt; &amp;amp; 사용자 지정 Compare (X)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710319461429&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

int main(){
	int n, x, y;
    	vector&amp;lt;pair&amp;lt;int, int&amp;gt;&amp;gt; v; // 이차원 벡터 선언
	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++){
    	cin &amp;gt;&amp;gt; x &amp;gt;&amp;gt; y;
    	// 첫 번째 - 이차원 벡터 입력 방법
    	v.push_back({x, y});
        // 두 번째 - 이차원 벡터 입력 방법
        // v.push_back(make_pair(x, y));
    }
    
    sort(v.begin(), v.end()); // 오름차순
    // sort(v.begin(), v.end(), less&amp;lt;int&amp;gt;()); // 오름차순
    
	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; v[i].first &amp;lt;&amp;lt; &quot; &quot;&amp;lt;&amp;lt; v[i].second &amp;lt;&amp;lt; &quot;\n&quot;;
	}
    
    return 0;
}&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;style2&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;두 번째 코드&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Vector&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;amp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;사용자 지정 Compare&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(O)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710339561035&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;algorithm&amp;gt;

using namespace std;

bool compare(pair&amp;lt;int, int&amp;gt;a, pair&amp;lt;int, int&amp;gt;b) {
	if (a.first == b.first) {	// x가 같은 경우에만, 
		return a.second &amp;lt; b.second;	// y를 기준으로 오름차순
	}
	else {
		return a.first &amp;lt; b.first;	// x를 기준으로 오름차순
	}
}

int main(){
	int n, x, y;
    	vector&amp;lt;pair&amp;lt;int, int&amp;gt;&amp;gt; v; // 이차원 벡터 선언
	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++){
    	cin &amp;gt;&amp;gt; x &amp;gt;&amp;gt; y;
    	// 첫 번째 - 이차원 벡터 입력 방법
    	v.push_back({x, y});
        // 두 번째 - 이차원 벡터 입력 방법
        // v.push_back(make_pair(x, y));
    }
    
	sort(v.begin(), v.end(), compare); // 오름차순
    
	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; v[i].first &amp;lt;&amp;lt; &quot; &quot;&amp;lt;&amp;lt; v[i].second &amp;lt;&amp;lt; &quot;\n&quot;;
	}
    
    return 0;
}&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;style2&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;세 번째 코드&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;-&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;Array&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;amp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;사용자 지정 Compare&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(O)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710340630686&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

struct coordinate {		// array 구조체 생성
	int x, y;
};

bool compare(coordinate a, coordinate b) {
	if (a.x == b.x) {
		return a.y &amp;lt; b.y;
	}
	else {
		return a.x &amp;lt; b.x;
	}
}
struct coordinate arr[100001];

int main() {
	int n, x, y;
	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; arr[i].x &amp;gt;&amp;gt; arr[i].y;
	}

	sort(arr, arr+ n, compare);


	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; arr[i].x &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; arr[i].y &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bieE8W/btsFKQKEfJc/LkzmMDKMfk7Akh9b2aZyBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bieE8W/btsFKQKEfJc/LkzmMDKMfk7Akh9b2aZyBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bieE8W/btsFKQKEfJc/LkzmMDKMfk7Akh9b2aZyBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbieE8W%2FbtsFKQKEfJc%2FLkzmMDKMfk7Akh9b2aZyBk%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;921&quot; height=&quot;155&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;155&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;figure id=&quot;og_1710338462998&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;11650번: 좌표 정렬하기&quot; data-og-description=&quot;첫째 줄에 점의 개수 N (1 &amp;le; N &amp;le; 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 &amp;le; xi, yi &amp;le; 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11650&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11650&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pOUHO/hyVxEnicK0/EqqPzJ0awTONBLMeS4Jr1k/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11650&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11650&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pOUHO/hyVxEnicK0/EqqPzJ0awTONBLMeS4Jr1k/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;11650번: 좌표 정렬하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 점의 개수 N (1 &amp;le; N &amp;le; 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 &amp;le; xi, yi &amp;le; 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/67</guid>
      <comments>https://jigoo-log.tistory.com/67#entry67comment</comments>
      <pubDate>Thu, 14 Mar 2024 00:04:31 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 11931번 : 수 정렬하기 4 (C++)</title>
      <link>https://jigoo-log.tistory.com/66</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11931.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0aqNZ/btsFJG2flar/Vs4QrLgKaGMeUQLp8FS3g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0aqNZ/btsFJG2flar/Vs4QrLgKaGMeUQLp8FS3g1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0aqNZ/btsFJG2flar/Vs4QrLgKaGMeUQLp8FS3g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0aqNZ%2FbtsFJG2flar%2FVs4QrLgKaGMeUQLp8FS3g1%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;445&quot; height=&quot;445&quot; data-filename=&quot;11931.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;897&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bV3AEN/btsFGUlNqqV/WZyw9OmeGr38bALye9Rvj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bV3AEN/btsFGUlNqqV/WZyw9OmeGr38bALye9Rvj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bV3AEN/btsFGUlNqqV/WZyw9OmeGr38bALye9Rvj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbV3AEN%2FbtsFGUlNqqV%2FWZyw9OmeGr38bALye9Rvj0%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;1094&quot; height=&quot;897&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;897&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sort함수를 사용할 때,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;greater&amp;lt;&amp;gt; 내림차순&lt;/li&gt;
&lt;li&gt;less&amp;lt;&amp;gt; 오름차순&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잊지말도록!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710306988569&quot; class=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;algorithm&amp;gt; // sort함수를 사용하기 위한 헤더 파일

sort(v.begin(), v.end(), compare);

sort(v.begin(), v.end(), greater&amp;lt;int&amp;gt;()); // 내림차순
sort(v.begin(), v.end(), less&amp;lt;int&amp;gt;()); // 오름차순&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: fff9c4#;&quot;&gt;아래는 정렬 시 시간복잡도에 대해서 자세하게 적어두었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: fff9c4#;&quot;&gt;이 문제에 대한 코드 설명도 있으니 꼭 읽어보시기를 추천드린다!  &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아래의 글을 두 줄 요약하자면, sort함수는 퀵정렬을 이용해서 시간복잡도가 &lt;i&gt;O(nlogn)&lt;/i&gt;으로 더 효율적이고 빠르다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약, 이중 for문을 이용해 정렬을 구현하면 시간복잡도는 &lt;i&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/i&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 으로 상대적으로 느리고, 시간초과가 발생한다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1710172937693&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;[백준] 2751번 : 수 정렬하기 2 (C++) + 시간초과 &amp;amp; 런타임 에러(OutofBounds) 해결&quot; data-og-description=&quot;문제 풀이 첫 번째 코드 - 실패 ➡ 시간복잡도: O(n2), int 배열 사용 // O(n^2), 시간초과 &amp;amp; 배열의 크기가 커 오류 발생 #include #include using namespace std; int main() { int N, num, temp; int arr[1000001]; cin &amp;gt;&amp;gt; N; for (in&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/57&quot; data-og-url=&quot;https://jigoo-log.tistory.com/57&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Cj4br/hyVxwh2KGH/WldwjcxSp8lZ07Z6lxtzXk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/EE5tD/hyVxvpUJ0Y/dYJx7VKDTUD9KqLbJVqHjk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bWOTl3/hyVxDapK1j/f6iXTw44BKZzSWKrAk2jbk/img.png?width=1150&amp;amp;height=831&amp;amp;face=0_0_1150_831&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/57&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/57&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Cj4br/hyVxwh2KGH/WldwjcxSp8lZ07Z6lxtzXk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/EE5tD/hyVxvpUJ0Y/dYJx7VKDTUD9KqLbJVqHjk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bWOTl3/hyVxDapK1j/f6iXTw44BKZzSWKrAk2jbk/img.png?width=1150&amp;amp;height=831&amp;amp;face=0_0_1150_831');&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;[백준] 2751번 : 수 정렬하기 2 (C++) + 시간초과 &amp;amp; 런타임 에러(OutofBounds) 해결&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문제 풀이 첫 번째 코드 - 실패 ➡ 시간복잡도: O(n2), int 배열 사용 // O(n^2), 시간초과 &amp;amp; 배열의 크기가 커 오류 발생 #include #include using namespace std; int main() { int N, num, temp; int arr[1000001]; cin &amp;gt;&amp;gt; N; for (in&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710172954689&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;vector&amp;gt;
using namespace std;

int main() {
	long long n, num;
	vector&amp;lt;long long&amp;gt; v;

	cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++) {
		cin &amp;gt;&amp;gt; num;
		v.push_back(num);
	}

	sort(v.begin(), v.end(), greater&amp;lt;int&amp;gt;());

	for (int i = 0; i &amp;lt; n; i++) {
		cout &amp;lt;&amp;lt; v.at(i) &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;88&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LmAgR/btsFF4WyJTg/zGzhxVpRqQXtykMGCa1Xb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LmAgR/btsFF4WyJTg/zGzhxVpRqQXtykMGCa1Xb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LmAgR/btsFF4WyJTg/zGzhxVpRqQXtykMGCa1Xb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLmAgR%2FbtsFF4WyJTg%2FzGzhxVpRqQXtykMGCa1Xb0%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;1029&quot; height=&quot;88&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;88&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;figure id=&quot;og_1710172954691&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hj4nt/hyVxDhaKSt/KLui0aQOO7eud2WHOCRDx1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11931&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11931&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-description=&quot;첫째 줄에 수의 개수 N(1 &amp;le; N &amp;le; 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.&quot; data-og-title=&quot;11931번: 수 정렬하기 4&quot; data-og-type=&quot;website&quot; data-ke-align=&quot;alignCenter&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.acmicpc.net/problem/11931&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11931&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hj4nt/hyVxDhaKSt/KLui0aQOO7eud2WHOCRDx1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;11931번: 수 정렬하기 4&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 수의 개수 N(1 &amp;le; N &amp;le; 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>sort</category>
      <category>정렬</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/66</guid>
      <comments>https://jigoo-log.tistory.com/66#entry66comment</comments>
      <pubDate>Wed, 13 Mar 2024 14:35:52 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 11866번 : 요세푸스 문제 0 (C++)</title>
      <link>https://jigoo-log.tistory.com/65</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11866_요세푸스 문제 0.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/41hZO/btsFKMt7p3i/12L2eVcOVl5BmTKVP4zRI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/41hZO/btsFKMt7p3i/12L2eVcOVl5BmTKVP4zRI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/41hZO/btsFKMt7p3i/12L2eVcOVl5BmTKVP4zRI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F41hZO%2FbtsFKMt7p3i%2F12L2eVcOVl5BmTKVP4zRI1%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;401&quot; height=&quot;401&quot; data-filename=&quot;11866_요세푸스 문제 0.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;885&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kArWu/btsFFLpoKhM/gkCiRa3nhkgncP3Jf73aM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kArWu/btsFFLpoKhM/gkCiRa3nhkgncP3Jf73aM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kArWu/btsFFLpoKhM/gkCiRa3nhkgncP3Jf73aM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkArWu%2FbtsFFLpoKhM%2FgkCiRa3nhkgncP3Jf73aM0%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;1108&quot; height=&quot;885&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;885&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;요세푸스 문제는 큐(Queue)를 이용해 풀이할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;queue를 사용하기 위한 헤더 파일을 추가한다.&lt;/li&gt;
&lt;li&gt;큐에 1부터 n까지의 원소를 넣는다.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1710304656283&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;queue&amp;gt;	// queue를 이용하기 위한 헤더 파일
	int n, k;
	queue&amp;lt;int&amp;gt; q; // queue 선언

	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; k;
	for (int i = 1; i &amp;lt;= n; i++) {	// 큐에 1부터 n까지 원소 넣기
		q.push(i);
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 3. &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;1부터 k-1까지의 원소를 큐의 뒤로 보내고, 삭제한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 4. &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;k번째 원소를 출력한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 5. &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;만약, 큐의 크기가 2 이상이라면, &quot;, &quot;를 출력한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 6. &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;k번째 원소를 삭제한다.&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; 7. 큐에 원소가 없어질 때까지, 3부터 6의 과정을 반복한다!&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710304855663&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	while (q.empty() == 0) { // 큐에 원소가 있다면,
		for (int i = 1; i &amp;lt; k; i++) { // 1부터 k-1까지의 원소를
			q.push(q.front()); // 큐의 가장 뒤로 보내고
			q.pop(); // 삭제한다.
		}
		cout &amp;lt;&amp;lt; q.front(); // 가장 앞에 남은 k번째 원소를 출력한다.
		
		if (q.size() &amp;gt;= 2) { // 만약, 큐의 크기가 2 이상이라면,
			cout &amp;lt;&amp;lt; &quot;, &quot;; // &quot;, &quot;를 붙인다.
		}
		q.pop();	// k번째 원소를 삭제한다!
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710173155835&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;queue&amp;gt;

using namespace std;

int main() {
	int n, k;
	queue&amp;lt;int&amp;gt; q;

	cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; k;
	for (int i = 1; i &amp;lt;= n; i++) {	// 큐에 1부터 n까지 원소 넣기
		q.push(i);
	}
	
	cout &amp;lt;&amp;lt; &quot;&amp;lt;&quot;;

	while (q.empty() == 0) { // 큐에 원소가 있다면,
		for (int i = 1; i &amp;lt; k; i++) { // 1부터 k-1까지의 원소를
			q.push(q.front()); // 큐의 가장 뒤로 보내고
			q.pop(); // 삭제한다.
		}
		cout &amp;lt;&amp;lt; q.front(); // 가장 앞에 남은 k번째 원소를 출력한다.
		
		if (q.size() &amp;gt;= 2) { // 만약, 큐의 크기가 2 이상이라면,
			cout &amp;lt;&amp;lt; &quot;, &quot;; // &quot;, &quot;를 붙인다.
		}
		q.pop();	// k번째 원소를 삭제한다!
	}
	cout &amp;lt;&amp;lt; &quot;&amp;gt;&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k36KY/btsFJI5vfQU/K9KBjsiYG52soKoLukJhAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k36KY/btsFJI5vfQU/K9KBjsiYG52soKoLukJhAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k36KY/btsFJI5vfQU/K9KBjsiYG52soKoLukJhAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk36KY%2FbtsFJI5vfQU%2FK9KBjsiYG52soKoLukJhAk%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;771&quot; height=&quot;64&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;64&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;figure id=&quot;og_1710173347730&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;11866번: 요세푸스 문제 0&quot; data-og-description=&quot;첫째 줄에 N과 K가&amp;nbsp;빈 칸을 사이에 두고 순서대로 주어진다. (1 &amp;le; K &amp;le; N &amp;le; 1,000)&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11866&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11866&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bl1R45/hyVxw3oFfr/Jd91DD0kq6NoWLvpHO0Ue1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11866&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11866&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bl1R45/hyVxw3oFfr/Jd91DD0kq6NoWLvpHO0Ue1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;11866번: 요세푸스 문제 0&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 N과 K가&amp;nbsp;빈 칸을 사이에 두고 순서대로 주어진다. (1 &amp;le; K &amp;le; N &amp;le; 1,000)&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>요세푸스</category>
      <category>큐</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/65</guid>
      <comments>https://jigoo-log.tistory.com/65#entry65comment</comments>
      <pubDate>Wed, 13 Mar 2024 13:53:09 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 10845번 : 큐 (C++)</title>
      <link>https://jigoo-log.tistory.com/64</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10845.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcUUtd/btsFD4P1LdH/9OGbIwJ3iKXBkNuUOUjkik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcUUtd/btsFD4P1LdH/9OGbIwJ3iKXBkNuUOUjkik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcUUtd/btsFD4P1LdH/9OGbIwJ3iKXBkNuUOUjkik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcUUtd%2FbtsFD4P1LdH%2F9OGbIwJ3iKXBkNuUOUjkik%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;419&quot; height=&quot;419&quot; data-filename=&quot;10845.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;901&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GJNE8/btsFHolGbam/6jCT7DWujUy2S7Vo2KqAv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GJNE8/btsFHolGbam/6jCT7DWujUy2S7Vo2KqAv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GJNE8/btsFHolGbam/6jCT7DWujUy2S7Vo2KqAv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGJNE8%2FbtsFHolGbam%2F6jCT7DWujUy2S7Vo2KqAv1%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;1174&quot; height=&quot;901&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;901&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;1169&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxbd6q/btsFFLvnPoI/ggDQxoxX0G01eBHbRf7FF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxbd6q/btsFFLvnPoI/ggDQxoxX0G01eBHbRf7FF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxbd6q/btsFFLvnPoI/ggDQxoxX0G01eBHbRf7FF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbxbd6q%2FbtsFFLvnPoI%2FggDQxoxX0G01eBHbRf7FF0%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;1169&quot; height=&quot;535&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;큐(Queue)은 FIFO(First In First Out, 선입선출) 구조이다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;큐를 구현하기 위해 std::queue를 사용할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; 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_1710086893450&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;[백준] 10828번 : 스택 (C++)&quot; data-og-description=&quot;문제 풀이 스택(Stack)은 LIFO(Last In First Out, 후입선출) 구조이다. 스택은 컨테이너의 한 쪽 끝에서만 데이터를 삽입하거나 삭제할 수 있다. 따라서, 한쪽 끝이 아닌 위치에 있는 데이터는 접근하거&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/63&quot; data-og-url=&quot;https://jigoo-log.tistory.com/63&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jjkVz/hyVxqocui5/LnqsovMakAtl1F1iygmNE0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/ble2h4/hyVxpQnYeZ/IPlcJ5ziMMZIlmEqRkuthK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/D05If/hyVxwoqkHq/7sIAq2JneKd9b4auVfKKXK/img.png?width=1225&amp;amp;height=885&amp;amp;face=0_0_1225_885&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/63&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/63&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jjkVz/hyVxqocui5/LnqsovMakAtl1F1iygmNE0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/ble2h4/hyVxpQnYeZ/IPlcJ5ziMMZIlmEqRkuthK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/D05If/hyVxwoqkHq/7sIAq2JneKd9b4auVfKKXK/img.png?width=1225&amp;amp;height=885&amp;amp;face=0_0_1225_885');&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;[백준] 10828번 : 스택 (C++)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문제 풀이 스택(Stack)은 LIFO(Last In First Out, 후입선출) 구조이다. 스택은 컨테이너의 한 쪽 끝에서만 데이터를 삽입하거나 삭제할 수 있다. 따라서, 한쪽 끝이 아닌 위치에 있는 데이터는 접근하거&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어, std::queue에서 pop()은 pop_front()를 의미한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;만약, 단순히 양 끝에 있는 원소에 접근하고 싶다면 front(), back() 함수를 사용하면 된다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 std::queue를 사용하는 예제 코드이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710086652747&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// std::queue를 이용해 큐 구현

#include &amp;lt;queue&amp;gt;
std::queue&amp;lt;int&amp;gt; q;
q.push(1);
q.push(2;
q.push(3)
q.pop;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710086100039&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;queue&amp;gt;

using namespace std;

int main() {
	int N, num;
	string str;
	queue&amp;lt;int&amp;gt; q;

	cin &amp;gt;&amp;gt; N;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; str;

		if (str == &quot;push&quot;) {
			cin &amp;gt;&amp;gt; num;
			q.push(num);
		}
		else if (str == &quot;pop&quot;) {
			if (q.empty()) {
				cout &amp;lt;&amp;lt; &quot;-1&quot; &amp;lt;&amp;lt; &quot;\n&quot;;
			}
			else {
				cout &amp;lt;&amp;lt; q.front() &amp;lt;&amp;lt; &quot;\n&quot;;
					q.pop();
			}
		}
		else if (str == &quot;size&quot;) {
			cout &amp;lt;&amp;lt; q.size() &amp;lt;&amp;lt; &quot;\n&quot;;
		}
		else if (str == &quot;empty&quot;) {
			if (q.empty()) {
				cout &amp;lt;&amp;lt; &quot;1&quot; &amp;lt;&amp;lt; &quot;\n&quot;;
			}
			else {
				cout &amp;lt;&amp;lt; &quot;0&quot; &amp;lt;&amp;lt; &quot;\n&quot;;
			}
		}
		else if (str == &quot;front&quot;) {
			if (q.empty()) {
				cout &amp;lt;&amp;lt; &quot;-1&quot; &amp;lt;&amp;lt; &quot;\n&quot;;
			}
			else {
				cout &amp;lt;&amp;lt; q.front() &amp;lt;&amp;lt; &quot;\n&quot;;
			}
		}
		else if (str == &quot;back&quot;) {
			if (q.empty()) {
				cout &amp;lt;&amp;lt; &quot;-1&quot; &amp;lt;&amp;lt; &quot;\n&quot;;
			}
			else {
				cout &amp;lt;&amp;lt; q.back() &amp;lt;&amp;lt; &quot;\n&quot;;
			}
		}
	}
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;88&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAXFLm/btsFGKvLb3H/f7YXSwy1NaeaJThm4V0e9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAXFLm/btsFGKvLb3H/f7YXSwy1NaeaJThm4V0e9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAXFLm/btsFGKvLb3H/f7YXSwy1NaeaJThm4V0e9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAXFLm%2FbtsFGKvLb3H%2Ff7YXSwy1NaeaJThm4V0e9K%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;924&quot; height=&quot;88&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;88&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;figure id=&quot;og_1710086341118&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;10845번: 큐&quot; data-og-description=&quot;첫째 줄에 주어지는 명령의 수 N (1 &amp;le; N &amp;le; 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/10845&quot; data-og-url=&quot;https://www.acmicpc.net/problem/10845&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/7bBVX/hyVxpv5HGL/10hhfXLdK0r5LuxISsT4MK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/10845&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/10845&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/7bBVX/hyVxpv5HGL/10hhfXLdK0r5LuxISsT4MK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;10845번: 큐&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 주어지는 명령의 수 N (1 &amp;le; N &amp;le; 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>큐</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/64</guid>
      <comments>https://jigoo-log.tistory.com/64#entry64comment</comments>
      <pubDate>Mon, 11 Mar 2024 01:05:36 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 10828번 : 스택 (C++)</title>
      <link>https://jigoo-log.tistory.com/63</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10828.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIQOS7/btsFFQw0h7Q/YP6nJSYdZ2KurADUs6Oqe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIQOS7/btsFFQw0h7Q/YP6nJSYdZ2KurADUs6Oqe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIQOS7/btsFFQw0h7Q/YP6nJSYdZ2KurADUs6Oqe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIQOS7%2FbtsFFQw0h7Q%2FYP6nJSYdZ2KurADUs6Oqe1%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;423&quot; height=&quot;423&quot; data-filename=&quot;10828.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1225&quot; data-origin-height=&quot;885&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UZC5O/btsFGDcChV2/HziD42khXoieVC0vESrMwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UZC5O/btsFGDcChV2/HziD42khXoieVC0vESrMwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UZC5O/btsFGDcChV2/HziD42khXoieVC0vESrMwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUZC5O%2FbtsFGDcChV2%2FHziD42khXoieVC0vESrMwk%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;1225&quot; height=&quot;885&quot; data-origin-width=&quot;1225&quot; data-origin-height=&quot;885&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;1186&quot; data-origin-height=&quot;834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqlovq/btsFELJFq2E/0ieohfUMakiVKF58BXKGCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqlovq/btsFELJFq2E/0ieohfUMakiVKF58BXKGCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqlovq/btsFELJFq2E/0ieohfUMakiVKF58BXKGCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqlovq%2FbtsFELJFq2E%2F0ieohfUMakiVKF58BXKGCk%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;1186&quot; height=&quot;834&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;834&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;스택(Stack)은 LIFO(Last In First Out, 후입선출) 구조이다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;스택은 컨테이너의 한 쪽 끝에서만 데이터를 삽입하거나 삭제할 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 한쪽 끝이 아닌 위치에 있는 데이터는 접근하거나 변경할 수 없다.&lt;/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;스택을 구현하기 위해 std::deque 와 std::stack을 사용할 수 있고, 풀이에 후자를 사용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1710083444742&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// std::deque를 사용해 stack 구현

#include &amp;lt;deque&amp;gt;
std::deque&amp;lt;int&amp;gt; stk1;
stk1.push_back(1);
stk1.push_back(2);
stk1.pop_back();


// std::stack를 사용해 stack 구현

#include &amp;lt;stack&amp;gt;
std::stack&amp;lt;int&amp;gt; stk2;
stk2.push(1);
stk2.push(2);
stk2.pop();​&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710082603006&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;stack&amp;gt;

using namespace std;

int main() {
	int N, num;
	cin &amp;gt;&amp;gt; N;

	stack&amp;lt;int&amp;gt; st;
	string str;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; str;

		if (str == &quot;push&quot;) {
			cin &amp;gt;&amp;gt; num;
			st.push(num);
		}
		else if (str == &quot;pop&quot;) {
			if (st.empty()) {
				cout &amp;lt;&amp;lt; &quot;-1&quot; &amp;lt;&amp;lt; endl;
			}
			else {
				cout &amp;lt;&amp;lt; st.top() &amp;lt;&amp;lt; endl;
				st.pop();
			}
		}
		else if (str == &quot;size&quot;) {
			cout &amp;lt;&amp;lt; st.size() &amp;lt;&amp;lt; endl;
		}
		else if (str == &quot;empty&quot;) {
			if (st.empty()) {
				cout &amp;lt;&amp;lt; &quot;1&quot; &amp;lt;&amp;lt; endl;
			}
			else {
				cout &amp;lt;&amp;lt; &quot;0&quot; &amp;lt;&amp;lt; endl;
			}
		}
		else if (str == &quot;top&quot;) {
			if (st.empty()) {
				cout &amp;lt;&amp;lt; &quot;-1&quot; &amp;lt;&amp;lt; endl;
			}
			else {
				cout &amp;lt;&amp;lt; st.top() &amp;lt;&amp;lt; endl;
			}
		}
	}
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DD6rZ/btsFD6tvrnz/k96z0fkoqv29Jr6PYQbZek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DD6rZ/btsFD6tvrnz/k96z0fkoqv29Jr6PYQbZek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DD6rZ/btsFD6tvrnz/k96z0fkoqv29Jr6PYQbZek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDD6rZ%2FbtsFD6tvrnz%2Fk96z0fkoqv29Jr6PYQbZek%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;924&quot; height=&quot;86&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>스택</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/63</guid>
      <comments>https://jigoo-log.tistory.com/63#entry63comment</comments>
      <pubDate>Mon, 11 Mar 2024 00:12:36 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2798번 : 블랙잭 (C++)</title>
      <link>https://jigoo-log.tistory.com/62</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2798.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFGkeA/btsFE0l3jsP/rjsgzFejCumy08kojjbJ71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFGkeA/btsFE0l3jsP/rjsgzFejCumy08kojjbJ71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFGkeA/btsFE0l3jsP/rjsgzFejCumy08kojjbJ71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFGkeA%2FbtsFE0l3jsP%2FrjsgzFejCumy08kojjbJ71%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;354&quot; height=&quot;354&quot; data-filename=&quot;2798.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1116&quot; data-origin-height=&quot;859&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J3fq4/btsFEgwqg9A/Zx7DRrUkAJAg171a84JpeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J3fq4/btsFEgwqg9A/Zx7DRrUkAJAg171a84JpeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J3fq4/btsFEgwqg9A/Zx7DRrUkAJAg171a84JpeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ3fq4%2FbtsFEgwqg9A%2FZx7DRrUkAJAg171a84JpeK%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;1116&quot; height=&quot;859&quot; data-origin-width=&quot;1116&quot; data-origin-height=&quot;859&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;1100&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l5qHZ/btsFDExgb7d/cuqHVedQ9pjOetRcBbxeoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l5qHZ/btsFDExgb7d/cuqHVedQ9pjOetRcBbxeoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l5qHZ/btsFDExgb7d/cuqHVedQ9pjOetRcBbxeoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl5qHZ%2FbtsFDExgb7d%2FcuqHVedQ9pjOetRcBbxeoK%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;1100&quot; height=&quot;321&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;이 문제를 풀기 위해 브루트포스(Brute-force Search)를 사용했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;브루트포스는 '무식한 힘'이라는 뜻으로, 완전 탐색 알고리즘을 이용한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;즉, 모든 경우의 수를 파악해 답을 도출하는 방식이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;아래처럼 삼중 for문을 이용해 결과를 도출했다.&lt;/p&gt;
&lt;pre id=&quot;code_1710078558771&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	for (int i = 0; i &amp;lt; N - 2; i++) {
		for (int j = i + 1; j &amp;lt; N - 1; j++) {
			for (int k = j + 1; k &amp;lt; N; k++) {
				sum = arr[i] + arr[j] + arr[k];
				if (max &amp;lt; sum &amp;amp;&amp;amp; sum &amp;lt;= M) {
					max = sum;
				}
			}
		}
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;추가로, '이것이 C++이다'라는 책을 통해 문법을 공부 중인데, 아래와 같은 코드가 C++의 특징을 살린 코드라고 하여 앞으로는 이렇게 짜보려고 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1710078892558&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 10;  // C 문법 형식의 코드
int b = a;

int a(10);	// C++ 특징을 살린 코드
int b(a);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1710078308662&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
	int N, M, sum(-1), max(-1);
	int arr[101];
	
	cin &amp;gt;&amp;gt; N &amp;gt;&amp;gt; M;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; arr[i];
	}

	for (int i = 0; i &amp;lt; N - 2; i++) {
		for (int j = i + 1; j &amp;lt; N - 1; j++) {
			for (int k = j + 1; k &amp;lt; N; k++) {
				sum = arr[i] + arr[j] + arr[k];
				if (max &amp;lt; sum &amp;amp;&amp;amp; sum &amp;lt;= M) {
					max = sum;
				}
			}
		}
	}

	cout &amp;lt;&amp;lt; max;
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1035&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by9BZQ/btsFIvY8V3Q/F6gYAiDrfgaNK82z3b3kT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by9BZQ/btsFIvY8V3Q/F6gYAiDrfgaNK82z3b3kT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by9BZQ/btsFIvY8V3Q/F6gYAiDrfgaNK82z3b3kT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby9BZQ%2FbtsFIvY8V3Q%2FF6gYAiDrfgaNK82z3b3kT1%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;1035&quot; height=&quot;86&quot; data-origin-width=&quot;1035&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>브루트포스</category>
      <category>완전탐색</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/62</guid>
      <comments>https://jigoo-log.tistory.com/62#entry62comment</comments>
      <pubDate>Sun, 10 Mar 2024 22:57:13 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2869번 : 달팽이는 올라가고 싶다 (C++)</title>
      <link>https://jigoo-log.tistory.com/61</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2869.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9CiCw/btsFz7e9o2s/b5rHZka7aSoIYVW9UCDQeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9CiCw/btsFz7e9o2s/b5rHZka7aSoIYVW9UCDQeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9CiCw/btsFz7e9o2s/b5rHZka7aSoIYVW9UCDQeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9CiCw%2FbtsFz7e9o2s%2Fb5rHZka7aSoIYVW9UCDQeK%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;416&quot; height=&quot;416&quot; data-filename=&quot;2869.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;873&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cg5NCM/btsFz7MPfxB/kpd1qT0espZcluR0ZTMO41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cg5NCM/btsFz7MPfxB/kpd1qT0espZcluR0ZTMO41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cg5NCM/btsFz7MPfxB/kpd1qT0espZcluR0ZTMO41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcg5NCM%2FbtsFz7MPfxB%2Fkpd1qT0espZcluR0ZTMO41%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;991&quot; height=&quot;873&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;873&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;이 문제를 풀면서 참 많은 고난이 있었다.. 세 번째 풀이만에 성공했고.. 문제를 풀면서 화난 치와와가 된 기분을 느꼈다..&lt;/p&gt;
&lt;h4 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;b&gt;첫 번째 코드 - 실패&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;➡ 시간복잡도: O(n), while문 사용&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;처음에는 단순하게 A만큼 증가하고, B만큼 감소하는 while문을 만들어 높이 변수 height가 V에 도달하면 break 되도록 했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;하지만,&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;시간 초과&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;가&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt; 발생했다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709794550558&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;//첫 번째 시도_ O(n), 시간초과

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
    
	int A, B, V, height = 0, day = 0;
	cin &amp;gt;&amp;gt; A &amp;gt;&amp;gt; B &amp;gt;&amp;gt; V;

	while (1) {
		height += A;
		++day;
		if (height &amp;gt;= V) {
			break;
		}
		height -= B;
	}

	cout &amp;lt;&amp;lt; day;

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;42&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8zfCZ/btsFzfqEbqD/82utFV9Ryc2nmli3iWNwq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8zfCZ/btsFzfqEbqD/82utFV9Ryc2nmli3iWNwq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8zfCZ/btsFzfqEbqD/82utFV9Ryc2nmli3iWNwq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8zfCZ%2FbtsFzfqEbqD%2F82utFV9Ryc2nmli3iWNwq1%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;925&quot; height=&quot;42&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;42&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&amp;nbsp;- 시간 초과 이유:&lt;/span&gt; &lt;/b&gt;반복문을 사용해, O(n)의 시간복잡도를 갖는다. 따라서, 시간이 너무 오래 걸린다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;이 문제는 시간 제한이 0.25초이기 때문에 반복문을 사용하면 시간이 초과된다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;예를 들어, A = 1000, B = 999, V = 1000000 인 경우라면, 아래처럼 999001일이 걸린다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;만약, 반복문을 사용하면 오르락 내리락을 대략 999000번 반복하므로 시간 초과가 발생하는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;추가로, 이 코드에서는 (A &amp;gt;= V)인 조건도 고려하지 않았다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blpi9x/btsFAvNrWO1/Ldf1qILZNlwPK38q2fjKh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blpi9x/btsFAvNrWO1/Ldf1qILZNlwPK38q2fjKh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blpi9x/btsFAvNrWO1/Ldf1qILZNlwPK38q2fjKh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fblpi9x%2FbtsFAvNrWO1%2FLdf1qILZNlwPK38q2fjKh0%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;211&quot; height=&quot;55&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;55&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;b&gt;두 번째 코드 - 실패&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;➡ 시간복잡도: O(n), while문 사용&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;식으로 풀어야겠다고 생각하여, (A - B)씩 증가하는 것으로 접근해 풀었으나 결론적으로는 또 반복문을 써서 시간초과가 발생했다. 이 코드도&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt; (A &amp;gt;= V)인 조건을 추가하지 않았지만, 다른 반례들은 모두 통과했다. 그냥 더 복잡하고 똑같이 시간초과가 나는 코드를 만들어냈다..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709795363198&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cmath&amp;gt;
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int A, B, V, height = 0, day = 0, before, semibefore;
	cin &amp;gt;&amp;gt; A &amp;gt;&amp;gt; B &amp;gt;&amp;gt; V;

	before = A - 2 * B;
	semibefore = A - B;
	while (1) {
		height += (A - B);
		day++;
		cout &amp;lt;&amp;lt; day &amp;lt;&amp;lt; endl;
		if (height &amp;gt;= V) {
			height -= before;
			day--;
			cout &amp;lt;&amp;lt; day &amp;lt;&amp;lt; &quot;   &quot;;
			while (1) {
				if (height &amp;lt;= V) {
					break;
				}
				height -= semibefore;
				day--;
				cout &amp;lt;&amp;lt; day &amp;lt;&amp;lt; &quot;   &quot;;
			}
			break;
		}
	}

	cout &amp;lt;&amp;lt; day;

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #8ddeef;&quot;&gt;따라서, 마지막 풀이에는&lt;span&gt;&lt;b&gt; 절대 반복문을 쓰지 않기&lt;/b&gt;로,&lt;b&gt; 시간 복잡도 O(1)&lt;/b&gt;로 풀기로 다짐하고 다시 도전했다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;b&gt;세 번째 코드 - 성공&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&amp;nbsp;➡ 시간복잡도: &lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;드디어 &lt;/span&gt;&lt;/b&gt;O(1)!&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&amp;nbsp;조건을 세 가지로 나누었다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&amp;nbsp;1. A가 V보다 크거나 같은 경우 - 달팽이가 하루만에 나무를 올라가므로, 항상 하루 소요&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1709795797538&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	if (A &amp;gt;= V) {
		cout &amp;lt;&amp;lt; &quot;1&quot;;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;2.&amp;nbsp; &lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;A가 V보다 작은 경우: 나무의 높이인 V에서 달팽이가 일어나있는 동안 올라가는 높이인 A를 뺀 값을 활용했다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;2-1.&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;만약, (V - A)에서 (A - B)를 나눈 나머지가 0이라면,&lt;/span&gt; (A - B) x &lt;/b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;( Day )&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt; + A&lt;/span&gt; = V&lt;/b&gt; 일 것이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;예를 들어,&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;A = 3, B = 2, V = 7 인 경우라면, (3 - 2) x &lt;span style=&quot;background-color: #dddddd;&quot;&gt;( Day )&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt; + 3&lt;/span&gt; = 7이다. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;Day = 4&lt;/span&gt;지만, A만큼 올라간 하루를 더 추가해주어야 한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709796283983&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	else if ((V - A) % (A - B) == 0) { // 나머지 == 0이라면, 딱 A만큼 더 가면 V에 도달하므로 +1을 해준다.
		cout &amp;lt;&amp;lt; ((V - A) / (A - B) + 1);
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;2-2.&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;만약, (V - A)에서 (A - B)를 나눈 나머지가 0이 아니라면,&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(A - B) x&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;( Day )&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+ &lt;b&gt;(A - B)&lt;/b&gt; + (A보다 적은 길이)&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;= V&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;Day에서,&lt;/span&gt;&amp;nbsp;(A - B)만큼과 (A보다 작은 수)만큼 더 올라가므로 이틀을 더 추가해주어야 한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709796547671&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	else if ((V - A) % (A - B) != 0) { // 나머지 != 0이라면, (A-B)만큼 한 번더 올라간 후 A보다 작은 높이가 남은 것이므로 +2
		cout &amp;lt;&amp;lt; ((V - A) / (A - B) + 2);
	}&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;정답 코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1709794401604&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cmath&amp;gt;
using namespace std;

int main() {
	int A, B, V;
	cin &amp;gt;&amp;gt; A &amp;gt;&amp;gt; B &amp;gt;&amp;gt; V;

	if (A &amp;gt;= V) {
		cout &amp;lt;&amp;lt; &quot;1&quot;;
	} 
	else if ((V - A) % (A - B) == 0) {	// 나머지 == 0이라면, 딱 A만큼 더 가면 V에 도달하므로 +1을 해준다.
		cout &amp;lt;&amp;lt; ((V - A) / (A - B) + 1);
	}
	else if ((V - A) % (A - B) != 0) {	// 나머지 != 0이라면, (A-B)만큼 한 번더 올라간 후 A보다 작은 높이가 남은 것이므로 +2
		cout &amp;lt;&amp;lt; ((V - A) / (A - B) + 2);
	}


	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baMfK6/btsFCeKNyr8/rTADmoKhn93nTdUkTOBSuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baMfK6/btsFCeKNyr8/rTADmoKhn93nTdUkTOBSuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baMfK6/btsFCeKNyr8/rTADmoKhn93nTdUkTOBSuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaMfK6%2FbtsFCeKNyr8%2FrTADmoKhn93nTdUkTOBSuK%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;925&quot; height=&quot;71&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Programming/C++ - 백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/61</guid>
      <comments>https://jigoo-log.tistory.com/61#entry61comment</comments>
      <pubDate>Thu, 7 Mar 2024 18:10:22 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 5597번 : 과제 안 내신 분..? (C++)</title>
      <link>https://jigoo-log.tistory.com/60</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5597.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KmTId/btsFsmQJFof/9ce31j8Umz21n50un6CyG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KmTId/btsFsmQJFof/9ce31j8Umz21n50un6CyG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KmTId/btsFsmQJFof/9ce31j8Umz21n50un6CyG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKmTId%2FbtsFsmQJFof%2F9ce31j8Umz21n50un6CyG1%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;412&quot; height=&quot;412&quot; data-filename=&quot;5597.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;701&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/loKF3/btsFywEOxiH/ZIpPa4Ilz3DF0432TvcYSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/loKF3/btsFywEOxiH/ZIpPa4Ilz3DF0432TvcYSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/loKF3/btsFywEOxiH/ZIpPa4Ilz3DF0432TvcYSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FloKF3%2FbtsFywEOxiH%2FZIpPa4Ilz3DF0432TvcYSK%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;1182&quot; height=&quot;701&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;701&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;1197&quot; data-origin-height=&quot;849&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lUU81/btsFzaOZQWn/cuhWhaKhlcjzrEVu4U0tgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lUU81/btsFzaOZQWn/cuhWhaKhlcjzrEVu4U0tgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lUU81/btsFzaOZQWn/cuhWhaKhlcjzrEVu4U0tgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlUU81%2FbtsFzaOZQWn%2FcuhWhaKhlcjzrEVu4U0tgK%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;1197&quot; height=&quot;849&quot; data-origin-width=&quot;1197&quot; data-origin-height=&quot;849&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;array의 원소를 모두 0으로 초기화한 후,&amp;nbsp; for문과 arr[입력된 숫자]를 1로 저장했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;결론적으로, arr[i] == 0이라면 출력되게 하였다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;array를 모두 0으로 초기화하려면,&lt;/p&gt;
&lt;pre id=&quot;code_1709628530672&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int arr[31] = { 0, };	// array를 모두 0으로 초기화&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size18&quot;&gt;만약, array를 0이 아닌 다른 수로 초기화하기 위해서는 &amp;lt;algorithm&amp;gt; 헤더 파일에 포함되어 있는 fill 또는 fill_n 함수를 사용하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;fill(변경하려는 원소의 범위 시작주소, 종료주소, 변경 값)&lt;/li&gt;
&lt;li&gt;fill_n(변경하려는 원소의 범위 시작주소, 원소의 개수, 변경 값)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709628645614&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;std::fill(arr, arr + 31, -1)	// fill(변경하려는 원소의 범위 시작주소, 종료주소, 변경 값)

std::fill_n(arr, 31, -1)	// fill_n(변경하려는 원소의 범위 시작주소, 원소의 개수, 변경 값)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1709627419930&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include&amp;lt;algorithm&amp;gt;
using namespace std;

int main() {
	int arr[31] = { 0, };	// array를 모두 0으로 초기화
	//fill_n(arr, 31, 0)	// 만약, 0이 아닌 다른 숫자로 모두 초기화하고 싶다면, fill_n 함수를 사용하자.
	int num;

	for (int i = 0; i &amp;lt; 28; i++) {
		cin &amp;gt;&amp;gt; num;
		arr[num] = 1;
	}

	for (int i = 1; i &amp;lt;= 30; i++) {
		if (arr[i] == 0) {
			cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot;\n&quot;;
		}
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZ2Est/btsFvYu4HHV/xddayqKvrSTNRUzKu2r5qK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZ2Est/btsFvYu4HHV/xddayqKvrSTNRUzKu2r5qK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZ2Est/btsFvYu4HHV/xddayqKvrSTNRUzKu2r5qK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ2Est%2FbtsFvYu4HHV%2FxddayqKvrSTNRUzKu2r5qK%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;923&quot; height=&quot;81&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>fill 함수</category>
      <category>배열 초기화</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/60</guid>
      <comments>https://jigoo-log.tistory.com/60#entry60comment</comments>
      <pubDate>Tue, 5 Mar 2024 17:57:55 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 7568번 : 덩치 (C++) + pair 클래스</title>
      <link>https://jigoo-log.tistory.com/59</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7568.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqVJtT/btsFoJkk8Vv/BRfhIr4rG8mam7FXFfhDvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqVJtT/btsFoJkk8Vv/BRfhIr4rG8mam7FXFfhDvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqVJtT/btsFoJkk8Vv/BRfhIr4rG8mam7FXFfhDvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqVJtT%2FbtsFoJkk8Vv%2FBRfhIr4rG8mam7FXFfhDvk%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;429&quot; height=&quot;429&quot; data-filename=&quot;7568.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;882&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tv8v3/btsFm2Y6BEL/96r26x4qJlgO2GWRyEohbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tv8v3/btsFm2Y6BEL/96r26x4qJlgO2GWRyEohbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tv8v3/btsFm2Y6BEL/96r26x4qJlgO2GWRyEohbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftv8v3%2FbtsFm2Y6BEL%2F96r26x4qJlgO2GWRyEohbk%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;1003&quot; height=&quot;882&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;882&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;1009&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/05FSH/btsFoFI99Sw/0qtpr9jPCiEBisBDfwxHy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/05FSH/btsFoFI99Sw/0qtpr9jPCiEBisBDfwxHy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/05FSH/btsFoFI99Sw/0qtpr9jPCiEBisBDfwxHy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F05FSH%2FbtsFoFI99Sw%2F0qtpr9jPCiEBisBDfwxHy1%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;1009&quot; height=&quot;212&quot; data-origin-width=&quot;1009&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;pair 클래스를 이용하여, 몸무게 x와 키 y를 함께 저장했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;등수를 구하는 방법은 본인보다 덩치가 큰 사람 + 1이므로, rank = 1로 선언하고 if문을 이용해 해결했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size18&quot;&gt;pair 클래스를 사용하기 위해서는 &amp;lt;utility&amp;gt; 헤더를 이용해야 한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size18&quot;&gt;만약, &amp;lt;algorithm&amp;gt;이나 &amp;lt;vector&amp;gt; 헤더파일을 사용한다면, 안에 &amp;lt;utility&amp;gt; 헤더 파일도 포함되어 있다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709451049749&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;template &amp;lt;class T1, class T2&amp;gt; struct pair;

pair&amp;lt;int, int&amp;gt; p;
pair&amp;lt;int, char&amp;gt; p;

p.fisrt		// p의 첫 번째 인자 반환
p.second	// p의 두 번째 인자 반환
make_pair(value1, value2)	// value 1, 2를 한 쌍으로 하는 pair을 만들어 반환&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1709448700670&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;

int main() {
	int N, weight, height, rank =1;
	pair&amp;lt;int, int&amp;gt; arr[50];

	cin &amp;gt;&amp;gt; N;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; weight &amp;gt;&amp;gt; height;
		arr[i].first = weight;
		arr[i].second = height;
	}

	for (int i = 0; i &amp;lt; N; i++) {
		for (int j = 0; j &amp;lt; N; j++) {
			if (arr[i].first &amp;lt; arr[j].first &amp;amp;&amp;amp; arr[i].second &amp;lt; arr[j].second) {
				rank++;
			}
		}
		cout &amp;lt;&amp;lt; rank &amp;lt;&amp;lt; &quot;\n&quot;;
		rank = 1;
	}
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckpwtP/btsFogpbzmN/aI01T88Gox5kz5DIZAn6d0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckpwtP/btsFogpbzmN/aI01T88Gox5kz5DIZAn6d0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckpwtP/btsFogpbzmN/aI01T88Gox5kz5DIZAn6d0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckpwtP%2FbtsFogpbzmN%2FaI01T88Gox5kz5DIZAn6d0%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;864&quot; height=&quot;73&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>pair 클래스</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/59</guid>
      <comments>https://jigoo-log.tistory.com/59#entry59comment</comments>
      <pubDate>Sun, 3 Mar 2024 16:35:43 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 1978번 : 소수 찾기 (C++)</title>
      <link>https://jigoo-log.tistory.com/58</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1978.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuJfl5/btsFcRBGyDM/KAk5mPGkk28AAH4hfH04qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuJfl5/btsFcRBGyDM/KAk5mPGkk28AAH4hfH04qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuJfl5/btsFcRBGyDM/KAk5mPGkk28AAH4hfH04qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuJfl5%2FbtsFcRBGyDM%2FKAk5mPGkk28AAH4hfH04qk%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;456&quot; height=&quot;456&quot; data-filename=&quot;1978.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1193&quot; data-origin-height=&quot;755&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biv2HP/btsE8zCUxNH/83KkK5qx7wwzRVRkPphZU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biv2HP/btsE8zCUxNH/83KkK5qx7wwzRVRkPphZU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biv2HP/btsE8zCUxNH/83KkK5qx7wwzRVRkPphZU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbiv2HP%2FbtsE8zCUxNH%2F83KkK5qx7wwzRVRkPphZU1%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;1193&quot; height=&quot;755&quot; data-origin-width=&quot;1193&quot; data-origin-height=&quot;755&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;int 변수 N, num, decimal(소수의 개수), count(0이라면 소수X, 아니라면 소수O)를 선언했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;소수는 1과 자기자신으로 나누었을 때만 나머지가 0이 된다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;반대로, 소수가 아닌 경우에는 1과 자기 자신 사이의 수로 나누면 나머지가 0이 되는 것을 이용했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;아래의 코드와 같이, 소수가 아니라면 count++를 하였다. for문을 빠져나왔을 때 count == 0이라면 소수이므로 소수의 개수를 의미하는 변수인 decimal을 증가시켰다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;예를 들어, num = 9, j = 3이라면, 9 % 3 = 0이다. 이는 소수가 아니므로 count를 증가시킨다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;for문을 빠져나오면 count == 0인지 확인하는 if문을 통해, 소수라면 변수 decimal을 증가시킨다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1708522936763&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (int j = 2; j &amp;lt; num; j++) {			
	if (num % j == 0) {					
		count++;
	}
}
if (count == 0) {	// count == 0인 소수만 decimal++
	decimal++;
}
count = 0;	//  count = 0으로 다시 초기화하기&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;주의해야할 점은 1은 소수가 아니고, 2는 소수인 점이다.&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;위처럼 for문을 사용할 때 2부터 num - 1까지의 숫자로 나누었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이 때문에, 1과 2는 for문을 통해 소수 여부가 구해지지 않아 if문을 이용하여 1은 소수가 아니니 count++를 하고, 2는 소수이므로 바로 decimal++을 해주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1708522882456&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (int i = 0; i &amp;lt; N; i++) {
	cin &amp;gt;&amp;gt; num;

	if (num == 2) {	// 2는 소수
		decimal++;
	}
	else {
		if (num == 1) {	// 1은 소수가 아님!
			count++;
		}
		for (int j = 2; j &amp;lt; num; j++) {	// 소수X: num을 '2부터 num-1'으로 나눈 나머지가 0이라면 count++
			if (num % j == 0) {	// ex) num = 9, j = 3, 9 % 3 = 0 / 소수가 아니므로 count++
				count++;
			}
		}
		if (count == 0) {		// count == 0인 소수만 decimal++
			decimal++;
		}
		count = 0;				//  count = 0으로 다시 초기화하기
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1708522691079&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
	int N, num, decimal=0, count=0;

	cin &amp;gt;&amp;gt; N;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; num;

		if (num == 2) {		// 2는 소수
			decimal++;
		}
		else {
			if (num == 1) {		// 1은 소수가 아님!
				count++;
			}
			for (int j = 2; j &amp;lt; num; j++) {			
				if (num % j == 0) {					
					count++;
				}
			}
			if (count == 0) {	// count == 0인 소수만 decimal++
				decimal++;
			}
			count = 0;			//  count = 0으로 다시 초기화하기
		}
	}

	cout &amp;lt;&amp;lt; decimal;			// decimal 출력

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGMxIO/btsE7pN3qA2/wqN4ksEnDf2BWpmAUp098K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGMxIO/btsE7pN3qA2/wqN4ksEnDf2BWpmAUp098K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGMxIO/btsE7pN3qA2/wqN4ksEnDf2BWpmAUp098K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGMxIO%2FbtsE7pN3qA2%2FwqN4ksEnDf2BWpmAUp098K%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;1039&quot; height=&quot;90&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Programming/C++ - 백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/58</guid>
      <comments>https://jigoo-log.tistory.com/58#entry58comment</comments>
      <pubDate>Wed, 21 Feb 2024 22:55:34 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2751번 : 수 정렬하기 2 (C++) + 시간초과 &amp;amp; 런타임 에러(OutofBounds) 해결</title>
      <link>https://jigoo-log.tistory.com/57</link>
      <description>&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2751.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbG60k/btsE2Dr4YX2/oBmM0JBl0c37G2EyNyLC50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbG60k/btsE2Dr4YX2/oBmM0JBl0c37G2EyNyLC50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbG60k/btsE2Dr4YX2/oBmM0JBl0c37G2EyNyLC50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbG60k%2FbtsE2Dr4YX2%2FoBmM0JBl0c37G2EyNyLC50%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;480&quot; height=&quot;480&quot; data-filename=&quot;2751.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1150&quot; data-origin-height=&quot;831&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btNit9/btsE6QqCb2V/MVA3GKTapn4uAvFLZwZniK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btNit9/btsE6QqCb2V/MVA3GKTapn4uAvFLZwZniK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btNit9/btsE6QqCb2V/MVA3GKTapn4uAvFLZwZniK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtNit9%2FbtsE6QqCb2V%2FMVA3GKTapn4uAvFLZwZniK%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;1150&quot; height=&quot;831&quot; data-origin-width=&quot;1150&quot; data-origin-height=&quot;831&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;h4 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;b&gt;첫 번째 코드 - 실패&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;➡ 시간복잡도: O(n&lt;sup&gt;2&lt;/sup&gt;), int 배열 사용&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1708447506624&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// O(n^2), 시간초과 &amp;amp; 배열의 크기가 커 오류 발생

#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
using namespace std;

int main() {
	int N, num, temp;		
	int arr[1000001];

	cin &amp;gt;&amp;gt; N;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; num;
		arr[i] = num;
	}

	for (int i = 0; i &amp;lt;= N - 2 ; i++) {
		for (int j = i + 1; j &amp;lt;= N - 1; j++) {
			if (arr[i] &amp;gt; arr[j]) {
				temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}

	for (int i = 0; i &amp;lt; N; i++) {
		cout &amp;lt;&amp;lt; arr[i] &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XPnQG/btsE5EEd7o9/cLtUkKDHkkKaJIwdPaXib0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XPnQG/btsE5EEd7o9/cLtUkKDHkkKaJIwdPaXib0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XPnQG/btsE5EEd7o9/cLtUkKDHkkKaJIwdPaXib0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXPnQG%2FbtsE5EEd7o9%2FcLtUkKDHkkKaJIwdPaXib0%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;1114&quot; height=&quot;68&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;68&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;배열을 이용해 입력된 숫자를 저장하고, 오름차순으로 정렬하는 코드를 만들었다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;하지만, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;시간 초과&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt; 및 &lt;b&gt;입력값이 많아 배열의 범위를 넘어서 &lt;/b&gt;&lt;/span&gt;&lt;b&gt;런타임 에러(OutofBounds)&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;가&lt;/span&gt;&lt;/span&gt;&amp;nbsp;발생했다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;1. 시간 초과 이유:&lt;/span&gt;&amp;nbsp;이중 for문을 사용하여, &lt;i&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/i&gt;의 시간복잡도를 갖는다.&lt;/b&gt; 따라서, 시간이 너무 오래 걸린다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Insertion, Bubble, Selection Sort의 평균 시간 복잡도 = &lt;i&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Quick, Merge, Heap Sort의 평균 시간 복잡도 = &lt;i&gt;O(nlogn)&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #8ddeef;&quot;&gt;&lt;b&gt;따라서, 두 번째 풀이에는 C++에 내장된 sort 함수를 이용하였다.&lt;/b&gt;&lt;/span&gt; Quick Sort 기반이기 때문에 최악의 경우 &lt;i&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/i&gt;가 아니라면, &lt;i&gt;O(nlogn)&lt;/i&gt;의 시간복잡도가 나올 것이다. sort()는 C++의 algorithm 헤더에 포함되어 있다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;2. 런타임 에러 이유: &lt;/span&gt;&lt;/b&gt;&lt;span&gt;입력되는 N의 값이 최대 &lt;/span&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;1,000,000개이다. &lt;/span&gt;&lt;/span&gt;&lt;span&gt;int array의 최대 크기는 약 250,000이기 때문에, &lt;/span&gt;&lt;b&gt;&lt;span&gt;배열의 범위를 넘어서 OutofBounds 에러가 발생한다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;int 배열의 최대 크기 =&lt;span&gt; &lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;약&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;250,000 (이십오만)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;vector의 최대 크기 = 약 &lt;span style=&quot;background-color: #ffffff; color: #202124; text-align: left;&quot;&gt;100,000,000 (1억)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;추가로, array를 사용하기 위해서는 원소의 개수를 지정해야한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;vector는 원소의 개수를 지정하지 않더라도, 선언할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #8ddeef;&quot;&gt;&lt;b&gt;따라서, 두 번째 풀이에는 &lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;vector&lt;/span&gt;를 이용하였다.&lt;/b&gt;&lt;/span&gt;&lt;span&gt; vector의 범위를 입력값이 넘어서지 않기 때문에, 런타임 에러가 발생하지 않는다. vector를 사용하기 위해서는 C++의 vector 헤더를 사용해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;더하여, endl이 아닌 \n을 사용하였다. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;endl은 출력 스트림에 사용되는 버퍼를 매번 비우므로(buffer flush) 시간이 오래 걸린다. 따라서, &lt;/span&gt;&lt;span&gt;\n을 사용하면 시간을 단축시킬 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #90ddcd;&quot;&gt;&lt;b&gt;두 번째 코드 - 성공&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1708446266579&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;vector&amp;gt;
using namespace std;

int main() {
	int N, num;
	vector&amp;lt;int&amp;gt; v;

	cin &amp;gt;&amp;gt; N;

	for (int i = 0; i &amp;lt; N; i++) {
		cin &amp;gt;&amp;gt; num;
		v.push_back(num);
	}

	sort(v.begin(), v.end());

	for (int i = 0; i &amp;lt; N; i++) {
		cout &amp;lt;&amp;lt; v[i] &amp;lt;&amp;lt; &quot;\n&quot;;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPbAtc/btsE8PxZctg/u3e8InIdduuHsINPPokek0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPbAtc/btsE8PxZctg/u3e8InIdduuHsINPPokek0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPbAtc/btsE8PxZctg/u3e8InIdduuHsINPPokek0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPbAtc%2FbtsE8PxZctg%2Fu3e8InIdduuHsINPPokek0%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;1131&quot; height=&quot;148&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>OutofBounds</category>
      <category>런타임에러</category>
      <category>시간복잡도</category>
      <category>시간초과</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/57</guid>
      <comments>https://jigoo-log.tistory.com/57#entry57comment</comments>
      <pubDate>Wed, 21 Feb 2024 02:18:00 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 10250번 : ACM 호텔 (C++) + 반례 및 그림 설명</title>
      <link>https://jigoo-log.tistory.com/56</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10250.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btoTy6/btsE0p7Yhe6/OMBmkAeExDgqvnxOUewE41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btoTy6/btsE0p7Yhe6/OMBmkAeExDgqvnxOUewE41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btoTy6/btsE0p7Yhe6/OMBmkAeExDgqvnxOUewE41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtoTy6%2FbtsE0p7Yhe6%2FOMBmkAeExDgqvnxOUewE41%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;411&quot; height=&quot;411&quot; data-filename=&quot;10250.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;803&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kEuGa/btsEZRp6Wnm/1c9rgYAHH5KAcFHrr2E5Q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kEuGa/btsEZRp6Wnm/1c9rgYAHH5KAcFHrr2E5Q1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kEuGa/btsEZRp6Wnm/1c9rgYAHH5KAcFHrr2E5Q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkEuGa%2FbtsEZRp6Wnm%2F1c9rgYAHH5KAcFHrr2E5Q1%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;1005&quot; height=&quot;803&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;803&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by2zoL/btsE7nOm0IV/uMcDqiXhFxZj5CGcq6Pej0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by2zoL/btsE7nOm0IV/uMcDqiXhFxZj5CGcq6Pej0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by2zoL/btsE7nOm0IV/uMcDqiXhFxZj5CGcq6Pej0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby2zoL%2FbtsE7nOm0IV%2FuMcDqiXhFxZj5CGcq6Pej0%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;997&quot; height=&quot;516&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님을 H, W, N으로 입력받는다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이때, 기본적인 경우에는 아래와 같이 호실을 계산할 수 있다.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10250_기본케이스.png&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zXVCV/btsE0gwrCEL/sKYbIWe8uhMMvkagDfnY50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zXVCV/btsE0gwrCEL/sKYbIWe8uhMMvkagDfnY50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zXVCV/btsE0gwrCEL/sKYbIWe8uhMMvkagDfnY50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzXVCV%2FbtsE0gwrCEL%2FsKYbIWe8uhMMvkagDfnY50%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;559&quot; height=&quot;353&quot; data-filename=&quot;10250_기본케이스.png&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10250_기본케이스 예시.png&quot; data-origin-width=&quot;1460&quot; data-origin-height=&quot;1192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxbtGa/btsE6V5CVFD/2k5PuDcWvzWcZbvrccLkw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxbtGa/btsE6V5CVFD/2k5PuDcWvzWcZbvrccLkw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxbtGa/btsE6V5CVFD/2k5PuDcWvzWcZbvrccLkw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxbtGa%2FbtsE6V5CVFD%2F2k5PuDcWvzWcZbvrccLkw1%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;1460&quot; height=&quot;1192&quot; data-filename=&quot;10250_기본케이스 예시.png&quot; data-origin-width=&quot;1460&quot; data-origin-height=&quot;1192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;하지만, floor = 0인 경우에는 위 공식이 성립하지 않기 때문에, if문을 이용해 다른 공식을 사용해야 한다.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10250_반례케이스.png&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsV17S/btsE6Pd4PDZ/gJsokbNFKk6ZbAv0DQh901/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsV17S/btsE6Pd4PDZ/gJsokbNFKk6ZbAv0DQh901/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsV17S/btsE6Pd4PDZ/gJsokbNFKk6ZbAv0DQh901/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsV17S%2FbtsE6Pd4PDZ%2FgJsokbNFKk6ZbAv0DQh901%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;570&quot; height=&quot;351&quot; data-filename=&quot;10250_반례케이스.png&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10250_반례케이스 예시2.png&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;1192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkNY2M/btsE42EZ9NW/h4FfgpqZ2jWKokNjLP0fqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkNY2M/btsE42EZ9NW/h4FfgpqZ2jWKokNjLP0fqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkNY2M/btsE42EZ9NW/h4FfgpqZ2jWKokNjLP0fqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkNY2M%2FbtsE42EZ9NW%2Fh4FfgpqZ2jWKokNjLP0fqk%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;2128&quot; height=&quot;1192&quot; data-filename=&quot;10250_반례케이스 예시2.png&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;1192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1708364772759&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
	int T, H, W, N;		// test data, floor of hotel, the number of room, the number of people
	int floor, room, number, answer[100];

	cin &amp;gt;&amp;gt; T;

	for (int i = 0; i &amp;lt; T; i++) {
		cin &amp;gt;&amp;gt; H &amp;gt;&amp;gt; W &amp;gt;&amp;gt; N;

		floor = N % H;
		room = N / H + 1;

		if (floor == 0) {
			floor = H;
			room = N / H;
		}
		number = floor * 100 + room;
		answer[i] = number;
	}

	for (int i = 0; i &amp;lt; T; i++) {
		cout &amp;lt;&amp;lt; answer[i]&amp;lt;&amp;lt; endl;
	}

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z7eB1/btsE0sRcnHr/GIjVx16Uh24mYwK2wFIUtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z7eB1/btsE0sRcnHr/GIjVx16Uh24mYwK2wFIUtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z7eB1/btsE0sRcnHr/GIjVx16Uh24mYwK2wFIUtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz7eB1%2FbtsE0sRcnHr%2FGIjVx16Uh24mYwK2wFIUtk%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;986&quot; height=&quot;72&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;color: #555555; text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/56</guid>
      <comments>https://jigoo-log.tistory.com/56#entry56comment</comments>
      <pubDate>Tue, 20 Feb 2024 03:37:29 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 27866번 : 문자와 문자열 (C++)</title>
      <link>https://jigoo-log.tistory.com/55</link>
      <description>&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-filename=&quot;27866.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjWyKl/btsE7tA1TzG/6QKinKg8nmK7cQrxn2tLNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjWyKl/btsE7tA1TzG/6QKinKg8nmK7cQrxn2tLNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjWyKl/btsE7tA1TzG/6QKinKg8nmK7cQrxn2tLNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjWyKl%2FbtsE7tA1TzG%2F6QKinKg8nmK7cQrxn2tLNk%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;406&quot; height=&quot;406&quot; data-filename=&quot;27866.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;hr data-ke-style=&quot;style8&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;878&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgjAbK/btsE6IFsw1y/nwfgbXuURfQY439Zz5OOG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgjAbK/btsE6IFsw1y/nwfgbXuURfQY439Zz5OOG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgjAbK/btsE6IFsw1y/nwfgbXuURfQY439Zz5OOG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgjAbK%2FbtsE6IFsw1y%2FnwfgbXuURfQY439Zz5OOG1%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;1005&quot; height=&quot;878&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;878&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;string과 int를 입력받은 후, 배열을 이용한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이때, 배열은 0부터 시작하므로 정수 i - 1을 하는 것에 주의하자.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1708361645397&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
using namespace std;

int main() {
	string s;
	int i;
	cin &amp;gt;&amp;gt; s &amp;gt;&amp;gt; i;

	cout &amp;lt;&amp;lt; s[i-1] &amp;lt;&amp;lt; endl;

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1111&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cm1Jnn/btsE41SRL2K/WxZ0yLQgYxaC1yAXhf6CK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cm1Jnn/btsE41SRL2K/WxZ0yLQgYxaC1yAXhf6CK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cm1Jnn/btsE41SRL2K/WxZ0yLQgYxaC1yAXhf6CK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcm1Jnn%2FbtsE41SRL2K%2FWxZ0yLQgYxaC1yAXhf6CK0%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;1111&quot; height=&quot;90&quot; data-origin-width=&quot;1111&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/55</guid>
      <comments>https://jigoo-log.tistory.com/55#entry55comment</comments>
      <pubDate>Tue, 20 Feb 2024 02:01:37 +0900</pubDate>
    </item>
    <item>
      <title>[교환학생] 제 29기 미래에셋 해외교환 장학생 합격 서류 &amp;amp; 면접 후기 + 뷰인터</title>
      <link>https://jigoo-log.tistory.com/54</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Group 2.png&quot; data-origin-width=&quot;898&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFtzgV/btsE3nARp3k/2xtA6hrXNjvESY9oxh4kHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFtzgV/btsE3nARp3k/2xtA6hrXNjvESY9oxh4kHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFtzgV/btsE3nARp3k/2xtA6hrXNjvESY9oxh4kHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFtzgV%2FbtsE3nARp3k%2F2xtA6hrXNjvESY9oxh4kHk%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;463&quot; height=&quot;364&quot; data-filename=&quot;Group 2.png&quot; data-origin-width=&quot;898&quot; data-origin-height=&quot;706&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;제 29기 미래에셋 해외교환 장학생 합격 서류 &amp;amp; 면접 후기  &lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;안녕하세요. 지구입니다! 저는 2023학년도 하반기 스웨덴으로 교환 학생을 다녀왔습니다. 제가 파견간 학교는 컴퓨터 공학과 게임 개발 분야가 유명한 학교였기에, 영어로 수업을 듣고 팀프로젝트를 하며 IT 분야에서도 시야를 넓히고, 다양하고 소중한 경험을 쌓을 수 있는 기회가 되었습니다. 저는 파견 전 미래에셋 해외 교환 장학생에 지원하여 서류와 면접을 거쳐 750만원의 장학금을 받았습니다. 미래에셋 해외 교환 장학생이 된다면 교환 학생 생활에 있어 정말 큰 도움이 되기 때문에 서류와 면접 준비를 간절히, 열심히 했었습니다. 이 과정에서 서류와 면접을 준비하며 얻은 팁들을 공유하려 합니다.  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;미래에셋 해외교환 장학생 소개&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;제가 지원한 29기 미래에셋 해외교환 장학생은 250명 이내(이공계열 60%, 상경계열 30%, 인문사회계열 10%)를 선발하였습니다. 미주/유럽/기타 국가는 750만원의 장학금을, 아시아 국가는 550만원의 장학금을 지원해주었습니다.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;/span&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj13Mk/btsE0o74mne/WtT6TM4wdoHjVGzeZUcqBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj13Mk/btsE0o74mne/WtT6TM4wdoHjVGzeZUcqBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj13Mk/btsE0o74mne/WtT6TM4wdoHjVGzeZUcqBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj13Mk%2FbtsE0o74mne%2FWtT6TM4wdoHjVGzeZUcqBK%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;744&quot; height=&quot;503&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;550&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;770&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TyWnF/btsEYNOnDnJ/EkehDQmaGthRLi33uckw3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TyWnF/btsEYNOnDnJ/EkehDQmaGthRLi33uckw3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TyWnF/btsEYNOnDnJ/EkehDQmaGthRLi33uckw3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTyWnF%2FbtsEYNOnDnJ%2FEkehDQmaGthRLi33uckw3K%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;666&quot; height=&quot;486&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;562&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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;2023학년도 가을학기 교환을 위한 온라인 서류 접수는 2023년 4월 27일부터 5월 3일까지 진행되었습니다. 2024학년도 가을학기 교환에 맞추어 미래에셋 해외교환 장학생을 지원하신다면, 작년에는 이쯤 접수를 시작하였으니 알아두시면 좋을 것 같습니다. 아래에 29기 선발 요강 PDF를 함께 첨부합니다.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;/span&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&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/5TooA/btsE0jeHztm/s6aEbG7PPIDOwgnHMaaqp1/%EC%A0%9C29%EA%B8%B0%20%EB%AF%B8%EB%9E%98%EC%97%90%EC%85%8B%20%ED%95%B4%EC%99%B8%EA%B5%90%ED%99%98%20%EC%9E%A5%ED%95%99%EC%83%9D%20%EC%84%A0%EB%B0%9C%EC%9A%94%EA%B0%95%20%281%29.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;제29기 미래에셋 해외교환 장학생 선발요강 (1).pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;5.21MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;서류&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;서류는 네 문항으로 이루어져 있었습니다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 좌우명을 기재하고 본인의 인생에 어떤 영향을 미치고 있는지 설명해 주세요. (500자)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;➡ 꾸준히 공부해 본인의 가치를 상승시킬 수 있다는 것 + 이전부터 꾸준히 해온 일들을 적음.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 대학 생활 중 가장 기억에 남는 활동이 무엇이며 그 이유에 대해 구체적으로 기재해주세요. (700자)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp;➡&lt;span&gt; 개발 동아리에서 진행한 프로젝트/ 전공 지식을 심화적으로 판단하는 서류 심사가 아니기에, 프로젝트 내용과 과정은 최대한 쉽고 간결하게 작성함. 특히, 나에게 어떤 발전이 있었는지, 이 활동 이후에 어떠한 변화가 있었는지를 구체적으로 씀.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 교환 학생을 결심하게 된 계기와 본인이 선발되어야 하는 이유에 대해 기재해주세요. (700자)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp;➡&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt; 컴퓨터 과학을 공부하며, 영어가 나에게 필수적임을 알게 된 구체적인 경험&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 해외 교환 학생 경험이 본인의 미래에 가져다 줄 영향을 단기/장기적 관점에서 서술하시오. (700자)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp;➡&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt; 단기적 &amp;gt; 수강 과목 &amp;amp; 이 수업을 통해 얻을 수 있는 점&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp;➡&lt;/span&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; 장&lt;/span&gt;기적 &amp;gt; 전 세계 개발자들과 자유롭게 협업하는 개발자라는 꿈 + 교환국에서의 구체적인 공부 과정&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;면접&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;면접은 AI 면접으로 진행되었고, 총 열 문항이였습니다. 저는 뷰인터를 이용해 면접 연습을 했습니다. 회원가입을 하면 3회 연습권과 1일 무제한 이용권을 주는데, 뷰인터의 모의 면접 화면과 미래에셋에서의 면접이 무척 유사하여 큰 도움이 되었습니다! 면접을 준비하신다면, 꼭 해보시길 추천드립니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJoELO/btsEYVZRAhb/TpbKKtxjzfuhyi4pYjTwq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJoELO/btsEYVZRAhb/TpbKKtxjzfuhyi4pYjTwq1/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1074&quot; data-origin-height=&quot;594&quot; data-filename=&quot;Group 1.png&quot; style=&quot;width: 63.6398%; margin-right: 10px;&quot; data-widthpercent=&quot;64.39&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJoELO/btsEYVZRAhb/TpbKKtxjzfuhyi4pYjTwq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJoELO%2FbtsEYVZRAhb%2FTpbKKtxjzfuhyi4pYjTwq1%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;1074&quot; height=&quot;594&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwr8db/btsEZRiqcZP/o46rsCP6eivbGfZdqBYCjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwr8db/btsEZRiqcZP/o46rsCP6eivbGfZdqBYCjK/img.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;490&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;35.61&quot; style=&quot;width: 35.1974%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwr8db/btsEZRiqcZP/o46rsCP6eivbGfZdqBYCjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbwr8db%2FbtsEZRiqcZP%2Fo46rsCP6eivbGfZdqBYCjK%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;490&quot; height=&quot;490&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;위와 같이, 시선 처리, 머리 움직임, 음성 높낮이, 음성 크기, 답변 내용을 모두 포함해 합격 가능성이 나옵니다. 점수는 무척 짠 편이니, 음성 높낮이, 시선 처리를 연습하면서 미리 적응하는 측면에서 사용하시면 좋을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1708264021441&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;AI면접, 면접준비, 비디오 면접, AI면접 꿀팁, 면접분석 | 뷰인터&quot; data-og-description=&quot;스스로, 인공지능 면접, AI면접 꿀팁, 대면면접 연습, AI, 비디오, 면접, 면접연습을 할 수 있게 도와주는 인공지는 비디오 서비스, 뷰인터&quot; data-og-host=&quot;front.viewinter.ai&quot; data-og-source-url=&quot;https://front.viewinter.ai/index.html#/landing&quot; data-og-url=&quot;https://viewinter.ai&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dlxmga/hyVm3fab7y/0y8ieKchbv7dgmP8yFa7WK/img.png?width=1672&amp;amp;height=851&amp;amp;face=0_0_1672_851&quot;&gt;&lt;a href=&quot;https://front.viewinter.ai/index.html#/landing&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://front.viewinter.ai/index.html#/landing&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dlxmga/hyVm3fab7y/0y8ieKchbv7dgmP8yFa7WK/img.png?width=1672&amp;amp;height=851&amp;amp;face=0_0_1672_851');&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;AI면접, 면접준비, 비디오 면접, AI면접 꿀팁, 면접분석 | 뷰인터&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;스스로, 인공지능 면접, AI면접 꿀팁, 대면면접 연습, AI, 비디오, 면접, 면접연습을 할 수 있게 도와주는 인공지는 비디오 서비스, 뷰인터&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;front.viewinter.ai&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;또한, AI 면접을 위해 인터뷰룸을 따로 예약하였습니다. 만약, 면접을 봐야하지만 적절한 공간이 없으시다면 인터뷰룸을 추천드립니다. 컴퓨터, 헤드폰 등도 잘 마련되어 있고 뒷배경도 회색으로 깔끔해 무척 만족스러운 선택이였습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;합격!&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1070&quot; data-origin-height=&quot;958&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ld6ZE/btsEZB7LEHU/uHuWYk8FHZXFZHBXsh5QOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ld6ZE/btsEZB7LEHU/uHuWYk8FHZXFZHBXsh5QOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ld6ZE/btsEZB7LEHU/uHuWYk8FHZXFZHBXsh5QOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLd6ZE%2FbtsEZB7LEHU%2FuHuWYk8FHZXFZHBXsh5QOK%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;1070&quot; height=&quot;958&quot; data-origin-width=&quot;1070&quot; data-origin-height=&quot;958&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2992&quot; data-origin-height=&quot;2992&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOrsXT/btsE0qZbgEZ/xIbIGKY4aPI1EbFMukJOK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOrsXT/btsE0qZbgEZ/xIbIGKY4aPI1EbFMukJOK1/img.png&quot; data-alt=&quot;신나서 구경하다가 내부는 못 찍은 웰컴키트..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOrsXT/btsE0qZbgEZ/xIbIGKY4aPI1EbFMukJOK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOrsXT%2FbtsE0qZbgEZ%2FxIbIGKY4aPI1EbFMukJOK1%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;386&quot; height=&quot;386&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2992&quot; data-origin-height=&quot;2992&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;신나서 구경하다가 내부는 못 찍은 웰컴키트..&lt;/figcaption&gt;
&lt;/figure&gt;
&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;교환 기간은 저에게 삶에서 가장 행복한 추억들을 쌓은 시간이자, 이 기억으로 평생을 살아갈 수 있을 거라는 확신을 갖게 했습니다. 교환 학생을 합격하고, 이 글을 보시는 모든 여러분들의 교환 생활을 응원합니다! 미래에셋 해외 교환 장학생을 준비하시는 분이 있다면, 이 글이 작은 도움이 되었으면 좋겠습니다.  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발 기록</category>
      <category>AI면접</category>
      <category>교환학생</category>
      <category>미래에셋</category>
      <category>미래에셋해외교환장학생</category>
      <category>뷰인터</category>
      <category>장학금</category>
      <category>해외교환</category>
      <category>해외파견</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/54</guid>
      <comments>https://jigoo-log.tistory.com/54#entry54comment</comments>
      <pubDate>Sun, 18 Feb 2024 23:31:49 +0900</pubDate>
    </item>
    <item>
      <title>[C++] Time Complexity (Trival Recursion, Dynamic Programming)</title>
      <link>https://jigoo-log.tistory.com/53</link>
      <description>&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;b&gt;Problem&lt;/b&gt;&lt;/i&gt;&lt;/h4&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;551&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wKSDa/btsBXKGl3KI/K1BS9KUzvp1jjfASjuAKG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wKSDa/btsBXKGl3KI/K1BS9KUzvp1jjfASjuAKG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wKSDa/btsBXKGl3KI/K1BS9KUzvp1jjfASjuAKG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwKSDa%2FbtsBXKGl3KI%2FK1BS9KUzvp1jjfASjuAKG1%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;727&quot; height=&quot;453&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;551&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;906&quot; data-origin-height=&quot;887&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boLRnc/btsBUKArow7/3NY6W6LrOQnDwk0IJ4sQn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boLRnc/btsBUKArow7/3NY6W6LrOQnDwk0IJ4sQn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boLRnc/btsBUKArow7/3NY6W6LrOQnDwk0IJ4sQn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboLRnc%2FbtsBUKArow7%2F3NY6W6LrOQnDwk0IJ4sQn0%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;763&quot; height=&quot;747&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;887&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;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;b&gt;&amp;nbsp;4.1 Trival&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt; &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;Algorithm Illustration&lt;/span&gt;&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Recursive_Algorithm.drawio (1).png&quot; data-origin-width=&quot;1978&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bR1JBV/btsBQnMIIGk/8I01Dqcrx9CCAiDAeAHW01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bR1JBV/btsBQnMIIGk/8I01Dqcrx9CCAiDAeAHW01/img.png&quot; data-alt=&quot;Code Illustration - Trival&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bR1JBV/btsBQnMIIGk/8I01Dqcrx9CCAiDAeAHW01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbR1JBV%2FbtsBQnMIIGk%2F8I01Dqcrx9CCAiDAeAHW01%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;1978&quot; height=&quot;2160&quot; data-filename=&quot;Recursive_Algorithm.drawio (1).png&quot; data-origin-width=&quot;1978&quot; data-origin-height=&quot;2160&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Code Illustration - Trival&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;Pseudo-code&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;1 function T(n)
2     if n &amp;lt;= 1 then
3         return 1
4     else
5         c = ceil(n / 2)
6         return T(n - 1) +T(c) + n
7     end if
8 end function
&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;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt; &lt;b&gt;C++ code&lt;/b&gt; &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_1702474897341&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cmath&amp;gt;
using namespace std;

// Trivial recursive algorithm for T(n) = T(n-1) + T( ceil ( n / 2)  ) +  n
int T(int n) {
    // Base case
    if (n &amp;lt;= 1) {
        return 1;
    }
    else {
        // Recursive case
        int c = ceil(n / 2);
        return T(n-1) + T(c) + n;
    }
}


int main() {
    int n;
    cout &amp;lt;&amp;lt; &quot;Enter the value of n: &quot;;
    cin &amp;gt;&amp;gt; n;
    int result = T(n);

    cout &amp;lt;&amp;lt; &quot;T(&quot; &amp;lt;&amp;lt; n &amp;lt;&amp;lt; &quot;) = &quot; &amp;lt;&amp;lt; result &amp;lt;&amp;lt; endl;

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;  The best-case scenario for this algorithm occurs when the function reaches its base case with a time complexity of O(1).&lt;br /&gt;  In the worst-case, the time complexity is O(2^n) due to the exponential growth in the number of function calls.&lt;br /&gt; The algorithm becomes significantly slower as n increases due to the repetitive calculation of the same subproblems.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;the best case: O(1)&lt;/b&gt;, when the function hits its base case, when n &amp;lt;= 1. In this case, the function returns immediately with a constant time operation, O(1).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;the worst and overall case: O(2^n)&lt;/b&gt;, where n is the input size. This is because each function call to T(n) generates two more calls for each non-base case, leading to an exponential growth in the number of function calls.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;i&gt;4.2 Dynamic Programming&lt;/i&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt; &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;Algorithm Illustration&lt;/span&gt;&lt;/b&gt; &lt;/span&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-filename=&quot;Dynamic_Programming.drawio (1).png&quot; data-origin-width=&quot;1691&quot; data-origin-height=&quot;1860&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BHjvb/btsBXRyOYo3/jAN83IUlj3umbY6E98f2L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BHjvb/btsBXRyOYo3/jAN83IUlj3umbY6E98f2L1/img.png&quot; data-alt=&quot;Code Illustration - Dynamic Programming&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BHjvb/btsBXRyOYo3/jAN83IUlj3umbY6E98f2L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBHjvb%2FbtsBXRyOYo3%2FjAN83IUlj3umbY6E98f2L1%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;1691&quot; height=&quot;1860&quot; data-filename=&quot;Dynamic_Programming.drawio (1).png&quot; data-origin-width=&quot;1691&quot; data-origin-height=&quot;1860&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Code Illustration - Dynamic Programming&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt; &lt;b&gt;Pseudo-code&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;yaml&quot;&gt;&lt;code&gt;1: function T(n)
2:     if n &amp;lt;= 1 then
3:         return 1
4:	end if
5:
6:     if memo[n] is not -1 then
7:         return memo[n]
8:	 end if
9:
10:    c = ceil(n / 2)
11:    memo[n] = T(n - 1) + T(c) + n
12:
13:    return memo[n]
14: end function
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;[Pseudo-Code] Line 1-4: the complexity is O(1)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;The algorithm starts by checking if n &amp;lt;= 1, the function returns 1. This is a constant-time operation which means O(1).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Line 6-8: the complexity is O(1) / Memoization check
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Before computing T(n), the algorithm checks if the value has already been computed and stored in memo[n]. If memo[n] is not -1, it returns the stored value.&lt;/li&gt;
&lt;li&gt;This is also a constant-time operation, O(1).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Line 10-11: the complexity is O(n) Dynamic programming
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;The T(n - 1) call will compute all values of T from n-1 down to 1 if they haven't been computed before.&lt;/li&gt;
&lt;li&gt;For the T(c) call,&amp;nbsp; since c is approximately n/2, each call will process a number that is half of the current n.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;b&gt;C++ code&lt;/b&gt;&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_1702475617462&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;vector&amp;gt;
using namespace std;

vector&amp;lt;int&amp;gt; memo; // Global memorization array

// Dynamic programming algorithm for T(n) = T(n-1) + T( ceil(n/2) ) +  n
int T(int n) {
    if (n &amp;lt;= 1) {
        return 1;
    }

    if (memo[n] != -1) {
        return memo[n];
    }

    int c = ceil(n / 2);
    memo[n] = T(n - 1) + T(c) + n;

    return memo[n];
}


int main() {
    int n;
    cout &amp;lt;&amp;lt; &quot;Enter the value of n: &quot;;
    cin &amp;gt;&amp;gt; n;

    // Initialize the memoization array with -1
    memo.resize(n + 1, -1);

    int result = T(n);

    cout &amp;lt;&amp;lt; &quot;T(&quot; &amp;lt;&amp;lt; n &amp;lt;&amp;lt; &quot;) = &quot; &amp;lt;&amp;lt; result &amp;lt;&amp;lt; endl;

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;aside&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/aside&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;  The best-case scenario has a time complexity of O(1) when n is less than or equal to 1. &lt;br /&gt; The worst-case scenario, with memoization, has a time complexity of O(n) due to each unique call being computed only once. &lt;br /&gt;  The overall complexity is O(n) in the worst case.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;the best case: O(1)&lt;/b&gt;, when n is less or equal to 1, then the time complexity becomes O(1). This is because no recursive calls or computations will be needed since the algorithm will immediately return 1.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;the worst and overall case: O(n)&lt;/b&gt;, the memoization ensures that each unique call to T(n) is computed only once. After a value is computed, it's stored in memo[n], and any subsequent calls for the same n will return the pre-computed value, leading to a linear time complexity O(n) in the worst case.&amp;nbsp;&lt;/li&gt;
&lt;/ol&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/i&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;789&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sVjRo/btsBXIWrUZB/vDwnfhrTbMdETYrALFvIO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sVjRo/btsBXIWrUZB/vDwnfhrTbMdETYrALFvIO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sVjRo/btsBXIWrUZB/vDwnfhrTbMdETYrALFvIO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsVjRo%2FbtsBXIWrUZB%2FvDwnfhrTbMdETYrALFvIO1%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;545&quot; height=&quot;269&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;789&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;span style=&quot;color: #000000;&quot;&gt;The difference is shown when the vector size gets larger, the trivial recursive approach takes an increasingly longer time to calculate than the dynamic programming approach; which has a gradual increase in time required as &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; becomes larger.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/알고리즘</category>
      <category>dynamic programming</category>
      <category>Illrastration</category>
      <category>memoization</category>
      <category>recursive</category>
      <category>Time comlexity</category>
      <category>Trival</category>
      <category>동적계획법</category>
      <category>시간복잡도</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/53</guid>
      <comments>https://jigoo-log.tistory.com/53#entry53comment</comments>
      <pubDate>Wed, 13 Dec 2023 23:16:24 +0900</pubDate>
    </item>
    <item>
      <title>[오류해결] VS CODE - reportMissingModuleSource 오류</title>
      <link>https://jigoo-log.tistory.com/52</link>
      <description>&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-filename=&quot;오류발생1.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRQoYn/btsnxCWpb5V/lslENFP5aFS5Iv1dQddLa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRQoYn/btsnxCWpb5V/lslENFP5aFS5Iv1dQddLa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRQoYn/btsnxCWpb5V/lslENFP5aFS5Iv1dQddLa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRQoYn%2FbtsnxCWpb5V%2FlslENFP5aFS5Iv1dQddLa0%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;327&quot; height=&quot;327&quot; data-filename=&quot;오류발생1.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;gt; View를 만들고, urls.py에 urlpatterns를 입력하는 과정에서 reportMissingModuleSource 오류가 발생했다. 위와 같이 노란 줄로 경고가 뜨며, import가 불가능했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;gt; 이는 가상환경의 인터프리터가 아닌, 시스템의 인터프리터를 사용하기 때문에 발생한 오류이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;gt; 해결 방법&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;- Window: F1&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;- Mac: Shift + Command + P&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;Python 인터프리터 선택 &amp;rarr; 가상환경의 인터프리터로 변경 (괄호 안에 venv라고 적힌 파이썬 버전 선택)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3506&quot; data-origin-height=&quot;1387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xMWqH/btsnvX8dGZX/BAKmdcn8lV62i5AGNckbvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xMWqH/btsnvX8dGZX/BAKmdcn8lV62i5AGNckbvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xMWqH/btsnvX8dGZX/BAKmdcn8lV62i5AGNckbvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxMWqH%2FbtsnvX8dGZX%2FBAKmdcn8lV62i5AGNckbvk%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;3506&quot; height=&quot;1387&quot; data-origin-width=&quot;3506&quot; data-origin-height=&quot;1387&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;&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;&lt;/p&gt;</description>
      <category>Back-end/Django</category>
      <category>Django</category>
      <category>import</category>
      <category>reportMissingModuleSource</category>
      <category>vs code</category>
      <category>오류해결</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/52</guid>
      <comments>https://jigoo-log.tistory.com/52#entry52comment</comments>
      <pubDate>Fri, 14 Jul 2023 00:14:29 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2839번 : 설탕 배달- Greedy Algorithm (C++)</title>
      <link>https://jigoo-log.tistory.com/51</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2839.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wdv69/btshhHqRg6n/kHBwcFsub3WoGFyVioIe41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wdv69/btshhHqRg6n/kHBwcFsub3WoGFyVioIe41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wdv69/btshhHqRg6n/kHBwcFsub3WoGFyVioIe41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwdv69%2FbtshhHqRg6n%2FkHBwcFsub3WoGFyVioIe41%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;291&quot; height=&quot;291&quot; data-filename=&quot;2839.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;913&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EGLBB/btshiEmuo0n/Gt3BgiNYH4oQLezRMiVum0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EGLBB/btshiEmuo0n/Gt3BgiNYH4oQLezRMiVum0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EGLBB/btshiEmuo0n/Gt3BgiNYH4oQLezRMiVum0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEGLBB%2FbtshiEmuo0n%2FGt3BgiNYH4oQLezRMiVum0%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;968&quot; height=&quot;913&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;913&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;b&gt;풀이 - Greedy Algorithm(그리디 알고리즘)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가장 적게 봉지를 들고 가도록 하기 위해서 5kg 봉지를 최대한 이용해야 한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;따라서, n을 5로 나눈 나머지가 0이라면, 몫을 출력한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684990690543&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	if (n % 5 == 0) {
		bag += (n / 5);
		cout &amp;lt;&amp;lt; bag &amp;lt;&amp;lt; endl;
		return 0;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;만약, 5로 나눈 나머지가 0이 아니라면, 3kg 봉지를 하나씩 늘려준 후, while 문을 이용해 if else 문을 반복한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684990819305&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	else {
		n -= 3;
		bag++;
	}&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;if else 문을 반복하다, n이 음수가 되면 while문을 빠져나와 -1이 출력되도록 한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1684948252677&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
	int n, bag = 0;
	cin &amp;gt;&amp;gt; n;

	while (n &amp;gt;= 0) {
		if (n % 5 == 0) {
			bag += (n / 5);
			cout &amp;lt;&amp;lt; bag &amp;lt;&amp;lt; endl;
			return 0;
		}
		else {
			n -= 3;
			bag++;
		}
	}
	cout &amp;lt;&amp;lt; -1 &amp;lt;&amp;lt; endl;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwidxQ/btshlYdagGA/LiFeGKdTYBtY7oBqtS3r9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwidxQ/btshlYdagGA/LiFeGKdTYBtY7oBqtS3r9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwidxQ/btshlYdagGA/LiFeGKdTYBtY7oBqtS3r9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwidxQ%2FbtshlYdagGA%2FLiFeGKdTYBtY7oBqtS3r9K%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;992&quot; height=&quot;72&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;72&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;figure id=&quot;og_1684983006578&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;2839번: 설탕 배달&quot; data-og-description=&quot;상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2839&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2839&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2839&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2839&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;2839번: 설탕 배달&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>C++</category>
      <category>greedy algorithm</category>
      <category>그리디 알고리즘</category>
      <category>백준</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/51</guid>
      <comments>https://jigoo-log.tistory.com/51#entry51comment</comments>
      <pubDate>Thu, 25 May 2023 15:12:53 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2748번 : 피보나치 수 2 | int &amp;amp; long long 범위 (C++)</title>
      <link>https://jigoo-log.tistory.com/50</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2748.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oowWB/btsheDIKFh3/iaKP2XPbgwbRlNCvrrqGck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oowWB/btsheDIKFh3/iaKP2XPbgwbRlNCvrrqGck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oowWB/btsheDIKFh3/iaKP2XPbgwbRlNCvrrqGck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoowWB%2FbtsheDIKFh3%2FiaKP2XPbgwbRlNCvrrqGck%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;289&quot; height=&quot;289&quot; data-filename=&quot;2748.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;915&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ep2MtV/btshh7in4RZ/ThkPkeQ63scR5LtEK4NxZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ep2MtV/btshh7in4RZ/ThkPkeQ63scR5LtEK4NxZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ep2MtV/btshh7in4RZ/ThkPkeQ63scR5LtEK4NxZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fep2MtV%2Fbtshh7in4RZ%2FThkPkeQ63scR5LtEK4NxZ1%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;1113&quot; height=&quot;915&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;915&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래에 첨부한 2747번 문제와 같은 방식으로 풀이했다.&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;두 문제의 차이점은 n의 범위이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2747번 문제는 n의 최댓값이 45이지만, 이 문제는 90이기 때문에 DP를 int 형으로 선언하면 오류가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;n = 90일 때, 피보나치 수는 288,0067,1943,7081,6120이기 때문에, DP를 long long 형으로 선언했다.&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;int 형의 범위는 &lt;b&gt;-2,147,483,648 ~ 2,147,483,647&lt;/b&gt;이며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;long long의 범위는 &lt;b&gt;&lt;span&gt;-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807이다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1684930010736&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;[백준] 2747번 : 피보나치 수 - (C++)&quot; data-og-description=&quot;문제 풀이 다이내믹 프로그래밍(DP)를 이용해 문제를 해결했다. n이 조건의 최댓값인 45인 경우, 피보나치 수는 11,3490,3170이다. int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이므로, 피보나치 수의 최댓&quot; data-og-host=&quot;jigoo-log.tistory.com&quot; data-og-source-url=&quot;https://jigoo-log.tistory.com/49&quot; data-og-url=&quot;https://jigoo-log.tistory.com/49&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8pPXG/hySKv6q3JM/9XwzIw33mZaEDqabsm8Mkk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/qtSXd/hySJfD7NTW/V8EWsDYb0MAU6vOB8xVPw0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/DIirx/hySKFBcm9U/75BEaqLFOpSKQyqpKyLH41/img.png?width=1106&amp;amp;height=907&amp;amp;face=0_0_1106_907&quot;&gt;&lt;a href=&quot;https://jigoo-log.tistory.com/49&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jigoo-log.tistory.com/49&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8pPXG/hySKv6q3JM/9XwzIw33mZaEDqabsm8Mkk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/qtSXd/hySJfD7NTW/V8EWsDYb0MAU6vOB8xVPw0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/DIirx/hySKFBcm9U/75BEaqLFOpSKQyqpKyLH41/img.png?width=1106&amp;amp;height=907&amp;amp;face=0_0_1106_907');&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;[백준] 2747번 : 피보나치 수 - (C++)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;문제 풀이 다이내믹 프로그래밍(DP)를 이용해 문제를 해결했다. n이 조건의 최댓값인 45인 경우, 피보나치 수는 11,3490,3170이다. int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이므로, 피보나치 수의 최댓&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jigoo-log.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1684928423060&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
	int n;
	long long DP[90];

	cin &amp;gt;&amp;gt; n;

	DP[0] = 0;
	DP[1] = 1;

	for (int i = 2; i &amp;lt;= n; i++) {
		DP[i] = DP[i - 1] + DP[i - 2];
	}

	cout &amp;lt;&amp;lt; DP[n] &amp;lt;&amp;lt; endl;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1107&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4fjsc/btshj5crEjT/7ZyF4FzRblghSwjOiGDDcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4fjsc/btshj5crEjT/7ZyF4FzRblghSwjOiGDDcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4fjsc/btshj5crEjT/7ZyF4FzRblghSwjOiGDDcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4fjsc%2Fbtshj5crEjT%2F7ZyF4FzRblghSwjOiGDDcK%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;1107&quot; height=&quot;82&quot; data-origin-width=&quot;1107&quot; data-origin-height=&quot;82&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;figure id=&quot;og_1684928487301&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;2748번: 피보나치 수 2&quot; data-og-description=&quot;피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n &amp;ge; 2)가 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2748&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2748&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kh6La/hySJh2ZTrw/SfO78xak3wMMSSylUqd9K1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2748&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kh6La/hySJh2ZTrw/SfO78xak3wMMSSylUqd9K1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;2748번: 피보나치 수 2&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n &amp;ge; 2)가&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>C++</category>
      <category>dp</category>
      <category>다이내믹 프로그래밍</category>
      <category>백준</category>
      <category>피보나치 수</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/50</guid>
      <comments>https://jigoo-log.tistory.com/50#entry50comment</comments>
      <pubDate>Wed, 24 May 2023 21:13:52 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2747번 : 피보나치 수 - (C++)</title>
      <link>https://jigoo-log.tistory.com/49</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2747.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0mLAT/btsheDhJrTJ/CNp7ENCt9iOK21kKsju5ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0mLAT/btsheDhJrTJ/CNp7ENCt9iOK21kKsju5ZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0mLAT/btsheDhJrTJ/CNp7ENCt9iOK21kKsju5ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0mLAT%2FbtsheDhJrTJ%2FCNp7ENCt9iOK21kKsju5ZK%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;322&quot; height=&quot;322&quot; data-filename=&quot;2747.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;907&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XgHYz/btshiiw4zxt/STqzEkLUDy0Jf6Mk4Jl7mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XgHYz/btshiiw4zxt/STqzEkLUDy0Jf6Mk4Jl7mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XgHYz/btshiiw4zxt/STqzEkLUDy0Jf6Mk4Jl7mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXgHYz%2Fbtshiiw4zxt%2FSTqzEkLUDy0Jf6Mk4Jl7mk%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;1106&quot; height=&quot;907&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;907&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다이내믹 프로그래밍(DP)를 이용해 문제를 해결했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;n이 조건의 최댓값인 45인 경우, 피보나치 수는 11,3490,3170이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;int 형의 범위는 &lt;b&gt;-2,147,483,648 ~ 2,147,483,647&lt;/b&gt;이므로, 피보나치 수의 최댓값이 범위 내에 있기 때문에, DP를 int로 선언했다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1684928755918&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
	int n;
	int DP[45];

	cin &amp;gt;&amp;gt; n;

	DP[0] = 0;
	DP[1] = 1;

	for (int i = 2; i &amp;lt;= n; i++) {
		DP[i] = DP[i - 1] + DP[i - 2];
	}

	cout &amp;lt;&amp;lt; DP[n] &amp;lt;&amp;lt; endl;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bamKo0/btshhJPCEyO/YpcSKBEtkGvzImC5xIQe9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bamKo0/btshhJPCEyO/YpcSKBEtkGvzImC5xIQe9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bamKo0/btshhJPCEyO/YpcSKBEtkGvzImC5xIQe9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbamKo0%2FbtshhJPCEyO%2FYpcSKBEtkGvzImC5xIQe9k%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;1106&quot; height=&quot;82&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;82&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;figure id=&quot;og_1684928879108&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;2747번: 피보나치 수&quot; data-og-description=&quot;피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n &amp;ge; 2)가 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2747&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2747&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iK1Fe/hySKv6qf9o/IlZzmVdKCSOJrH0AZkSos1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2747&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2747&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iK1Fe/hySKv6qf9o/IlZzmVdKCSOJrH0AZkSos1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;2747번: 피보나치 수&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n &amp;ge; 2)가&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>C++</category>
      <category>dp</category>
      <category>다이내믹 프로그래밍</category>
      <category>백준</category>
      <category>피보나치 수</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/49</guid>
      <comments>https://jigoo-log.tistory.com/49#entry49comment</comments>
      <pubDate>Wed, 24 May 2023 20:55:02 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 2775번 : 부녀회장이 될테야 - (C++)</title>
      <link>https://jigoo-log.tistory.com/48</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2775_고화질.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpOeJE/btshjdoqB92/iQoK9TfCavGgEA2Vq2KGA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpOeJE/btshjdoqB92/iQoK9TfCavGgEA2Vq2KGA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpOeJE/btshjdoqB92/iQoK9TfCavGgEA2Vq2KGA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpOeJE%2FbtshjdoqB92%2FiQoK9TfCavGgEA2Vq2KGA0%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;334&quot; height=&quot;334&quot; data-filename=&quot;2775_고화질.png&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1232&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;922&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvEFcR/btshhIJN0mF/inIJSSv4kP0UXH3r1j2Yok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvEFcR/btshhIJN0mF/inIJSSv4kP0UXH3r1j2Yok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvEFcR/btshhIJN0mF/inIJSSv4kP0UXH3r1j2Yok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvEFcR%2FbtshhIJN0mF%2FinIJSSv4kP0UXH3r1j2Yok%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;976&quot; height=&quot;922&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;922&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;k층의 n호에 거주하는 사람은 아래의 표와 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2775_ex1.5.png&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTHWDM/btshjdhy13E/hPfL0AZhMOjIa7qNcd7bek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTHWDM/btshjdhy13E/hPfL0AZhMOjIa7qNcd7bek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTHWDM/btshjdhy13E/hPfL0AZhMOjIa7qNcd7bek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTHWDM%2Fbtshjdhy13E%2FhPfL0AZhMOjIa7qNcd7bek%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;686&quot; height=&quot;362&quot; data-filename=&quot;2775_ex1.5.png&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;재귀함수를 이용하여, getNum 함수를 만들었다.&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;pre id=&quot;code_1684924321042&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int getNum(int x, int y) {
	if (y == 1) {	
		return 1;
	}
	else if (x == 0) {
		return y;
	}
	else {
		return (getNum(x - 1, y) + getNum(x, y - 1));
	}
}&lt;/code&gt;&lt;/pre&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;if else 문을 이용하여 n = 1인 경우에는, 항상 한 명이 거주하고 있기 때문에 return 1을&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;k = 0인 경우에는, 항상 n명이 거주하고 있기 때문에 return n을 해주었다.&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;(k층의 n-1호) + (k-1층의 n호) = (k층의 n호)가 성립한다.&lt;/span&gt;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2775_ex3.png&quot; data-origin-width=&quot;1168&quot; data-origin-height=&quot;832&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVvuFs/btsheCXfUOl/ckmJ2kkqTNK9ghhRmcBmIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVvuFs/btsheCXfUOl/ckmJ2kkqTNK9ghhRmcBmIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVvuFs/btsheCXfUOl/ckmJ2kkqTNK9ghhRmcBmIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVvuFs%2FbtsheCXfUOl%2FckmJ2kkqTNK9ghhRmcBmIK%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;720&quot; height=&quot;513&quot; data-filename=&quot;2775_ex3.png&quot; data-origin-width=&quot;1168&quot; data-origin-height=&quot;832&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1684923648868&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int getNum(int x, int y) {
	if (y == 1) {	
		return 1;
	}
	else if (x == 0) {
		return y;
	}
	else {
		return (getNum(x - 1, y) + getNum(x, y - 1));
	}
}

int main() {
	int T, k, n;
	cin &amp;gt;&amp;gt; T;

	for (int i = 0; i &amp;lt; T; i++) {
		cin &amp;gt;&amp;gt; k &amp;gt;&amp;gt; n;
		cout &amp;lt;&amp;lt; getNum(k, n) &amp;lt;&amp;lt; endl;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsZEzm/btshi7BKlGn/VLZpMvDX0tS7eAUzGiNKy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsZEzm/btshi7BKlGn/VLZpMvDX0tS7eAUzGiNKy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsZEzm/btshi7BKlGn/VLZpMvDX0tS7eAUzGiNKy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsZEzm%2Fbtshi7BKlGn%2FVLZpMvDX0tS7eAUzGiNKy1%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;1108&quot; height=&quot;96&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;96&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;figure id=&quot;og_1684923834020&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;2775번: 부녀회장이 될테야&quot; data-og-description=&quot;첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/2775&quot; data-og-url=&quot;https://www.acmicpc.net/problem/2775&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kEZKR/hySKCLcbmH/Hm0NuHN6KBVOzeODz9JQF1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/2775&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/2775&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kEZKR/hySKCLcbmH/Hm0NuHN6KBVOzeODz9JQF1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;2775번: 부녀회장이 될테야&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>C++</category>
      <category>dp</category>
      <category>백준</category>
      <category>부녀회장</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/48</guid>
      <comments>https://jigoo-log.tistory.com/48#entry48comment</comments>
      <pubDate>Wed, 24 May 2023 19:34:08 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 1546번 : 평균 - (C++)</title>
      <link>https://jigoo-log.tistory.com/47</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1546.png&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UeSwi/btsf58Xuvyu/KDMqsMvIX9xflZbUmaRZrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UeSwi/btsf58Xuvyu/KDMqsMvIX9xflZbUmaRZrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UeSwi/btsf58Xuvyu/KDMqsMvIX9xflZbUmaRZrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUeSwi%2Fbtsf58Xuvyu%2FKDMqsMvIX9xflZbUmaRZrK%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;308&quot; height=&quot;308&quot; data-filename=&quot;1546.png&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;308&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;967&quot; data-origin-height=&quot;925&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3Fbtz/btsf59hJ4uH/aIOHsVwAMeGKgx7W4sNigK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3Fbtz/btsf59hJ4uH/aIOHsVwAMeGKgx7W4sNigK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3Fbtz/btsf59hJ4uH/aIOHsVwAMeGKgx7W4sNigK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3Fbtz%2Fbtsf59hJ4uH%2FaIOHsVwAMeGKgx7W4sNigK%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;967&quot; height=&quot;925&quot; data-origin-width=&quot;967&quot; data-origin-height=&quot;925&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;n, score, max, sum은 int형으로 선언한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;answer은 실수형으로 출력되기 때문에, float형으로 선언한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;'점수의 합계 X 100.0&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&amp;divide; 최댓값&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&amp;divide; 과목의 개수'가 출력값이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;출력값은 소수점을 포함하는 값이여야 하므로, 100이 아닌 100.0으로 두었다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&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;pre id=&quot;code_1684240906101&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;answer = sum * 100.0 / max / n;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1684240500009&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
using namespace std;

int main() {
	int n, score;
	float answer;
	cin &amp;gt;&amp;gt; n;

	int max = -1;
	int sum = 0;

	for (int i = 0; i &amp;lt; n; ++i) {
		cin &amp;gt;&amp;gt; score;
		sum += score;
		if (score &amp;gt; max) {
			max = score;
		}
	}

	answer = sum * 100.0 / max / n;

	cout &amp;lt;&amp;lt; answer;

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;987&quot; data-origin-height=&quot;67&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1dTOU/btsgb7pPoLO/13xxthpzuSrB7HmQEDS1Uk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1dTOU/btsgb7pPoLO/13xxthpzuSrB7HmQEDS1Uk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1dTOU/btsgb7pPoLO/13xxthpzuSrB7HmQEDS1Uk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1dTOU%2Fbtsgb7pPoLO%2F13xxthpzuSrB7HmQEDS1Uk%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;987&quot; height=&quot;67&quot; data-origin-width=&quot;987&quot; data-origin-height=&quot;67&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;figure id=&quot;og_1684240655555&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;1546번: 평균&quot; data-og-description=&quot;첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1546&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1546&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f7seF/hySC2EAgG5/RHHygxM1Y122TElGPJoosK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1546&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1546&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f7seF/hySC2EAgG5/RHHygxM1Y122TElGPJoosK/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1546번: 평균&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>C++</category>
      <category>백준</category>
      <category>평균</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/47</guid>
      <comments>https://jigoo-log.tistory.com/47#entry47comment</comments>
      <pubDate>Tue, 16 May 2023 21:45:33 +0900</pubDate>
    </item>
    <item>
      <title>[백준] 11654번 : 아스키 코드 - (C++)</title>
      <link>https://jigoo-log.tistory.com/46</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11654.png&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x6aYP/btsa6bYTSLD/F57aJZN8Gp4mkSJ8HAt0Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x6aYP/btsa6bYTSLD/F57aJZN8Gp4mkSJ8HAt0Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x6aYP/btsa6bYTSLD/F57aJZN8Gp4mkSJ8HAt0Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx6aYP%2Fbtsa6bYTSLD%2FF57aJZN8Gp4mkSJ8HAt0Vk%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;308&quot; height=&quot;308&quot; data-filename=&quot;11654.png&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;308&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;style8&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;871&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kYSPJ/btsblp1UTGd/TkPwcvNKon3T5CgSpOdHe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kYSPJ/btsblp1UTGd/TkPwcvNKon3T5CgSpOdHe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kYSPJ/btsblp1UTGd/TkPwcvNKon3T5CgSpOdHe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkYSPJ%2Fbtsblp1UTGd%2FTkPwcvNKon3T5CgSpOdHe0%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;993&quot; height=&quot;871&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;871&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/h4&gt;
&lt;div style=&quot;color: #555555; text-align: start;&quot;&gt;char형 변수 c를 선언하고, 입력받은 후, (int)를 붙여 형 변환을 한다.&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1681878594037&quot; class=&quot;cpp&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
using namespace std;

int main() {
	char c;
	cin &amp;gt;&amp;gt; c;

	cout &amp;lt;&amp;lt; (int)c;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/muX6J/btsa7tELIV5/Es0j4Kp99WoHr2gfNPsFk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/muX6J/btsa7tELIV5/Es0j4Kp99WoHr2gfNPsFk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/muX6J/btsa7tELIV5/Es0j4Kp99WoHr2gfNPsFk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmuX6J%2Fbtsa7tELIV5%2FEs0j4Kp99WoHr2gfNPsFk1%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;1102&quot; height=&quot;87&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;87&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;figure id=&quot;og_1681878640525&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;11654번: 아스키 코드&quot; data-og-description=&quot;알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/11654&quot; data-og-url=&quot;https://www.acmicpc.net/problem/11654&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cPLUra/hySkUff77K/140wukrgYKY2NzHg2Adlx0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11654&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/11654&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cPLUra/hySkUff77K/140wukrgYKY2NzHg2Adlx0/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;11654번: 아스키 코드&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C++ - 백준</category>
      <category>C++</category>
      <category>백준</category>
      <category>아스키코드</category>
      <author>지구코드</author>
      <guid isPermaLink="true">https://jigoo-log.tistory.com/46</guid>
      <comments>https://jigoo-log.tistory.com/46#entry46comment</comments>
      <pubDate>Thu, 20 Apr 2023 19:22:04 +0900</pubDate>
    </item>
  </channel>
</rss>