<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>오란지 블로그</title>
    <link>https://oranz.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 30 May 2026 05:40:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>oranz.23</managingEditor>
    <item>
      <title>[OS] Interrupt와 System Call</title>
      <link>https://oranz.tistory.com/60</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Dual Mode&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 컴퓨터가 일을 수행하는 가장 기본적인 방식은 메모리에서 instruction을 받아와서 이를 수행하는 것이다. 다만, OS는 다양한 애플리케이션들이 구동되는 환경으로부터 컴퓨터를 지키기 위해 &lt;b&gt;Dual Mode&lt;/b&gt; operation을 사용한다. 말 그대로 2가지 모드를 기반으로 컴퓨팅 리소스를 운용한다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;rSQYg.png&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kEQBQ/btruWPPblPQ/GXY7JsXwKJHCCTgepc72t0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kEQBQ/btruWPPblPQ/GXY7JsXwKJHCCTgepc72t0/img.png&quot; data-alt=&quot;User Mode와 Kernel Mode&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kEQBQ/btruWPPblPQ/GXY7JsXwKJHCCTgepc72t0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkEQBQ%2FbtruWPPblPQ%2FGXY7JsXwKJHCCTgepc72t0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;236&quot; data-filename=&quot;rSQYg.png&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;475&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;User Mode와 Kernel Mode&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Processor Register에 있는 mode bit으로 mode가 전환되는데, mode bit이 0일 때 구동되는 &lt;b&gt;Kernel Mode&lt;/b&gt;와 1일 때 구동되는&lt;b&gt;User Mode&lt;/b&gt;가 있다. Kernel Mode는 OS 단에서 처리해야 할 명령어들을 수행한다. 예를 들어 User Application에서 시스템 콜을 통해I/O 작업이 요청되었을 때 I/O 작업을 수행한다거나, Timer Interrupt가 발생했을 때 스케줄러를 수행한다든지 하는 명령들이다. 이와 같이 OS를 통해서 critical한 작업들을 수행함으로써 컴퓨터는 Application에서의 악의적인 코드나 잘못 짜여져 컴퓨터 리소스를 낭비하게 된는 상황으로부터 보호받게 된다. User Mode는 이러한 Previleged Instruction을 수행할 수 없는 모드이다. 일반적인 User Process를 수행할 때 사용된다.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;System Call&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;System Call&lt;/b&gt;은 사용자 프로그램이 Kernel 함수를 호출하는 것을 지칭한다. 대표적으로 새로운 프로세스를 만들어내는 fork가 있다. 이러한 System Call을 통해 얻게 되는 이점은 크게 다음 3가지를 들 수 있다.&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;Easier To Program: low-level 코드의 비중이 대폭 감소한다.&lt;/li&gt;
