<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>하마코 ꒰⍤꒱ ༘*</title>
    <link>https://hamaco.tistory.com/</link>
    <description>데이터 분석이 좋아진 개발자</description>
    <language>ko</language>
    <pubDate>Sat, 9 May 2026 00:22:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>hamaco.dev</managingEditor>
    <image>
      <title>하마코 ꒰⍤꒱ ༘*</title>
      <url>https://tistory1.daumcdn.net/tistory/7592052/attach/d80a19fe6bd44c138c6adeefd2af1e72</url>
      <link>https://hamaco.tistory.com</link>
    </image>
    <item>
      <title>[회고] SRI 데이터 경진대회 : 수원시 정책 아이디어 제안  우수상 </title>
      <link>https://hamaco.tistory.com/entry/%ED%9A%8C%EA%B3%A0-SRI-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B2%BD%EC%A7%84%EB%8C%80%ED%9A%8C-%EC%88%98%EC%9B%90%EC%8B%9C-%EC%A0%95%EC%B1%85-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EC%A0%9C%EC%95%88-%F0%9F%8F%86%EC%9A%B0%EC%88%98%EC%83%81%F0%9F%8F%86</link>
      <description>&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;p data-ke-size=&quot;size16&quot;&gt;저희 팀은 수원시가 경기도 내에서 불법주정차 단속 건수가 1위라는 점을 발견하면서,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&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;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;카카오맵 API를 활용한 &lt;/span&gt;&lt;b&gt;공영주차장&lt;/b&gt;&lt;/span&gt;과의 거리 분석 &lt;span style=&quot;color: #ee2323;&quot;&gt;(제가 담당!)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;상권 Hot/Cold + 불법주정차 단속 Hot 스팟 분석 분석&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의 과정을 통해 제언하게 되었습니다! :D&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;  &lt;a href=&quot;https://dacon.io/competitions/official/236539/codeshare/12807&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;정책 제안 보고서&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;  &lt;a href=&quot;https://drive.google.com/file/d/1lG-vw26_-5VZ2lqM35rviEGtnncFK3hd/view?usp=sharing&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;발표 자료&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; ️ &lt;a href=&quot;https://dacon.io/forum/415306&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;수상 인터뷰&lt;/a&gt;&lt;/li&gt;
&lt;/ul&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;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1️⃣&amp;nbsp; 대회 발견 ! 팀원 모으기  &lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;취미가 DACON 웹 서핑인 만큼, 여느 때처럼 DACON 대회 목록을 들어갔는데 세상에!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CNIuH/btsQ4qeZ0Gr/AauyYHBKyLEHKoGpdmPB9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CNIuH/btsQ4qeZ0Gr/AauyYHBKyLEHKoGpdmPB9K/img.png&quot; data-alt=&quot;DACON에서 발견 !&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CNIuH/btsQ4qeZ0Gr/AauyYHBKyLEHKoGpdmPB9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCNIuH%2FbtsQ4qeZ0Gr%2FAauyYHBKyLEHKoGpdmPB9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1151&quot; height=&quot;128&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;128&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DACON에서 발견 !&lt;/figcaption&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;973&quot; data-origin-height=&quot;742&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDcH4Z/btsQ2RYUe2o/tx1iN4FgHF6XXIBUQk6Buk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDcH4Z/btsQ2RYUe2o/tx1iN4FgHF6XXIBUQk6Buk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDcH4Z/btsQ2RYUe2o/tx1iN4FgHF6XXIBUQk6Buk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDcH4Z%2FbtsQ2RYUe2o%2Ftx1iN4FgHF6XXIBUQk6Buk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;336&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;742&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;게다가 정책 제안인데 처음보는 SRI 데이터 기반 + 공공데이터 사용이라는 점이 눈에 들어왔어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;너 내 팀원이 되 !...어 주세요&lt;/span&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;&lt;u&gt;7월 14일&lt;/u&gt;에 대회 올라온 걸 보자마자 &lt;u&gt;15일 새벽에 제안&lt;/u&gt;하고 팀 빌딩을 완료했답니다.  &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;1863&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crXU2t/btsQ3dt1TpC/EdliK6KPx1yC8eU5GMUEB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crXU2t/btsQ3dt1TpC/EdliK6KPx1yC8eU5GMUEB1/img.png&quot; data-alt=&quot;팀원들과 존댓말 쓰던 귀여운 시절&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crXU2t/btsQ3dt1TpC/EdliK6KPx1yC8eU5GMUEB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrXU2t%2FbtsQ3dt1TpC%2FEdliK6KPx1yC8eU5GMUEB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;512&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1863&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;style4&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2️⃣&amp;nbsp; 대회 파헤치기  &lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;1) 평가 기준&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;175&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6dN8e/btsQ2x0tZNx/UfkpRkKNEYj5NYIT5CKLIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6dN8e/btsQ2x0tZNx/UfkpRkKNEYj5NYIT5CKLIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6dN8e/btsQ2x0tZNx/UfkpRkKNEYj5NYIT5CKLIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6dN8e%2FbtsQ2x0tZNx%2FUfkpRkKNEYj5NYIT5CKLIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;702&quot; height=&quot;175&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;175&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: #ee2323;&quot;&gt; '활용 가능성'&lt;/span&gt; 즉 실현 가능성이 제일 높았고, &lt;span style=&quot;color: #006dd7;&quot;&gt;'데이터 이해 및 분석 적정성'&lt;/span&gt;은 가장 낮았습니다.&lt;/p&gt;
&lt;p 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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;2) 데이터셋 사용 범위&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;215&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwZW45/btsQ2OnByVb/posEEOBjKyyDVsYHj0KjX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwZW45/btsQ2OnByVb/posEEOBjKyyDVsYHj0KjX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwZW45/btsQ2OnByVb/posEEOBjKyyDVsYHj0KjX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwZW45%2FbtsQ2OnByVb%2FposEEOBjKyyDVsYHj0KjX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;706&quot; height=&quot;215&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;215&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;대회에서 꼭 사용해야 했던 데이터는 'SRI 데이터' 라는 데이터들의 모음집이었는데요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수원서베이, SRI 시민패널조사, 도시정책지표, 데이터분석활용사례&amp;nbsp;&lt;/b&gt;데이터였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;*SRI 데이터 : &lt;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;국가통계연구원(SRI)에서 경제, 사회, 인구 등 다양한 분야의 통계와 데이터를 분석하여 발간하는 『SRI 통계플러스』에 수록된 데이터&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;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3️⃣ 데이터 분석 과정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #dddddd; text-align: start;&quot;&gt;*제가 참여하지 않은 부분은 제외하고 직접 참여한 부분만 작성했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #89f3ff;&quot;&gt;&lt;b&gt;1) 수원시 문제 발견 - 불법주정차  &lt;/b&gt;&lt;/span&gt;&lt;/h4&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/1ER6x/btsQ30ua0uo/odJSNsCrJcGqYGHQOzvkok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1ER6x/btsQ30ua0uo/odJSNsCrJcGqYGHQOzvkok/img.png&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;798&quot; data-is-animation=&quot;false&quot; width=&quot;337&quot; style=&quot;width: 50.8058%; margin-right: 10px;&quot; data-widthpercent=&quot;51.4&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1ER6x/btsQ30ua0uo/odJSNsCrJcGqYGHQOzvkok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1ER6x%2FbtsQ30ua0uo%2FodJSNsCrJcGqYGHQOzvkok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;806&quot; height=&quot;798&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkOWgh/btsQ4kMHyct/ajhKH91semo9GMaVpJbyK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkOWgh/btsQ4kMHyct/ajhKH91semo9GMaVpJbyK0/img.png&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;842&quot; data-is-animation=&quot;false&quot; width=&quot;267&quot; height=&quot;280&quot; style=&quot;width: 48.0314%;&quot; data-widthpercent=&quot;48.6&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkOWgh/btsQ4kMHyct/ajhKH91semo9GMaVpJbyK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkOWgh%2FbtsQ4kMHyct%2FajhKH91semo9GMaVpJbyK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;804&quot; height=&quot;842&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;수원시는 '주민신고제'가 마련되어 있어서 실제로 불법주정차 단속 건수를 찾아봤을 때도 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;주민신고제의 비율이 20.4%&lt;/b&gt; &lt;/span&gt;였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 불법주정차 관련 데이터로 각자 EDA(탐색적 데이터 분석)을 해보고 회의를 진행했습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&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: #89f3ff;&quot;&gt;&lt;b&gt;2) 불법주정차 단속 데이터셋 EDA  &lt;/b&gt;&lt;/span&gt;&lt;/h4&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;&lt;a style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; contenteditable=&quot;false&quot; href=&quot;https://www.data.go.kr/data/15125266/fileData.do&quot; data-token-index=&quot;0&quot;&gt;&lt;span&gt;&lt;span&gt;경기도 수원시_주정차위반단속위치현황_20231201&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; contenteditable=&quot;false&quot; href=&quot;https://www.data.go.kr/data/15063802/fileData.do&quot; data-token-index=&quot;0&quot;&gt;&lt;span&gt;&lt;span&gt;경기도 수원시_주정차단속현황_20250416&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.data.go.kr/data/15056869/openapi.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;주정차 위반 단속실적 집계 현황 OpenAPI&lt;/a&gt;&lt;/span&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/rw8kC/btsQ4pULU67/QREF27zJvJJeAKffLWY8U0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rw8kC/btsQ4pULU67/QREF27zJvJJeAKffLWY8U0/img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1359&quot; data-is-animation=&quot;false&quot; style=&quot;width: 38.9729%; margin-right: 10px;&quot; data-widthpercent=&quot;39.43&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rw8kC/btsQ4pULU67/QREF27zJvJJeAKffLWY8U0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frw8kC%2FbtsQ4pULU67%2FQREF27zJvJJeAKffLWY8U0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;1359&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyhoep/btsQ1sTlMpn/wg5EMj0MebOjTTNi9EBftk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyhoep/btsQ1sTlMpn/wg5EMj0MebOjTTNi9EBftk/img.png&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;864&quot; data-is-animation=&quot;false&quot; style=&quot;width: 59.8643%;&quot; data-widthpercent=&quot;60.57&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyhoep/btsQ1sTlMpn/wg5EMj0MebOjTTNi9EBftk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcyhoep%2FbtsQ1sTlMpn%2Fwg5EMj0MebOjTTNi9EBftk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;864&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;유의미해보이는 데이터들을 정리하며 EDA를 진행했습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;왼쪽) 수원시는 경기도 내에서 불법주정차 단속 건수 1위를 하고 있는 심각성을 확인&lt;/li&gt;
&lt;li&gt;오른쪽) 11시~14시 에 단속 건수가 낮아짐 &amp;gt; 수원시가 점심 시간에 유예해주는 정책이 있는 것을 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 수원시에서 시행중인 정책들도 찾아보니 불법주정차 감소를 위해 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;'공영주차장 1시간 무료 주차 정책'&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;blob&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgqNJd/btsQ3ZhIcn7/mg0koIR0WjPnLb0huWw9D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgqNJd/btsQ3ZhIcn7/mg0koIR0WjPnLb0huWw9D1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgqNJd/btsQ3ZhIcn7/mg0koIR0WjPnLb0huWw9D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgqNJd%2FbtsQ3ZhIcn7%2Fmg0koIR0WjPnLb0huWw9D1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;630&quot; height=&quot;167&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;167&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;639&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zn4a6/btsQ4qlQpiU/kCVcSZ7bqucqEeYbIk45pK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zn4a6/btsQ4qlQpiU/kCVcSZ7bqucqEeYbIk45pK/img.png&quot; data-alt=&quot;[출처] 네이트 뉴스 '수원시, 공영 노외주차장 이용객 1시간 무료'&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zn4a6/btsQ4qlQpiU/kCVcSZ7bqucqEeYbIk45pK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZn4a6%2FbtsQ4qlQpiU%2FkCVcSZ7bqucqEeYbIk45pK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;627&quot; height=&quot;105&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[출처] 네이트 뉴스 '수원시, 공영 노외주차장 이용객 1시간 무료'&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;style1&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: #89f3ff;&quot;&gt;&lt;b&gt;3) 가설, 공영주차장이 적은가?  &lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시에서 주차장을 이용하면 1시간 무료 혜택을 준다는 정보도 알았는데, 왜 시민들은 불법주정차를 계속할까 고민했는데요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;혹시 주차장이 부족한 건 아닐까?&lt;/i&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/bx14bD/btsQ3D0bW9m/vd8ArLADO7yah7hTPVLgtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx14bD/btsQ3D0bW9m/vd8ArLADO7yah7hTPVLgtk/img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1275&quot; data-is-animation=&quot;false&quot; style=&quot;width: 58.5726%; margin-right: 10px;&quot; data-widthpercent=&quot;59.26&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx14bD/btsQ3D0bW9m/vd8ArLADO7yah7hTPVLgtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx14bD%2FbtsQ3D0bW9m%2Fvd8ArLADO7yah7hTPVLgtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;1275&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EaeKk/btsQ2uJPDjy/Bns8pkAdhEqzHXnAJ3tTXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EaeKk/btsQ2uJPDjy/Bns8pkAdhEqzHXnAJ3tTXK/img.png&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;547&quot; data-is-animation=&quot;false&quot; style=&quot;width: 40.2647%;&quot; data-widthpercent=&quot;40.74&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EaeKk/btsQ2uJPDjy/Bns8pkAdhEqzHXnAJ3tTXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEaeKk%2FbtsQ2uJPDjy%2FBns8pkAdhEqzHXnAJ3tTXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;547&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;위에서 볼 수 있던 점은&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;최근 5년간 주차장확보율이 80%를 초과하지 못한 것&lt;/b&gt;&lt;/span&gt;으로 확인&lt;/li&gt;
&lt;li&gt;수원 시민은 이동할 때 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;42.7%가 자차를 사용하지만, 주차 수요 증가에 비해 공급 확충이 따라가지 못한&lt;/b&gt;&lt;/span&gt; 구조적 한계로 해석&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이었고, 아래 시민 패널 조사 데이터도 살펴봤을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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/eJpwCr/btsQ1ZckIC1/G32OvVpBQHdF52OYRjSt4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eJpwCr/btsQ1ZckIC1/G32OvVpBQHdF52OYRjSt4k/img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;915&quot; data-is-animation=&quot;false&quot; style=&quot;width: 55.3374%; margin-right: 10px;&quot; data-widthpercent=&quot;55.99&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eJpwCr/btsQ1ZckIC1/G32OvVpBQHdF52OYRjSt4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeJpwCr%2FbtsQ1ZckIC1%2FG32OvVpBQHdF52OYRjSt4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;915&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqYeXW/btsQ2AJPGcb/WQofkZ2MD8oNFSbwsmwLz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqYeXW/btsQ2AJPGcb/WQofkZ2MD8oNFSbwsmwLz1/img.png&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1164&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.4998%;&quot; data-widthpercent=&quot;44.01&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqYeXW/btsQ2AJPGcb/WQofkZ2MD8oNFSbwsmwLz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqYeXW%2FbtsQ2AJPGcb%2FWQofkZ2MD8oNFSbwsmwLz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;1164&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;수원 시민, 수원시가 시급하게 개선하는 것에 &amp;lsquo;공영주차장 확대 요망&amp;rsquo;을 2위로 선정&lt;/li&gt;
&lt;li&gt;수원 시민, 수원이 &amp;lsquo;글로벌 첨단 과학 연구 도시&amp;rsquo;가 되기 위해 가장 우선적으로 투자해야 한다고 생각하는 것에 &amp;lsquo;교통 및 인프라 개선&amp;rsquo;을 1위로 선정&lt;/li&gt;
&lt;li&gt;수원시 교통수단이나 시설별 인프라 만족도가 응답자 수 3057명중 58.6%가 보통 또는 잘 구축되어있지 않다고 답함&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등 시민들 입장에서는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&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;&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;i&gt;&quot;흠 근데 주차장이 적더라도 주변에 있으면 무조건 이용할 텐데 ...&quot;&lt;/i&gt; 라는 생각으로 &lt;b&gt;주차장과 단속된 거리들&lt;/b&gt;도 분석을 해보았는데요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분석 과정이 길어서 표로 간단히 정리해보았습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 135px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 7.90702%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;단계&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.0465%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;가설 / 과정&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.0465%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;데이터 수집/정제/분석 방법&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;width: 7.90702%; height: 43px; text-align: center;&quot;&gt;1단계&lt;/td&gt;
&lt;td style=&quot;width: 51.0465%; height: 43px; text-align: center;&quot;&gt;단속된 도로 데이터가 &lt;span style=&quot;color: #006dd7;&quot;&gt;'권선동 농수산물도매시장 옆', '구운동 583'&lt;/span&gt; 처럼 텍스트로 되어있는 데이터를 분석을 위해 &lt;span style=&quot;color: #ee2323;&quot;&gt;수치화&lt;/span&gt;해야겠다고 판단&lt;/td&gt;
&lt;td style=&quot;width: 41.0465%; height: 43px; text-align: center;&quot;&gt;&lt;b&gt;카카오맵 API를 활용하여 모든 데이터 위도/경도화&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7; text-align: center;&quot;&gt;'권선동 농수산물도매시장 옆'&lt;/span&gt;처럼 정확하지 않은 곳은&lt;br /&gt;텍스트의 뒤에서부터 한 글자씩 잘라가며&lt;br /&gt;API상 검색되는 곳(&lt;span style=&quot;color: #009a87; text-align: center;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;권선동 농수산물도매시장&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;으로 수치화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 7.90702%; height: 18px; text-align: center;&quot;&gt;2단계&lt;/td&gt;
&lt;td style=&quot;width: 51.0465%; height: 18px; text-align: center;&quot;&gt;주차장 위치와의 상관관계 분석을 위해&lt;br /&gt;수원시내 모든 주차장 위치를 받아와야 함&lt;/td&gt;
&lt;td style=&quot;width: 41.0465%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;수원도시공사에서 제공하는&lt;/b&gt;&lt;br /&gt;&lt;b&gt;공영주차장 현황 데이터&lt;/b&gt;&amp;nbsp;수집&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 7.90702%; height: 18px; text-align: center;&quot;&gt;3단계&lt;/td&gt;
&lt;td style=&quot;width: 51.0465%; height: 18px; text-align: center;&quot;&gt;수원시내 모든 공영주차장 위치를&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: center;&quot;&gt;단속된 도로와 비교하기 위해 마찬가지로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;수치화&lt;/span&gt;해야겠다고 판단&lt;/td&gt;
&lt;td style=&quot;width: 41.0465%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;카카오맵 API를 활용하여&lt;br /&gt;모든 공영주차장 데이터 위도/경도화&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 7.90702%; height: 18px; text-align: center;&quot;&gt;4단계&lt;/td&gt;
&lt;td style=&quot;width: 51.0465%; height: 18px; text-align: center;&quot;&gt;단속된 도로와 &lt;span style=&quot;color: #ee2323;&quot;&gt;가장 가까운 주차장까지의 거리&lt;/span&gt;를 분석해보고자&lt;br /&gt;위도, 경도, 거리 계산법을 도입해서 거리 수치 저장&lt;/td&gt;
&lt;td style=&quot;width: 41.0465%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;단속된 곳과 주차장 간의 거리 계산법&lt;/b&gt;&lt;br /&gt;- 위도차이 : | 단속장소위도 - 주차장위도 |&lt;br /&gt;- 경도차이 : | 단속장소경도 - 주차장경도 |&lt;br /&gt;- 거리 계산 : (위도차이+경도차이) * 111&lt;br /&gt;(111은 위경도 1도당 대략적인 km 거리)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 7.90702%; height: 18px; text-align: center;&quot;&gt;5단계&lt;/td&gt;
&lt;td style=&quot;width: 51.0465%; height: 18px; text-align: center;&quot;&gt;거리 차이가 많이 나는 도로들의 개수와&lt;br /&gt;거리별 해당하는 도로 파악 필요&lt;/td&gt;
&lt;td style=&quot;width: 41.0465%; height: 18px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;거리 0.5km부터 5km 이상까지&amp;nbsp;&lt;/span&gt;분포별로 시각화&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 과정 이후 나온 시각화 테이블은 이랬습니다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;990&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ee5iHP/btsQ4ldObpd/I1WxvXxigKpqfKGWeMc9h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ee5iHP/btsQ4ldObpd/I1WxvXxigKpqfKGWeMc9h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ee5iHP/btsQ4ldObpd/I1WxvXxigKpqfKGWeMc9h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fee5iHP%2FbtsQ4ldObpd%2FI1WxvXxigKpqfKGWeMc9h1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1488&quot; height=&quot;990&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;990&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윗줄 제일 오른쪽 차트를 보면, 0.5km 이내에 있는 도로가 제일 많지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0.5km 보다 먼 도로들도 굉장히 많다는 것을 알 수 있었습니다!&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style11&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.8372%; text-align: center;&quot;&gt;거리 구간&lt;/td&gt;
&lt;td style=&quot;width: 37.2093%; text-align: center;&quot;&gt;단속 건수&lt;/td&gt;
&lt;td style=&quot;width: 14.1861%; text-align: center;&quot;&gt;비율&lt;/td&gt;
&lt;td style=&quot;width: 29.6511%; text-align: center;&quot;&gt;평균 단속 빈도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.8372%; text-align: center;&quot;&gt;&lt;b&gt;0.5km 이내&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2093%; text-align: center;&quot;&gt;148,494건&lt;/td&gt;
&lt;td style=&quot;width: 14.1861%; text-align: center;&quot;&gt;30.2%&lt;/td&gt;
&lt;td style=&quot;width: 29.6511%; text-align: center;&quot;&gt;301건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.8372%; text-align: center;&quot;&gt;&lt;b&gt;0.5-1km&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2093%; text-align: center;&quot;&gt;50,888건&lt;/td&gt;
&lt;td style=&quot;width: 14.1861%; text-align: center;&quot;&gt;10.4%&lt;/td&gt;
&lt;td style=&quot;width: 29.6511%; text-align: center;&quot;&gt;298건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.8372%; text-align: center;&quot;&gt;&lt;b&gt;1-2km&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2093%; text-align: center;&quot;&gt;89,189건&lt;/td&gt;
&lt;td style=&quot;width: 14.1861%; text-align: center;&quot;&gt;18.2%&lt;/td&gt;
&lt;td style=&quot;width: 29.6511%; text-align: center;&quot;&gt;369건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.8372%; text-align: center;&quot;&gt;&lt;b&gt;2-3km&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2093%; text-align: center;&quot;&gt;54,859건&lt;/td&gt;
&lt;td style=&quot;width: 14.1861%; text-align: center;&quot;&gt;11.2%&lt;/td&gt;
&lt;td style=&quot;width: 29.6511%; text-align: center;&quot;&gt;308건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.8372%; text-align: center;&quot;&gt;&lt;b&gt;3-5km&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2093%; text-align: center;&quot;&gt;65,077건&lt;/td&gt;
&lt;td style=&quot;width: 14.1861%; text-align: center;&quot;&gt;13.3%&lt;/td&gt;
&lt;td style=&quot;width: 29.6511%; text-align: center;&quot;&gt;284건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.8372%; text-align: center;&quot;&gt;&lt;b&gt;5km 이상&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2093%; text-align: center;&quot;&gt;82,499건&lt;/td&gt;
&lt;td style=&quot;width: 14.1861%; text-align: center;&quot;&gt;16.8%&lt;/td&gt;
&lt;td style=&quot;width: 29.6511%; text-align: center;&quot;&gt;284건&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&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: #89f3ff;&quot;&gt;&lt;b&gt;4) 공영주차장을 더 만들 수는 없으니 ...&amp;nbsp; 효율을 올리자 !!  &lt;/b&gt;&lt;/span&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;도로 중복을 제거하면 전체 1,603개 도로 중 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;697개(43.5%)가 공영주차장으로부터 2km이상 떨어져&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;u&gt;2km나 떨어져있으면 주차를 하고도 30분을 걸어야하기에&lt;/u&gt; 주차장을 이용할 확률이 낮아지고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수원시가 불법주정차 감소 및 주차난 해소를 위해 &lt;span data-token-index=&quot;1&quot;&gt;공영주차장 46개소 최초 1시간 무료 주차 정책&lt;/span&gt; 시행을 시행했지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&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;/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;style4&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4️⃣ 결과물 !! 불법주정차 타파  &lt;/b&gt;&lt;/h3&gt;
&lt;p 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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwnh4o/btsQ2nRON2t/pkr1jrRtHlm57VjOwS7zUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwnh4o/btsQ2nRON2t/pkr1jrRtHlm57VjOwS7zUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwnh4o/btsQ2nRON2t/pkr1jrRtHlm57VjOwS7zUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbwnh4o%2FbtsQ2nRON2t%2Fpkr1jrRtHlm57VjOwS7zUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;668&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제안한 이유는&lt;/p&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: #ee2323;&quot;&gt;&lt;b&gt;상권과 상생&lt;/b&gt;&lt;/span&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;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;둘째,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;정책의 실현 가능성과 지속성을 위해 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;예산 효율성&lt;/b&gt;&lt;/span&gt; 측면을 고려&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;했습니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;나아가 상인들이 고객 유치를 위해 자발적으로 주차를 권장하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;선순환 구조를 만드는 데 기여&lt;/b&gt;할 것이라 생각했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5️⃣ 한국조사연구학회장상(우수상) 수상  &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1687&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUZohu/btsQ2Apw0ru/0EZsgb0B5u6t92kD4k30Ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUZohu/btsQ2Apw0ru/0EZsgb0B5u6t92kD4k30Ek/img.png&quot; data-alt=&quot;대회 발표 자료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUZohu/btsQ2Apw0ru/0EZsgb0B5u6t92kD4k30Ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUZohu%2FbtsQ2Apw0ru%2F0EZsgb0B5u6t92kD4k30Ek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;1687&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1687&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;대회 발표 자료&lt;/figcaption&gt;
&lt;/figure&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/dzlw4u/btsQ16Cy25a/EatQJWwp5klX1gfIdvsKxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzlw4u/btsQ16Cy25a/EatQJWwp5klX1gfIdvsKxK/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2000&quot; data-filename=&quot;blob&quot; data-is-animation=&quot;false&quot; style=&quot;width: 71.8816%; margin-right: 10px;&quot; data-widthpercent=&quot;72.73&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzlw4u/btsQ16Cy25a/EatQJWwp5klX1gfIdvsKxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdzlw4u%2FbtsQ16Cy25a%2FEatQJWwp5klX1gfIdvsKxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lFCMe/btsQ1WmqAQN/lNRpzvVgKyxe0N08XplWXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lFCMe/btsQ1WmqAQN/lNRpzvVgKyxe0N08XplWXk/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1920&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;27.27&quot; data-filename=&quot;blob&quot; style=&quot;width: 26.9556%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lFCMe/btsQ1WmqAQN/lNRpzvVgKyxe0N08XplWXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlFCMe%2FbtsQ1WmqAQN%2FlNRpzvVgKyxe0N08XplWXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1920&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;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: left;&quot;&gt;온라인으로 수상자 발표가 완료된 후 수원시정연구원에 직접 가서 발표도 하고 시상식도 진행했는데요!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: left;&quot;&gt;생각도 못한 꽃다발 까지 준비해주셔서 너무 마음 좋게 다녀왔습니다 :D&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; 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;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;생각해보니 지난번에 포스팅한 '&lt;a href=&quot;https://hamaco.tistory.com/entry/%ED%9A%8C%EA%B3%A0-DEVOCEAN-AI-Fellowship-7%EA%B8%B0-%EB%A9%B4%EC%A0%91-%ED%83%88%EB%9D%BD-%ED%9A%8C%EA%B3%A0-%F0%9F%A5%B2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;DEVOCEAN AI Fellowship 7기 면접 탈락 회고&lt;/a&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;i&gt;당장 실행 가능한가?&lt;/i&gt; 에서 OK가 되지 않으면 삭제했었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 팀들의 발표를 보니 AI로 시뮬레이션한 듯한 사진도 만들어서 넣어오시고&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  참고자료&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;✉️ &lt;a href=&quot;https://dacon.io/competitions/official/236539/overview/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;대회 안내&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://dacon.io/competitions/official/236539/codeshare/12807&quot;&gt;정책 제안 보고서&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://drive.google.com/file/d/1lG-vw26_-5VZ2lqM35rviEGtnncFK3hd/view?usp=sharing&quot;&gt;발표 자료&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://dacon.io/forum/415306&quot;&gt;수상 인터뷰&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>HAMA/Awards</category>
      <category>SRI데이터</category>
      <category>SRI데이터경진대회</category>
      <category>공공데이터</category>
      <category>공모전수상</category>
      <category>데이터공모전</category>
      <category>수상</category>
      <category>수원시</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/21</guid>
      <comments>https://hamaco.tistory.com/entry/%ED%9A%8C%EA%B3%A0-SRI-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B2%BD%EC%A7%84%EB%8C%80%ED%9A%8C-%EC%88%98%EC%9B%90%EC%8B%9C-%EC%A0%95%EC%B1%85-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4-%EC%A0%9C%EC%95%88-%F0%9F%8F%86%EC%9A%B0%EC%88%98%EC%83%81%F0%9F%8F%86#entry21comment</comments>
      <pubDate>Sat, 4 Oct 2025 21:00:12 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] SolveSQL 난이도2 문제 풀이 2 - REGEXP, DATE, STRFTIME, 열 추출</title>
      <link>https://hamaco.tistory.com/entry/SQL-SolveSQL-level2-set2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;안녕하세요! 하마코입니다.  &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;SolveSQL 난이도2 문제 풀이를 &lt;a title=&quot;전편&quot; href=&quot;https://hamaco.tistory.com/entry/SQL-SolveSQL-level2-set1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;전편&lt;/a&gt;에 이어서 진행해보려고 합니다!&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;정규표현식도 써보고, 셀프 조인도 써보고,&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;난이도 1보다 훨씬 더 많은 함수들과 조인을 쓰면서 풀어본 것 같아요!&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;총 7개 문제 풀이 시작하겠습니다!&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;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;외부 사이트에 Solvesql 문제를 올릴 수 없어서 링크만 남겨놓겠습니다!&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제1 - 다음날도 서울숲의 미세먼지 농도는 나쁨  &lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/bad-finedust-measure/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 처음에 LEAD()로 풀었는데 실패해서 .. 셀프 조인으로 풀었다. DATE()로 '-1 day'라고 명시할 수 있는 sqlite 함수를 처음 알았다. MySQL에서는 DATEADD() 같은거로 연산을 했는데 함수가 조금씩 다른 것 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1755772869333&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    m1.measured_at AS today,
    m2.measured_at AS next_day,
    m1.pm10,
    m2.pm10 AS next_pm10
FROM
    measurements AS m1
JOIN
    measurements AS m2
    ON
    m1.measured_at = DATE(m2.measured_at, '-1 day')
WHERE
    m2.pm10 &amp;gt; m1.pm10;&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;틀렸던 코드&lt;/p&gt;
&lt;pre id=&quot;code_1755772886258&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    DATE(measured_at) as today,
    DATE(measured_at, '+1 day') as next_day,
    pm10,
    LEAD(pm10) OVER (ORDER BY DATE(measured_at)) as next_pm10
FROM measurements;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제2 - 제목이 모음으로 끝나지 않는 영화&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/film-ending-with-consonant/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 맨 마지막이 모음으로 끝나는 걸 '%[AEIOU]' 써서 like 비교하려고 했는데 실패.. like 쓸거면 성실하게 '%A' 이런식으로 모두 따로 써야했다. 그래서 REGEXP를 사용해서 다시 풀었다.&lt;/p&gt;
&lt;pre id=&quot;code_1755772971396&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT title
FROM film
WHERE
    rating IN ('R', 'NC-17')
  AND
    title NOT REGEXP ('A$|E$|I$|O$|U$');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제3 - 언더스코어(_)가 포함되지 않은 데이터 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/data-without-underscore/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 여기도 where ㅁㅁ not like '%_%'로 했는데 데이터 추출이 이상해서 REGEXP로 작성했다.&lt;/p&gt;
&lt;pre id=&quot;code_1755773044079&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT DISTINCT page_location
FROM ga
WHERE page_location not REGEXP('_')
ORDER BY page_location;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제4 - 게임을 10개 이상 발매한 게임 배급사 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/publisher-with-many-games/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 조인해서 Group by, Having 사용해야했던 문제! 어렵지 않게 풀었다.&lt;/p&gt;
&lt;pre id=&quot;code_1755773101693&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT c.name
FROM games g
JOIN companies c ON g.publisher_id=c.company_id
GROUP BY g.publisher_id
HAVING COUNT(g.publisher_id) &amp;gt;= 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제5 - 기증품 비율 계산하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/ratio-of-gifts/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 풀었던 문제 중 제일 뿌듯했던 문제! With로 깔끔하게 구문 분리하고 비율도 계산했다. 특히 With에서 바로 COUNT()를 뽑으면 SELECT절에서 뽑기 어렵다는 것을 저번 문제풀이로 배워서 여기서도 적용했다.&lt;/p&gt;
&lt;pre id=&quot;code_1755773201954&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WITH gifts AS (
    SELECT *
    FROM artworks
    WHERE credit like '%gift%'
)
SELECT
    ROUND(((SELECT COUNT(*) FROM gifts) * 100.0 / COUNT(*)),3) as ratio
FROM artworks;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제6 - 최대값을 가진 행 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/max-row/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| With를 2개 써야하나 했는데, 쉽게 Where절에서 or로 풀 수 있었다. 다시 풀어보기 위해 다른 분의 답도 한 번 보고 다른 날에 다시 처음부터 풀어서 맞췄다.&lt;/p&gt;
&lt;pre id=&quot;code_1755773249454&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    id
FROM points
WHERE x = (SELECT MAX(x) FROM points) or y = (SELECT MAX(y) FROM points)
ORDER BY id;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제7 - 3년간 들어온 소장품 집계하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://solvesql.com/problems/max-row/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 내가 제일 약한 열에서 여러개 뽑기..! 몇몇 블로그를 찾아보고 적용했다. 1) MySQL은 YEAR() 같은 함수가 있는데 sqlite는 STRFTIME()으로 뽑아야했다. 언어 여러개를 하니까 조금 헷갈린다. 2) case when 문을 통해 열을 추출하는 게 어려웠다.&lt;/p&gt;
&lt;pre id=&quot;code_1755773356467&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    classification,
    COUNT(CASE WHEN STRFTIME('%Y', acquisition_date) = '2014' THEN 1 END) AS '2014',
    COUNT(CASE WHEN STRFTIME('%Y', acquisition_date) = '2015' THEN 1 END) AS '2015',
    COUNT(CASE WHEN STRFTIME('%Y', acquisition_date) = '2016' THEN 1 END) AS '2016'
FROM artworks
GROUP BY 1
ORDER BY 1;&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-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxM9Zn%2FbtsPMMdwQ4e%2F4oaJ0St3V5DBuNP8bKI6jK%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;400&quot; height=&quot;216&quot; data-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&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;</description>
      <category>DEV/Data Analysis</category>
      <category>solvesql</category>
      <category>SQL</category>
      <category>SQLite</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/20</guid>
      <comments>https://hamaco.tistory.com/entry/SQL-SolveSQL-level2-set2#entry20comment</comments>
      <pubDate>Thu, 21 Aug 2025 20:00:31 +0900</pubDate>
    </item>
    <item>
      <title>[어학 꿀팁] TOEIC Speaking 독학 4일 만에 IH 달성한 방법 (feat. 시계토끼제니쌤)</title>
      <link>https://hamaco.tistory.com/entry/%EC%96%B4%ED%95%99-%EA%BF%80%ED%8C%81-TOEIC-Speaking-%EB%8F%85%ED%95%99-4%EC%9D%BC-%EB%A7%8C%EC%97%90-IH-%EB%8B%AC%EC%84%B1%ED%95%9C-%EB%B0%A9%EB%B2%95-feat-%EC%8B%9C%EA%B3%84%ED%86%A0%EB%81%BC%EC%A0%9C%EB%8B%88%EC%8C%A4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;안녕하세요! 하마코입니다.  &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유효 기간이 짧은 어학 점수는 &lt;i&gt;취업 준비를 시작할 때쯤 따야겠다&lt;/i&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;1트 + 4일 만에 Intermediate High&lt;/b&gt;&lt;/span&gt; 점수를 달성한 저처럼!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 분들께도 용기와 꿀팁을 드리고자 글을 남겨봅니다. :D&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2266&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BcHqZ/btsPVaFBAsd/k4m62u9Nd7gNpEI6So62F1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BcHqZ/btsPVaFBAsd/k4m62u9Nd7gNpEI6So62F1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BcHqZ/btsPVaFBAsd/k4m62u9Nd7gNpEI6So62F1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBcHqZ%2FbtsPVaFBAsd%2Fk4m62u9Nd7gNpEI6So62F1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2266&quot; height=&quot;360&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2266&quot; data-origin-height=&quot;360&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;style3&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;0️⃣ TOEIC Speaking VS OPIc&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;TOEIC Speaking은 아래 파트1 ~ 파트5 다섯가지의 유형이 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;개인적으로 체감한 난이도는 파트5 &amp;gt; 파트3 &amp;gt; 파트4 &amp;gt; 파트2 &amp;gt; 파트1 순서입니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 102px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 7.90698%; height: 17px; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 41.8604%; height: 17px; text-align: center;&quot;&gt;문항 설명&lt;/td&gt;