&lt;li&gt;Better System Security: Kernel이 해당 요청의 correctness를 interface level에서 체크해볼 수 있다.&lt;/li&gt;
&lt;li&gt;Better Program Portability: 하드웨어에 의존성이 있는 low-level 코드가 줄어듦으로써 이식성이 더 좋아진다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-03-03 오후 6.08.40.png&quot; data-origin-width=&quot;2200&quot; data-origin-height=&quot;1262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bz1pf1/btruXbk8utI/p3PSqybvAwFoxeR1EEjna0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bz1pf1/btruXbk8utI/p3PSqybvAwFoxeR1EEjna0/img.png&quot; data-alt=&quot;System Call 구동 원리 (Linux, Intel Architecture)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bz1pf1/btruXbk8utI/p3PSqybvAwFoxeR1EEjna0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbz1pf1%2FbtruXbk8utI%2Fp3PSqybvAwFoxeR1EEjna0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;656&quot; height=&quot;377&quot; data-filename=&quot;스크린샷 2022-03-03 오후 6.08.40.png&quot; data-origin-width=&quot;2200&quot; data-origin-height=&quot;1262&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;System Call 구동 원리 (Linux, Intel Architecture)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 리눅스의 경우, System Call은 위와 같이 수행된다.&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;fork()가 호출됐을 때, 리눅스의 표준 라이브러리인 libc.a에 wrapper function의 형태로 구현돼있는 fork()로 점프한다.&lt;/li&gt;
&lt;li&gt;eax에 2(System Call Table에서 fork의 고유값)를 저장함으로써 fork를 수행할 것이라는 것을 명시한다.&lt;/li&gt;
&lt;li&gt;int 명령을 수행함으로써 Kernel Mode로 operation을 수행한다.&lt;/li&gt;
&lt;li&gt;IDT(Interrupt Descriptor Table)에 0x80(=128)번째 entry에 링크돼있는 System Call 게이트웨이 함수를 수행한다.&lt;/li&gt;
&lt;li&gt;Context Switching 이후에 System Call Table 2번을 수행한다.&lt;/li&gt;
&lt;li&gt;원래의 위치로 돌아온다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Interrupt&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; Interrupt는 좁은 의미로는 Hardware Interrupt를 뜻하고, 넓은 의미로는 Software Interrupt(Trap)까지 포함한다. 각각에 대한 설명은 다음과 같다. 넓은 의미에서의 Interrupt는 User Mode에서 Kernel Mode로 바뀌게 되는 모든 경우를 포함한다고 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Hardware Interrupt
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Timer: Process에 배정된 time slice가 만료되었을 경우&lt;/li&gt;
&lt;li&gt;I/O Interrupt: I/O 작업이 끝났을 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Software Interrupt(Trap)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Internal Trap(Exception): Page fault, Invalid operation 등 오류&lt;/li&gt;
&lt;li&gt;System Call: I/O Operations, fork 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;무제.001.jpeg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTXE6A/btruZQ1oKPO/4FYsfrfc243LTpEnf6XjLK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTXE6A/btruZQ1oKPO/4FYsfrfc243LTpEnf6XjLK/img.jpg&quot; data-alt=&quot;컴퓨터 시스템 아키텍처&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTXE6A/btruZQ1oKPO/4FYsfrfc243LTpEnf6XjLK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTXE6A%2FbtruZQ1oKPO%2F4FYsfrfc243LTpEnf6XjLK%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;666&quot; height=&quot;375&quot; data-filename=&quot;무제.001.jpeg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;컴퓨터 시스템 아키텍처&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;+) DMA&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; DMA(Direct Memory Access) Controller CPU가 Memory에 있는 Instruction들을 수행하고, 와중에 Disk나 Printer 등 I/O Device들의 작업이 완료되면 Device Controller가 Interrupt를 걸고, CPU가 Local Buffer에 있는 내용을 Memory로 옮기게 된다. 하지만 이런 식으로 작업을 진행할 경우 CPU에 과도한 Interrupt가 걸린다는 문제가 있다. 이에 따라 DMA(Direct Memory Access) Controller가 Local Buffer에 있는 결과물을 Memory에 옮기는 일을 수행하고 완료되었을 때 CPU에 Interrupt를 걸게 된다.&lt;/p&gt;</description>
      <category>Computer Science/OS</category>
      <category>OS</category>
      <category>시스템 콜</category>
      <category>인터럽트</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/60</guid>
      <comments>https://oranz.tistory.com/60#entry60comment</comments>
      <pubDate>Thu, 3 Mar 2022 21:00:52 +0900</pubDate>
    </item>
    <item>
      <title>동기와 비동기, 블로킹과 논블로킹</title>
      <link>https://oranz.tistory.com/59</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 웹개발을 접해볼 일이 있었다면, 그 중에서도 특히 자바스크립트를 쓸 일이 있었다면 오늘의 주제는 반드시 접해봤을 것이다. 동기와 비동기, 블로킹과 논블로킹은 작업을 수행하는 주체 간의 처리 방식을 표현하는 용어들이다. 그러나 다른 개념임에도 종종 혼동되거나 의미 자체를 명확히 알지 못하는 경우가 많아 명확히 정리해보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;블로킹과 논블로킹&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-02-25 오전 7.05.55.png&quot; data-origin-width=&quot;1946&quot; data-origin-height=&quot;1202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0BJS0/btruke9prn2/PKWIvz7xD3ZINEPwZXGH51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0BJS0/btruke9prn2/PKWIvz7xD3ZINEPwZXGH51/img.png&quot; data-alt=&quot;Blocking VS Non-Blocking&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0BJS0/btruke9prn2/PKWIvz7xD3ZINEPwZXGH51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0BJS0%2Fbtruke9prn2%2FPKWIvz7xD3ZINEPwZXGH51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;340&quot; data-filename=&quot;스크린샷 2022-02-25 오전 7.05.55.png&quot; data-origin-width=&quot;1946&quot; data-origin-height=&quot;1202&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Blocking VS Non-Blocking&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 잘 기억할 수 있도록 영어 단어 뜻 그대로 이해해보자면 &lt;b&gt;블로킹은 막힌다&lt;/b&gt;는 뜻으로, &lt;b&gt;논블로킹은 막히지 않는다&lt;/b&gt;는 뜻으로 해석할 수 있다. 그런데 무엇이 막히고 막히지 않는다는 것일까? 바로 &lt;b&gt;작업을 요청한 쓰레드&lt;/b&gt;이다. 위 그림을 살펴보면 블로킹의 경우, Kernel에 작업을 맡긴 Application이 Kernel의 작업이 끝날 때까지 다른 작업을 수행하지 않는 것을 알 수 있다. 그러나 논블로킹의 경우, Kernel에 작업을 맡긴 후 다른 작업을 수행하는 것을 확인할 수 있다. 이는 다르게 표현하자면 Application의 제어권이 요청을 수행하는 동안은 Kernel로 넘어간 것으로도 볼 수 있다. 따라서 이후에 설명할 동기와 비동기 개념과 구분되는 점은 &lt;b&gt;제어권&lt;/b&gt;에 관한 개념이라는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 예시로 저녁식사를 준비할 때를 들 수 있겠다. 밥을 안치고 나서 밥이 다 될 때까지를 기다린다면 블로킹, 밥이 되는 동안 반찬 등 다른 요리를 하고 있다면 논블로킹으로 비유할 수 있을 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;동기와 비동기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;1858&quot; data-origin-height=&quot;1198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xi1Zu/btruexIHlUo/9pWo96aNJeumMx0mRwoF50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xi1Zu/btruexIHlUo/9pWo96aNJeumMx0mRwoF50/img.png&quot; data-alt=&quot;Synchronous VS Asynchronous&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xi1Zu/btruexIHlUo/9pWo96aNJeumMx0mRwoF50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxi1Zu%2FbtruexIHlUo%2F9pWo96aNJeumMx0mRwoF50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;514&quot; height=&quot;331&quot; data-origin-width=&quot;1858&quot; data-origin-height=&quot;1198&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Synchronous VS Asynchronous&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 이번에도 영어 단어의 의미대로 먼저 이해해보자. Synchronous는 동기, 즉 &lt;b&gt;동기화가 된다&lt;/b&gt;는 뜻으로 해석할 수 있고 Asynchronous는 비동기, &lt;b&gt;동기화가 이루어지지 않는다&lt;/b&gt;는 뜻으로 해석할 수 있다. 그렇다면 어떤 시점을 기준으로 이런 판단을 내리는 것일까? 바로 &lt;b&gt;작업이 완료된 후 원래 작업 쓰레드에서 응답을 받은 시점&lt;/b&gt;이다. 위 그림에서 보면 블로킹과 논블로킹에 대해서는 가정하지 않았으므로 요청과 응답 사이에는 작업의 수행여부에 대해서 알 수 없다. 그러나 Synchronous의 경우, 응답을 받자마자 이후의 작업을 수행하는 것을 확인할 수 있다. 그러나 Asynchronous는 이를 보장하지 않는다. 위 그림에서는 다른 작업을 수행하고 있지만 사실 이후의 작업을 수행하는 것 역시 가능한 시나리오이다. 그렇지만 Asynchronous는 이를 &lt;u&gt;보장하지 않는다&lt;/u&gt;는 점에서 Synchronous와 구분된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 저녁 식사를 준비할 때 밥이 다 되면 밥을 퍼서 바로 밥그릇에 담는 것이 동기라면, 밥이 다 되어도 다른 일을 할 수 있는 것이 비동기이다.&lt;/p&gt;</description>
      <category>Computer Science/OS</category>
      <category>nodejs</category>
      <category>동기비동기</category>
      <category>블로킹논블로킹</category>
      <category>자바스크립트</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/59</guid>
      <comments>https://oranz.tistory.com/59#entry59comment</comments>
      <pubDate>Fri, 25 Feb 2022 07:46:20 +0900</pubDate>
    </item>
    <item>
      <title>소프트웨어 마에스트로 12기 수료 후기 (팀빌딩, 프로젝트, 해커톤)</title>
      <link>https://oranz.tistory.com/58</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;예비과정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;소마에 합격하고 나면 Webex, 카카오워크 등 채널에 초대되고 지원서를 제출하고 합격을 확인했던 소마 홈페이지가 이제 활동을 위한 곳으로 쓰이게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-01-27 오후 3.14.29.png&quot; data-origin-width=&quot;3012&quot; data-origin-height=&quot;962&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nx0s8/btrrRSV6Bae/Hx5ckXUJIAyYvdM8dD7oL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nx0s8/btrrRSV6Bae/Hx5ckXUJIAyYvdM8dD7oL0/img.png&quot; data-alt=&quot;소마 홈페이지에 이런 기능이?!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nx0s8/btrrRSV6Bae/Hx5ckXUJIAyYvdM8dD7oL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnx0s8%2FbtrrRSV6Bae%2FHx5ckXUJIAyYvdM8dD7oL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3012&quot; height=&quot;962&quot; data-filename=&quot;스크린샷 2022-01-27 오후 3.14.29.png&quot; data-origin-width=&quot;3012&quot; data-origin-height=&quot;962&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; &amp;nbsp; 역시나 비대면 위주로 진행되기 때문에 네트워킹 역시 위의 사이트에서 이뤄졌다. 마이페이지에 자기소개 및 진행한 프로젝트를 기술해놓음으로써 어떤 프로젝트를 원하는지, 어떤 팀을 꾸리고 싶은지 등을 어필하여 서로 네트워킹하게 된다. 위에 보이는 연수생/멘토 검색에서 어떤 연수생 또는 멘토님들이 계시는지 확인할 수 있고 마음에 들면 이메일 등을 통해 컨택하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 또한 4-6월까지는 예비과정으로, 연수생들이 미니 프로젝트, 해커톤 등을 통해 서로를 알아가고 멘토링을 받으며 멘토님과도 네트워킹할 수 있는 시간을 가지게 된다. 위의 멘토링/행사 게시판에 멘토님들이 다양한 주제(AI / 소마 활동 현명하게 하기 / 클라우드 / 자신의 이야기)들로 멘토링을 열어주시며, 이러한 과정을 통해 서로 핏이 맞는 멘토-멘티 팀빌딩을 이룰 수 있는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팀빌딩&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 소마에는 정말 행동력 좋으신 분들이 많구나를 느낄 수 있는 요소 중 하나라고 생각한다. 합격한지 며칠 되지 않아 12기 연수생 전체를 대상으로 이메일을 보내며 자신을 어필하신 분도 계셨고, 자기소개를 업로드하니 종종 팀빌딩과 관련된 연락이 왔기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 아쉽게도 이 시기가 나는 시험기간과 겹쳐 적극적으로 팀빌딩에 나서지 못했다. 다만 흥미가 가는 친구가 하나 있었는데, 자기소개에서 스스로의 빈약함을 드러내며 언급한 드라마 &amp;lt;나의 아저씨&amp;gt;에 대한 코멘트를 메일로 준 친구가 있었다. 기술 스택이나 프로젝트에 대해 먼저 언급하지 않고 연락을 취해온 것은 이 친구가 유일했고, 이 점이 나는 흥미가 갔다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-01-27 오후 4.22.18.png&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;520&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nQ6bL/btrrUoAjVSZ/Yb8w2ygr58psVBQDJSvB2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nQ6bL/btrrUoAjVSZ/Yb8w2ygr58psVBQDJSvB2K/img.png&quot; data-alt=&quot;현지한테 왔던 메일, 지금 보니까 맞춤법 좀 신경쓰인다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nQ6bL/btrrUoAjVSZ/Yb8w2ygr58psVBQDJSvB2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnQ6bL%2FbtrrUoAjVSZ%2FYb8w2ygr58psVBQDJSvB2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1690&quot; height=&quot;520&quot; data-filename=&quot;스크린샷 2022-01-27 오후 4.22.18.png&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;520&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; &amp;nbsp; 프로젝트 하러 팀빌딩하는 건데 프로젝트 얘기를 안하는 게 흥미가 갔다는 게 뭔소린지 이해가 안갈 수도 있지만, 어쨌거나 소마는 대학생들 위주로 '우리가 기획한 서비스'를 직접 개발하는 데에 의의가 있다. 그렇다면 나는 단순히 프론트엔드 / 백엔드 식으로 알고 있는 기술 스택을 맞추기보다는 정말 팀이 한마음으로 즐겁게 개발할 수 있는 서비스에 대해 마음이 맞는 것이 중요하다고 생각했다. 물론 드라마 얘기로 결정을 내린 것은 아니고, 이후에도 이야기해보니 함께 좋은 팀을 만들 수 있을 것이라는 판단이 섰다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 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;a href=&quot;https://m.blog.naver.com/PostView.naver?blogId=sw_maestro&amp;amp;logNo=222543974765&amp;amp;navType=by&quot;&gt;https://m.blog.naver.com/PostView.naver?blogId=sw_maestro&amp;amp;logNo=222543974765&amp;amp;navType=by&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1643266593135&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;부캐로 나의 개성을 드러낼 새로운 SNS 서비스를 개발하는 &amp;lsquo;달오떡&amp;rsquo;팀 인터뷰&quot; data-og-description=&quot;안녕하세요! 여러분, 오늘은 SW마에스트로 제12기 연수생 &amp;lsquo;달오떡&amp;rsquo;팀을 만나보았습니다. 자세한 인터뷰...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://m.blog.naver.com/PostView.naver?blogId=sw_maestro&amp;amp;logNo=222543974765&amp;amp;navType=by&quot; data-og-url=&quot;https://blog.naver.com/sw_maestro/222543974765&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/JisKB/hyNeJ2WfwC/MNGc6v3txF07B9fhkkvLl1/img.jpg?width=743&amp;amp;height=743&amp;amp;face=0_0_743_743&quot;&gt;&lt;a href=&quot;https://m.blog.naver.com/PostView.naver?blogId=sw_maestro&amp;amp;logNo=222543974765&amp;amp;navType=by&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://m.blog.naver.com/PostView.naver?blogId=sw_maestro&amp;amp;logNo=222543974765&amp;amp;navType=by&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/JisKB/hyNeJ2WfwC/MNGc6v3txF07B9fhkkvLl1/img.jpg?width=743&amp;amp;height=743&amp;amp;face=0_0_743_743');&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;부캐로 나의 개성을 드러낼 새로운 SNS 서비스를 개발하는 &amp;lsquo;달오떡&amp;rsquo;팀 인터뷰&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요! 여러분, 오늘은 SW마에스트로 제12기 연수생 &amp;lsquo;달오떡&amp;rsquo;팀을 만나보았습니다. 자세한 인터뷰...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;미니프로젝트 &amp;amp; 해커톤&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 비대면의 아쉬움을 덜어내고자 소마 사무국 측에서는 최대한 연수생들끼리 네트워킹할 수 있도록 행사를 열어주었고, 미니프로젝트와 해커톤은 그 일환이었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 미니프로젝트는 랜덤으로 매칭된 팀원들과 함께 카카오워크를 이용한 챗봇을 만들게 되는데, 모르는 팀원들과 함께 해서인지 적극적인 분위기로 프로젝트가 이뤄지지는 않았다. 그렇지만 '코인의 시세를 알려줄 수 있는 챗봇'이라는 주제로 재밌게 개발할 수 있었으며, 연수생 간에 이뤄진 인기투표에서 2위를 차지할 수 있었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 해커톤은 예비과정 중이긴 하지만 5월 초에 이뤄져서 많은 팀들이 빌딩된 상태였고, 우리 팀 또한 그랬다. 총 인원이 6명이었기 때문에 다른 팀과 한 팀을 이뤄 참가하게 되었다. 주제는 공공 API를 이용하여 개발하는 것이었고, 우리 팀은 긴 회의 끝에 유기견의 이상형 월드컵을 수행한 후에 1위를 한 강아지와 유사한 유기견들을 보여주는 사이트를 개발하기로 했다. 돌이켜봐도 재밌을 뿐 아니라 나름 의미있는 프로젝트였던 것 같고, 덕분에 미니 프로젝트에 이어 2위를 차지할 수 있었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 참고로, 두 번 모두 구름IDE를 이용해 서버를 배포할 수 있었다.&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/bmY9rB/btrrReSLm3r/7zH3a3TOWUHNdm5nQU5Z70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmY9rB/btrrReSLm3r/7zH3a3TOWUHNdm5nQU5Z70/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;502&quot; data-filename=&quot;KakaoTalk_Photo_2022-01-27-16-09-32.png&quot; style=&quot;width: 49.5274%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmY9rB/btrrReSLm3r/7zH3a3TOWUHNdm5nQU5Z70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmY9rB%2FbtrrReSLm3r%2F7zH3a3TOWUHNdm5nQU5Z70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;711&quot; height=&quot;502&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H2ktN/btrrRdGklHh/kk2EEJm98qkYGQl8M8hqCk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H2ktN/btrrRdGklHh/kk2EEJm98qkYGQl8M8hqCk/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;712&quot; data-filename=&quot;KakaoTalk_Photo_2022-01-27-16-09-37.jpeg&quot; style=&quot;width: 49.3098%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H2ktN/btrrRdGklHh/kk2EEJm98qkYGQl8M8hqCk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH2ktN%2FbtrrRdGklHh%2Fkk2EEJm98qkYGQl8M8hqCk%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;1004&quot; height=&quot;712&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;미니 프로젝트 &amp;amp; 해커톤 2등&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;본과정&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;기획심의&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;다소 긴 예비과정을 거쳤지만, 누가 뭐래도 소마의 꽃은 본과정에서 진행하는 프로젝트이다. 팀빌딩하며 우리 3명이 동의한 두루뭉술한 주제인 '사람들의 개성을 표현할 수 있는 서비스'를 구체화하기 위해 정말 많은 멘토링과 고민을 거쳐야했다. 그러던 중 사람들이 열광하는 최준, 유산슬 등을 보며 '부캐'가 가지는 의미에 대해서 고민해보게 되었고 이것이 &amp;lt;부캐로 사람들을 꽃피워주는 서비스, Bouquet&amp;gt;의 시작이 되었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-01-27 오후 4.26.15.png&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;1370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/weF3A/btrrUPEuehU/qwKW0OrIX10eX8kfqy3eKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/weF3A/btrrUPEuehU/qwKW0OrIX10eX8kfqy3eKK/img.png&quot; data-alt=&quot;처음 Bouquet를 기획하며 만들었던 소개 페이지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/weF3A/btrrUPEuehU/qwKW0OrIX10eX8kfqy3eKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FweF3A%2FbtrrUPEuehU%2FqwKW0OrIX10eX8kfqy3eKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;654&quot; height=&quot;604&quot; data-filename=&quot;스크린샷 2022-01-27 오후 4.26.15.png&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;1370&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;처음 Bouquet를 기획하며 만들었던 소개 페이지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 위와 같이 머릿속에 떠오른 서비스를 소개하기 용이하도록 노션 페이지로 만들어 멘토님들과 팀원들에게 공유했고, 재밌는 주제라며 열띤 토론을 통해 서비스를 구체화해나갔다. 그리고 다행히도 프로젝트를 시작하기 위한 출발선인 기획심의에서 통과할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;중간평가&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;아쉽게도 거리두기 조치로 인해 센터를 사용하는 데에 어려움이 있었지만, 오프라인으로 함께 즉각적인 소통을 할 수 있는 환경이 중요하다고 생각해서 우리 팀은 합정에 위치한 TTP라는 코워킹스페이스를 소마 활동이 끝날 때까지 사용하는 것으로 계약했다. 그래서 7월부터 11월까지 우리 3명의 일상은 합정으로 점철돼있다.&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2022-01-27-16-44-24.jpeg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/su7zq/btrrP4DdJsa/mXpbBWaKdu3YTPbMnk0ac1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/su7zq/btrrP4DdJsa/mXpbBWaKdu3YTPbMnk0ac1/img.jpg&quot; data-alt=&quot;TTP에서 열일하는 팀원들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/su7zq/btrrP4DdJsa/mXpbBWaKdu3YTPbMnk0ac1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsu7zq%2FbtrrP4DdJsa%2FmXpbBWaKdu3YTPbMnk0ac1%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;435&quot; height=&quot;435&quot; data-filename=&quot;KakaoTalk_Photo_2022-01-27-16-44-24.jpeg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;TTP에서 열일하는 팀원들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 먼저, 앱 서비스로 기획한 만큼 전체적인 디자인이 나와야했다. 디자인 경험이 없는 나와 현지가 각 뷰에 대한 와이어프레임을 피그마로 그리면 우리의 디자인 헤드인 광서가 멋진 뷰로 재탄생시켜주었다. 이 과정에서 Bouquet 로고도 탄생하게 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;129101784-39f3283b-ab0d-4f45-b563-0f80734f1e74.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bz3BxP/btrrUt2JFSm/DTzkf6m7VpbVGNiuPHc0KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bz3BxP/btrrUt2JFSm/DTzkf6m7VpbVGNiuPHc0KK/img.png&quot; data-alt=&quot;광서가 그려준 Bouquet 로고&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bz3BxP/btrrUt2JFSm/DTzkf6m7VpbVGNiuPHc0KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbz3BxP%2FbtrrUt2JFSm%2FDTzkf6m7VpbVGNiuPHc0KK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;282&quot; height=&quot;400&quot; data-filename=&quot;129101784-39f3283b-ab0d-4f45-b563-0f80734f1e74.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;광서가 그려준 Bouquet 로고&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;1481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDFPa9/btrrUPYXrHS/nZfw9fVhUyRljLbDwZFrQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDFPa9/btrrUPYXrHS/nZfw9fVhUyRljLbDwZFrQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDFPa9/btrrUPYXrHS/nZfw9fVhUyRljLbDwZFrQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDFPa9%2FbtrrUPYXrHS%2FnZfw9fVhUyRljLbDwZFrQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;260&quot; height=&quot;1481&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;1481&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;그 외에도 우리는 각자 처음 써보는 스택(프론트 - React Native, 백엔드 - FastAPI)을 사용하여 개발을 진행했는데, 하루라도 빨리 릴리즈하고 싶었지만 아쉽게도 중간발표 때에는 프로토타입까지 완성하는 데 그쳤다.&lt;/p&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;SNS는 생각보다도 할 게 정말 많다.&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; &amp;nbsp; 우리가 합정에 처음 들어섰을 때 궁금한 집들을 지나치면서 &quot;릴리즈하면 꼭 저기 가보자!&quot;라고 말하곤 했었는데, 점점 릴리즈가 밀리면서 &quot;저기 언제 가...?&quot; 하게 됐던 슬픈 사연이 있다. 돌이켜보면 우리 프로젝트의 볼륨과 우리가 해나갈 수 있는 속도를 가늠하는 데에 있어서 미숙한 부분이 있지 않았나 싶다. 다음 프로젝트를 진행할 때는 해당 부분을 좀더 보수적으로 생각해보고, 스스로도 항상 무엇을 얼마 안에 만들 수 있는지 측정해보는 식으로 공부해볼까 한다.&lt;/p&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 data-ke-size=&quot;size20&quot;&gt;최종발표&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;u&gt;우리는 드디어 10월에 배포를 완료할 수 있었다.&lt;/u&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/cqq7lc/btrrR7eF7Hj/3KJ0rF45LkzBrsfhyO7ia0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqq7lc/btrrR7eF7Hj/3KJ0rF45LkzBrsfhyO7ia0/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;1776&quot; data-filename=&quot;KakaoTalk_Photo_2022-01-27-17-09-05 001.jpeg&quot; width=&quot;275&quot; height=&quot;417&quot; style=&quot;width: 52.1151%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqq7lc/btrrR7eF7Hj/3KJ0rF45LkzBrsfhyO7ia0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcqq7lc%2FbtrrR7eF7Hj%2F3KJ0rF45LkzBrsfhyO7ia0%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;1170&quot; height=&quot;1776&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QZeYt/btrrUpF8nlX/NFUpdBGKZAnnV1jchwdL71/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QZeYt/btrrUpF8nlX/NFUpdBGKZAnnV1jchwdL71/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;1981&quot; data-filename=&quot;KakaoTalk_Photo_2022-01-27-17-09-05 002.jpeg&quot; width=&quot;232&quot; height=&quot;393&quot; style=&quot;width: 46.7221%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QZeYt/btrrUpF8nlX/NFUpdBGKZAnnV1jchwdL71/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQZeYt%2FbtrrUpF8nlX%2FNFUpdBGKZAnnV1jchwdL71%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;1170&quot; height=&quot;1981&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; &amp;nbsp; 물론 릴리즈한다고 끝은 아니었다. 버그가 팡팡 터져주었고, 추가할 기능도 많았다. 조금이라도 더 유저를 끌어모으기 위해 다양한 마케팅을 고민하기도 했다. 특히, 중간평가 때 타 SNS와의 차별성에 대한 공격을 많이 받은 터라 해당 부분을 더 개선하고자 노력했고, 일례로 GAN을 이용한 인물사진에 스타일을 적용하는 기능을 추가하기도 했다. 이 과정에서 VC에게 컨택을 받기도 하는 등 나름의 성과가 있었다.&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;1962&quot; data-origin-height=&quot;1714&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ki2KW/btrrPGvBJku/e2vKtpkzdvmmXjGBtt3Xlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ki2KW/btrrPGvBJku/e2vKtpkzdvmmXjGBtt3Xlk/img.png&quot; data-alt=&quot;최종발표 영상 캡처&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ki2KW/btrrPGvBJku/e2vKtpkzdvmmXjGBtt3Xlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKi2KW%2FbtrrPGvBJku%2Fe2vKtpkzdvmmXjGBtt3Xlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;517&quot; height=&quot;452&quot; data-origin-width=&quot;1962&quot; data-origin-height=&quot;1714&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; &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;886&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vis15/btrrUPdCxOJ/EPUKrBZBGjdUdNdkXHMhok/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vis15/btrrUPdCxOJ/EPUKrBZBGjdUdNdkXHMhok/img.jpg&quot; data-alt=&quot;자축하며 샀던 케이크&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vis15/btrrUPdCxOJ/EPUKrBZBGjdUdNdkXHMhok/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvis15%2FbtrrUPdCxOJ%2FEPUKrBZBGjdUdNdkXHMhok%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;453&quot; height=&quot;453&quot; data-origin-width=&quot;886&quot; data-origin-height=&quot;886&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; 마지막으로, 함께 고생한 12기 연수생들, 멘토님들, 그리고 무엇보다 우리 팀원들에게 늦은 감사를 표하고 싶다. 소마는 값진 활동이었다. 앞으로 소마에서 배운 것들을 나눌 기회가 많았으면 좋겠다.&lt;/p&gt;</description>
      <category>Story</category>
      <category>12기</category>
      <category>Soma</category>
      <category>SWMaestro</category>
      <category>소마</category>
      <category>소마12기</category>
      <category>소프트웨어마에스트로</category>
      <category>소프트웨어마에스트로12기</category>
      <category>팀빌딩</category>
      <category>후기</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/58</guid>
      <comments>https://oranz.tistory.com/58#entry58comment</comments>
      <pubDate>Thu, 27 Jan 2022 17:29:45 +0900</pubDate>
    </item>
    <item>
      <title>소프트웨어 마에스트로 12기 합격 후기 (지원 과정, 코딩테스트, 면접)</title>
      <link>https://oranz.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;129100511-222df9db-5a14-4a65-84ed-7895997c5771.png&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;395&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xWt9F/btrrVnf94WH/jDohiFgZIDctgqUbQAHJAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xWt9F/btrrVnf94WH/jDohiFgZIDctgqUbQAHJAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xWt9F/btrrVnf94WH/jDohiFgZIDctgqUbQAHJAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxWt9F%2FbtrrVnf94WH%2FjDohiFgZIDctgqUbQAHJAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;919&quot; height=&quot;395&quot; data-filename=&quot;129100511-222df9db-5a14-4a65-84ed-7895997c5771.png&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;395&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 2021년 내가 가장 많은 시간을 할애했던 프로젝트가 끝난지 벌써 2달 정도 되었다. 이제 다음 스텝을 위해 하루하루 공부하고 있는 내게 작년 매일같이 팀원들과 개발에 매달렸던 일상은 꿈결같기도 하다. 그렇지만 13기 모집 공고가 올라온 것을 보고 더 늦기 전에 이제 떨리는 마음으로 소마를 준비하고 있을 누군가를 위해 내 작은 경험을 공유해보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;서류 접수&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;아마 자기소개서가 서류 접수에서의 가장 큰 문턱이었던 것으로 기억한다. 각 질문마다 최대 3,000자까지 허용하는 스케일은 글자수==성의 라고 생각했던 나에게 꽤나 부담으로 다가왔고, 그래서 11기 때는 지원을 안했다(?) 그렇지만 이번에는 어떻게든 도전해보자는 생각이 있었고, 나름의 이야기를 최대한 전달하기 좋게 담아보고자 했던 것 같다. 각 질문에 대한 대략적인 답은 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[자기소개 1] &lt;span style=&quot;color: #525252;&quot;&gt;소프트웨어&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;분야&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;전문성을&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;키우기&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;위해&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;남들과&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;달리&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;특별한&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;노력을&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;한&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;경험을&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;서술해&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;주시기&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;바랍니다.&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&amp;nbsp; &amp;nbsp; 컴퓨터과학 전공자이지만 처음부터 개발에 열정적으로 임했던 것은 아니었다. 그렇기 때문에 기술력을 갖춰야겠다고 생각한 계기, 발전해나간 과정을 적었다. 참고로, 합격하고 나서 개발 경험이 풍부한 분들도 많았지만 거의 처음 개발을 해보는 분들도 종종 만나곤 했다. 이 질문 역시 '전문성'에 초점을 맞추기보다 '특별한 노력'을 어필하는 것이 소마 측에서 원하는 바이지 않을까 생각한다. (1455자)&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;color: #525252;&quot;&gt;[자기소개 2] &lt;span style=&quot;color: #525252;&quot;&gt;귀하의&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;장래희망을&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;서술하여&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;주시기&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;바랍니다.&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&amp;nbsp; &amp;nbsp; 나는 스티브 잡스를 보고 IT업계 쪽 일을 해야겠다고 생각했고, 여전히 그 때 스스로에게서 발견했던 새로운 것을 좋아하는 성향은 유효하다고 생각했다. 그러나 어떤 기술의 전문가가 될 것인지, 앞으로의 커리어패스에 대한 완벽한 청사진을 그렸다든지 하는 것은 없었다. 그렇기 때문에 내가 원하는 미래의 내 모습의 요소들을 나열하는 식으로 이야기를 풀어나갔다. (1358자)&lt;/span&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;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;[연수계획 1] &lt;span style=&quot;color: #525252;&quot;&gt;어떠한&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;능력을&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;갖춘&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;연수생들과&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;어떠한&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;프로젝트를&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;어떻게&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;수행할&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;것인지&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;귀하의&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;구체적인&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;계획을&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;서술하여&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;주시기&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;바랍니다&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&amp;nbsp; &amp;nbsp; 종종 생각하던 주식 종목에 대한 위키 사이트를 만드는 것에 대한 이야기를 썼다. 아마 깊게 생각해본 내용이 아니라 군데군데 기획적인 허점이 있었을 것이라고 생각한다. 개인적으로 이 질문은 너무 말도 안되는 것만 쓰지 않으면 괜찮지 않을까 한다. 그렇지만 어느 정도 고민해보는 것을 추천한다. 면접에서 이 프로젝트에 관한 세부사항들을 질문받기도 했고, 합격한다면 고민해볼 주제이기 때문이다. 참고로, 난 여기에 쓴 프로젝트를 실제로 하지 않았고 만났던 동기 연수생들도 대부분 그러했다. (1072자)&lt;/span&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;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;[연수계획 2] &lt;span style=&quot;color: #525252;&quot;&gt;앞으로&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;귀하께서&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;본&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;과정을&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;통해&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;이루고자&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;하는&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;목표가&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;무엇인지&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;구체적으로&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;서술하여&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;주시기&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;바랍니다&lt;/span&gt;&lt;span style=&quot;color: #525252;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&amp;nbsp; &amp;nbsp; 무언가를 얻게 되는지는 사실 과정에 들어서기 전보다 하면서, 그리고 하고 나서 알게 되는 부분이 많다고 생각했기 때문에 진심이지만 다소 뻔한 내용으로 채우게 되었다. 서비스를 세상에 출시하는 과정을 느껴 보고, 기술적인 부분에서 배우고 사람들을 얻어가고 싶다고 기술했다. (748자)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&amp;nbsp; &amp;nbsp; 내가 알기로 소마 지원 과정 중 서류에서 떨어지는 경우는 거의 없다. 그러니 서류를 어떻게든 제출했다면, 합격할지 불합격할지 조바심에 떨기보다는 당장 코딩테스트를 준비할 것을 권한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;코딩테스트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;참고로 나는 저 때나 지금이나(...) 백준 골드에 머무르고 있고, 크게 내세울 만한 알고리즘 실력을 갖추지는 못했다. 바꿔 말하면, 소마에 한해서는 알고리즘 실력이 뛰어나지 않다고 겁먹지는 않아도 된다고 말하고 싶다. 아래의 책으로 기본적인 알고리즘들의 원리를 숙지하고, 구현할 수 있을 정도로 학습하면 충분히 합격할 수 있을 것이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;a href=&quot;http://www.yes24.com/Product/Goods/91433923&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.yes24.com/Product/Goods/91433923&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1643260231622&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;book&quot; data-og-title=&quot;이것이 취업을 위한 코딩 테스트다 with 파이썬  - YES24&quot; data-og-description=&quot;나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 &amp;middot; 삼성전자 &amp;middot; 네이버 &amp;middot; 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생&quot; data-og-host=&quot;www.yes24.com&quot; data-og-source-url=&quot;http://www.yes24.com/Product/Goods/91433923&quot; data-og-url=&quot;http://www.yes24.com/Product/Goods/91433923&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qRWbP/hyNdeQX3zR/DkKvJPzaEc1QNayd7un7t1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/Ok5Fe/hyNeGSCoEy/UrPk8DkdRLBe9VqbIHoGa1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200&quot;&gt;&lt;a href=&quot;http://www.yes24.com/Product/Goods/91433923&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://www.yes24.com/Product/Goods/91433923&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qRWbP/hyNdeQX3zR/DkKvJPzaEc1QNayd7un7t1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/Ok5Fe/hyNeGSCoEy/UrPk8DkdRLBe9VqbIHoGa1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200');&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;이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 &amp;middot; 삼성전자 &amp;middot; 네이버 &amp;middot; 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;소마 코딩테스트는 신기하게도 일반적인 코딩테스트와 달리 알고리즘, SQL, 웹 문제가 출제된다. 문제 비율은 6:1:1 정도였던 것으로 기억하며, 백엔드 개발을 주로 하던 나는 웹에 대한 것은 잘 몰라 테스트 중 그 쪽 문제는 쳐다보지도 않았다. 문제 수가 보여주듯 일단 알고리즘을 잘 푸는 것이 제일 핵심이며 작년의 코딩테스트는 엘리스 플랫폼에서 이뤄졌는데, 제한시간이 60초(...)로 효율성을 덜 고민하더라도 일단 돌아가는 코드를 먼저 짜보라는 것이 개인적인 팁이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;SQL 같은 경우는 사실 알고리즘과 달리 문제를 많이 접하기가 어렵지만, 프로그래머스에 있는 SQL Kit 문제들로 대략적인 감을 잡았고, 난이도를 그렇게 높지 않은 수준이라 SQL을 어느 정도 아는 사람이라면 1분 이내로 풀 수 있는 내용이었던 것으로 기억한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 1차와 2차 코딩테스트가 있는데 2차가 더 난이도가 높거나 하진 않았던 것으로 기억한다. 체감상으로는 2차가 더 쉬웠던 것 같다. 추가적인 팁을 주자면, 면접 때 코딩테스트에서의 코드에 대해 질문하는 경우가 종종 있고 로컬 IDE 사용을 소마 측에서 허용하므로 코드를 저장해두고 복기한 후 면접에 가는 것을 추천한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;면접&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;972&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AvcdL/btrrU9oPva7/gowTxQIBHSFUsJJJFHxBQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AvcdL/btrrU9oPva7/gowTxQIBHSFUsJJJFHxBQ0/img.png&quot; data-alt=&quot;합격 메일&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AvcdL/btrrU9oPva7/gowTxQIBHSFUsJJJFHxBQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAvcdL%2FbtrrU9oPva7%2FgowTxQIBHSFUsJJJFHxBQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;306&quot; data-origin-width=&quot;972&quot; data-origin-height=&quot;512&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; &amp;nbsp; 위의 과정을 거치고 기쁘게도 합격 메일을 받을 수 있었다. 면접은 이전까지의 전형과는 달리 선릉에 위치한 소마 센터에서 오프라인으로 진행되는데, 많이 떨렸고 면접이 정말이지 오랜만이라 인터넷으로 소마 면접 후기, 개발자 면접 질문 등을 검색하여 다음과 같이 예상 질문들을 정리해보고 친구를 불러다가 카페에서 연습을 해보았다. 늦었지만 그 때 도움을 준 대학원생 친구에게 감사를 전한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;공통&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;간단한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자기소개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp; &lt;/span&gt;&lt;span&gt;지원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp; &lt;/span&gt;&lt;span&gt;자신있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분야&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최신&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;습득&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp; &lt;/span&gt;&lt;span&gt;공부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp; &lt;/span&gt;&lt;span&gt;언제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;습득했다고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생각하는지?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;소마&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;과정에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;배우고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;싶은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;현업이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무엇인지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;생활&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;속에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고리즘&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용해본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사례가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;학업과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소마&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;병행&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;소마에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떤&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;싶은지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;앞으로의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포부&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;꼭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소마여야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이유&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;내가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생각하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소프트웨어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개발이란&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;코딩테스트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관련&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;질문&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;시간복잡도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;개선사항&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;알고리즘을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설계할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중점적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생각하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;문제별&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;팀워크&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;자신의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;장단점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;멘토님과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;의견&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;충돌은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것인가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로젝트하면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;힘들었던&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부분&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용해본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프레임워크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;장단점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;팀&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;간의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;갈등이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생기면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해결할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것인지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로젝트에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있어서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뭐라고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생각하나요&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;팀장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋아하는지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;팀원&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역할을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;좋아하는지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로젝트에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;맡고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;싶은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포지션과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이유는&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로젝트에서&lt;/span&gt;&lt;span&gt; PM&lt;/span&gt;&lt;span&gt;으로서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진행할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것인지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;팀원들끼리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스택이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다르다면&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기업가정신이란&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;마감기한이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되었다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대처&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;코트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작성하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;규칙은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;팀원끼리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상의할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계획인지&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로젝트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사업에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;적용한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp; &lt;/span&gt;&lt;span&gt;사업적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떨까&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기술&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Java&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;C&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;차이&lt;/span&gt;&lt;span&gt;? C&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Python &lt;/span&gt;&lt;span&gt;차이&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Docker&lt;/span&gt;&lt;span&gt;와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨테이너에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;OSI 7&lt;/span&gt;&lt;span&gt;계층&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;가비지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컬렉터&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;VM&lt;/span&gt;&lt;span&gt;과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컨테이너의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;차이&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Int, char &lt;/span&gt;&lt;span&gt;등&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자료형과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그것에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할당되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;분산처리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대해&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;말하세요&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;주력&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;언어의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;장단점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;RESTful API&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;장단점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #525252;&quot;&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;자소서&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;했던&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;최신&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사회에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이득을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;줄&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생각하는지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 실제로 면접에서 받았던 질문들은 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;프로젝트하면서 발생한 기술적 이슈와 그에 대한 해결 방법&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;코딩 테스트 문제에서 어떤 알고리즘 및 자료구조를 쓴 것인지?&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AWS를 사용해본 것 같은데, 클라우드란 무엇인가요?&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AWS에서 보안 그룹 서브넷 설정은 어떻게 했나요?&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;창업에 관심 있어 보이는데 바로 창업할 생각인지?&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;어떤 PM이 될 것인지?&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;상당히 떨려서 모든 질문에 만족스럽게 대답하지는 못해서 당일날 굉장히 아쉬워했던 기억이 있다. 그렇지만 지금 돌이켜보면 미화됐는지 핵심적인 포인트들은 놓치지 않은 것 같긴 하다. (개인적으로 4번 질문 받고 컴퓨터네트워크를 벼락치기로 공부했던 게 약간 뿌듯했다)  위와 같은 과정을 거쳐 기쁘게도 다음과 같이 최종 합격 메일을 받을 수 있었다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-01-27 오후 2.43.58.png&quot; data-origin-width=&quot;1770&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bl4n61/btrrRUl0XDU/G3txFAWIUEKXT9wBW2Cv40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bl4n61/btrrRUl0XDU/G3txFAWIUEKXT9wBW2Cv40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bl4n61/btrrRUl0XDU/G3txFAWIUEKXT9wBW2Cv40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl4n61%2FbtrrRUl0XDU%2FG3txFAWIUEKXT9wBW2Cv40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;686&quot; height=&quot;252&quot; data-filename=&quot;스크린샷 2022-01-27 오후 2.43.58.png&quot; data-origin-width=&quot;1770&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 이 기세로 다음에는 소마 수료 후기를 작성해볼까 한다. 이 보잘것없는 글이 누군가에게 도움이 되기를... &lt;/p&gt;</description>
      <category>Story</category>
      <category>SWMaestro</category>
      <category>면접</category>
      <category>소마</category>
      <category>소마12기</category>
      <category>소프트웨어마에스트로</category>
      <category>소프트웨어마에스트로12기</category>
      <category>자소서</category>
      <category>코딩테스트</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/57</guid>
      <comments>https://oranz.tistory.com/57#entry57comment</comments>
      <pubDate>Thu, 27 Jan 2022 14:49:41 +0900</pubDate>
    </item>
    <item>
      <title>[논문리뷰] Coupled Generative Adversarial Networks</title>
      <link>https://oranz.tistory.com/56</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;개요&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;본 논문은 Multi-domain image의 Joint Distribution을 학습하는 문제를 해결하는 방법을 제안하고 있습니다. 이와 같은 학습의 효과로는 도메인 적용 또는 이미지 변환을 기대할 수 있는데요, 다만 기존의 학습 방법들은 다른 도메인에서 대응하는 이미지들을 묶어둔 데이터셋이 필요하다는 한계점이 있었습니다. 이러한 한계점을 극복하고자, CoGAN은 각 도메인의 Marginal Distribution으로부터 뽑아낸 Sample들로 Joint Distribution을 학습하는 방법을 고안해내었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;공식 코드 링크: &lt;a href=&quot;https://github.com/mingyuliutw/cogan&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/mingyuliutw/cogan&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1627132139099&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - mingyuliutw/CoGAN&quot; data-og-description=&quot;Contribute to mingyuliutw/CoGAN development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/mingyuliutw/cogan&quot; data-og-url=&quot;https://github.com/mingyuliutw/CoGAN&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bGQIF1/hyKZ0sDd4H/FahpWK1lXFYey7uZALoRk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/f3ZdH/hyKZZtI19q/Tzpwp40QjTjLQHdokOE4h0/img.jpg?width=720&amp;amp;height=243&amp;amp;face=6_14_705_235,https://scrap.kakaocdn.net/dn/c87oFU/hyKZgw4XxX/KK0iBlw54MvKxFjNurqygk/img.jpg?width=720&amp;amp;height=243&amp;amp;face=11_13_704_235&quot;&gt;&lt;a href=&quot;https://github.com/mingyuliutw/cogan&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/mingyuliutw/cogan&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bGQIF1/hyKZ0sDd4H/FahpWK1lXFYey7uZALoRk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/f3ZdH/hyKZZtI19q/Tzpwp40QjTjLQHdokOE4h0/img.jpg?width=720&amp;amp;height=243&amp;amp;face=6_14_705_235,https://scrap.kakaocdn.net/dn/c87oFU/hyKZgw4XxX/KK0iBlw54MvKxFjNurqygk/img.jpg?width=720&amp;amp;height=243&amp;amp;face=11_13_704_235');&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;GitHub - mingyuliutw/CoGAN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to mingyuliutw/CoGAN development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;모델&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1880&quot; data-origin-height=&quot;558&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.15.56.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpolpx/btrapGdCrIT/kkuqexjQuusi2Reo9Zpm00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpolpx/btrapGdCrIT/kkuqexjQuusi2Reo9Zpm00/img.png&quot; data-alt=&quot;CoGAN 모델 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpolpx/btrapGdCrIT/kkuqexjQuusi2Reo9Zpm00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbpolpx%2FbtrapGdCrIT%2FkkuqexjQuusi2Reo9Zpm00%2Fimg.png&quot; data-origin-width=&quot;1880&quot; data-origin-height=&quot;558&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.15.56.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CoGAN 모델 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; CoGAN은 GAN의 기본적인 Discriminator-Generator 구조를 따르고 있으며, 각 Domain마다 Generator와 Discrimator의 pair를 설정합니다. 그리고 Generator는 초반부 layer들이 high level, 후반부 layer들이 low level semantics를 학습하게 되고 반대로 Discriminator의 경우 초반부 layer들이 low level, 후반부 layer들이 high level semantics를 학습하게 된다는 관찰 결과에 착안하여, 대응하는 이미지들이 high-level concept을 공유한다는 가설을 바탕으로 Generator와 Discriminator에서 각각 high level을 담당하는 부분의 weight을 공유하게 됩니다. 이 때, Generator에서 마지막 layer와 Discriminator에서 첫 layer의 weight은 절대 공유하지 않으며, 총 몇 개의 layer를 공유할지는 hyperparameter로써, grid search를 수행했다고 밝히고 있습니다.&amp;nbsp; 이에 따라 CoGAN은 다음과 같은 minmax function과 value function을 따르게 됩니다.&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/DZYL8/btraoBX9elw/E4HLWRRNKBuJQPIh525uAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DZYL8/btraoBX9elw/E4HLWRRNKBuJQPIh525uAk/img.png&quot; data-origin-width=&quot;1650&quot; data-origin-height=&quot;182&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.26.02.png&quot; style=&quot;width: 48.0589%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DZYL8/btraoBX9elw/E4HLWRRNKBuJQPIh525uAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDZYL8%2FbtraoBX9elw%2FE4HLWRRNKBuJQPIh525uAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1650&quot; height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpQAx2/btrapFlxysz/lQAxPK2GpvKiPIkce94VK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpQAx2/btrapFlxysz/lQAxPK2GpvKiPIkce94VK1/img.png&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;152&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.26.16.png&quot; style=&quot;width: 50.7784%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpQAx2/btrapFlxysz/lQAxPK2GpvKiPIkce94VK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpQAx2%2FbtrapFlxysz%2FlQAxPK2GpvKiPIkce94VK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;minmax function과 value function&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;실험&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1886&quot; data-origin-height=&quot;394&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.29.16.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxIUVT/btranbME61H/TH09Kg9ybpQUYW2sum1C21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxIUVT/btranbME61H/TH09Kg9ybpQUYW2sum1C21/img.png&quot; data-alt=&quot;Digits Task&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxIUVT/btranbME61H/TH09Kg9ybpQUYW2sum1C21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdxIUVT%2FbtranbME61H%2FTH09Kg9ybpQUYW2sum1C21%2Fimg.png&quot; data-origin-width=&quot;1886&quot; data-origin-height=&quot;394&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.29.16.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Digits Task&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 숫자에 관련하여 두 가지 task를 진행했습니다. MNIST 숫자 이미지와 그것의 edge image / MNIST 숫자 이미지와 그것의 반전 이미지로 구성되어 있습니다. 이러한 2가지의 도메인이 있는 각 task에서 Generator로 corresponding image를 만들어내고 real corresponding image와의 pixel agreement ratio를 측정하였습니다. 공유하는 layer의 개수를 기준으로 그래프를 그렸을 때 다음과 같은 결과를 확인할 수 있습니다. 이 때 Generator는 총 5개의 convolutional layer로 구성되어 있으며, Discriminator는 LeNet 구조를 취하고 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1862&quot; data-origin-height=&quot;560&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.37.20.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZtKMR/btrao6wP0Tb/SBu0BGwkY4OHTkaBqZxI5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZtKMR/btrao6wP0Tb/SBu0BGwkY4OHTkaBqZxI5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZtKMR/btrao6wP0Tb/SBu0BGwkY4OHTkaBqZxI5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZtKMR%2Fbtrao6wP0Tb%2FSBu0BGwkY4OHTkaBqZxI5K%2Fimg.png&quot; data-origin-width=&quot;1862&quot; data-origin-height=&quot;560&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.37.20.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 논문 저자들은 이와 같이 데이터셋에서 짝을 짓지 않고 학습하는 방식이 처음이기 때문에 기존의 Multi-Domain model과 비교하지 않고, Conditional GAN과 비교를 하는 방식을 취했다고 밝히고 있습니다. 이에 따라 위의 두 task를 시행하고 pixel agreement ratio를 비교해봤을 때, edge image를 만들어내는 Task A에서는 CoGAN이 0.952, CGAN이 0.909를 보였으며, Task B에서는 CoGAN이 0.967, CGAN이 0.778을 보임으로써 더 좋은 성능을 나타내는 것을 확인할 수 있었다고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 이외에도 Face, RGBD 이미지들에 대해서 실험을 진행하였으며, 다음과 같은 결과를 확인할 수 있었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;1170&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.44.08.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UAfVK/btrasuwYnHa/m6GiGbg2JkdvtUKGhbhmNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UAfVK/btrasuwYnHa/m6GiGbg2JkdvtUKGhbhmNk/img.png&quot; data-alt=&quot;Face&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UAfVK/btrasuwYnHa/m6GiGbg2JkdvtUKGhbhmNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUAfVK%2FbtrasuwYnHa%2Fm6GiGbg2JkdvtUKGhbhmNk%2Fimg.png&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;1170&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.44.08.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Face&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;486&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.44.40.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UKAoY/btrao7bskfR/FU9aBll5ckkasUZowRte6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UKAoY/btrao7bskfR/FU9aBll5ckkasUZowRte6K/img.png&quot; data-alt=&quot;Color &amp;amp;amp;amp; Depth&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UKAoY/btrao7bskfR/FU9aBll5ckkasUZowRte6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUKAoY%2Fbtrao7bskfR%2FFU9aBll5ckkasUZowRte6K%2Fimg.png&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;486&quot; data-filename=&quot;스크린샷 2021-07-25 오전 5.44.40.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Color &amp;amp; Depth&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; CoGAN은 별도의 corresponding image dataset을 생성하지 않아도 Multi-Domain task를 수행할 수 있는 모델을 제안했다는 점에서 그 의의가 있습니다. 실제로 하나하나 corresponding image를 제작하는 것은 굉장히 비용 부담이 큰 작업이기 때문에 이러한 연구는 충분히 의미가 있는 것으로 보입니다. 단지 한 Domain 내의 adaptation 문제만이 아니라 Domain 간의 transformation에도 효과를 보임으로써&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후의 연구들에 새로운 방향을 제시하였습니다.&lt;/p&gt;</description>
      <category>Artificial Intelligence/Computer Vision</category>
      <category>CoGAN</category>
      <category>Gan</category>
      <category>딥러닝</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/56</guid>
      <comments>https://oranz.tistory.com/56#entry56comment</comments>
      <pubDate>Sun, 25 Jul 2021 05:49:50 +0900</pubDate>
    </item>
    <item>
      <title>[논문리뷰] From Image to Text in Sentiment Analysis via Regression and DeepLearning</title>
      <link>https://oranz.tistory.com/55</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;개요&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;이 논문 이전에는 Image에 대한 description을 만들어내는 연구들이 존재했지만, 객관적인 사실들을 나열하는 데에 그쳤습니다. 이 연구는 이미지에 대한 감성 분석을 바탕으로 특정한 템플릿 없이 Social Network에서 이뤄질만한 주관적인 impression을 generate하는 것을 목적으로 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;740&quot; data-filename=&quot;스크린샷 2021-05-25 오후 5.46.38.png&quot; width=&quot;511&quot; height=&quot;458&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NZYHf/btq5G27K32R/2sBk1cHXxUMNSKX7cPSBT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NZYHf/btq5G27K32R/2sBk1cHXxUMNSKX7cPSBT1/img.png&quot; data-alt=&quot;Sample outputs of designed model&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NZYHf/btq5G27K32R/2sBk1cHXxUMNSKX7cPSBT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNZYHf%2Fbtq5G27K32R%2F2sBk1cHXxUMNSKX7cPSBT1%2Fimg.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;740&quot; data-filename=&quot;스크린샷 2021-05-25 오후 5.46.38.png&quot; width=&quot;511&quot; height=&quot;458&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Sample outputs of designed model&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Training&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; 데이터셋은 &amp;lt;Cross-media learning for image sentiment analysis in the wild&amp;gt; (Vadicamo, L et al. 2017.) 논문에서 수집한 twitter post들을 활용하고 있습니다.&amp;nbsp; 해당 연구에서는 LSTM-SVM 모델을 사용해 각 포스트들을 positive, neutral, negative 3가지 감정 분류를 진행했는데요, 본 논문에서는 각 감정별로 10000개의 데이터를 활용했습니다.&amp;nbsp; 추가적으로, input으로 image 데이터를 받아 output으로 text를 출력하는 모델을 위해 Kernel Ridge Regression을 사용했음을 밝히고 있습니다. 목적함수는 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;593&quot; height=&quot;94&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;112&quot; data-filename=&quot;스크린샷 2021-05-25 오후 5.59.24.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3OZ0z/btq5HMQErC4/3ppUUTqfGpgKr2uPxsYkP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3OZ0z/btq5HMQErC4/3ppUUTqfGpgKr2uPxsYkP1/img.png&quot; data-alt=&quot;objective function&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3OZ0z/btq5HMQErC4/3ppUUTqfGpgKr2uPxsYkP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3OZ0z%2Fbtq5HMQErC4%2F3ppUUTqfGpgKr2uPxsYkP1%2Fimg.png&quot; width=&quot;593&quot; height=&quot;94&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;112&quot; data-filename=&quot;스크린샷 2021-05-25 오후 5.59.24.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;objective function&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Image&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; 이미지에서 Feature를 추출해내는 데에 있어서 2가지 방법을 시도해봤음을 밝히고 있습니다. 첫 번째는 RGB pixel-value를 이용한 traditional한 방식인데, 3 channel RGB value를 변환해 2352(28 X 28 X 3)-dimensional feature vector로 가공해내는 방식을 취했습니다. &lt;br /&gt;&amp;nbsp; &amp;nbsp; 두 번째는 DeepLearning을 이용한 방식인데 pretrained VGG-16 모델을 사용하여 feature를 추출했으며, 이전의 연구 논문들을 통한 배경지식을 바탕으로 feature extraction을 classification layer 바로 이전에 배치하였습니다. 또한,모든 image를 3232 pixel size로 reshape하여 사용했으며 ImageNet으로 initialize된 모델을 사용했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;536&quot; data-filename=&quot;스크린샷 2021-05-25 오후 6.35.29.png&quot; width=&quot;713&quot; height=&quot;257&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nCKFY/btq5J1NW4AU/ya4jsMYkgoKKpIQz41OfOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nCKFY/btq5J1NW4AU/ya4jsMYkgoKKpIQz41OfOk/img.png&quot; data-alt=&quot;visualized heatmap of class activation in an image&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nCKFY/btq5J1NW4AU/ya4jsMYkgoKKpIQz41OfOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnCKFY%2Fbtq5J1NW4AU%2Fya4jsMYkgoKKpIQz41OfOk%2Fimg.png&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;536&quot; data-filename=&quot;스크린샷 2021-05-25 오후 6.35.29.png&quot; width=&quot;713&quot; height=&quot;257&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;visualized heatmap of class activation in an image&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; feature를 추출해내기 위해 이미지에서 어떤 부분이 주로 사용되었는지 파악하기 위해 class activation의 heatmap을 visualize하는 테크닉을 사용했습니다. VGG-16 네트워크는 위에서 highlight된 부분을 바탕으로 classification 판단을 진행했음을 알 수 있고, 추가적으로 각 이미지에 대해 가장 대표적인 caption 5개가 선별되었습니다.&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;Text&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 텍스트에서 feature을 추출해낼 때는 BoW(Bag of Words) 모델을 사용하였습니다. 크롤링한 트위터 데이터를 전처리하여 string들을 넣으면 vocabulary에 있는 단어들이 1로 표시되는 sparse matrix를 출력해내는 방식으로 설계하였고, 최대 5000개의 feature를 가질 수 있도록 initialize하였습니다. 그리고 각 감정별로 해당되는 vocabulary를 추출해내었으며, 각 text sample마다 0-1 사이의 feature vector를 할당하였습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 각 모델의 output은 거의 5000개 가까이의 확률 값을 담은 vector인데, 이는 각 단어가 해당 이미지의 descriptor가 될 확률을 나타냅니다. 연구진들은 output vector의 절댓값들을 내림차순으로 정렬시킨 후에 앞의 50개의 vector만을 slice한 뒤, actual output vector와의 euclidean distance를 구했습니다. 여기서 actual output vector는 정말로 해당 단어가 description에 포함되어있었는지를 나타내는 sparse vector이며, 이렇게 구한 euclidean distance의 평균값이 prediction의 error가 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Results&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 연구진들은 다음과 같은 3가지 질문에 답을 줄 수 있는 expermental protocol을 만들었다고 합니다.&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;우리가 제안한 Kernel Ridge Regression이 image와 natural language descriptor를 잘 맵핑해줄 수 있을까?&lt;/li&gt;
&lt;li&gt;과연 더 복잡한 deep learning feature가 단순한 RGB pixel-values feature 보다 더 좋은 성과를 보일까?&lt;/li&gt;
&lt;li&gt;감정에 따라 image-text sample의 performance 차이가 발생할까?&lt;/li&gt;
&lt;/ol&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/bUUlfD/btq5LJTyPIN/m45B1bgo6GdD1hHniJqK5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUUlfD/btq5LJTyPIN/m45B1bgo6GdD1hHniJqK5K/img.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;524&quot; data-filename=&quot;스크린샷 2021-05-25 오후 7.02.06.png&quot; width=&quot;353&quot; height=&quot;246&quot; style=&quot;width: 31.9716%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUUlfD/btq5LJTyPIN/m45B1bgo6GdD1hHniJqK5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUUlfD%2Fbtq5LJTyPIN%2Fm45B1bgo6GdD1hHniJqK5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lscAy/btq5JDMKpvc/eiW5iKRoXveQKFNrdTcTg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lscAy/btq5JDMKpvc/eiW5iKRoXveQKFNrdTcTg0/img.png&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;512&quot; data-filename=&quot;스크린샷 2021-05-25 오후 7.02.28.png&quot; width=&quot;326&quot; height=&quot;227&quot; style=&quot;width: 32.1101%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lscAy/btq5JDMKpvc/eiW5iKRoXveQKFNrdTcTg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlscAy%2Fbtq5JDMKpvc%2FeiW5iKRoXveQKFNrdTcTg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;736&quot; height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b523Cr/btq5LWSF2DT/raS4cX1MhsCGtrX8kMbEJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b523Cr/btq5LWSF2DT/raS4cX1MhsCGtrX8kMbEJ0/img.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;516&quot; data-filename=&quot;스크린샷 2021-05-25 오후 7.03.08.png&quot; style=&quot;width: 33.5928%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b523Cr/btq5LWSF2DT/raS4cX1MhsCGtrX8kMbEJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb523Cr%2Fbtq5LWSF2DT%2FraS4cX1MhsCGtrX8kMbEJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;776&quot; height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;감정별 mean error&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 해당 프로토콜은 각 감정별로 데이터를 train과 test로 7:3으로 나누고, train dataset 사이즈를 50~7000까지 50씩 늘리면서 이에 대한 test error를 구하는 것입니다. 공정성을 위해 evaluation에 사용된 test set은 일정하게 유지한 상태로 감정별로 5번씩 random split 후에 train했다고 합니다. error는 그 5번 중 mean value입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;516&quot; data-filename=&quot;스크린샷 2021-05-25 오후 9.16.40.png&quot; width=&quot;405&quot; height=&quot;278&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfV1SF/btq5JDTDwmD/ytxjvI0ePy10KRvjYO1ffK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfV1SF/btq5JDTDwmD/ytxjvI0ePy10KRvjYO1ffK/img.png&quot; data-alt=&quot;감정별 훈련 추이 비교&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfV1SF/btq5JDTDwmD/ytxjvI0ePy10KRvjYO1ffK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfV1SF%2Fbtq5JDTDwmD%2FytxjvI0ePy10KRvjYO1ffK%2Fimg.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;516&quot; data-filename=&quot;스크린샷 2021-05-25 오후 9.16.40.png&quot; width=&quot;405&quot; height=&quot;278&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&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; &amp;nbsp; 위의 질문 3개 중 1번은 감정별 mean error 그래프에서 training set의 크기가 늘어날 수록 error가 줄어드는 것으로 미루어보아 학습이 잘 진행됨을 확인할 수 있습니다. 또한 2번의 경우에도 전반적으로 RGB feature보다 DeepLearning feature가 더 좋은 성과를 보이고 있습니다. 마지막으로 3번 질문의 경우에는 위 그래프를 보았을 때, positive sentiment가 다른 감정들보다 error가 더 적음을 알 수 있습니다. 연구진은 이를 주관적인 impression을 생성하기 때문에, positive한 감정과 달리 다른 두 감정은 사람에 따라 다르게 받아들일 수 있는 여지가 있기에 이런 결과가 나오는 것이라고 해석했습니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>Artificial Intelligence/Computer Vision</category>
      <category>ComputerVision</category>
      <category>NLP</category>
      <category>감성분석</category>
      <category>논문리뷰</category>
      <category>딥러닝</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/55</guid>
      <comments>https://oranz.tistory.com/55#entry55comment</comments>
      <pubDate>Tue, 25 May 2021 21:46:02 +0900</pubDate>
    </item>
    <item>
      <title>[논문리뷰] DCGAN: UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS</title>
      <link>https://oranz.tistory.com/54</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;개요&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &lt;/b&gt;GAN 시리즈의 2번째 논문, DCGAN입니다. DCGAN은 노이즈가 많고, 학습 결과를 해석하기 어렵다고 일컬어지는 Plain GAN을 CNN 아키텍처를 도입함으로써 이를 안정화시켰다고 알려져 있습니다. 개인적으로 인상적이었던 점은 이 연구의 주안점이 GAN 자체를 발전시키는 것이라기보다 더욱 안정화된 GAN을 사용해 Unsupervised Learning을 보다 효과적으로 하는 데에 있었다는 것입니다. 이 점을 유의해서 논문을 간략하게 살펴보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Approach &amp;amp; Model Architecture&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; CNN 아키텍처를 GAN에 도입하려고 한 시도는 이 논문이 처음이 아니지만, 성공적이지 못했습니다. 그리고 DCGAN 연구진분들 역시 주로 Supervised Task에 사용되는 CNN을 사용하여 GAN을 조정하는 것에서 어려움을 겪었다고 밝히고 있습니다. 하지만 DCGAN이 발표된 2016년 당시 최신의 CNN 학습 테크닉 3가지를 도입함으로써 이를 극복할 수 있었다고 합니다. 이 테크닉 3가지는 다음과 같습니다.&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-origin-width=&quot;2050&quot; data-origin-height=&quot;884&quot; data-filename=&quot;스크린샷 2021-05-19 오전 3.17.43.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWbndO/btq5bWNyfEa/8sfUEHxMD19QN98vFtAqtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWbndO/btq5bWNyfEa/8sfUEHxMD19QN98vFtAqtK/img.png&quot; data-alt=&quot;DCGAN&amp;amp;#39;s Generator Model Architecture&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWbndO/btq5bWNyfEa/8sfUEHxMD19QN98vFtAqtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWbndO%2Fbtq5bWNyfEa%2F8sfUEHxMD19QN98vFtAqtK%2Fimg.png&quot; data-origin-width=&quot;2050&quot; data-origin-height=&quot;884&quot; data-filename=&quot;스크린샷 2021-05-19 오전 3.17.43.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DCGAN's Generator Model Architecture&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;All Convolution Net&lt;br /&gt;Spatial Pooling Function을 모두 Strided Convolution으로 대체하는 것. CNN에서는 own downsampling을 학습하도록 적용되었으나 이 논문에서는 Generator에서 own upsampling을 학습하도록 적용되었다.&lt;/li&gt;