&lt;td style=&quot;width: 10.814%; height: 17px; text-align: center;&quot;&gt;준비시간&lt;/td&gt;
&lt;td style=&quot;width: 17.7907%; height: 17px; text-align: center;&quot;&gt;답변 시간&lt;/td&gt;
&lt;td style=&quot;width: 21.6279%; height: 17px; text-align: center;&quot;&gt;중요시 보는 점&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 7.90698%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;파트1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.8604%; height: 17px; text-align: center;&quot;&gt;지문 읽기 (Q1, Q2)&lt;/td&gt;
&lt;td style=&quot;width: 10.814%; height: 17px; text-align: center;&quot;&gt;각 45s&lt;/td&gt;
&lt;td style=&quot;width: 17.7907%; height: 17px; text-align: center;&quot;&gt;각 45s&lt;/td&gt;
&lt;td style=&quot;width: 21.6279%; height: 17px; text-align: center;&quot;&gt;발음, 억양, 강세&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 7.90698%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;파트2&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.8604%; height: 17px; text-align: center;&quot;&gt;사진 묘사 (Q3, Q4)&lt;/td&gt;
&lt;td style=&quot;width: 10.814%; height: 17px; text-align: center;&quot;&gt;각 45s&lt;/td&gt;
&lt;td style=&quot;width: 17.7907%; height: 17px; text-align: center;&quot;&gt;각 30s&lt;/td&gt;
&lt;td style=&quot;width: 21.6279%; height: 17px; text-align: center;&quot;&gt;위 내용 + 문법, 어휘, 일관성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 7.90698%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;파트3&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.8604%; height: 17px; text-align: center;&quot;&gt;질문에 답변하기 (Q5, Q6, Q7)&lt;/td&gt;
&lt;td style=&quot;width: 10.814%; height: 17px; text-align: center;&quot;&gt;각 3s&lt;/td&gt;
&lt;td style=&quot;width: 17.7907%; height: 17px; text-align: center;&quot;&gt;15s, 15s, 30s&lt;/td&gt;
&lt;td style=&quot;width: 21.6279%; height: 17px; text-align: center;&quot;&gt;위 내용 + 완성도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 7.90698%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;파트4&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.8604%; height: 17px; text-align: center;&quot;&gt;제공된 정보를 사용해서 질문에 답하기 (Q8, Q9, Q10)&lt;/td&gt;
&lt;td style=&quot;width: 10.814%; height: 17px; text-align: center;&quot;&gt;각 3s&lt;/td&gt;
&lt;td style=&quot;width: 17.7907%; height: 17px; text-align: center;&quot;&gt;15s, 15s, 30s&lt;/td&gt;
&lt;td style=&quot;width: 21.6279%; height: 17px; text-align: center;&quot;&gt;위 내용과 동일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 7.90698%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;파트5&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.8604%; height: 17px; text-align: center;&quot;&gt;의견 말하기 (Q11)&lt;/td&gt;
&lt;td style=&quot;width: 10.814%; height: 17px; text-align: center;&quot;&gt;45s&lt;/td&gt;
&lt;td style=&quot;width: 17.7907%; height: 17px; text-align: center;&quot;&gt;60s&lt;/td&gt;
&lt;td style=&quot;width: 21.6279%; height: 17px; text-align: center;&quot;&gt;위 내용과 동일&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;TOEIC Speaking을 선택한 이유는, OPIc 보다 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;조금 더 정제된 답변을 준비&lt;/b&gt;&lt;/span&gt;해갈 수 있겠다고 판단해서였는데요.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;OPIc은 중간에 filler라는 문장 사이사이를 채워주는 단어들도 사용해야 하고,&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;문제가 잘 이해되지 않으면 '너 어려운 질문을 하는구나~~' 하면서 영어로 문장을 이어가야 했는데&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;저는 프리토킹을 하다보면 답변이 산으로 가거나 느려지고 적절한 답변을 못하는 편이라고 생각했습니다.&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;b&gt; 노트테이킹하며 생각할 시간이 있고, 말하고 싶은 내용만 정확히 말하는 토스&lt;/b&gt;로 시험보고 싶어 선택했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래에서 얘기하겠지만 만능문장들도 있어서 많이 연습하고 외워가면 IM3는 그냥 나올 것 같은 느낌이었어요!&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;많이들 얘기하시지만 어학 성적은 보통 토스나 오픽 중 1개만 있어도 되기에 더 잘할 수 있는 거로 하자고 생각했습니다!&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;학교 졸업요건 맞출 때도 토스를 더 좋게 봐주더라고요 :)&lt;/p&gt;
&lt;p 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;1️⃣&lt;span&gt; &amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;원래 영어를 잘 하시나요?&lt;/b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;저는 그렇게 생각했으나... 토스를 준비하면서 &lt;u&gt;발음, 억양, 강세 모두 약하다&lt;/u&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;객관적으로 볼 때 읽기도, 듣기도 어느 정도 하지만 말하기는 조금 부족했던 채로 시작한 것 같습니다.&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2️⃣&amp;nbsp; 접수로 마음을 다잡기&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;TOEIC Speaking(&lt;i&gt;a.k.a 토스&lt;/i&gt;)은 매주 시험을 볼 수 있기 때문에 원한다면 언제든지 접수가 가능한데요!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;보통 &lt;b&gt;수,토,일 요일&lt;/b&gt;에 시험이 있고 &lt;u&gt;3일 전에 접수를 마감&lt;/u&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;color: #ee2323;&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;공부를 위해 마음을 다잡아야하고, 첫 토스 공부라면 일주일 정도의 시간이 필요할 수 있거든요!&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: #ee2323;&quot;&gt;&lt;b&gt;84,000원&lt;/b&gt;&lt;/span&gt;이라는 큰 금액을 지불해서 꼭 1트만에 IH를 달성하고 싶었습니다... &lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;접수는 &lt;a title=&quot;여기&quot; href=&quot;https://www.toeicswt.co.kr/receipt/receiptStep1.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;여기&lt;/a&gt;에서 할 수 있어요!&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1755562358044&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;TOEIC Speaking&amp;reg; 공식 사이트&quot; data-og-description=&quot;직장과 일상 생활에 필요한 영어 말하기 및 쓰기 능력 평가&quot; data-og-host=&quot;www.toeicswt.co.kr&quot; data-og-source-url=&quot;https://www.toeicswt.co.kr/receipt/receiptStep1.php&quot; data-og-url=&quot;https://www.toeicswt.co.kr&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MENCR/hyZC9BMukj/NAxrLfQvP4JakDr0mGvlO0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/duw0HM/hyZC6yigem/WePGhCnAEMgPLu97n8e1v1/img.jpg?width=726&amp;amp;height=340&amp;amp;face=0_0_726_340,https://scrap.kakaocdn.net/dn/brezDc/hyZyiHbncZ/wTSCk3nclk0iJclXXJ0ocK/img.jpg?width=726&amp;amp;height=340&amp;amp;face=0_0_726_340&quot;&gt;&lt;a href=&quot;https://www.toeicswt.co.kr/receipt/receiptStep1.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.toeicswt.co.kr/receipt/receiptStep1.php&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MENCR/hyZC9BMukj/NAxrLfQvP4JakDr0mGvlO0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/duw0HM/hyZC6yigem/WePGhCnAEMgPLu97n8e1v1/img.jpg?width=726&amp;amp;height=340&amp;amp;face=0_0_726_340,https://scrap.kakaocdn.net/dn/brezDc/hyZyiHbncZ/wTSCk3nclk0iJclXXJ0ocK/img.jpg?width=726&amp;amp;height=340&amp;amp;face=0_0_726_340');&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;TOEIC Speaking&amp;reg; 공식 사이트&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.toeicswt.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;color: #333333; text-align: start;&quot; 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;3️⃣&amp;nbsp; 일주일 공부 준비법&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;토스 AL을 목표로 준비하신 여러 블로그들을 참고하면서 독학 방법을 찾아봤습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;보통 유튜브로 공부를 많이 하고 '&lt;a title=&quot;시계토끼제니쌤&quot; href=&quot;https://www.youtube.com/@rabbit_jennycha&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;시계토끼제니쌤&lt;/a&gt;' 또는 '&lt;a title=&quot;제이크 토익스피킹&quot; href=&quot;https://www.youtube.com/@%EC%A0%9C%EC%9D%B4%ED%81%AC%ED%86%A0%EC%9D%B5%EC%8A%A4%ED%94%BC%ED%82%B9&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;제이크 토익스피킹&lt;/a&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;제가 토스를 준비한 2025년 8월 기준, 시계토끼제니쌤 최근 영상들에 파트1~5 입문 정리 영상이 나와있고 &lt;span style=&quot;color: #ee2323;&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;모의고사 영상도 많아서 시계토끼제니쌤으로 선정했습니다!! (게다가 정말 포인트를 잘 잡아주시고 친절하세요-!)&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: #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;(4일만에 공부하고 싶다면 아래 2일치 내용을 압축해서 하루에 진행하면 됩니다!)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1일차. &lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;파트1 ~ 파트5 벼락치기 강의 중 파트1~파트3&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;보면서 필기&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;총 영상 길이가 3시간 30분인데 처음 듣는 생소한 내용들이라 하루에 파트5까지 끝내려고 하면 머리 아픕니다..&lt;/li&gt;
&lt;li&gt;필요한 핵심 내용 알려주실 때 필기 해두시면 두고두고 보기 좋아요!&lt;/li&gt;
&lt;li&gt;고정 댓글에 있는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;무료 자료&lt;/b&gt;&lt;/span&gt;를 꼭 다운받으세요!!! &lt;b&gt;(a.k.a 만능문장)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #0f0f0f; text-align: start;&quot;&gt;'토익스피킹 독학용 파트별 핵심 강의   노베이스 3시간 반 벼락치기' &lt;a title=&quot;링크&quot; href=&quot;https://youtu.be/CHCq0vh6Frg?feature=shared&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=CHCq0vh6Frg&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/clK0ct/hyZyoHmZDh/gHczb1FPsFRl4JScu5xCV0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=872_164_1012_316,https://scrap.kakaocdn.net/dn/c7S3gS/hyZyeENJ3o/0QCQUFOOkMmdXTpKgFArq0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=872_164_1012_316&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-title=&quot;토익스피킹 독학용 파트별 핵심 강의   노베이스 3시간 반 벼락치기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/CHCq0vh6Frg&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2일차.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;파트1 ~ 파트5 벼락치기 강의 중 파트4~파트5&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;보면서 필기 + 파트1~3 간단 복습&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;고정 댓글에 있는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;무료 자료&lt;/b&gt;&lt;/span&gt;를 꼭 다운받으세요!!! &lt;b&gt;(a.k.a 만능문장)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #0f0f0f; text-align: start;&quot;&gt;'토익스피킹 독학용 파트별 핵심 강의   노베이스 3시간 반 벼락치기' &lt;a href=&quot;https://youtu.be/CHCq0vh6Frg?feature=shared&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt;&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;3일차~6일차.&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;만능문장 암기&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt; + 모&lt;/span&gt;&lt;/b&gt;의고사 풀이 하루 1개 이상&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-origin-width=&quot;1094&quot; data-origin-height=&quot;966&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oCRgA/btsPUDhsUqY/0K3DC2JKnhKUSqAMVfQhFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oCRgA/btsPUDhsUqY/0K3DC2JKnhKUSqAMVfQhFK/img.png&quot; data-alt=&quot;이렇게 앞에 [토익스피킹 모의고사]가 있다면 모의고사 + 해설 영상&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oCRgA/btsPUDhsUqY/0K3DC2JKnhKUSqAMVfQhFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoCRgA%2FbtsPUDhsUqY%2F0K3DC2JKnhKUSqAMVfQhFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;441&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;966&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이렇게 앞에 [토익스피킹 모의고사]가 있다면 모의고사 + 해설 영상&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;만능문장 암기 생각보다 잘 되지 않습니다. 많이 말해봐야 익어요! &lt;b&gt;만능문장 암기하고 모의고사 풀이를 진행&lt;/b&gt;하시면 됩니다.&lt;/li&gt;
&lt;li&gt;해설까지 있어서 제가 신경쓰지 못했던 부분들을 많이 잡아주십니다. (특히 발음, 억양, 강세!)&lt;/li&gt;
&lt;li&gt;저는 시간을 최소한으로 써서 모의고사를 한 4개 정도 풀어보고 간 것 같은데, 다른 영상으로 더 풀어보시면 더 좋을 거고&lt;br /&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;만능 문장 암기, 취약점 또는 파트3/파트5 집중 준비 + 모의고사 필요한 만큼!&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시계토끼제니쌤이 추천하시는 만능문장 암기 순서는 파트3-파트5-파트2-파트4 순서이지만,&lt;br /&gt;시간이 없던 저는 어려운 파트5 만능문장은 과감히 버리고   파트3 만능문장으로 어떻게든 해보겠다고 생각했습니다.&lt;br /&gt;그래서 파트2~파트4 만능문장은 거의 외워갔고 모르는 단어들도 많이 공부했습니다.&lt;/li&gt;
&lt;li&gt;나름대로 파트5에 파트3 문장들을 사용했다고 생각하지만, 시간이 많다면 외우면 좋을 것 같아요 !!&lt;/li&gt;
&lt;li&gt;파트3은 짧은 시간 내에 생각 정리하는 것 / 파트5는 말을 조리있게 하는 것에 신경쓰면서 더 준비해주세요!&lt;/li&gt;
&lt;li&gt;본인의 취약점이 있다면 많이 연습해주세요!&lt;/li&gt;
&lt;li&gt;다음날을 위해 목을 따뜻하게 하고, 가습기도 틀고, 따뜻한 물도 많이 마셔주세요!&lt;br /&gt;갑자기 목을 많이 쓰니까 저는 목이 너무 칼칼하더라고요. 당일에 말도 못할 뻔 했습니다.. &lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4️⃣&amp;nbsp; 시험보러 가서 쫄지 않는 법&lt;/b&gt;&lt;/h3&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;( 발음이 원어민 같은 분들도 계셔서 너무나도 놀란 ... 그치만 저도 당당히 말했습니다 )&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;답변을 조금 길게 하거나 읽기인 파트1 파트에서 조금 느리게 읽다보면&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;1트 합격을 위해 &lt;b&gt;부끄러움 없이!! 누가 듣고 있다는 생각없이!! 시험보세요!&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5️⃣&amp;nbsp; 누구도 안 알려주는 마지막 꿀팁&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;1) 조금 더 저렴하게 시험보기!&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;저는 학교에서 토스와 제휴를 맺고 있어서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&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;당일에 꼭 재학증명서를 출력해가야하는데, 뽑아오라는 안내가 결제할 때 1번, 시험 당일에 1번 오기 때문에 잊을 수 있어요.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;PDF도 안 되고 프린트를 해야하기 때문에 잊지 말고 가져가세요!&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;color: #ee2323;&quot;&gt;&lt;b&gt;10% 할인 쿠폰&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;공지사항이나 이벤트 확인하고 할인받으면 좋을 것 같습니다!!&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;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;2) 오픈채팅방 적극 활용&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;어떤 시험이든 오픈채팅방이 정보가 제일 많고 활발히 얘기하는 것 같아요.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;토스는 더 높은 점수를 위해 2트, 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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;'단기 토익스피킹 스터디' 오픈채팅방 &lt;a title=&quot;링크&quot; href=&quot;https://open.kakao.com/o/gDNF68te&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&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;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;3) 마이크 설정 하는 법&lt;/b&gt;&lt;/span&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;파트1 같은 지문이 있고 그걸 읽어보며 마이크 테스트를 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만!! &lt;u&gt;&lt;b&gt;정해진 녹음 시간이 있어서 지문 1문장 읽고 듣고 할 수가 없어요.&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들면, 녹음 시간이 1분이면 1분 간 녹음이 돌아가고 그 후에 들어볼 수 있는 시스템입니다.&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번하고 뒤로 넘겨요ㅠㅠ 저도 그래서 따라가기 위해 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;화면에 마이크 어떻게 설정하세요~ 라는 예시 이미지가 나오는데 그거 따라했다가 바람소리가 너무 많이 들어가서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;마이크는 입 앞이 아닌&lt;/b&gt;&lt;/span&gt;, &lt;b&gt;입바람이 닺지 않는 입술 가까운 아래쪽&lt;/b&gt;에 두는 게 소리가 좋았던 것 같아요!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;녹음 전에 입 앞에 손을 두고 파파 후후 해보면서&lt;/b&gt; 바람이 닺지 않는 곳에 마이크를 위치시키고 테스트해보세요!!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;84,000원 가치있게 쓰여야된다!!&lt;/i&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;4) 스크래치 노트 적극 활용법&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;토스 시험을 보면, OMR 카드로 인적 사항을 기입하고 뒷면에 센터에서 제공하는 펜으로 필기가 가능합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;저는 검정색 컴싸로 OMR 카드를 마킹하고 동일한 펜으로 스크래치 노트를 사용해야 했어요.&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;파트1은 필기할 내용이 없기 때문에 파트1 문제 설명 나올 때나 틈틈히&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;파트2, 파트5 문단 구조를 작성&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;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;5) 가족, 친구, 연인 찬스로 꼼꼼히 암기하기&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;암기와 문법에 취약한 편이라 연인 찬스를 써서 &lt;b&gt;만능 문장을 한글로 읽어달라고 하고 영어로 답변&lt;/b&gt;하면서 외웠습니다. (파트2 제외)&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;같이 토스를 공부하는 분이 있거나, 암기를 도와주실 분이 있다면 이런 공부법도 추천드립니다!&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;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;b&gt;좋아요&lt;/b&gt;   부탁드리며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추후 제 글을 보고 IH를 달성하셨다면 !! &lt;b&gt;댓글&lt;/b&gt; 한 번씩 남겨주시러 다시 와주시면 그거로 충분합니다 :D&lt;/p&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;긴 긁 읽어주셔서 감사합니다!&lt;/p&gt;</description>
      <category>HAMA/Awards</category>
      <category>IH</category>
      <category>toeic</category>
      <category>TOEICSPEAKING</category>
      <category>독학</category>
      <category>어학</category>
      <category>어학점수</category>
      <category>영어</category>
      <category>토스</category>
      <category>토스IH</category>
      <category>토익스피킹</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/19</guid>
      <comments>https://hamaco.tistory.com/entry/%EC%96%B4%ED%95%99-%EA%BF%80%ED%8C%81-TOEIC-Speaking-%EB%8F%85%ED%95%99-4%EC%9D%BC-%EB%A7%8C%EC%97%90-IH-%EB%8B%AC%EC%84%B1%ED%95%9C-%EB%B0%A9%EB%B2%95-feat-%EC%8B%9C%EA%B3%84%ED%86%A0%EB%81%BC%EC%A0%9C%EB%8B%88%EC%8C%A4#entry19comment</comments>
      <pubDate>Tue, 19 Aug 2025 23:00:10 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] SolveSQL 난이도2 문제 풀이 1 - group by, having, where, in, between</title>
      <link>https://hamaco.tistory.com/entry/SQL-SolveSQL-level2-set1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;안녕하세요! 하마코입니다.  &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;SolveSQL 난이도1 무료 문제들을 모두 풀고 이어서 난이도2 문제 풀이를 시작했습니다!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;난이도1 문제 풀이는 아래 링크를 참고해주세요! :D&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755772601286&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;[SQL] SolveSQL 난이도1 문제 풀이 1 - select, where, count, distinct, min/max, substring&quot; data-og-description=&quot;안녕하세요! 하마코입니다.   항상 프로그래머스로만 SQL을 연습했는데, 문제를 Lv.0부터 Lv.5까지 모두 풀어봐서 이번에는 SolveSQL로 문제 풀이를 진행해보려고 합니다! 외부 사이트에 Solvesql 문&quot; data-og-host=&quot;hamaco.tistory.com&quot; data-og-source-url=&quot;https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set1&quot; data-og-url=&quot;https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set1&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/k7FhR/hyZzDxPbuF/i94E2rPPNkPvjDYZWPUkQk/img.jpg?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/bjPVGj/hyZzwFpZQK/PkjkPdGV5CPYmrKrNGE7d1/img.jpg?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/HwM6U/hyZCX9xUg4/hNK5QMKJyTR9syI7ujoBq1/img.png?width=2400&amp;amp;height=2400&amp;amp;face=0_0_2400_2400&quot;&gt;&lt;a href=&quot;https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set1&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/k7FhR/hyZzDxPbuF/i94E2rPPNkPvjDYZWPUkQk/img.jpg?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/bjPVGj/hyZzwFpZQK/PkjkPdGV5CPYmrKrNGE7d1/img.jpg?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/HwM6U/hyZCX9xUg4/hNK5QMKJyTR9syI7ujoBq1/img.png?width=2400&amp;amp;height=2400&amp;amp;face=0_0_2400_2400');&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;[SQL] SolveSQL 난이도1 문제 풀이 1 - select, where, count, distinct, min/max, substring&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요! 하마코입니다.   항상 프로그래머스로만 SQL을 연습했는데, 문제를 Lv.0부터 Lv.5까지 모두 풀어봐서 이번에는 SolveSQL로 문제 풀이를 진행해보려고 합니다! 외부 사이트에 Solvesql 문&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hamaco.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;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;난이도1을 풀다가 난이도2를 푸니까 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;조금 어려워진 것을 체감했습니다.  &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;그래도 열심히 풀었더니 모두 정답을 맞췄답니다 - !&lt;/span&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 style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;외부 사이트에 Solvesql 문제를 올릴 수 없어서 링크만 남겨놓겠습니다!&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제1 - 두 테이블 결합하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/join/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 조인은 잘하지요 :)&lt;/p&gt;