&lt;li&gt;Eliminating Fully Connected Layers&lt;br /&gt;Fully connected hidden layers를 없앴다.&lt;/li&gt;
&lt;li&gt;Batch Normalization&lt;br /&gt;CNN 아키텍처에 Batch Normalization을 포함했습니다. 이를 통해 Generator가 여러 sample을 하나의 point에 collapse해버리는 문제를 해결했다고 합니다. 다만, 모든 레이어에 적용하는 것은 오히려 부작용을 낳아 Generator output과 Discriminator input에서는 적용하지 않았습니다.&lt;/li&gt;
&lt;li&gt;ReLU activation&lt;br /&gt;Generator에서 Tanh를 쓰는 output layer를 제외한 모든 layer에서 ReLU를, Discriminator에서는 모든 layer에서 LeakyReLU를 사용하였습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Training &amp;amp; Validation&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.&amp;nbsp; &amp;nbsp;총 3가지 dataset인 LSUN, ImageNet-1k, 자체적으로 크롤링한 Faces dataset을 사용했다고 밝히고 있습니다. 모델이 이미지를 외우는 것이 아닌, 정말 학습해서 생성해낼 수 있도록 유지하는 것에 초점을 맞추었습니다. 이를 방지하기 위해서 모든 데이터셋에 data augmentation 기법을 사용하지 않았으며, deduplication 기법을 적용하는 등의 시도를 하였습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1370&quot; data-origin-height=&quot;690&quot; data-filename=&quot;스크린샷 2021-05-19 오후 10.41.30.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sXJL9/btq5fnjPRq4/BOdvqcfT1WRketmJPSWh01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sXJL9/btq5fnjPRq4/BOdvqcfT1WRketmJPSWh01/img.png&quot; data-alt=&quot;Generated bedrooms after 1 epoch&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sXJL9/btq5fnjPRq4/BOdvqcfT1WRketmJPSWh01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXJL9%2Fbtq5fnjPRq4%2FBOdvqcfT1WRketmJPSWh01%2Fimg.png&quot; data-origin-width=&quot;1370&quot; data-origin-height=&quot;690&quot; data-filename=&quot;스크린샷 2021-05-19 오후 10.41.30.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Generated bedrooms after 1 epoch&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 위 사진은 1 epoch을 낮은 learning rate으로 학습한 결과물들을 보여주는 것으로, 이미지를 외워서 생성하고 있지 않다는 증거를 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; GAN 모델의 학습 결과를 평가하기 위해서 Discriminator의 Feature Map을 이용한 Classification task를 수행하였는데요, 기존의 classification 모델들과 엇비슷한 성과를 보였습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1586&quot; data-origin-height=&quot;300&quot; data-filename=&quot;스크린샷 2021-05-19 오후 10.58.09.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9vU3N/btq5kZaEYfN/qKyTGzgkB9z9SiFNFpJzK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9vU3N/btq5kZaEYfN/qKyTGzgkB9z9SiFNFpJzK0/img.png&quot; data-alt=&quot;CIFAR-10 classification results&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9vU3N/btq5kZaEYfN/qKyTGzgkB9z9SiFNFpJzK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9vU3N%2Fbtq5kZaEYfN%2FqKyTGzgkB9z9SiFNFpJzK0%2Fimg.png&quot; data-origin-width=&quot;1586&quot; data-origin-height=&quot;300&quot; data-filename=&quot;스크린샷 2021-05-19 오후 10.58.09.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CIFAR-10 classification results&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Investigating&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 학습된 Generator와 Discriminator에 대한 정보를 더 얻기 위한 조사를 진행했다고 합니다. 그 중에서도 log-likelihood나 pixel 단위의 nearest neighbor 알고리즘은 종종 자그마한 변화에도 속는 경향이 있어 사용하지 않았다고 하네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Walking in the latent space&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;1116&quot; data-filename=&quot;스크린샷 2021-05-19 오후 11.17.44.png&quot; width=&quot;531&quot; height=&quot;532&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oWSeT/btq5fVN7Bmz/ec191Jbtg2waB12wbDtaKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oWSeT/btq5fVN7Bmz/ec191Jbtg2waB12wbDtaKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oWSeT/btq5fVN7Bmz/ec191Jbtg2waB12wbDtaKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoWSeT%2Fbtq5fVN7Bmz%2Fec191Jbtg2waB12wbDtaKK%2Fimg.png&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;1116&quot; data-filename=&quot;스크린샷 2021-05-19 오후 11.17.44.png&quot; width=&quot;531&quot; height=&quot;532&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 만약 이미지를 외우는 방식으로 학습이 진행되었다면 latent space에서 움직이는 사진 중에서 갑작스런 변화가 있을 수 있겠죠. 그러나 smooth하게 변화하는 사진의 양상으로 볼 때, 학습이 잘 진행되었음을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Visualizing Discriminator Features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;980&quot; data-filename=&quot;스크린샷 2021-05-19 오후 11.36.26.png&quot; width=&quot;536&quot; height=&quot;354&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baOwYP/btq5bMYHlqf/IUbD0vmHfI0dMLA1sWKdV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baOwYP/btq5bMYHlqf/IUbD0vmHfI0dMLA1sWKdV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baOwYP/btq5bMYHlqf/IUbD0vmHfI0dMLA1sWKdV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaOwYP%2Fbtq5bMYHlqf%2FIUbD0vmHfI0dMLA1sWKdV0%2Fimg.png&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;980&quot; data-filename=&quot;스크린샷 2021-05-19 오후 11.36.26.png&quot; width=&quot;536&quot; height=&quot;354&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; guided backpropagation을 사용하여 Discriminator가 학습한 feature들을 시각화할 수 있습니다. 학습이 충분히 이루어진 모델은 semantically relevant한 feature들을 학습한 것을 확인할 수 있지만, 왼쪽의 baseline 모델은 의미있는 학습을 못한 것을 볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Forgetting to draw certain objects&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1462&quot; data-origin-height=&quot;298&quot; data-filename=&quot;스크린샷 2021-05-20 오전 12.20.16.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJpNJx/btq5dvbAm41/5LnvtsXhEp6sVLYCjTNOX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJpNJx/btq5dvbAm41/5LnvtsXhEp6sVLYCjTNOX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJpNJx/btq5dvbAm41/5LnvtsXhEp6sVLYCjTNOX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJpNJx%2Fbtq5dvbAm41%2F5LnvtsXhEp6sVLYCjTNOX0%2Fimg.png&quot; data-origin-width=&quot;1462&quot; data-origin-height=&quot;298&quot; data-filename=&quot;스크린샷 2021-05-20 오전 12.20.16.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 위의 실험에서 Discriminator는 충분히 잘 학습되었다는 점이 입증되었고, Generator는 어떨까요? 이를 위해서 Generator의 feature activation에서 window를 나타내는 것들을 dropout하는 방식으로 이미지를 generate해본 결과, 위와 같이 모델은 말끔하게 창문만 없어진 버전의 bedroom을 만들어낼 수 있었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vector arithmetic on face samples&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;1300&quot; data-filename=&quot;스크린샷 2021-05-20 오전 12.27.59.png&quot; width=&quot;542&quot; height=&quot;575&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgBr96/btq5j7tfply/8BXf3TOKKJI6eOuTs2a4yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgBr96/btq5j7tfply/8BXf3TOKKJI6eOuTs2a4yK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgBr96/btq5j7tfply/8BXf3TOKKJI6eOuTs2a4yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgBr96%2Fbtq5j7tfply%2F8BXf3TOKKJI6eOuTs2a4yK%2Fimg.png&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;1300&quot; data-filename=&quot;스크린샷 2021-05-20 오전 12.27.59.png&quot; width=&quot;542&quot; height=&quot;575&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; generator의 input noise vector $z$로 덧셈과 뺄셈을 시도하며 실험한 결과물입니다. 어색한 면이 있지만, 의도한 대로 semantic relevance를 학습했다는 것을 알 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 이 논문에서의 실험들을 통해 GAN 모델이 충분히 supervised learning과 generative modeling 양쪽에서 image의 good representation을 학습하고 있다는 것을 입증하였습니다. 다만, 아직 일반적으로 사용되기에는 불안정하고 어색한 측면이 있으니 추후 연구로 개선되길 바란다는 말을 남겼습니다.&lt;/p&gt;</description>
      <category>Artificial Intelligence/Computer Vision</category>
      <category>DCGAN</category>
      <category>Gan</category>
      <category>논문리뷰</category>
      <category>딥러닝</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/54</guid>
      <comments>https://oranz.tistory.com/54#entry54comment</comments>
      <pubDate>Thu, 20 May 2021 00:34:04 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 멀쩡한 사각형 (by Python)</title>
      <link>https://oranz.tistory.com/53</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/62048&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/62048&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621104484126&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 멀쩡한 사각형&quot; data-og-description=&quot;가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 &quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/62048&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/62048&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/zUaFB/hyKdGIPCq3/g9kkPqNskgi9KwAePMX5Gk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/T8wAc/hyKdVTwds6/pDS8Jk3jtcAD4n0Kab2sE0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bTJsIa/hyKdPy1lea/YDRwy0k2wkpIKNEeGCEVY0/img.png?width=412&amp;amp;height=570&amp;amp;face=0_0_412_570&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/62048&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/62048&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/zUaFB/hyKdGIPCq3/g9kkPqNskgi9KwAePMX5Gk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/T8wAc/hyKdVTwds6/pDS8Jk3jtcAD4n0Kab2sE0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bTJsIa/hyKdPy1lea/YDRwy0k2wkpIKNEeGCEVY0/img.png?width=412&amp;amp;height=570&amp;amp;face=0_0_412_570');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 멀쩡한 사각형&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1621104709892&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from math import gcd

def solution(w,h):
    return w * h - (w + h - (gcd(w, h)))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드는 한 줄만에 끝났지만 정말 고민을 많이 하게 만든 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대각선상에 있는 사각형의 개수에 무슨 규칙이 있을지 발견하기가 쉽지 않았던 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해답은 이러하다. w와 h의 최대공약수가 1인 직사각형의 경우, (w + h - 1)이 대각선상에 있는 사각형의 개수이다. 그 직사각형에서 높이 1당 하나씩, 넓이 1당 하나씩의 사각형을 지나게 되기 때문이다. 1을 빼는 이유는 첫 시작 사각형이 겹치기 때문이다. 이런 관점에서 볼 때, 최대공약수가 1이 아닌 사각형은 w + h에서 최대공약수만큼을 빼면 된다고 유추할 수 있다. (w + h - 1) 사각형이 대각선에 최대공약수만큼 존재할 테니까.&lt;/p&gt;</description>
      <category>Programming/Algorithm</category>
      <category>멀쩡한사각형</category>
      <category>알고리즘</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/53</guid>
      <comments>https://oranz.tistory.com/53#entry53comment</comments>
      <pubDate>Sun, 16 May 2021 03:57:50 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 폰켓몬 (by Python)</title>
      <link>https://oranz.tistory.com/52</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/1845&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/1845&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621104055243&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 폰켓몬&quot; data-og-description=&quot;당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. &quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/1845&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/1845&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cVroI6/hyKdVlFTBI/un3VvMe84ZtqvLnqvPrKGK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/yD57m/hyKdHub8nx/R12a9eQntMXEnu8dSGUb50/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/1845&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/1845&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cVroI6/hyKdVlFTBI/un3VvMe84ZtqvLnqvPrKGK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/yD57m/hyKdHub8nx/R12a9eQntMXEnu8dSGUb50/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 폰켓몬&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1621104079566&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(nums):
    a = len(set(nums))
    b = len(nums) // 2
    return b if a &amp;gt; b else a&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 폰켓몬의 종류가 가져갈 수 있는 폰켓몬의 수보다 적다면, 그 종류의 개수가 답이 될 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇지 않다면, 가져갈 수 있는 폰켓몬의 수가 최댓값일 것입니다.&lt;/p&gt;</description>
      <category>Programming/Algorithm</category>
      <category>알고리즘</category>
      <category>파이썬</category>
      <category>폰켓몬</category>
      <category>프로그래머스</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/52</guid>
      <comments>https://oranz.tistory.com/52#entry52comment</comments>
      <pubDate>Sun, 16 May 2021 03:46:55 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 음양 더하기 (by Python)</title>
      <link>https://oranz.tistory.com/51</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/76501&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/76501&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621103853970&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 연습 - 음양 더하기&quot; data-og-description=&quot;어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/76501&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/76501&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/i5HW6/hyKdNHXn2W/nJ1vqJyej1i5athL2v6Z31/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/d074eM/hyKdImkNMH/tZK9nRQjhQ8ebm5PPJusAK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/76501&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/76501&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/i5HW6/hyKdNHXn2W/nJ1vqJyej1i5athL2v6Z31/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/d074eM/hyKdImkNMH/tZK9nRQjhQ8ebm5PPJusAK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 연습 - 음양 더하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1621103885637&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(absolutes, signs):
    return sum(absolutes[i] if signs[i] else -absolutes[i] for i in range(len(absolutes)))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두 리스드의 값에 따라 합을 계산하는 간단한 구현 문제.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;list comprehension을 이용하여 한 줄로 끝낼 수 있었다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/Algorithm</category>
      <category>알고리즘</category>
      <category>음양더하기</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>oranz.23</author>
      <guid isPermaLink="true">https://oranz.tistory.com/51</guid>
      <comments>https://oranz.tistory.com/51#entry51comment</comments>
      <pubDate>Sun, 16 May 2021 03:39:44 +0900</pubDate>
    </item>
  </channel>
</rss>