&lt;pre id=&quot;code_1754997766938&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    DISTINCT r.athlete_id
FROM RECORDS r
JOIN EVENTS e
    ON r.event_id = e.id
WHERE e.SPORT = 'Golf';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제2 - 레스토랑 웨이터의 팁 분석&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/tip-analysis/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| GROUP BY를 2개에 해야했던 문제입니다. 요일 + 타임 조합으로 그룹을 나눠야했던 문제!&lt;/p&gt;
&lt;pre id=&quot;code_1754997852550&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    DAY,
    TIME,
    ROUND(AVG(TIP),2) as avg_tip,
    ROUND(AVG(SIZE),2) as avg_size
FROM TIPS
GROUP BY DAY, TIME
ORDER BY DAY, TIME;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제3 -일별 블로그 방문자 수 집계&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/blog-counter/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| BETWEEN, AND 써서 특정 날짜 안에 있도록 집계한 문제입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1754997934793&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    DATE(EVENT_DATE_KST) as dt,
    COUNT(DISTINCT user_pseudo_id) as users
FROM GA
WHERE DT
    BETWEEN '2021-08-02' AND '2021-08-09'
GROUP BY DT
ORDER BY DT;&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제4 - 우리 플랫폼에 정착한 판매자 2&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http:///Users/seyeon/CodingWorkSpace/Studying/data-logbook/sql/solvesql/level2/set01.sql&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 이번 10문제 중 가장 시간을 많이 쓴 문제입니다. 주문당 금액이 50이 넘는 판매 건수가 100건이 넘는 판매자를 찾는 문제였는데요. 너무 복잡하게 생각해서 서브쿼리도 써보고 왔다갔다 했는데 where절에서 금액 찾고, Having절에서 판매 건수 찾으면 됐던..!! 맞추고 보니 간단한 문제였습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1754998048753&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    SELLER_ID,
    COUNT(DISTINCT ORDER_ID) as orders
FROM
    OLIST_ORDER_ITEMS_DATASET
WHERE
    PRICE &amp;gt;= 50
GROUP BY
    SELLER_ID
HAVING
    COUNT(DISTINCT ORDER_ID) &amp;gt;= 100
ORDER BY orders DESC;&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제5 - 레스토랑의 일일 매출&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/daily-revenue/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| GROUP BY만 알면 풀 수 있는 간단한 문제 :)&lt;/p&gt;
&lt;pre id=&quot;code_1754998094290&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    DAY,
    SUM(TOTAL_BILL) as 'revenue_daily'
FROM TIPS
GROUP BY DAY
HAVING revenue_daily &amp;gt;= 1000
ORDER BY revenue_daily DESC;&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제6 - 버뮤다 삼각지대에 들어가버린 택배&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/shipment-in-bermuda/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| DATE 함수를 SELECT절에 쓰고 alias 한거를 Group by에서도 그대로 쓸 수 있었는데 이걸 인지하지 못해서 헤매다가 늦게 풀었습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1754998166090&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    DATE(ORDER_DELIVERED_CARRIER_DATE) as delivered_carrier_date,
    COUNT(DISTINCT ORDER_ID) as orders
FROM
    OLIST_ORDERS_DATASET
WHERE
    ORDER_DELIVERED_CUSTOMER_DATE is NULL
  AND
    delivered_carrier_date like '2017-01%'
GROUP BY
    delivered_carrier_date
ORDER BY
    delivered_carrier_date;&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제7 - 쇼핑몰의 일일 매출액&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/olist-daily-revenue/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 조인하고, 문제6에서 봤듯 alias 명칭으로 where절 사용도 해주고, where절에서 날짜를 &amp;gt;=로 표현도 해준 문제!&lt;/p&gt;
&lt;pre id=&quot;code_1754998222417&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    DATE(d.ORDER_PURCHASE_TIMESTAMP) as dt,
    ROUND(SUM(p.PAYMENT_VALUE),2) as revenue_daily
FROM OLIST_ORDERS_DATASET d
    JOIN OLIST_ORDER_PAYMENTS_DATASET p ON d.ORDER_ID = p.ORDER_ID
WHERE dt &amp;gt;= '2018-01-01'
GROUP BY dt
ORDER BY dt;&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제8 - 점검이 필요한 자전거 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/inspection-needed-bike/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| RENT_AT, RETURN_AT(대여,반납시간) 각각 날짜 설정해줬습니다!&lt;/p&gt;
&lt;pre id=&quot;code_1754998256774&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    BIKE_ID
FROM RENTAL_HISTORY
WHERE RENT_AT &amp;gt;= '2021-01' and RETURN_AT &amp;lt; '2021-02'
GROUP BY BIKE_ID
HAVING SUM(DISTANCE) &amp;gt;= 50000;&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제9 - 레스토랑의 대목&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/high-season-of-restaurant/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 첫 FROM 절부터 서브쿼리를 넣으면 * 조회를 할 수 없기에, Where절에 IN을 써서 요일을 먼저 고르고, * 조회 해줬습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1754998304215&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    *
FROM TIPS
WHERE DAY in (
    SELECT
        DAY
    FROM TIPS
    GROUP BY DAY
    HAVING SUM(TOTAL_BILL) &amp;gt;= 1500
);&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;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제10 - 레스토랑의 요일별 VIP&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/restaurant-vip/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 요일별 최대 매출액! Having절에 MAX() 사용했습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1754998386972&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT *
FROM TIPS
GROUP BY DAY
HAVING MAX(TOTAL_BILL);&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-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxM9Zn%2FbtsPMMdwQ4e%2F4oaJ0St3V5DBuNP8bKI6jK%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;400&quot; height=&quot;216&quot; data-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&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;</description>
      <category>DEV/Data Analysis</category>
      <category>solvesql</category>
      <category>SQL</category>
      <category>sqllite</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/18</guid>
      <comments>https://hamaco.tistory.com/entry/SQL-SolveSQL-level2-set1#entry18comment</comments>
      <pubDate>Tue, 12 Aug 2025 21:00:19 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] SolveSQL 난이도1 문제 풀이 2 - distinct, like, avg, round, 서브쿼리</title>
      <link>https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; 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;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;꾸준히 하는 SolveSQL 문제 풀이! &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: #333333; text-align: start;&quot;&gt;저번 &lt;a title=&quot;글&quot; href=&quot;https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;글&lt;/a&gt;에 이어 난이도1 문제 10개를 풀어보았습니다.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;외부 사이트에 Solvesql 문제를 올릴 수 없어서 링크만 남겨놓겠습니다!&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제1 - 많이 주문한 테이블 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/find-tables-with-high-bill/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| Group&amp;nbsp;by를&amp;nbsp;못&amp;nbsp;쓰는&amp;nbsp;상황에서&amp;nbsp;Where&amp;nbsp;절에&amp;nbsp;AVG를&amp;nbsp;어떻게&amp;nbsp;고민할까&amp;nbsp;많이&amp;nbsp;고민했는데&amp;nbsp;&lt;b&gt;서브쿼리&lt;/b&gt;가&amp;nbsp;있었다..!&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT *
FROM TIPS
WHERE TOTAL_BILL &amp;gt; (
    SELECT AVG(TOTAL_BILL) FROM TIPS
);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제2 - 레스토랑의 일일 평균 매출액 계산하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/sales-summary/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| From절에 Select 절을 써야했던 문제 ! 어렵지는 않게 풀었다. ROUND()로 반올림도 해줬다.&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
    ROUND(AVG(sales),2) as avg_sales
FROM (
     SELECT
         SUM(TOTAL_BILL) as sales
     FROM TIPS
     GROUP BY DAY
     );&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제3 - 레스토랑의 영업일&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/restaurant-business-day/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| DISTINCT 쓰는 손풀기 문제!&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
    DISTINCT DAY as day_of_week
FROM TIPS;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제4 - 크리스마스 게임 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/restaurant-business-day/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| Like를 사용하며 %를 쓰는 게 중요했던 문제! %알면 쉽게 풀 수 있다.&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
    GAME_ID,
    NAME,
    YEAR
FROM GAMES
WHERE NAME LIKE '%Christmas%' or NAME LIKE '%Santa%';&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제5 - 펭귄 조사하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/inspect-penguins/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 손풀기 문제, 펭귄 조사라는 주제가 귀엽다 (?)&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT
    DISTINCT SPECIES,
    ISLAND
FROM PENGUINS
ORDER BY ISLAND;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제6 - 지자체별 따릉이 정류소 개수 세기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/count-stations/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| Group by 사용하는 손풀기 문제 :)&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT
    LOCAL,
    COUNT(*) as num_stations
FROM STATION
GROUP BY LOCAL
ORDER BY NUM_STATIONS;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제7 - 메리 크리스마스 2024&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/merry-christmas-2024/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| SolveSQL 사이트에서 코테로 지친 사람들을 위해 준비한 간단한 문제다. 근데 sql로 Hello World를 프린트해본적 없다보니 이게 Level 1 중에서 제일 어려웠다...  (무려 구글링해보고 깨달았다..)&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 'Merry Christmas!';&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&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;다음 포스팅부터는 Level2 풀이가 이어집니다! :D&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xM9Zn/btsPMMdwQ4e/4oaJ0St3V5DBuNP8bKI6jK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxM9Zn%2FbtsPMMdwQ4e%2F4oaJ0St3V5DBuNP8bKI6jK%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;400&quot; height=&quot;216&quot; data-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>DEV/Data Analysis</category>
      <category>solvesql</category>
      <category>SQL</category>
      <category>sqllite</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/17</guid>
      <comments>https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set2#entry17comment</comments>
      <pubDate>Sat, 9 Aug 2025 21:00:56 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] SolveSQL 난이도1 문제 풀이 1 - select, where, count, distinct, min/max, substring</title>
      <link>https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;안녕하세요! 하마코입니다.  &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;항상 프로그래머스로만 SQL을 연습했는데, 문제를 Lv.0부터 Lv.5까지 모두 풀어봐서 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;이번에는 SolveSQL로 문제 풀이를 진행해보려고 합니다!&lt;br /&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;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;&lt;i&gt;외부 사이트에 Solvesql 문제를 올릴 수 없어서 링크만 남겨놓겠습니다!&lt;/i&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제1 - 모든 데이터 조회하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/select-all/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt; | 손풀기 문제 :D&lt;/p&gt;
&lt;pre id=&quot;code_1753759533215&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM POINTS;&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제2 - 일부 데이터 조회하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/select-where/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt; | where절 쓰는 손풀기 문제!&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT *
FROM POINTS
WHERE QUARTET = 'I';&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제3 - 데이터 정렬하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/order-by/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt; | order by 쓰는 손풀기 문제! asc는 써도 되고 안 써도 된다.&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT *
FROM POINTS
WHERE QUARTET = 'I'
ORDER BY Y;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제4 - 데이터 그룹으로 묶기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/group-by/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| Round로 소수점 셋째 자리에서 반올림 해주고, AVG와 VARIANCE로 평균과 표본분산을 구했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;VARIANCE 함수가 VAR()만 써도 되는 줄 알았는데 전체 이름을 다 써야했다.&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
    QUARTET,
    ROUND(AVG(X),2) AS 'x_mean',
    ROUND(VARIANCE(X),2) AS 'x_var',
    ROUND(AVG(Y),2) AS 'y_mean',
    ROUND(VARIANCE(Y),2) AS 'y_var'
FROM POINTS
GROUP BY QUARTET;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제5 - 특정 컬럼만 조회하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/select-column/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 여러 컬럼 조회도 손풀기 :)&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT X, Y FROM POINTS;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제6 - 몇 분이서 오셨어요?&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/size-of-table/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| 나머지 구하는 % 연산자 써서 사람이 홀수일 때만 추출했다.&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT *
FROM TIPS
WHERE SIZE%2=1;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제7 - 최근 올림픽이 개최된 도시&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/olympic-cities/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| SUBSTRING으로 세글자만 추출하고, 문제에는 없었지만 모든 글자를 대문자로 변환해야돼서 UPPER() 함수 사용했다.&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
    YEAR,
    UPPER(SUBSTRING(CITY,1,3)) AS 'city'
FROM GAMES
WHERE YEAR &amp;gt;= 2000
ORDER BY YEAR DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제8 - 우리 플랫폼에 정착한 판매자1&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/settled-sellers-1/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;| ORDERS &amp;gt;= 100 을 처음에 WHERE 절에 썼는데, WHERE절이 SELECT절보다 먼저 실행돼서 ORDERS를 이해하지 못했다. HAVING 절에서 써야되는 점을 잊지 않아야겠다. 또한, ORDER_ID에 DISTINCT 적용 안 해서 레코드 수가 다르다고 나왔는데 이 점도 유념해야겠다.&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT
    SELLER_ID,
    COUNT(DISTINCT(ORDER_ID)) AS 'orders'
FROM OLIST_ORDER_ITEMS_DATASET
GROUP BY SELLER_ID
HAVING ORDERS &amp;gt;= 100;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제9 - 최고의 근무일을 찾아라&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/best-working-day/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;|&lt;span&gt; 팁이 최고로 높은 날을 뽑아야했기에 DESC 정렬을 하고 LIMIT를 걸어주었다.&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SELECT
    DAY,
    ROUND(SUM(TIP),3) AS 'tip_daily'
FROM TIPS
GROUP BY DAY
ORDER BY tip_daily DESC LIMIT 1;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;문제10 - 첫 주문과 마지막 주문&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://solvesql.com/problems/first-and-last-orders/&quot;&gt;링크&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;|&lt;span&gt;&lt;span&gt; 주문을 처음 한 날, 마지막으로 한 날을 뽑기 위해 DATE에 MIN, MAX를 적용해서 풀이했다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #2d2a2e; color: #fcfcfa;&quot;&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT
    MIN(DATE(ORDER_PURCHASE_TIMESTAMP)) AS 'first_order_date',
    MAX(DATE(ORDER_PURCHASE_TIMESTAMP)) AS 'last_order_date'
FROM OLIST_ORDERS_DATASET;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3gkmu/btsPBppCGDA/kk3af1gGktfKzIi71MNs21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3gkmu/btsPBppCGDA/kk3af1gGktfKzIi71MNs21/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3gkmu/btsPBppCGDA/kk3af1gGktfKzIi71MNs21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3gkmu%2FbtsPBppCGDA%2Fkk3af1gGktfKzIi71MNs21%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;400&quot; height=&quot;216&quot; data-filename=&quot;로고2-어둡.jpg&quot; data-origin-width=&quot;9732&quot; data-origin-height=&quot;5256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>DEV/Data Analysis</category>
      <category>solvesql</category>
      <category>SQL</category>
      <category>sqllite</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/16</guid>
      <comments>https://hamaco.tistory.com/entry/SQL-SolveSQL-level1-set1#entry16comment</comments>
      <pubDate>Tue, 29 Jul 2025 13:00:33 +0900</pubDate>
    </item>
    <item>
      <title>[회고] DEVOCEAN AI Fellowship 7기 면접 탈락 회고  </title>
      <link>https://hamaco.tistory.com/entry/%ED%9A%8C%EA%B3%A0-DEVOCEAN-AI-Fellowship-7%EA%B8%B0-%EB%A9%B4%EC%A0%91-%ED%83%88%EB%9D%BD-%ED%9A%8C%EA%B3%A0-%F0%9F%A5%B2</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;안녕하세요! 하마코입니다.  &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; 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;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;SKT DEVOCEAN AI Fellowship 7기&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;1팀만 선발하는 바늘에 실 꿰기 같은 치열한 경쟁이었지만&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;br /&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 data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;&lt;b&gt;1️⃣ 공고 발견 ! 나에게 맞는 과제 선정  &lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CBrKc/btsOrFG3DiG/kOxKLd7uur2GR4r0buA7Yk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CBrKc/btsOrFG3DiG/kOxKLd7uur2GR4r0buA7Yk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CBrKc/btsOrFG3DiG/kOxKLd7uur2GR4r0buA7Yk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCBrKc%2FbtsOrFG3DiG%2FkOxKLd7uur2GR4r0buA7Yk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1220&quot; height=&quot;314&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;AI Fellowship &lt;a title=&quot;공고&quot; href=&quot;https://devocean.sk.com/community/aiFellowshipRecruitment.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공고&lt;/a&gt;는 4월 22일에 처음 알게 되었고,&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;저는 공고를 보자마자 DEVOCEAN OpenLab 스터디를 하며 알게 된 프로님께&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;눈이가요 눈이가&lt;/span&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;그래서 많은 연구 과제 중 아래 2개에 관심이 많아졌습니다.&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/GPp5X/btsOrxibLoj/byymrYcePjTCY2Goo7JcHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GPp5X/btsOrxibLoj/byymrYcePjTCY2Goo7JcHK/img.png&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;323&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.3519%; margin-right: 10px;&quot; data-widthpercent=&quot;50.94&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GPp5X/btsOrxibLoj/byymrYcePjTCY2Goo7JcHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGPp5X%2FbtsOrxibLoj%2FbyymrYcePjTCY2Goo7JcHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;323&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PCXgK/btsOqGGBEPe/JrIjg8U1BjI1PEeYMRPBCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PCXgK/btsOqGGBEPe/JrIjg8U1BjI1PEeYMRPBCk/img.png&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;329&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.4853%;&quot; data-widthpercent=&quot;49.06&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PCXgK/btsOqGGBEPe/JrIjg8U1BjI1PEeYMRPBCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPCXgK%2FbtsOqGGBEPe%2FJrIjg8U1BjI1PEeYMRPBCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;329&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;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;8번 과제&lt;/b&gt;&lt;/span&gt;의 경우, &lt;b&gt;'LLM 기반 데이터 리니지 활용 Impact Analysis 대화형 에이전트 기술 개발' &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;LLM? 대화형 에이전트? 챗봇 만드나? 했는데.. 단순한 챗봇은 아닌 것 같고.. 이런 생각이 들었던 것 같아요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로님께서는, 8번 과제가 분석가가 꼭 알아야하는 메타데이터를 다루고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분석가도 요즘 AI 개발에 많이 참여하고 있어서 에이전트 개발에 참여하면 좋을 것 같다고 하셨습니다.&lt;/p&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: #ee2323;&quot;&gt;&lt;b&gt;3번 과제&lt;/b&gt;&lt;/span&gt;의 경우, &lt;b&gt;'효율적인 LLM 학습을 위한 Synthetic Data filtering'&lt;/b&gt; 이었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Syntethic Data filtering도 너무나 생소해서 프로님께 여쭤보았습니다..  &lt;/p&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;데이터 분석가보다는 엔지니어 쪽이어서 저와는 100% 핏할 것 같지는 않을 것 같다고 하셨습니다.&lt;/p&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;u&gt;데이터의 흐름을 보고 데이터가 어떤 영향을 끼칠지 살펴보는&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8번 과제가 마음에 들어서 이 과제로 선정하고 팀원을 구하기 시작했습니다.&lt;/p&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;2️⃣ 팀원 구하고 제대로 과제 분석 시작  &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;제가 DEVOCEAN Young, OpenLab에 참여하면서 만난 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;공고는 4월 22일에 알았지만, 팀은 조금 늦게 생성한 편이었습니다. (학교 시험이 있었기에..)&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;964&quot; data-origin-height=&quot;688&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH6LMS/btsOqAzFNG4/1e4ccXEZ5Z6yAf7c4rKQAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH6LMS/btsOqAzFNG4/1e4ccXEZ5Z6yAf7c4rKQAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH6LMS/btsOqAzFNG4/1e4ccXEZ5Z6yAf7c4rKQAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH6LMS%2FbtsOqAzFNG4%2F1e4ccXEZ5Z6yAf7c4rKQAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;357&quot; data-origin-width=&quot;964&quot; data-origin-height=&quot;688&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5월 5일 어린이날에 모여 1차 회의를 진행하며 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;주제 이해&lt;/b&gt;&lt;/span&gt;부터 시작했습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;LLM 기반 데이터 리니지 활용 Impact Analysis 대화형 에이전트 기술 개발&lt;/b&gt;&lt;/blockquote&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;LLM 기반 : 사용자 대화 자연어처리&lt;/li&gt;
&lt;li&gt;데이터 리니지 활용 : Data Lineage는 데이터가 어떻게 흘러왔는지를 추적하는 것&lt;/li&gt;
&lt;li&gt;Impact Analysis : 무언가를 바꿨을 때 어떤 영향이 생기는지 분석&lt;/li&gt;
&lt;li&gt;대화형 에이전트 기술 개발 : 챗봇 만들기&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 &lt;i&gt;'연구과제는 정해져있으니 이 연구과제로 프로젝트를 기획해서 만들어야겠지?'&lt;/i&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;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;기술에 초점을 두고&lt;/b&gt;&lt;/span&gt; 단계별로 나눠서 어떻게 구현을 해볼지 회의를 빠르게 3일 동안 진행했습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lUw0o/btsOsny4crX/gl6HNo8cBsioyl2WEA9ZAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lUw0o/btsOsny4crX/gl6HNo8cBsioyl2WEA9ZAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lUw0o/btsOsny4crX/gl6HNo8cBsioyl2WEA9ZAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlUw0o%2FbtsOsny4crX%2Fgl6HNo8cBsioyl2WEA9ZAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;544&quot; height=&quot;130&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;130&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;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;아키텍처를 봤는데 이해가 안돼   (1차회의)&lt;/b&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;2026&quot; data-origin-height=&quot;1004&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYnpKp/btsOranvKUX/v0R39KuPvKILU5qRcOqCXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYnpKp/btsOranvKUX/v0R39KuPvKILU5qRcOqCXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYnpKp/btsOranvKUX/v0R39KuPvKILU5qRcOqCXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYnpKp%2FbtsOranvKUX%2Fv0R39KuPvKILU5qRcOqCXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2026&quot; height=&quot;1004&quot; data-origin-width=&quot;2026&quot; data-origin-height=&quot;1004&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;저희는 모두 AI 프로젝트 경험이 많지 않았기에, Simple Planner Test, Tool Execution Module 부터&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;세 명이 LLM 기반 대화형 에이전트 / Data Lineage / Impact Analysis 로 공부할 분야를 나눴고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 그 중에서도 LLM 기반 대화형 에이전트와 프로토타입 제작, PPT 제작을 맡아서 준비했습니다.&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;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;아 ... 이거다 !! (2차회의)&lt;/b&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;1158&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/umt3l/btsOr0xlCIN/khOHkFnmFVYKAg2zfmxNkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/umt3l/btsOr0xlCIN/khOHkFnmFVYKAg2zfmxNkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/umt3l/btsOr0xlCIN/khOHkFnmFVYKAg2zfmxNkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fumt3l%2FbtsOr0xlCIN%2FkhOHkFnmFVYKAg2zfmxNkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1158&quot; height=&quot;243&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;243&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;자연어 질의응답&lt;/b&gt; : 데이터 자산, 리니지 경로, 데이터 처리 과정 등 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;Domain Specific한 LLM의 성능&lt;/b&gt;&lt;/span&gt;을 끌어올려야함.&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;=&amp;gt; Multi-turn 등 사용자 질의를 잘 해석하는 LLM, Domain Specific에 적합한 언어 모델 파악&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: #006dd7;&quot;&gt;(해당 부분 담당!)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Impact Analysis - DownStream&lt;/b&gt; : 영향을 받는 하위 데이터셋, 대시보드, 사용자 식별을 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;얼마나 섬세히 가중치를 파악&lt;/b&gt;&lt;/span&gt;해내는가.&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;=&amp;gt; SQL Parsing, 변환 가중치/필터링 가중치 계산, 추론 엔진(Impact Graph)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Impact Analysis - UpStream&lt;/b&gt; : 데이터가 어떻게 변환되어 생성되었는지 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;얼마나 섬세히 관계 그래프를&lt;/b&gt;&lt;b&gt;&amp;nbsp;파악&lt;/b&gt;&lt;/span&gt;해내는가.&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;=&amp;gt; 추론 엔진(Lineage Graph)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RAG로 Knowledge Base 기반 정보 답변&lt;/b&gt; : 사용자에게 답변을 제공하기 위해 어떻게 리니지그래프를 저장하고 답변할 것인가.&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;=&amp;gt; GraphRAG, Neo4j, Prompt Assembler&lt;/b&gt;&lt;/span&gt;&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;각자 맡은 내용 정리 PPT화...  (3차회의)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;제가 맡았던 LLM 챗봇 에이전트 파트 위주로 설명할게요!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대화형 에이전트를 만들면서 가장 중요하게 생각한 부분은 다음과 같습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;사용자&lt;b&gt; 질의를 정확히 이해&lt;/b&gt;해야한다.&lt;/li&gt;
&lt;li&gt;데이터 관련 질의가 많을 것이므로, SKT에서 제공하는 메타데이터 &lt;b&gt;도메인에 적합한 재질문/답변이 생성&lt;/b&gt;되어야 한다.&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;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&lt;b&gt;1번&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 특성 상 &lt;u&gt;질의가 모호하고 조잡&lt;/u&gt;할 수 있겠다는 생각이 들었고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;단순 Top-k 검색이 필요한 게 아니라 &lt;u&gt;여러 리니지 경로 중 최적의 정보&lt;/u&gt;가 필요하기에&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번을 해결하기 위해서는 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;Multi-turn(여러번 재질문) 하는 LLM과 단계별 reasoning&lt;/b&gt;&lt;/span&gt;이 필요하다고 생각했고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 적합한 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;RQ-RAG&lt;/b&gt;&lt;/span&gt; 논문을 발견해 &lt;a title=&quot;페이퍼리뷰&quot; href=&quot;https://hamaco.tistory.com/entry/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-RQ-RAG%EB%A1%9C-Multi-turn-%EB%8C%80%ED%99%94-%EA%B2%80%EC%83%89-%EC%9D%91%EB%8B%B5-%EC%83%9D%EC%84%B1-%EA%B0%9C%EC%84%A0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;페이퍼리뷰&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;RQ-RAG는 일반적인 RAG에 &lt;span&gt;Refine Queries를 더해 &lt;span&gt;복잡하거나 모호한 질의를 정제하는 3가지 전략을 더한 것인데요.&lt;/span&gt;&lt;/span&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;[ 3개로 지도학습 ]&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;재작성 (Rewrite) : 질의를 명확하게 다시 표현&lt;/li&gt;
&lt;li&gt;분해 (Decompose) : 복잡한 질의를 더 단순한 하위 질의로 나누어 부분별로 개별적 검색&lt;/li&gt;
&lt;li&gt;모호성 해소 (Disambiguate) : 다의적인 질의를 명확하게 정확한 정보 검색&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&lt;b&gt;2번&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후, &lt;u&gt;RQ-RAG를 구현&lt;/u&gt;할 수 있는 언어 모델을 채택하고자 LLM 언어 모델들을 비교했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Llama2와 Mistral/Mixtral이 RQ-RAG 구현에 좋다는 논문들도 보고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 봤던 RQ-RAG 논문과 다수의 RQ-RAG 논문들에서는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Llama2&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;그리고, DB와 데이터리니지 등 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;Domain-Specific한 질의들에 답&lt;/b&gt;&lt;/span&gt;변할 수 있도록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인 지식을 반영한 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;LoRA 기반 domain adaptation&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;&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;3️⃣&amp;nbsp; 연구계획서 제출  &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;3일 만에 꽤나 멋있는 아키텍처가 생겼죠 :)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3455&quot; data-origin-height=&quot;1202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ysz8o/btsOrz77jtC/cZm9TWMcRf5iy4IfKyMlOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ysz8o/btsOrz77jtC/cZm9TWMcRf5iy4IfKyMlOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ysz8o/btsOrz77jtC/cZm9TWMcRf5iy4IfKyMlOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYsz8o%2FbtsOrz77jtC%2FcZm9TWMcRf5iy4IfKyMlOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3455&quot; height=&quot;1202&quot; data-origin-width=&quot;3455&quot; data-origin-height=&quot;1202&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;제 파트도 함께 첨부해봅니다 :D&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;프로토타입 설계&lt;/b&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;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DJY7P/btsOrlPU4Cd/WAyoo9q29i2wfkiyOrEiHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DJY7P/btsOrlPU4Cd/WAyoo9q29i2wfkiyOrEiHK/img.png&quot; data-alt=&quot;센스있게 프로님 성함을 넣어서 만들었습니다 .. ㅎㅎ (가린 부분)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DJY7P/btsOrlPU4Cd/WAyoo9q29i2wfkiyOrEiHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDJY7P%2FbtsOrlPU4Cd%2FWAyoo9q29i2wfkiyOrEiHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;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/FL5Ea/btsOru6TK9M/kFmiayrbgwo5dkLKS9ta7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FL5Ea/btsOru6TK9M/kFmiayrbgwo5dkLKS9ta7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FL5Ea/btsOru6TK9M/kFmiayrbgwo5dkLKS9ta7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFL5Ea%2FbtsOru6TK9M%2FkFmiayrbgwo5dkLKS9ta7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;/figure&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/WjYto/btsOryamqVc/jSOEr6FhMi19TAWL4L38G1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WjYto/btsOryamqVc/jSOEr6FhMi19TAWL4L38G1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WjYto/btsOryamqVc/jSOEr6FhMi19TAWL4L38G1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWjYto%2FbtsOryamqVc%2FjSOEr6FhMi19TAWL4L38G1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;Multi-turn LLM&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignRight&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/5H8UV/btsOtgeQPsK/dJzmQBlUP7ti8ANBayKMH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5H8UV/btsOtgeQPsK/dJzmQBlUP7ti8ANBayKMH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5H8UV/btsOtgeQPsK/dJzmQBlUP7ti8ANBayKMH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5H8UV%2FbtsOtgeQPsK%2FdJzmQBlUP7ti8ANBayKMH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;/figure&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/bYnU9F/btsOsBKzl9w/xykE7VpIWzlvey6ZzJw8V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYnU9F/btsOsBKzl9w/xykE7VpIWzlvey6ZzJw8V0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYnU9F/btsOsBKzl9w/xykE7VpIWzlvey6ZzJw8V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYnU9F%2FbtsOsBKzl9w%2FxykE7VpIWzlvey6ZzJw8V0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;/figure&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/bGicgx/btsOrAFY6Ij/v3CSlaGWtzJVQPTAZYVnVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGicgx/btsOrAFY6Ij/v3CSlaGWtzJVQPTAZYVnVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGicgx/btsOrAFY6Ij/v3CSlaGWtzJVQPTAZYVnVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGicgx%2FbtsOrAFY6Ij%2Fv3CSlaGWtzJVQPTAZYVnVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;/figure&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/LOzNa/btsOtvQq1Sl/1V2fRVBYUmVKKKtxqejkkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LOzNa/btsOtvQq1Sl/1V2fRVBYUmVKKKtxqejkkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LOzNa/btsOtvQq1Sl/1V2fRVBYUmVKKKtxqejkkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLOzNa%2FbtsOtvQq1Sl%2F1V2fRVBYUmVKKKtxqejkkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;/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;PPT 만들 수 있는 기간이 거의 1~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;정말 연구계획서에 모든 혼을 쏟아 만들고 팀원들과 자소서도 작성해서 함께 제출 완료했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;( 게다가 동아리 회장으로서 MT 가고 있는 와중에 ...   바쁘다 바빠 )&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4️⃣&amp;nbsp; 서류합격 !!! 면접준비  &lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대망의 서류합격 발표날.. 팀원들 모두 마음 졸이고 있었는데 메일로 기쁜 소식이 찾아왔습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GjRXr/btsOqFOwKCr/hxKcpR1QN9MZdNkAxQhY2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GjRXr/btsOqFOwKCr/hxKcpR1QN9MZdNkAxQhY2K/img.png&quot; data-alt=&quot; &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GjRXr/btsOqFOwKCr/hxKcpR1QN9MZdNkAxQhY2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGjRXr%2FbtsOqFOwKCr%2FhxKcpR1QN9MZdNkAxQhY2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;111&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;111&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;면접 심사를 위한 PPT를 미리 제출해야돼서, 팀원들과 발표를 위한 회의도 2~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;PPT는 수정할 내용은 크게 없었기 때문에, 발표 때 말하지 않고 넘어갈 내용이나 순서만 조금 수정해서 제출했습니다.&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-filename=&quot;blob&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqbPDn/btsOtqVUzCr/ArUXwPbAKpJBe35zfQPNrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqbPDn/btsOtqVUzCr/ArUXwPbAKpJBe35zfQPNrK/img.png&quot; data-alt=&quot;면접 PPT도 보내니 떨린다 ...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqbPDn/btsOtqVUzCr/ArUXwPbAKpJBe35zfQPNrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqbPDn%2FbtsOtqVUzCr%2FArUXwPbAKpJBe35zfQPNrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;558&quot; height=&quot;200&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;200&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;면접 PPT도 보내니 떨린다 ...&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;팀원들에게도 대본을 요청해서 모두 작성해주면 제가 제 스타일로 바꿔서 대본을 만들고 연습하는 방식으로 진행했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고, 제가 대본 연습을 하는 동안 팀원들은 주요 파트들에 대해 Q&amp;amp;A 준비를 했습니다.&lt;/p&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;5️⃣&amp;nbsp; 짧고 굵었던 면접과 그 후 ...  &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;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;[연구계획 발표&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;10&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;분&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+ Q&amp;amp;A&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;및 인터뷰&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;10&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;분&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;으로 &lt;b&gt;총&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;20&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;&lt;b&gt;분&lt;/b&gt; 동안 진행되었는데요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;내용이 많다보니 팀에서 연구하고 준비한 내용을 10분 안에 요약하는 것도 어려웠고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: justify;&quot;&gt;질의응답도 10분 동안 진행됐는데 굉장히 빨리 지나간 것처럼 느껴졌습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;발표 전까지 계속 3번 정도 PPT 넘기면서 연습하고, 입 풀고 했는데도 발표하니까 입이 마음대로 안되더라고요.  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;그렇지만 말하고 싶은 내용은 다 말하고, 강조해야할 부분들도 정확히 강조해서 발표에 후회는 없었습니다!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;Q&amp;amp;A의 경우, 아래 질문들을 해주셨습니다.&lt;/span&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;(3명 모두 공통) 현재 몇 학년 몇 학기인지, 연구실 활동이 있는데도 참여할 수 있는지?&lt;/li&gt;
&lt;li&gt;(3명 모두 공통) 프로젝트가 11월까지지만, 9월에는 출시할 수 있도록 일정을 타이트하게 잡고 있다. 시간 할애 가능한지?&lt;br /&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;(모두 시간이 남아도는.. 모든 대외활동을 포기하고 이것만 할 수 있는 상태...)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;왜 LLM에 API를 사용하지 않고 Llama2를 사용했는지? &lt;br /&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;(비용적인 부분과 RQ-RAG 구현을 위해서!)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;웨이트를 두면 비용이 커질 텐데 가중치를 어떻게 둔다는건지? (변환 가중치, 필터링 가중치 부분)&lt;br /&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;(팀원이 잘 대답했는데 기억이 안 나요ㅠㅠ)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;왜 가중치에서 평균값을 쓰는지?&lt;br /&gt;&lt;span style=&quot;color: #9d9d9d; text-align: left;&quot;&gt;(팀원이 잘 대답했는데 기억이 안 나요ㅠㅠ)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;프로젝트를 진행할 컴퓨팅 리소스가 있는지? GPU는 어떻게 사용? &lt;span style=&quot;color: #9d9d9d;&quot;&gt;(PPT에 Cloud 쓴다고 적혀있어서 보여드림)&lt;/span&gt;&lt;/li&gt;
&lt;/ol&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;준비는 했지만 조금 즉흥으로 변형해서 아래 멘트와 비슷했습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;저희가 AI 연구를 많이 해본 적이 없어서 다른 팀들보다 조금 약할 수는 있지만,&lt;br /&gt;준비하는 기간 동안 프로젝트 관련된 논문도 많이 보고 계획서도 쓰면서 애정이 정말 커진 것 같습니다.&lt;br /&gt;합격한다면 꼭 SK에도 기여할 수 있는 프로젝트를 완성하겠습니다. 감사합니다.&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;p data-ke-size=&quot;size16&quot;&gt;하지만, 아쉽게도 결과는 ㅠㅠ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image001.png&quot; data-origin-width=&quot;1128&quot; data-origin-height=&quot;1514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOukd4/btsOrwcyMG0/VMzm1TDoF1TLQ8Q5Kbtoqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOukd4/btsOrwcyMG0/VMzm1TDoF1TLQ8Q5Kbtoqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOukd4/btsOrwcyMG0/VMzm1TDoF1TLQ8Q5Kbtoqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOukd4%2FbtsOrwcyMG0%2FVMzm1TDoF1TLQ8Q5Kbtoqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;403&quot; data-filename=&quot;image001.png&quot; data-origin-width=&quot;1128&quot; data-origin-height=&quot;1514&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWA3Ik/btsOsASr2BC/KjrUUp0ce7GHABV0DG5DV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWA3Ik/btsOsASr2BC/KjrUUp0ce7GHABV0DG5DV1/img.png&quot; data-alt=&quot;합격하길 바랬던 저희 팀의 뽀짝한 노션 ...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWA3Ik/btsOsASr2BC/KjrUUp0ce7GHABV0DG5DV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWA3Ik%2FbtsOsASr2BC%2FKjrUUp0ce7GHABV0DG5DV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;370&quot; height=&quot;406&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;406&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;AI Fellowship은 과제마다 &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;저희 팀은 AI 전공을 하는 팀원이 아무도 없었기에 서류 합격을 한 것만으로도 정말 잘했다고 생각은 하고 있습니다. :)&lt;/p&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;다음에는 좋은 결과가 있길 바라면서 포스팅 마무리하겠습니다. :D&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도움이 되셨다면 좋아요, 댓글 남겨주세요!&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;긴 글 읽어주셔서 감사합니다. :)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;HAMACO&lt;/p&gt;</description>
      <category>HAMA/Experiences</category>
      <category>Ai</category>
      <category>devocean</category>
      <category>fellowship</category>
      <category>대외활동</category>
      <category>대외활동후기</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/15</guid>
      <comments>https://hamaco.tistory.com/entry/%ED%9A%8C%EA%B3%A0-DEVOCEAN-AI-Fellowship-7%EA%B8%B0-%EB%A9%B4%EC%A0%91-%ED%83%88%EB%9D%BD-%ED%9A%8C%EA%B3%A0-%F0%9F%A5%B2#entry15comment</comments>
      <pubDate>Fri, 6 Jun 2025 21:00:02 +0900</pubDate>
    </item>
    <item>
      <title>[CS] 자료구조 - 스택, 큐, 트리, 인접행렬, 인접리스트, 맵, 셋, 해시테이블, 힙</title>
      <link>https://hamaco.tistory.com/entry/CSDataStructure-stack-queue-heap-tree</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요! 하마코입니다.  &lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시간복잡도, 공간복잡도, 포인터를 공부했던 &lt;a title=&quot;1탄&quot; href=&quot;https://hamaco.tistory.com/entry/CSDataStructure&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;1탄&lt;/a&gt;에 이어&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;스택, 큐, 트리, 이진트리, 인접행렬, 인접리스트 등&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자료구조 개념들을 더 공부해보겠습니다-!&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자료구조 공부 완료해볼게요!  &lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;스택 (stack)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;스택&lt;/b&gt;&lt;/span&gt;은 가장 마지막으로 들어간 데이터가 가장 첫 번째로 나오는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;후입선출&lt;/b&gt;&lt;/u&gt;(LIFO, Last In First Out)을 가진 자료구조입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;재귀적인 함수, 알고리즘 &lt;/i&gt;에 사용되며 &lt;i&gt;웹 브라우저 방문 기록&lt;/i&gt; 등에 쓰입니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;시간복잡도&lt;br /&gt;- n번째 참조, 탐색 : O(n) / 가장 앞부분 참조, 삽입, 삭제(n번째 제외) : O(1)&lt;/blockquote&gt;
&lt;pre id=&quot;code_1748761671799&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
stack&amp;lt;string&amp;gt; stk;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    stk.push(&quot;하&quot;);
    stk.push(&quot;마&quot;);
    stk.push(&quot;코&quot;);
    while (stk.size()) {
        cout &amp;lt;&amp;lt; stk.top() &amp;lt;&amp;lt; &quot;\n&quot;;
        stk.pop();
    }
}
// 코마하 로 출력&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메서드
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;push(value) : 스택에 추가&lt;/li&gt;
&lt;li&gt;pop() : 가장 마지막에 추가한 요소 지움 (=가장 위에 있는 요소 지움)&lt;/li&gt;
&lt;li&gt;top() : 가장 마지막에 있는 요소 참조 (=가장 위에 있는 요소 참조)&lt;/li&gt;
&lt;li&gt;size() : 스택 크기&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;큐 (Queue)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&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;&lt;u&gt;&lt;b&gt;선입선출&lt;/b&gt;&lt;/u&gt;(FIFO, First In First Out)을 지닌 자료구조입니다. (스택과 반대!)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;CPU 작업을 기다리는 프로세스, 스레드 행렬, 네트워크 접속 기다리는 행렬, 너비우선 탐색, 캐시&lt;/i&gt; 등에 사용됩니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;시간복잡도&lt;br /&gt;- n번째 참조, 탐색 : O(n) / 가장 앞부분 참조, 삽입, 삭제(n번째 제외) : O(1)&lt;/blockquote&gt;
&lt;pre id=&quot;code_1748762169241&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
queue&amp;lt;int&amp;gt; q;
int main() {
    for(int i=1; i&amp;lt;=10; i++) q.push(i);
    while(q.size()) {
        cout &amp;lt;&amp;lt; q.front() &amp;lt;&amp;lt; ' ';
        q.pop();
    }
    return 0;
}
// 1 2 3 4 5 6 7 8 9 10&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메서드
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;push(value) : value를 큐에 추가&lt;/li&gt;
&lt;li&gt;pop() : 가장 앞에 있는 요소 제거&lt;/li&gt;
&lt;li&gt;size() : 큐의 크기&lt;/li&gt;
&lt;li&gt;front() : 가장 앞에 있는 요소 참조&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;그래프 이론 기초 (Graph, Vertex, Edge, Weight)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;정점(Vertex)&lt;/b&gt;&lt;/span&gt;은 &lt;span style=&quot;color: #006dd7;&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;정점은 분할할 수 없는 객체이자 '점'으로 표현되는 위치, 사람, 물건 등이 될 수 있습니다.&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;color: #006dd7;&quot;&gt;&lt;b&gt;간선(Edge)&lt;/b&gt;&lt;/span&gt;은 &lt;u&gt;&lt;b&gt;정점을 잇는 선&lt;/b&gt;&lt;/u&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;정점으로 나가는 간선을 해당 정점의 outdegree라고 하며, 들어오는 간선을 해당 점점의 indegree라고 합니다.&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;color: #006dd7;&quot;&gt;&lt;b&gt;가중치(Weight)&lt;/b&gt;&lt;/span&gt;는 &lt;u&gt;&lt;b&gt;정점과 정점 사이에 드는 비용&lt;/b&gt;&lt;/u&gt;을 뜻합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1번 노드에서 2번 노드까지 가는 비용이 한 칸이라면, 1번 노드에서 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;지금까지 설명한&lt;u&gt;&lt;b&gt; 정점과 간선들로 이루어진 집합&lt;/b&gt;&lt;/u&gt;을 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&quot;그래프(Graph)&lt;/b&gt;&lt;/span&gt;&quot;라고 합니다.&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;트리 (Tree Data Structure)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;트리&lt;/b&gt;&lt;/span&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;background-color: #9feec3;&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;b&gt;계층 구조&lt;/b&gt;를 가진다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;V-1=E&lt;/b&gt; 라는 특징이 있다. (간선 수 = 노드 수-1)&lt;/li&gt;
&lt;li&gt;임의의 두 &lt;b&gt;노드 사이의 경로는 유일무이&lt;/b&gt;하게 존재한다.&lt;br /&gt;( 트리 내의 어떤 노드와 어떤 노드까지의 경로는 반드시 있으며 하나만 존재한다.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;노드의 종류&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;루트노드&lt;/b&gt; &lt;/span&gt;: 가장 위에 있는 노드&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;리프노드&lt;/b&gt;&lt;/span&gt; : 자식노드가 없는 노드&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;내부노드&lt;/b&gt;&lt;/span&gt; : 루프노드와 리프노드 사이에 있는 노드
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;높이 : 루프 노드부터 리프 노드까지의 거리 중 가장 긴 거리&lt;/li&gt;
&lt;li&gt;깊이=레벨 : 각 노드마다 다르며, 루프 노드에서 특정 노드까지 최단 거리로 갔을 때의 거리&lt;/li&gt;
&lt;li&gt;서브트리 : 트리 내의 하위 집합&lt;/li&gt;
&lt;li&gt;숲 : 트리로 이루어진 집합&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;이진트리 (Binary Tree)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;이진트리&lt;/b&gt;&lt;/span&gt;는 모든 노드의 자식 노드 수가 2개 이하로 구성되어있는 트리를 의미합니다.&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;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rRdXR/btsOm7oJUyY/LRKjLr9eb7N9dCzK4W5K30/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rRdXR/btsOm7oJUyY/LRKjLr9eb7N9dCzK4W5K30/img.webp&quot; data-alt=&quot;[출처] Shutterstock&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rRdXR/btsOm7oJUyY/LRKjLr9eb7N9dCzK4W5K30/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrRdXR%2FbtsOm7oJUyY%2FLRKjLr9eb7N9dCzK4W5K30%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;197&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[출처] Shutterstock&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 114px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 32.5581%; height: 20px;&quot;&gt;&lt;b&gt;이진트리 종류&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 67.4419%; height: 20px;&quot;&gt;&lt;b&gt;트리 의미&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 32.5581%; height: 20px;&quot;&gt;Full Binary Tree (정이진 트리)&lt;/td&gt;
&lt;td style=&quot;width: 67.4419%; height: 20px;&quot;&gt;자식 노드가 0 또는 2개인 이진 트리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 32.5581%; height: 20px;&quot;&gt;Complete Binary Tree (완전 이진 트리)&lt;/td&gt;
&lt;td style=&quot;width: 67.4419%; height: 20px;&quot;&gt;왼쪽에서부터 채워져 있는 이진 트리, 마지막 레벨을 제외하고 모든 레벨 완전히 채워져있어야함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 32.5581%; height: 18px;&quot;&gt;Degenerate Binary Tree (변질 이진 트리)&lt;/td&gt;
&lt;td style=&quot;width: 67.4419%; height: 18px;&quot;&gt;모든 노드가 자식 노드가 하나밖에 없는 이진 트리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 32.5581%; height: 18px;&quot;&gt;Perfect Binary Tree (포화 이진 트리)&lt;/td&gt;
&lt;td style=&quot;width: 67.4419%; height: 18px;&quot;&gt;모든 노드가 꽉 차 있는 이진 트리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 32.5581%; height: 18px;&quot;&gt;Balanced Binary Tree (균형 이진 트리)&lt;/td&gt;
&lt;td style=&quot;width: 67.4419%; height: 18px;&quot;&gt;모든 노드의 왼쪽 하위 트리와 오른쪽 하위 트리의 차이가 1이하인 트리&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;이진탐색트리 (BST, Binary Search Tree)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&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;노드의 오른쪽 하위 트리에는 &quot;노드의 값보다 큰 값&quot;이 있는 노드만 포함되고&lt;/p&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clopoa/btsOlkpBFvA/xy3bDskNkLlIUm1lWbGiC0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clopoa/btsOlkpBFvA/xy3bDskNkLlIUm1lWbGiC0/img.webp&quot; data-alt=&quot;[출처] Shutterstock&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clopoa/btsOlkpBFvA/xy3bDskNkLlIUm1lWbGiC0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fclopoa%2FbtsOlkpBFvA%2Fxy3bDskNkLlIUm1lWbGiC0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;197&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[출처] Shutterstock&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;왼쪽에는 작은 값, 오른쪽에는 큰 값이 이미 정해져있기 때문에&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;특정 값을 찾을 때 왼쪽/오른쪽으로 가면 되는 게 자명해서 전체탐색을 하지 않아도 됩니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;시간복잡도 : O(logN)&lt;/blockquote&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;인접 행렬 (adjacency matrix)&lt;/b&gt;&lt;/span&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;인접 행렬&lt;/b&gt;&lt;/span&gt;은 그래프에서 &lt;u&gt;&lt;b&gt;정점과 간선의 관계를 나타내는 Bool 타입의 정사각형 행렬&lt;/b&gt;&lt;/u&gt;입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;부울형이다보니 행렬에는 0과 1만 들어가고,&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;정점끼리 이어져있으면 1, 정점 사이 경로가 없으면 0으로 나타내는 행렬이 됩니다.&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3448&quot; data-origin-height=&quot;3448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJnxh2/btsOnwonIdu/H8x3Fkeu8cgKC4KOnBWwKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJnxh2/btsOnwonIdu/H8x3Fkeu8cgKC4KOnBWwKK/img.png&quot; data-alt=&quot;그래프&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJnxh2/btsOnwonIdu/H8x3Fkeu8cgKC4KOnBWwKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJnxh2%2FbtsOnwonIdu%2FH8x3Fkeu8cgKC4KOnBWwKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;240&quot; height=&quot;240&quot; data-origin-width=&quot;3448&quot; data-origin-height=&quot;3448&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;0,1,2,3은 각 행과 열이 되고 간선 여부로 0/1을 나타내면 아래의 표처럼 정사각형 행렬이 만들어집니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 24.6513%; height: 125px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignCenter&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 25px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 25px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;pre id=&quot;code_1748787695917&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;bool a[4][4] = {
    {0,1,1,1},
    {1,0,1,0},
    {1,1,0,0},
    {1,0,0,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;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;3번 노드 -&amp;gt; 5번 노드 단방향 경로를 인접행렬로&lt;br /&gt;a[3][5] = 1;&lt;/li&gt;
&lt;li&gt;3번 노드 &amp;lt;-&amp;gt; 5번 노드 양방향 경로를 인접행렬로&lt;br /&gt;a[3][5] = 1;&lt;br /&gt;a[5][3] = 1;&lt;/li&gt;
&lt;li&gt;정점 개수 20개인 그래프를 인접행렬로 표현할 때 메모리를 최소로 쓴다고 하면?&lt;br /&gt;bool a[20][20];&lt;/li&gt;
&lt;/ul&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;인접리스트 (adjacency list)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;인접 리스트&lt;/b&gt;&lt;/span&gt;는 그래프에서 &lt;u&gt;&lt;b&gt;정점과 간선의 관계를 나타내는 연결리스트&lt;/b&gt;&lt;/u&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3448&quot; data-origin-height=&quot;3448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJnxh2/btsOnwonIdu/H8x3Fkeu8cgKC4KOnBWwKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJnxh2/btsOnwonIdu/H8x3Fkeu8cgKC4KOnBWwKK/img.png&quot; data-alt=&quot;그래프&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJnxh2/btsOnwonIdu/H8x3Fkeu8cgKC4KOnBWwKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJnxh2%2FbtsOnwonIdu%2FH8x3Fkeu8cgKC4KOnBWwKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;240&quot; height=&quot;240&quot; data-origin-width=&quot;3448&quot; data-origin-height=&quot;3448&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;이 그래프를 연결리스트로 나타내면 아래와 같이 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;6782&quot; data-origin-height=&quot;3448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baS77S/btsOkUSzyiO/8SikLe7rIRLRoEUp9Gp6pK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baS77S/btsOkUSzyiO/8SikLe7rIRLRoEUp9Gp6pK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baS77S/btsOkUSzyiO/8SikLe7rIRLRoEUp9Gp6pK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaS77S%2FbtsOkUSzyiO%2F8SikLe7rIRLRoEUp9Gp6pK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;203&quot; data-origin-width=&quot;6782&quot; data-origin-height=&quot;3448&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;&lt;span&gt;이를 코드로 나타내면 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1748788782428&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int V=4;
vector&amp;lt;int&amp;gt; adj[V];

int main() {
    adj[0].push_back(1);
    adj[0].push_back(2);
    adj[0].push_back(3);
    
    adj[1].push_back(0);
    adj[1].push_back(2);
    
    adj[2].push_back(0);
    adj[2].push_back(1);
    
    adj[3].push_back(0);
    
    for(int i=0;i&amp;lt;4;i++) {
        cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot; :: &quot;;
        for(int j=0;j&amp;lt;adj[i].size();j++) {
    		cout &amp;lt;&amp;lt; adj[i][j] &amp;lt;&amp;lt; &quot; &quot;;
        }
        cout &amp;lt;&amp;lt; &quot;\n&quot;;
    }
}&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;연결리스트의 시간복잡도와 vector의 시간복잡도를 비교하면 아래와 같습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;연결리스트&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;vector&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;n번째 인덱스에 삽입, 삭제&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(1)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(n)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;마지막 요소에 삽입, 삭제&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(1)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(n)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;특정 요소 탐색&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(n)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(n)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;n번째 요소 참조&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(n)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;O(1)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;인접행렬 vs 인접리스트&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공간복잡도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인접행렬 : O(V^2)&lt;/li&gt;
&lt;li&gt;인접리스트 : O(V+E)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;간선 한 개 찾기 시간복잡도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인접행렬 : O(1)&lt;/li&gt;
&lt;li&gt;인접리스트 : O(V)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;모든 간선 찾기 시간복잡도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인접행렬 : O(V^2)&lt;/li&gt;
&lt;li&gt;인접리스트 : O(V+E)&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;맵 (Map)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;맵&lt;/b&gt;&lt;/span&gt;은 고유한 키를 기반으로 &lt;u&gt;&lt;b&gt;키-값(Key-Value) 쌍으로 이루어져 있는&lt;/b&gt;&lt;/u&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;blockquote data-ke-style=&quot;style2&quot;&gt;시간복잡도&lt;br /&gt;- 참조, 탐색, 삽입, 삭제 : O(logn)&lt;/blockquote&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;중복&lt;/b&gt;한 값이 들어갈 수 없으며&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자동으로 오름차순 정렬되기 때문에 순서대로 Map을 탐색할 수 있는 것이 아닌&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;맵의 key와 value는 string, int 등 다양한 값이 들어갈 수 있습니다.&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: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;셋 (Set)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;셋&lt;/b&gt;&lt;/span&gt;은 &lt;u&gt;&lt;b&gt;고유한 요소만을 저장하고 중복을 허용하지 않는&lt;/b&gt;&lt;/u&gt; 자료구조입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;맵처럼 {key, value}로 집어넣지 않아도 되며, 중복된 값은 제거되고 맵처럼 자동 정렬됩니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;시간복잡도&lt;br /&gt;- 참조, 탐색, 삽입, 삭제 : O(logn)&lt;/blockquote&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: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;해시테이블 (Hash Table)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;해시 테이블&lt;/b&gt;&lt;/span&gt;은 큰 범위를 가진 다양한 데이터들을 해싱을 통해 &lt;b&gt;한정된 범위의 정수값을 가진 해시&lt;/b&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;해시&lt;/b&gt;&lt;/span&gt; : 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 &lt;b&gt;매핑한 값&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;해싱&lt;/b&gt;&lt;/span&gt; : 임의의 데이터를 &lt;b&gt;해시로 바꿔주는 과정&lt;/b&gt;이며 해시 함수가 이를 담당&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;해시 함수&lt;/b&gt;&lt;/span&gt; : 임의의 데이터를 입력으로 받아 고정된 길이의 &lt;b&gt;해시로 바꿔주는 함수&lt;/b&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;힙 (Heap)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;힙&lt;/b&gt;&lt;/span&gt;은 여러 개의 값 중에서 가장 크거나 작은 값을 빠르게 찾기 위해 만든 &lt;b&gt;완전 이진 트리&lt;/b&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;가장 큰 요소가 루트노드에 있는 최대힙이 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최대힙 : 부모노드 값은 자식노드의 값보다 항상 큰 규칙을 지키는 힙 &lt;span style=&quot;color: #9d9d9d;&quot;&gt;(최대값 O(1)만에 찾을 수 있음!)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;최소힙 : 부모노드 값은 자식노드 값보다 항상 작은 규칙을 갖는 지키는 힙 &lt;span style=&quot;color: #9d9d9d;&quot;&gt;(최소값 O(1)만에 찾을 수 있음!)&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;span style=&quot;background-color: #9feec3;&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;li&gt;규칙(최소힙 또는 최대힙)에 맞으면 그대로 두고, 그렇지 않으면 부모노드와 교환한다. (스왑)&lt;/li&gt;
&lt;li&gt;규칙에 맞을 때까지 3번 과정을 반복한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&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;li&gt;올라간 노드와 그의 자식 노드를 비교한다.&lt;/li&gt;
&lt;li&gt;규칙을 만족하면 그대로 두고, 그렇지 않으면 자식노드와 교환한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;시간복잡도&lt;br /&gt;- 참조(최대/최소값) : O(1)&lt;br /&gt;- 탐색 : O(n)&lt;br /&gt;- 삽입, 삭제 : O(logn)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 자료구조 정리 마무리를 해보았습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트리도 알고리즘 문제 풀 때 꼭 필요한 개념이라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리를 하면서도 꼼꼼히 보았던 것 같습니다-!&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&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;HAMACO&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;reaction-13&quot; data-tistory-react-app=&quot;Reaction&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>DEV/Computer Science</category>
      <category>Queue</category>
      <category>Stack</category>
      <category>tree</category>
      <category>스택</category>
      <category>이진트리</category>
      <category>인접리스트</category>
      <category>인접행렬</category>
      <category>큐</category>
      <category>트리</category>
      <category>힙</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/14</guid>
      <comments>https://hamaco.tistory.com/entry/CSDataStructure-stack-queue-heap-tree#entry14comment</comments>
      <pubDate>Mon, 2 Jun 2025 16:00:22 +0900</pubDate>
    </item>
    <item>
      <title>[CS] 자료구조 - 시간복잡도, 공간복잡도, 메모리, 포인터, 연결리스트</title>
      <link>https://hamaco.tistory.com/entry/CSDataStructure</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;교수님들도 항상 강조하시는 자료구조!&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;&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 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;자료구조란?&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;자료구조(Data Structure)&lt;/b&gt;&lt;/span&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;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;C++ 기본&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1748060555577&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt; // 헤더파일
using namespace std; // cin/cout 쓸 때 std:cin 해야되는데 이를 기본으로 설정함
string a; // 문자열 선언
int main() {
    cin &amp;gt;&amp;gt; a; // 입력 (cin, scanf)
    cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; &quot;\n&quot;; // 출력 (cout, print)
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;시간복잡도 (Time Complexity)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;시간복잡도&lt;/b&gt;&lt;/span&gt;란 &lt;u&gt;&lt;b&gt;입력 크기에 대해 어떠한 알고리즘이 실행되는데 걸리는 시간&lt;/b&gt;&lt;/u&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;pre id=&quot;code_1748060961402&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;10; i++) {
    for(int j=0; j&amp;lt;n:j ++) {
    	for(int k=0; k&amp;lt;n; k++) {
        	if(true) cout &amp;lt;&amp;lt; k &amp;lt;&amp;lt; '\n';
        }
    }
}
for(int i=0; i&amp;lt;n; i++) {
	if(true) cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; '\n';
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드에서는 &lt;i&gt;if(true) cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; '\n';&lt;/i&gt; 라는 로직이 10n^2+n 만큼 반복되기에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간복잡도는 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;10n^2+n&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;빅오 표기법 (Big-O notation)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Big-O 표기법&lt;/b&gt;&lt;/span&gt;은 복잡도에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;가장 영향을 많이 끼치는 항&lt;/b&gt;&lt;/span&gt;의 상수인자를 빼고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 항을 없애서 &lt;u&gt;&lt;b&gt;복잡도를 나타내는 표기법&lt;/b&gt;&lt;/u&gt;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 나왔던 시간복잡도 10n^2+n 에서 복잡도에 가장 영향을 많이 끼치는 항은 n^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;따라서, Big-O 표기법으로 표기하면 시간복잡도는 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;O(n^2)&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;Big-O 표기법으로 나타냈을 때 복잡도 순은 아래와 같습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;n! &amp;gt; 2^n &amp;gt; n^2 &amp;gt; nlogn &amp;gt; n &amp;gt; logn &amp;gt; 1&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;592&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pic5U/btsN99PTwvp/ouML6Blxz4uDargfkgDh91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pic5U/btsN99PTwvp/ouML6Blxz4uDargfkgDh91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pic5U/btsN99PTwvp/ouML6Blxz4uDargfkgDh91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpic5U%2FbtsN99PTwvp%2FouML6Blxz4uDargfkgDh91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;349&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;592&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간복잡도가 O(n^2)인 알고리즘을 설계했는데, 이를 O(n)으로 줄인다면 굉장히 성능을 향상했다고 할 수 있습니다.&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;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;시간복잡도 예시&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&lt;b&gt;1️⃣ O(1)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상수시간의 시간복잡도는 입력 크기와 상관없이 일정한 시간복잡도를 가지는 것을 의미하며 O(1)로 표기합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력과 출력 (ex. cin, cout, scanf, printf)&lt;/li&gt;
&lt;li&gt;곱하기 : a[2] *= 2;&lt;/li&gt;
&lt;li&gt;간단한 비교 if문 : if (a[0]==2) {}&lt;/li&gt;
&lt;li&gt;배열의 인덱스 참조 : int b = a[2];&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&lt;b&gt;2️⃣ O(n^2)&lt;/b&gt;&lt;/span&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;pre id=&quot;code_1748061782482&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int n;
int main() {
    cin &amp;gt;&amp;gt; n;
    int a = 0;
    for(int i=0; i&amp;lt;n; i++) {
    	for(int j=0; j&amp;lt;i; j++) {
        	a += i+j;
        }
    }
    cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; '\n';
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&lt;b&gt;3️⃣ O(N+M)&lt;/b&gt;&lt;/span&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;pre id=&quot;code_1748061919009&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int N, M;
void solve(int N, int M) {
    int a=1;
    for(int i=0; i&amp;lt;N; i++) {
    	a *= i;
    }
    for(int j=0; j&amp;lt;M; j++) {
    	a *= j;
    }
    cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; &quot;\n&quot;;
}
int main() {
    cin &amp;gt;&amp;gt; N &amp;gt;&amp;gt; M;
    solve(N, M);
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&lt;b&gt;4️⃣ O(n)&lt;/b&gt;&lt;/span&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;pre id=&quot;code_1748062087041&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int n, a[1004], cnt;

int go(int l, int r) {
    if (l==r) return a[l];
    int mid = (l+r)/2;
    int sum = go(l,mid) + go(mid+1,r);
    return sum;
}
int main() {
    cin &amp;gt;&amp;gt; n;
    for(int i=1; i&amp;lt;=n; i++) {
        a[i-1] = i;
    }
    int sum = go(0, n-1);
    cout &amp;lt;&amp;lt; sum &amp;lt;&amp;lt; '\n';
}&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;go()에서 볼 수 있듯 재귀함수가 나오는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;O(n)이 나오는 이유는 n개의 배열 원소들을 하나씩 돌며 n-1번 더하기 때문입니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;5️⃣ O(logN)&lt;/span&gt;&lt;/b&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;pre id=&quot;code_1748062845724&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int N;

void solve(int N) {
    int a=0, i=N;
    while (i&amp;gt;0) {
        a+=i;
        i/=2;
    }
    cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; '\n';
}
int main() {
    cin &amp;gt;&amp;gt; N;
    solve(N);
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;O(logN)이 나오는 이유는,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N부터 시작해서 점점 반으로 줄여가며 1이 될때까지 반복하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간복잡도를 구하기 위해서는 N을 2로 몇 번 나누면 1이 될까? == 2를 몇 번 곱하면 N이 될까? 가 중요하기에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;log₂(N)이 되어 밑이 2인 이진 로그 logN이라고 작성합니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;6️⃣ O(3^n)&lt;/span&gt;&lt;/b&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;pre id=&quot;code_1748063425417&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int N, cnt;
void solve(int N) {
    cnt++;
    cout &amp;lt;&amp;lt; cnt &amp;lt;&amp;lt; '\n';
    if (N==0) return;
    for(int i=0; i&amp;lt;3; i++) {
        solve(N-1);
    }
    return;
}
int main() {
    cin &amp;gt;&amp;gt; N;
    solve(N);
    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;for문에서 자식(solve함수) 호출을 3번하고, 이게 N번 반복되기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3^N이 되어 시간복잡도는 O(3^n)이 됩니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;공간복잡도 (Space Complexity)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;공간복잡도&lt;/b&gt;&lt;/span&gt;는 입력 크기에 대해 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&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;/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;예를 들어, int a[10000000]; 을 선언하면 1000만 * 4바이트 가 공간복잡도가 됩니다.&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;background-color: #9feec3;&quot;&gt;&lt;b&gt;배열의 범위&lt;/b&gt;&lt;/span&gt;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1️⃣ 최대 범위&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대부분의 문제는 최대 범위를 기반으로 배열을 미리 만들어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N(1&amp;lt;=N&amp;lt;=1,000,000) 이라고 주어지면 N의 최대범위는 100만입니다.&lt;/p&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;2️⃣ 메모리제한&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리제한이 512MB 라고 주어졌다면, 512,000,000 바이트이기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최대 int a[128000000];을 선언할 수 있습니다.&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;정적 배열 Array&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;정적 배열&lt;/b&gt;&lt;/span&gt;은 &lt;u&gt;&lt;b&gt;선언할 때 크기를 설정&lt;/b&gt;&lt;/u&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;크기 정하고 선언 : int a[10]&lt;/li&gt;
&lt;li&gt;크기 정하지 않고 선언하되 중괄호로 요소 할당 : int a2[] = {1,2,3,4}&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;동적 배열 Vector&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;동적 배열&lt;/b&gt;&lt;/span&gt;은 &lt;u&gt;&lt;b&gt;동적으로 요소를 할당할 수 있는&lt;/b&gt;&lt;/u&gt; 배열입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴파일 시점에 사용해야 할 요소들의 개수를 모른다면 vector를 써야합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;벡터 선언 : vector&amp;lt;타입&amp;gt; 변수명;&lt;/li&gt;
&lt;li&gt;string set 선언 : set&amp;lt;string&amp;gt; a;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;Vector 메서드&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;push_back(), emplace_back() : vector의 뒤에서부터 요소 더하기&lt;/li&gt;
&lt;li&gt;pop_back() : vector 맨 뒤의 요소 지우기&lt;/li&gt;
&lt;li&gt;erase(위치) : 한 요소 지우기&lt;/li&gt;
&lt;li&gt;erase(from, to) : ~에서 ~까지 지우기&lt;/li&gt;
&lt;li&gt;find(from, to, value) : vector 내부 from~to 에서 value를 찾음 (O(n))&lt;/li&gt;
&lt;li&gt;clear() : vector의 모든 요소 지우기&lt;/li&gt;
&lt;li&gt;fill(from, to, value) : vector 내의 from~to 구간에 value로 값을 할당하고 싶을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;Vector 정적할당&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vector라도 무조건 크기가 0인 빈 vector를 만들어 동적할당으로 요소를 추가하는 것이 아니라,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크기를 정해놓거나 해당 크기에 대하 어떤 값으로 초기화해놓고 시작할 수도 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1748159039554&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
vector&amp;lt;int&amp;gt; v(5,100);

int main() {
    for(int a:v) cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; &quot; &quot;;
    cout &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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;메모리 Memory&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;메모리&lt;/b&gt;&lt;/span&gt;는 &lt;u&gt;&lt;b&gt;메모리 셀의 연속&lt;/b&gt;&lt;/u&gt;과 같으며, &lt;b&gt;각 셀의 크기는 1바이트&lt;/b&gt;이고 &lt;b&gt;고유한 주소&lt;/b&gt;를 가집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4바이트 정수 타입인 int 타입 변수를 저장한다면, 메모리에서 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;변수의 메모리 주소는 변수가 사용하는 메모리 주소의 첫번째를 가리킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리 주소는 16진수로 표기가 되고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++에서는 &amp;amp;(ampersand)를 통해 변수의 메모리 주소를 얻을 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1748164423783&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int i;
int main() {
    cout &amp;lt;&amp;lt; &amp;amp;i &amp;lt;&amp;lt; '\n'; // 0xㅁㅁㅁㅁㅁㅁㅁㅁㅁ
    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;여기서 변수 i에 0을 할당하면 (i=0;)&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;포인터 Pointer&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;포인터&lt;/b&gt;&lt;/span&gt;는 &lt;u&gt;&lt;b&gt;변수의 메모리 주소를 담는 타입&lt;/b&gt;&lt;/u&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;포인터의 크기는 OS가 32bit라면 4바이트, 64bit라면 8바이트로 고정되어있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떠한 타입이든 상관없이 무조건 4/8바이트로 고정됩니다.&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;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;역참조연산자 *&lt;/b&gt;&lt;/span&gt;&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;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 중, * 연산자로 역참조를 통해 주소값을 기반으로 값을 갖고오는 코드 예시는 다음과 같습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1748165038243&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int main() {
    string a = &quot;abcda&quot;;
    string *b = &amp;amp;a;
    cout &amp;lt;&amp;lt; b &amp;lt;&amp;lt; &quot;\n&quot;; // 0x6ffdf0
    cout &amp;lt;&amp;lt; *b &amp;lt;&amp;lt; &quot;\n&quot;; // abcda
    return 0;
}
// b는 포인터로 string a의 주소
// b*는 역참조로 a의 값을 가져옴&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;array to pointer decay *&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;array to pointer decay&lt;/b&gt;&lt;/span&gt;는 &lt;u&gt;&lt;b&gt;배열이 포인터로 부식(decay)되는 현상&lt;/b&gt;&lt;/u&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;배열의 이름을 T* 라는 포인터에 할당하면서 T[N]이라는 배열의 크기 정보 N이 없어지고 첫번째 요소의 주소가 반영되는 현상입니다.&lt;/p&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;이는 vector에서는 적용되지 않고 배열에서만 가능합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1748178567430&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int a[3] = {1,2,3};
int main() {
    int *c = a;
    cout &amp;lt;&amp;lt; c &amp;lt;&amp;lt; &quot;\n&quot;; // 0x472010
    cout &amp;lt;&amp;lt; &amp;amp;a[0] &amp;lt;&amp;lt; &quot;\n&quot;; // 0x472010
    cout &amp;lt;&amp;lt; c+1 &amp;lt;&amp;lt; &quot;\n&quot;; // 0x472014
    cout &amp;lt;&amp;lt; &amp;amp;a[1] &amp;lt;&amp;lt; &quot;\n&quot;; // 0x472014
    return 0;
}&lt;/code&gt;&lt;/pre&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;연결리스트 Linked List&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;연결리스트&lt;/b&gt;&lt;/span&gt;는 노드로 감싸진 요소를 &lt;u&gt;&lt;b&gt;인접한 메모리 위치가 아닌 독립적으로 저장&lt;/b&gt;&lt;/u&gt;하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 노드는 next / next,prev 라는 &lt;u&gt;&lt;b&gt;포인터로 서로 연결&lt;/b&gt;&lt;/u&gt;된 &lt;b&gt;선형적인 자료구조&lt;/b&gt;입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1748178926339&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Node {
public:
    int data;
    Node* next;
    Node() {
    	data = 0;
        next = NULL;
    }
    Node(int data) {
    	this-&amp;gt;data = data;
        this-&amp;gt;next = NULL;
    }
};&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;연결리스트의 시간복잡도는 참조 O(n), 탐색 O(n), 삽입/삭제 O(1) 입니다.&lt;/p&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;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;1️⃣ 싱글연결리스트&lt;/b&gt;&lt;/span&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&gt;(Singly Linked List)는 &lt;b&gt;next 포인터&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;2️⃣ 이중연결리스트&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;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;이중연결리스트&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(Doubly Linked List)는 prev, next 두 개의 포인터로 양방향 데이터가 연결됩니다.&lt;/span&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;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;3️⃣ 원형연결리스트&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;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;원형연결리스트&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(Circular Linked List)는 마지막 노드와 첫번째 노드가 연결되어 원을 형성합니다.&lt;/span&gt;&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: #006dd7;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;싱글연결리스트 또는 이중연결리스트로 이루어진 2가지 타입의 원형연결리스트가 있습니다.&lt;/span&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&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;&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;HAMACO&lt;/p&gt;</description>
      <category>DEV/Computer Science</category>
      <category>공간복잡도</category>
      <category>메모리</category>
      <category>배열</category>
      <category>벡터</category>
      <category>시간복잡도</category>
      <category>포인터</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/13</guid>
      <comments>https://hamaco.tistory.com/entry/CSDataStructure#entry13comment</comments>
      <pubDate>Mon, 26 May 2025 01:00:24 +0900</pubDate>
    </item>
    <item>
      <title>[CS] 운영체제 - CPU 스케줄링, 캐시, 메모리할당</title>
      <link>https://hamaco.tistory.com/entry/CSOperating-System-CPU-Paging-Segmentation</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 data-ke-size=&quot;size16&quot;&gt;가상메모리를 공부했던 &lt;a href=&quot;https://hamaco.tistory.com/entry/CSOperating-System-VirtualMemory&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;1탄&lt;/a&gt;, 프로세스와 스레드를 공부했던 &lt;a href=&quot;https://hamaco.tistory.com/entry/CS-OperatingSystem-Process-Thread&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2탄&lt;/a&gt;에 이어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CPU 스케줄링과 캐시, 메모리할당을 공부해보겠습니다.  &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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;CPU 스케줄링 알고리즘&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CPU가 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;어떤 프로세스를 선택할 건지&lt;/b&gt;&lt;/span&gt;는 스케줄링 알고리즘을 통해 선택되며 효율적으로 선택하는 게 중요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 '효율적'이란 아래 내용을 만족하는 상황입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;CPU 사용률&lt;/b&gt;이 높은가?&lt;/li&gt;
&lt;li&gt;단위 시간당 작업을 마친 프로세스의 수가 높은가? = &lt;b&gt;처리량&lt;/b&gt;이 높은가?&lt;/li&gt;
&lt;li&gt;작업을 요청한 프로세스가 작업을 시작하기 전 &lt;b&gt;대기하는 시간&lt;/b&gt;은 짧은가?&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 상황에 따라 스케줄링 알고리즘은 나누어지며, 방식은 크게 비선점형/선점형으로 나뉩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;612&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmszhn/btsNS8hRxN1/XDM0k8TdlTaOMzYGSHVTl0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmszhn/btsNS8hRxN1/XDM0k8TdlTaOMzYGSHVTl0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmszhn/btsNS8hRxN1/XDM0k8TdlTaOMzYGSHVTl0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcmszhn%2FbtsNS8hRxN1%2FXDM0k8TdlTaOMzYGSHVTl0%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;400&quot; height=&quot;225&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;344&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;비선점형 방식(non-preemptive)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비선점형 방식은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;프로세스가 스스로 CPU 소유권을 포기하는 방식&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강제로 프로세스를 중지하지 않기에 컨텍스트 스위칭으로 인한 부하가 적습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1️⃣ &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;FCFS&lt;/b&gt; &lt;/span&gt;(First Come, First Served)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;가장 먼저 온 것을 가장 먼저&lt;/b&gt;&lt;b&gt; 처리&lt;/b&gt;&lt;/u&gt;하는 알고리즘입니다. (FIFO가 생각난다면 정답!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점으로는, 길게 수행되는 프로세스 때문에 준비 큐에서 오래 기다리는 현상(Convey Effect)이 발생한다는 점이 있습니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;2️⃣ &lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SJF&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(Shortest Job First)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;실행 시간이 가장 짧은 프로세스를 가장 먼저 실행&lt;/b&gt;&lt;/u&gt;하는 알고리즘입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;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;SJF는 실행 시간을 안다면 좋겠지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로는 실행 시간을 알 수 없기에 과거의 실행했던 시간을 토대로 추측해서 사용합니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;3️⃣ &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;우선순위&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(Aging)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;오래된 작업일수록 우선순위를 높이는 Aging&lt;/b&gt;&lt;/u&gt;을 통해 단점을 보완한 알고리즘입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선순위는 작업의 시간, 프로세스의 메모리 요구사항, 열린 파일 수, 평균 CPU 사용량 등을 고려해서 설정됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선순위 알고리즘은 앞서 설명한 SJF+우선순위를 말하는 것뿐만 아니라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FCFS를 활용하여 만들기도 하며 선점형, 비선점형적인 우선순위 스케줄링 알고리즘을 말하기도 합니다.&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;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;선점형 방식(preemptive)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선점형 방식은 현대 운영체제가 쓰는 방식으로, 사용하고 있는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;프로세스를 알고리즘에 의해 중단&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;시켜버리고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강제로 다른 프로세스에 CPU 소유권을 할당할 수 있는 방식입니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;1️⃣&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;라운드로빈&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(RR, Round Robin)&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;u&gt;&lt;b&gt;동일한 할당 시간&lt;/b&gt;&lt;/u&gt;을 주고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 시간에 끝나지 않으면 다시 &lt;u&gt;&lt;b&gt;준비 큐(Ready Queue)의 뒤로&lt;/b&gt;&lt;/u&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;예를 들어, q만큼의 할당 시간이 부여되었고 N개의 프로세스가 운영된다고 하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(N-1)*q 시간이 지났을 때 자기 차례가 오게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;할당 시간이 너무 크면 FCFS가 되고, 짧으면 컨텍스트 스위칭이 잦아져서 비용이 커집니다(오버헤드).&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;2️⃣ &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;SRF&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(Shortest Remaining Time First)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SRF는 중간에 &lt;u&gt;&lt;b&gt;더 짧은 작업이 들어오면 수행하던 프로세스를 중지&lt;/b&gt;&lt;/u&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;반면, 위에서 설명한 SJF는 중간에 실행 시간이 더 짧은 작업이 들어와도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 짧은 작업을 모두 수행하고 그 다음 짧은 작업을 이어나갑니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;3️⃣ &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;다단계 큐&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다단계 큐는 우선순위에 따른 &lt;u&gt;&lt;b&gt;준비 큐를 여러개&lt;/b&gt;&lt;/u&gt; 사용하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;큐마다&lt;/b&gt;&lt;/u&gt; 라운드로빈이나 FCFS 등 다른 스케줄링 알고리즘을 적용한 알고리즘입니다.&lt;/p&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;b&gt;기아현상&lt;/b&gt;(starvation)이 발생할 수도 있습니다.&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;캐시&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;캐시는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;데이터를 미리 복사해 놓는 임시 저장소&lt;/b&gt;&lt;/u&gt;&lt;/span&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;예로는, CPU 레지스터가 대표적인데 CPU가 메모리로부터 데이터를 가져올 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간이 너무 많이 들어서 중간에 레지스터 계층을 둬서 속도 차이를 해결합니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;캐시 히트 &amp;amp; 캐시 미스&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;캐시 히트&lt;/b&gt;&lt;/span&gt;란 캐시에서 원하는 데이터를 찾은 것을 말하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;캐시 미스&lt;/b&gt;&lt;/span&gt;란 캐시에서 원하는 데이터를 찾지 못한 것을 의미합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약, 캐시 미스가 일어나면 메모리로 가서 원하는 데이터를 레지스터에 등록합니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;지역성&lt;/b&gt;&lt;/span&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;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;시간 지역성&lt;/b&gt;&lt;/span&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;2) &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;공간 지역성&lt;/b&gt;&lt;/span&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;캐시매핑&lt;/b&gt;&lt;/span&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;1️⃣&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;직접 매핑&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(Direct Mapping) - &quot;직접 블록별 매핑&quot;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직접 매핑이란 메모리의 &lt;u&gt;&lt;b&gt;특정 블록을 특정 캐시 라인에만 매핑&lt;/b&gt;&lt;/u&gt;할 수 있는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 메모리가 A개의 페이지, 캐시가 B개의 페이지로 구성된다고 했을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리가 페이지 수 A를 B개로 나눠서 메모리의 페이지 수는 B*블록수가 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리가 1~100이 있고, 캐시가 1~5가 있다면 1:1~20, 2:21~40 같은 방식으로 매핑됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;  내부적으로 어떻게 구성되어 있을까?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영체제는 메모리를 똑같은 크기의 페이지로 나눠서 관리를 하며 &amp;lt;P,D&amp;gt;로 나누어 관리하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;P(Page Number)는 페이지 번호, D(Distance)는 페이지번호로부터 해당 주소까지의 거리입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 페이지인지에 따라 변환되는 것은 P이며, D는 변환되지 않고 유지됩니다.&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;span&gt;&lt;span&gt;&lt;span&gt;2️⃣ &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;연관 매핑&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(Associative Mapping) - &quot;자유로이 연관 매핑&quot;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연관 매핑이란 순서를 일치시키지 않고 &lt;u&gt;&lt;b&gt;관련있는 캐시와 메모리를 매핑&lt;/b&gt;&lt;/u&gt;하며&lt;/p&gt;
&lt;p data-ke-size=&quot;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;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;3️⃣ &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;집합-연관매핑&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(Set Associate Mapping)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;집합을 나누고 해당 집합에는 bd(block distance)만 같으면 들어올 수 있게 하는데,&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;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;메모리 할당&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램에 필요한 메모리를 할당할 때 시작 메모리 위치, 메모리 할당 크기를 기반으로 할당합니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;연속 할당 (Contiguous Memory Allocation)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리에 &lt;u&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;연속적으로 공간을 할당하는 것&lt;/b&gt;&lt;/span&gt;&lt;/u&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;1️⃣ &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;고정분할방식&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;(Fixed Partition Allocation)&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;메모리를 &lt;u&gt;&lt;b&gt;미리 같은 크기로 분할해서 할당하는 방법&lt;/b&gt;&lt;/u&gt;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;다만, 같은 크기로 분할해서 할당하기에 정해둔 칸 안에 모두 차지 않는 내부단편화가 발생할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;span&gt;2️⃣ &lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;가변분할방식&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(Fixed Partition Allocation)&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램에 &lt;u&gt;&lt;b&gt;필요한 만큼 동적으로 할당하는 방법&lt;/b&gt;&lt;/u&gt;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리를 고정된 크기 블록으로 나누지 않고, 프로그램이 필요한 만큼의 메모리를 동적으로 할당합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램이 할당 된 후 남은 공간은 새로운 가변 분할로 남겨지며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는&amp;nbsp; 다른 프로그램에 할당될 수 있어서 내부단편화를 줄일 수 있지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연속한 곳들을 할당하다가 남는 곳이 생길 수 있기에 외부단편화가 발생할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가변 분할 방식에는 아래 방법들이 있습니다.&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;최초적합(first fit)&lt;/b&gt; : 위쪽이나 아래쪽부터 시작해 홀을 찾으면 바로 할당&lt;/li&gt;
&lt;li&gt;&lt;b&gt;최적적합(best fit)&lt;/b&gt; : 필요한 메모리 크기 이상인 공간 중 가장 작은 홀부터 할당&lt;/li&gt;
&lt;li&gt;&lt;b&gt;최악적합(worst fit)&lt;/b&gt; : 프로세스의 크기와 가장 많이 차이가 나는 홀에 하당&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 10 크기의 프로세스가 있을 때, 아래 크기에 맞게 들어갑니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;12&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;최초적합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;최적적합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;25&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;최악적합&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;불연속 할당 (Non-Contiguous Memory Allocation)&lt;/b&gt;&lt;/span&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;1️⃣&lt;span&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;페이징&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(Memory Paging)&lt;/span&gt;&lt;/span&gt;&lt;/h4&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;u&gt;&lt;b&gt;동일한 크기의 페이지 단위로 나누어&lt;/b&gt;&lt;/u&gt; 메모리의 서로 다른 위치에 프로세스를 할당합니다.&lt;/span&gt;&lt;/span&gt;&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;&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;span&gt;&lt;span&gt;2️⃣&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;세그멘테이션&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(Memory Segmentation)&lt;/span&gt;&lt;/span&gt;&lt;/h4&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;페이지 단위가 아닌 의미 단위인 세그먼트(segment)로 나누어는 방식입니다.&lt;/span&gt;&lt;/span&gt;&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;span&gt;&lt;span&gt;3️⃣ &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;페이지드 세그멘테이션&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(Paged Segmentation)&lt;/span&gt;&lt;/span&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;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;&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;학교에서도 배우고 있는 내용이다보니 배우고 있는 내용이랑 연계해서도 많이 정리해본 것 같습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;도움이 되셨다면 좋아요, 댓글 남겨주세요!&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;긴 글 읽어주셔서 감사합니다. :)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;HAMACO&lt;/p&gt;</description>
      <category>DEV/Computer Science</category>
      <category>CPU스케줄링</category>
      <category>라운드로빈</category>
      <category>메모리할당</category>
      <category>세그멘테이션</category>
      <category>지역성</category>
      <category>캐시</category>
      <category>캐시매핑</category>
      <category>페이징</category>
      <author>hamaco.dev</author>
      <guid isPermaLink="true">https://hamaco.tistory.com/12</guid>
      <comments>https://hamaco.tistory.com/entry/CSOperating-System-CPU-Paging-Segmentation#entry12comment</comments>
      <pubDate>Sun, 11 May 2025 23:00:09 +0900</pubDate>
    </item>
  </channel>
</rss>