<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>밍구의 코딩 레시피</title>
    <link>https://minggu92.tistory.com/</link>
    <description>맛있게 냠냠</description>
    <language>ko</language>
    <pubDate>Sun, 21 Jun 2026 18:56:51 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ming.gu</managingEditor>
    <image>
      <title>밍구의 코딩 레시피</title>
      <url>https://tistory1.daumcdn.net/tistory/4359019/attach/9f2c2a084e4c47ed982eecd202dc21eb</url>
      <link>https://minggu92.tistory.com</link>
    </image>
    <item>
      <title>Pleos25</title>
      <link>https://minggu92.tistory.com/149</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 679px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 10px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 10px;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 10px;&quot;&gt;
&lt;h1 id=&quot;id-2024.06.29KotlinConf'24Global-KotlinConf'24GlobalinSouthKorea&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;Pleos25 (aka 현대차 컨퍼런스)&lt;/h1&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;2025년 3월 28일 (금) 10:00 ~ 18:00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;삼성 코엑스&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;&lt;a href=&quot;https://devcon.hyundaimotorgroup.com/2025&quot;&gt;https://devcon.hyundaimotorgroup.com/2025&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 609px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 609px;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 609px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1796&quot; data-origin-height=&quot;1454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbt2Nz/btsPlgZpEna/Ov70IsKkiNgfTwwbc6Ufz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbt2Nz/btsPlgZpEna/Ov70IsKkiNgfTwwbc6Ufz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbt2Nz/btsPlgZpEna/Ov70IsKkiNgfTwwbc6Ufz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbt2Nz%2FbtsPlgZpEna%2FOv70IsKkiNgfTwwbc6Ufz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1796&quot; height=&quot;1454&quot; data-origin-width=&quot;1796&quot; data-origin-height=&quot;1454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현대차그룹에서 진행한 컨퍼런스를 임직원으로 참여했다. Pleos는 쉽게 말해 자동차용 App 생태계이다. 이번 컨퍼런스 자리에서 그 생태계가 공개됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 iOS/Android 와의 차이라면 &quot;차량데이터&quot;를 기반으로 app과 인터랙션 할 수 있다는 것이 특징이다. 따라서 &quot;개인화&quot;된 맞춤 앱이 실효성이 있지 않을까라고 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키노트 때 포티투닷 &amp;amp; 현대차 송창현 사장이 먼저 기조연설을 진행하고 뒤이어 파트너사들이 중간중간 제품을 소개한다. 실제 제품들은 데모상태임을 감안해도 큰 기대가 되진 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 다른 키워드는 역시나 AI 였는데 포티투닷의 자체 AI 기능을 통해 길안내, 문자 보내기, 리마인더 등이 가능할 것으로 보였고 네이버에선 네이버지도를 바탕으로 한 AI를 소개했다. 그 외에도 삼성의 SmartThings를 이용해 자동차와 핸드폰의 연결, 즉 핸드폰으로 내 차량 찾기 등이 가능해질 수 있다고 한다. 외에도 앱 생테계다 보니까 게임이 빠질 수 없었고 Unity, Microsoft 뿐 아니라 ProtoPie처럼 앱 디자인 툴도 참여했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전시에서는 자율주행과 관련한 내용이 많았는데 현대차의 자율주행버스가 인상 깊었다. 관공서나 운수회사에서 사용하는 fleet 개념은 다양한 차량들을 원격제어 할 수 있는 형태로 버스, 택시의 운행기록, 사고 감지, 운전 점수, 공조장치 컨트롤 등 다양한 기능을 중앙 통제가 가능하도록 되어있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 외에도 다양한 프로그램이 존재했는데 특히 핸즈온 세션에서는 Pleos SDK로 제공되는 라이브러리를 이용한 Android 개발도 손쉽게 할 수 있었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 추첨제가 아닌 신청하면 모두 올 수 있는 구조라 인파가 너무 몰려 정작 들어야 할 Track session은 못 들었다는게 함정..(4월 중 온라인 공개 예정)&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/149</guid>
      <comments>https://minggu92.tistory.com/149#entry149comment</comments>
      <pubDate>Wed, 16 Jul 2025 10:44:17 +0900</pubDate>
    </item>
    <item>
      <title>Nest.js에 대한 개인적인 생각</title>
      <link>https://minggu92.tistory.com/148</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k7E5C/btsKhMKP0RS/9uGSq20wnTWME28hFaIhaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k7E5C/btsKhMKP0RS/9uGSq20wnTWME28hFaIhaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k7E5C/btsKhMKP0RS/9uGSq20wnTWME28hFaIhaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk7E5C%2FbtsKhMKP0RS%2F9uGSq20wnTWME28hFaIhaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;256&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바공화국 배민도 Nest.js를 사내 공식 개발 프레임웍으로 지정했다는데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=Z0d7ZrxY-i0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/3bn1Q/hyXlHCqR50/h2Uc2Spiqxkm8aYGaGBZmk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/bmQ65i/hyXlLdI5CG/kpkNJ8op3hrSkKk7JNnv6k/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;우형의 새로운 백엔드 개발 표준 #우아콘2023 #우아한형제들&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Z0d7ZrxY-i0&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;장점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- 공식 문서 깔끔 (&lt;/span&gt;&lt;a href=&quot;https://docs.nestjs.com/&quot;&gt;https://docs.nestjs.com/&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- DI, IoC, 데코레이터 등 OOP 개발에 용이&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- 기능별 모듈화를 통한 직관적인 개발, 확장 가능성, 유지보수 용이한 개발 가능. -&amp;gt; 생산성 향상&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- Typescript 기반으로 컴파일 오류 방지, 테스트 코드 작성에 용이하므로 TDD를 쉽게 적용 가능. (Express에서의 ts 세팅보다 매우 간단)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- Spring 과 유사한 UX로 추후 이벤트 플랫폼 개선시 유사한 아키텍처 구조 사용 가능.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- 아주 간단히 Swagger 초기 세팅으로 코드 수정시 자동 반영 (&lt;/span&gt;&lt;a href=&quot;https://jhyeok.com/nestjs-swagger/&quot;&gt;https://jhyeok.com/nestjs-swagger/&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- Webpack HMR로 필요한 부분만 비동기 핫 리로드 지원.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- Node Http 프레임워크 선택가능 (express, fasify ..)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;단점&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- 처음 접하면 러닝커브가 높을 수 있다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- Express에 비해 작은 생태계, 낮은 점유율 (이지만 바짝 쫓아옴 2023.04 기준 Express 6만, Nest 5.5만 스타 -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://github.com/VanoDevium/node-framework-stars&quot;&gt;https://github.com/VanoDevium/node-framework-stars&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;와 이제 역전함~!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;649&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi06Es/btsKisE33h4/qbjjov2mwFHr8dmJr8Gjf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi06Es/btsKisE33h4/qbjjov2mwFHr8dmJr8Gjf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi06Es/btsKisE33h4/qbjjov2mwFHr8dmJr8Gjf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi06Es%2FbtsKisE33h4%2Fqbjjov2mwFHr8dmJr8Gjf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1057&quot; height=&quot;649&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;649&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- 기획전 프론트에서 직접적인 DB 접근을 하지 않기에 ORM 사용 등에 제한적&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;- 동일한 기능을 위한 코드가 express보다 길다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;결론&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트 성격에 따라 취사선택 해야 한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;유연하고 확장성이 높은 Express는 작은 규모, 적은 기능의 어플리케이션이 적합하다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;반대로 Enterprise급, 여러 개발자가 빈번하게 기능 개발 등이 필요할 땐 Nest.js가 적합해보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;그러나 개인적으로.. 굳이 Nest.js 쓸 필요 있을까? 스타트업의 기술스택으로는 적합할 수도 있겠다. 초기 개발자가 적을 때 프/백 같이 할 수 있는 js/ts로 개발할 수 있으니. 근데 nest.js는 인력 풀이 좁아서 회사가 성장함에 따라 spring으로 바꾸는게 국룰이라 생각한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ChatGPT 피셜 :&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Q) Nest.js 에서의 디버깅은 어렵다?!&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;A)&amp;nbsp;주로 아키텍처 및 디자인 철학의 차이로 인해 Express에 비해 Nest.js에서 디버깅이 더 어려울 수 있습니다. 다음은 Nest.js에서 디버깅이 더 어려운 것으로 간주될 수 있는 몇 가지 이유입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;추상화 계층: Nest.js는 데코레이터, 모듈 및 종속성 주입과 같은 추가 추상화 계층을 도입합니다. 이러한 추상화는 응용 프로그램 구축에 대한 체계적이고 조직적인 접근 방식을 제공하지만 오류를 추적하고 디버깅할 때 응용 프로그램의 흐름을 이해하기 어렵게 만들 수 있습니다.&lt;/li&gt;
&lt;li&gt;복잡성: Nest.js는 프레임워크를 처음 사용하는 개발자가 탐색하고 이해하기 더 어려울 수 있는 더 복잡한 아키텍처를 가지고 있습니다. 이로 인해 학습 곡선이 길어지고 디버깅 중에 문제의 근본 원인을 찾는 것이 더 어려워질 수 있습니다.&lt;/li&gt;
&lt;li&gt;스택 추적: 추가 추상화 및 기능으로 인해 Nest.js의 스택 추적은 때때로 Express와 같은 단순한 프레임워크에 비해 해석하기 어려울 수 있습니다. 이로 인해 오류의 원인을 정확히 찾아내기가 더 어려워질 수 있습니다.&lt;/li&gt;
&lt;li&gt;툴링: Nest.js 에코시스템이 성장하는 동안 더 오래 사용되어 더 큰 커뮤니티가 있는 Express와 동일한 수준의 성숙한 디버깅 및 프로파일링 툴이 아직 없을 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;즉, Nest.js의 디버깅은 본질적으로 Express보다 어렵지 않습니다. 문제는 주로 프레임워크 설계의 차이와 Nest.js에서 도입한 개념에 대한 개발자의 친숙도에서 발생합니다. 개발자가 Nest.js에 더 익숙해지면 시간이 지남에 따라 디버깅이 더 쉬워집니다. 또한 Nest.js는 디버깅 프로세스 중에 개발자를 지원할 수 있는 훌륭한 문서 및 도구 지원을 제공합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Spring 과의 비교&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://blog.naver.com/PostView.naver?blogId=biud436&amp;amp;logNo=222611201210&amp;amp;categoryNo=201&amp;amp;proxyReferer=&quot;&gt;https://blog.naver.com/PostView.naver?blogId=biud436&amp;amp;logNo=222611201210&amp;amp;categoryNo=201&amp;amp;proxyReferer=&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1729810734092&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;Nest.js와 스프링 프레임워크 그리고 그 미래에 대하여&quot; data-og-description=&quot;Node.js로 웹을 시작하는 경우, 으레 대부분의 책들이 그렇지만 Express Generator를 통하여 FP로 시...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/PostView.naver?blogId=biud436&amp;amp;logNo=222611201210&amp;amp;categoryNo=201&amp;amp;proxyReferer=&quot; data-og-url=&quot;https://blog.naver.com/biud436/222611201210&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qlEMD/hyXlPtF8zP/sU9ZPtV1HxBxfZ5uoOiQG1/img.png?width=743&amp;amp;height=210&amp;amp;face=0_0_743_210&quot;&gt;&lt;a href=&quot;https://blog.naver.com/PostView.naver?blogId=biud436&amp;amp;logNo=222611201210&amp;amp;categoryNo=201&amp;amp;proxyReferer=&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.naver.com/PostView.naver?blogId=biud436&amp;amp;logNo=222611201210&amp;amp;categoryNo=201&amp;amp;proxyReferer=&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qlEMD/hyXlPtF8zP/sU9ZPtV1HxBxfZ5uoOiQG1/img.png?width=743&amp;amp;height=210&amp;amp;face=0_0_743_210');&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;Nest.js와 스프링 프레임워크 그리고 그 미래에 대하여&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Node.js로 웹을 시작하는 경우, 으레 대부분의 책들이 그렇지만 Express Generator를 통하여 FP로 시...&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;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;참고&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://blog.logrocket.com/nestjs-vs-express-js/&quot;&gt;https://blog.logrocket.com/nestjs-vs-express-js/&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://velog.io/@leo3179/Nest.js-%EB%A6%AC%EB%B7%B0&quot;&gt;https://velog.io/@leo3179/Nest.js-%EB%A6%AC%EB%B7%B0&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://velog.io/@cm961115/NestJS-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&quot;&gt;https://velog.io/@cm961115/NestJS-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://choseongho93.tistory.com/318&quot;&gt;https://choseongho93.tistory.com/318&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729810747720&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;NestJS vs. Express.js - LogRocket Blog&quot; data-og-description=&quot;Compare NestJS and Express.js based on their features, architecture, community support, and more, for your Node.js project.&quot; data-og-host=&quot;blog.logrocket.com&quot; data-og-source-url=&quot;https://blog.logrocket.com/nestjs-vs-express-js/&quot; data-og-url=&quot;https://blog.logrocket.com/nestjs-vs-express-js/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dI2FP7/hyXpswOzqb/yOm9Pk2bCYoJLxyKlUbcs0/img.png?width=895&amp;amp;height=597&amp;amp;face=0_0_895_597,https://scrap.kakaocdn.net/dn/D19Ob/hyXpCGb0Md/sdkjbWJAgI9JXKNPOWuQT0/img.png?width=420&amp;amp;height=280&amp;amp;face=0_0_420_280,https://scrap.kakaocdn.net/dn/C1pow/hyXlJUw0kE/TuxyBu2M7iNvNK7dRyHsOK/img.png?width=420&amp;amp;height=280&amp;amp;face=0_0_420_280&quot;&gt;&lt;a href=&quot;https://blog.logrocket.com/nestjs-vs-express-js/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.logrocket.com/nestjs-vs-express-js/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dI2FP7/hyXpswOzqb/yOm9Pk2bCYoJLxyKlUbcs0/img.png?width=895&amp;amp;height=597&amp;amp;face=0_0_895_597,https://scrap.kakaocdn.net/dn/D19Ob/hyXpCGb0Md/sdkjbWJAgI9JXKNPOWuQT0/img.png?width=420&amp;amp;height=280&amp;amp;face=0_0_420_280,https://scrap.kakaocdn.net/dn/C1pow/hyXlJUw0kE/TuxyBu2M7iNvNK7dRyHsOK/img.png?width=420&amp;amp;height=280&amp;amp;face=0_0_420_280');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;NestJS vs. Express.js - LogRocket Blog&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Compare NestJS and Express.js based on their features, architecture, community support, and more, for your Node.js project.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.logrocket.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1729810746297&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;Nest.js 리뷰&quot; data-og-description=&quot;Nest.js nest.js는 제가 백엔드 개발을 시작하고 가장 처음 접한 프레임워크이자 가장 많이 사용한 프레임워크입니다. 지금으로서는 이 nest.js를 통해 서버를 만드는데 익숙해졌지만, nest.js를 왜 사&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@leo3179/Nest.js-%EB%A6%AC%EB%B7%B0&quot; data-og-url=&quot;https://velog.io/@leo3179/Nest.js-리뷰&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/j0tO5/hyXpqserRl/rW4AGHVsIfjArUb0aRgaXk/img.png?width=512&amp;amp;height=256&amp;amp;face=0_0_512_256,https://scrap.kakaocdn.net/dn/z8oqW/hyXlWsOjur/3wN5ntWnomLeHFw6OYIp3k/img.png?width=512&amp;amp;height=256&amp;amp;face=0_0_512_256,https://scrap.kakaocdn.net/dn/c3lA3a/hyXlJ74BJ4/wlH7twlXfgBZynUZKwPcI1/img.png?width=1184&amp;amp;height=844&amp;amp;face=0_0_1184_844&quot;&gt;&lt;a href=&quot;https://velog.io/@leo3179/Nest.js-%EB%A6%AC%EB%B7%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@leo3179/Nest.js-%EB%A6%AC%EB%B7%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/j0tO5/hyXpqserRl/rW4AGHVsIfjArUb0aRgaXk/img.png?width=512&amp;amp;height=256&amp;amp;face=0_0_512_256,https://scrap.kakaocdn.net/dn/z8oqW/hyXlWsOjur/3wN5ntWnomLeHFw6OYIp3k/img.png?width=512&amp;amp;height=256&amp;amp;face=0_0_512_256,https://scrap.kakaocdn.net/dn/c3lA3a/hyXlJ74BJ4/wlH7twlXfgBZynUZKwPcI1/img.png?width=1184&amp;amp;height=844&amp;amp;face=0_0_1184_844');&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;Nest.js 리뷰&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Nest.js nest.js는 제가 백엔드 개발을 시작하고 가장 처음 접한 프레임워크이자 가장 많이 사용한 프레임워크입니다. 지금으로서는 이 nest.js를 통해 서버를 만드는데 익숙해졌지만, nest.js를 왜 사&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1729810744874&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;[NestJS] 알아보기&quot; data-og-description=&quot;NestJS Framwork에 대해 알아보자.&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@cm961115/NestJS-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&quot; data-og-url=&quot;https://velog.io/@cm961115/NestJS-알아보기&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/4iA9J/hyXlPNXXMw/AvLkZYImJOwyzR3C0qlk0K/img.png?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/dEMa5z/hyXlIBkv4p/K3YWmpIO61KHIRZmtJvOck/img.png?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/bxqhxx/hyXlO9mLKj/7XhmjnDskaftNXZhbjBLQK/img.png?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628&quot;&gt;&lt;a href=&quot;https://velog.io/@cm961115/NestJS-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@cm961115/NestJS-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/4iA9J/hyXlPNXXMw/AvLkZYImJOwyzR3C0qlk0K/img.png?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/dEMa5z/hyXlIBkv4p/K3YWmpIO61KHIRZmtJvOck/img.png?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/bxqhxx/hyXlO9mLKj/7XhmjnDskaftNXZhbjBLQK/img.png?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628');&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;[NestJS] 알아보기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;NestJS Framwork에 대해 알아보자.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1729810741631&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;NestJS과 Express의 개념 &amp;amp; 비교 (차이점, 특징 등)&quot; data-og-description=&quot;● NestJS란? Nestjs의 공식 사이트 Nest (NestJS)는 효율적이고 확장 가능한 Node.js서버측 애플리케이션을 구축하기 위한 프레임워크입니다. 프로그레시브 자바스크립트를 사용하고 TypeScript로 빌드되&quot; data-og-host=&quot;nanbuja.com&quot; data-og-source-url=&quot;https://choseongho93.tistory.com/318&quot; data-og-url=&quot;https://nanbuja.com/entry/NestJS%EA%B3%BC-Express%EC%9D%98-%EA%B0%9C%EB%85%90-%EB%B9%84%EA%B5%90-%EC%B0%A8%EC%9D%B4%EC%A0%90-%ED%8A%B9%EC%A7%95-%EB%93%B1&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f2bLs/hyXlNvQMWK/OD4DbAT4B8sSi4BfVP9owk/img.jpg?width=586&amp;amp;height=580&amp;amp;face=0_0_586_580,https://scrap.kakaocdn.net/dn/c9qQhw/hyXpBUPmPq/vssqvvPlGTilIkWlOn7QqK/img.jpg?width=586&amp;amp;height=580&amp;amp;face=0_0_586_580,https://scrap.kakaocdn.net/dn/ZmdaG/hyXpDE6Jbm/AMd6oPlWb7Bf33zCRLUGjk/img.jpg?width=586&amp;amp;height=580&amp;amp;face=0_0_586_580&quot;&gt;&lt;a href=&quot;https://choseongho93.tistory.com/318&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://choseongho93.tistory.com/318&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f2bLs/hyXlNvQMWK/OD4DbAT4B8sSi4BfVP9owk/img.jpg?width=586&amp;amp;height=580&amp;amp;face=0_0_586_580,https://scrap.kakaocdn.net/dn/c9qQhw/hyXpBUPmPq/vssqvvPlGTilIkWlOn7QqK/img.jpg?width=586&amp;amp;height=580&amp;amp;face=0_0_586_580,https://scrap.kakaocdn.net/dn/ZmdaG/hyXpDE6Jbm/AMd6oPlWb7Bf33zCRLUGjk/img.jpg?width=586&amp;amp;height=580&amp;amp;face=0_0_586_580');&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;NestJS과 Express의 개념 &amp;amp; 비교 (차이점, 특징 등)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;● NestJS란? Nestjs의 공식 사이트 Nest (NestJS)는 효율적이고 확장 가능한 Node.js서버측 애플리케이션을 구축하기 위한 프레임워크입니다. 프로그레시브 자바스크립트를 사용하고 TypeScript로 빌드되&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;nanbuja.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Back-end</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/148</guid>
      <comments>https://minggu92.tistory.com/148#entry148comment</comments>
      <pubDate>Sat, 26 Oct 2024 09:17:09 +0900</pubDate>
    </item>
    <item>
      <title>[DEVIEW 2023] 싸늘하다, 메신저에 경보가 날아와 꽂힌다 - 네이버 검색 SRE 시스템 개선기</title>
      <link>https://minggu92.tistory.com/147</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://tv.naver.com/v/33919001&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://tv.naver.com/v/33919001&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729810265519&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;NAVER D2&quot; data-og-description=&quot;싸늘하다, 메신저에 경보가 날아와 꽂힌다 - 네이버 검색 SRE 시스템 개선기&quot; data-og-host=&quot;tv.naver.com&quot; data-og-source-url=&quot;https://tv.naver.com/v/33919001&quot; data-og-url=&quot;https://tv.naver.com/v/33919001&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/btBEeO/hyXptbpRpU/sxrpkqgSPJRg7ihPPfcJUk/img.jpg?width=1109&amp;amp;height=624&amp;amp;face=0_0_1109_624,https://scrap.kakaocdn.net/dn/bgtUlN/hyXpBtKSgi/EhcvtIwTFyYFngSzbbQtdk/img.jpg?width=1109&amp;amp;height=624&amp;amp;face=0_0_1109_624&quot;&gt;&lt;a href=&quot;https://tv.naver.com/v/33919001&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://tv.naver.com/v/33919001&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/btBEeO/hyXptbpRpU/sxrpkqgSPJRg7ihPPfcJUk/img.jpg?width=1109&amp;amp;height=624&amp;amp;face=0_0_1109_624,https://scrap.kakaocdn.net/dn/bgtUlN/hyXpBtKSgi/EhcvtIwTFyYFngSzbbQtdk/img.jpg?width=1109&amp;amp;height=624&amp;amp;face=0_0_1109_624');&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;NAVER D2&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;싸늘하다, 메신저에 경보가 날아와 꽂힌다 - 네이버 검색 SRE 시스템 개선기&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;tv.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;h2 id=&quot;id-싸늘하다,메신저에경보가날아와꽂힌다네이버검색SRE시스템개선기-발표요약&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;발표 요약&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: 장애 대응 최적화를 위한 네이버 검색엔진 시스템의 개선기 소개&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1610&quot; data-origin-height=&quot;678&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nKQ3H/btsKiZIUcrg/CNHnSBsuwXZL4KB23vi6cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nKQ3H/btsKiZIUcrg/CNHnSBsuwXZL4KB23vi6cK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nKQ3H/btsKiZIUcrg/CNHnSBsuwXZL4KB23vi6cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnKQ3H%2FbtsKiZIUcrg%2FCNHnSBsuwXZL4KB23vi6cK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1610&quot; height=&quot;678&quot; data-origin-width=&quot;1610&quot; data-origin-height=&quot;678&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;h2 id=&quot;id-싸늘하다,메신저에경보가날아와꽂힌다네이버검색SRE시스템개선기-ASIS-TOBE&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;AS IS - TO BE&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1571&quot; data-origin-height=&quot;634&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ztZaU/btsKi4QMio6/mcxX2JomVfpmyIg4xSWim0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ztZaU/btsKi4QMio6/mcxX2JomVfpmyIg4xSWim0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ztZaU/btsKi4QMio6/mcxX2JomVfpmyIg4xSWim0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FztZaU%2FbtsKi4QMio6%2FmcxX2JomVfpmyIg4xSWim0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1571&quot; height=&quot;634&quot; data-origin-width=&quot;1571&quot; data-origin-height=&quot;634&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;740&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPe15T/btsKiCHgc4N/Rblskwxzc9ILeiu0FBib8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPe15T/btsKiCHgc4N/Rblskwxzc9ILeiu0FBib8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPe15T/btsKiCHgc4N/Rblskwxzc9ILeiu0FBib8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPe15T%2FbtsKiCHgc4N%2FRblskwxzc9ILeiu0FBib8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1556&quot; height=&quot;740&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;740&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;background-color: #ffffff; color: #172b4d; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;[AS-IS] 배치 구조의 모니터링 시스템&lt;/td&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;[TO-BE] 스트리밍 구조의 모니터링 시스템&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점:
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;일정 주기로 데이터를 수집하고 처리하기 때문에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;일괄 처리&lt;/b&gt;가 가능합니다.&lt;/li&gt;
&lt;li&gt;대용량 데이터를 처리할 때 적합합니다.&lt;/li&gt;
&lt;li&gt;수집된 데이터를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;미리 가공하고 처리&lt;/b&gt;할 수 있어서 데이터 분석에 유용합니다.&lt;/li&gt;
&lt;li&gt;배치 작업은 예약 시간에 자동으로 수행될 수 있어서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;운영과 관리가 편리&lt;/b&gt;합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점:
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;데이터 수집 주기가 길다보니 데이터&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;처리 결과를 빠르게 반영할 수 없습니다&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;대용량 데이터 처리가 일정 시간 내에 불가능할 경우,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;딜레이가 발생&lt;/b&gt;할 수 있습니다.&lt;/li&gt;
&lt;li&gt;대규모 트래픽의 경우, 데이터&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;수집과 처리가 지연&lt;/b&gt;될 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점:
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;실시간으로 데이터를 처리&lt;/b&gt;할 수 있어서 대용량 데이터 처리에 용이합니다.&lt;/li&gt;
&lt;li&gt;데이터 처리 결과를 실시간으로 확인할 수 있어서 이상&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;상황을 빠르게 파악&lt;/b&gt;할 수 있습니다.&lt;/li&gt;
&lt;li&gt;데이터 수집 주기가 짧기 때문에 데이터&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;처리 결과를 빠르게 반영&lt;/b&gt;할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;대규모 트래픽&lt;/b&gt;을 처리할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점:
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;데이터 처리를 위한 하드웨어나 소프트웨어의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;설계나 운영이 복잡&lt;/b&gt;합니다.&lt;/li&gt;
&lt;li&gt;대용량 데이터를 처리할 때에도 일정 시간 내에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;모든 데이터를 처리하지 못할 수 있습니다&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;데이터 처리에 필요한 인프라 및&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;기술적인 요구 사항이 매우 높습니다&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2eNNF/btsKiOARbQO/yFngtrYeLKknazATT9KTr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2eNNF/btsKiOARbQO/yFngtrYeLKknazATT9KTr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2eNNF/btsKiOARbQO/yFngtrYeLKknazATT9KTr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2eNNF%2FbtsKiOARbQO%2FyFngtrYeLKknazATT9KTr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1600&quot; height=&quot;706&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;706&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1325&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7wpOn/btsKiFcWeVZ/7Y9CeXAnkjjac1YwBbZLFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7wpOn/btsKiFcWeVZ/7Y9CeXAnkjjac1YwBbZLFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7wpOn/btsKiFcWeVZ/7Y9CeXAnkjjac1YwBbZLFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7wpOn%2FbtsKiFcWeVZ%2F7Y9CeXAnkjjac1YwBbZLFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1325&quot; height=&quot;479&quot; data-origin-width=&quot;1325&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot;&gt;기존은 각 프로세스의 배치 주기가 있기 때문에 이상 징후를 탐지하기 위한 시간 딜레이가 의사결정을 하는데도 영향을 주며 이로 인한 사용자들에게 장애 피해 발생.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;id-싸늘하다,메신저에경보가날아와꽂힌다네이버검색SRE시스템개선기-기존시스템의문제점&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;기존 시스템의 문제점&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1617&quot; data-origin-height=&quot;692&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btylXA/btsKhNpn4BG/dbJ2tLgCVGVDfp3JSr33Hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btylXA/btsKhNpn4BG/dbJ2tLgCVGVDfp3JSr33Hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btylXA/btsKhNpn4BG/dbJ2tLgCVGVDfp3JSr33Hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtylXA%2FbtsKhNpn4BG%2FdbJ2tLgCVGVDfp3JSr33Hk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1617&quot; height=&quot;692&quot; data-origin-width=&quot;1617&quot; data-origin-height=&quot;692&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1635&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGoMZR/btsKjkzhT5X/pxkM0PymRMcrJk2cKL2zs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGoMZR/btsKjkzhT5X/pxkM0PymRMcrJk2cKL2zs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGoMZR/btsKjkzhT5X/pxkM0PymRMcrJk2cKL2zs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGoMZR%2FbtsKjkzhT5X%2FpxkM0PymRMcrJk2cKL2zs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1635&quot; height=&quot;638&quot; data-origin-width=&quot;1635&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1.기존 경보 시스템은 라벨을 직접 생성해서 모니터링 DB에 저장하고 있으며 다시 DB를 조회해 경보를 발송하고 있었음.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 이를 지표수집기가 자동으로 라벨을 생성하고 시계열 데이터 베이스에 저장하여 경보 발송.&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;1601&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m9dF4/btsKiwtKV5w/eKytm6e1icN7yQlkFLggPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m9dF4/btsKiwtKV5w/eKytm6e1icN7yQlkFLggPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m9dF4/btsKiwtKV5w/eKytm6e1icN7yQlkFLggPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm9dF4%2FbtsKiwtKV5w%2FeKytm6e1icN7yQlkFLggPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1601&quot; height=&quot;683&quot; data-origin-width=&quot;1601&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1595&quot; data-origin-height=&quot;582&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Poe04/btsKi6VnWx6/0GtcjACkNE6Lg24fbtPnHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Poe04/btsKi6VnWx6/0GtcjACkNE6Lg24fbtPnHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Poe04/btsKi6VnWx6/0GtcjACkNE6Lg24fbtPnHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPoe04%2FbtsKi6VnWx6%2F0GtcjACkNE6Lg24fbtPnHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1595&quot; height=&quot;582&quot; data-origin-width=&quot;1595&quot; data-origin-height=&quot;582&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2.전체 경보 처리가 될 때까지 경보 발송에 지연이 생기는 구조&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 메세지큐 도입으로 실시간 스트리밍 처리. 기존 3분까지 걸리던 파이프라인을 1분 미만으로 단축.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1501&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CxfSY/btsKi0ue5AH/ZA7eQKeg60yc8IKQddZ7t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CxfSY/btsKi0ue5AH/ZA7eQKeg60yc8IKQddZ7t1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CxfSY/btsKi0ue5AH/ZA7eQKeg60yc8IKQddZ7t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCxfSY%2FbtsKi0ue5AH%2FZA7eQKeg60yc8IKQddZ7t1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1501&quot; height=&quot;658&quot; data-origin-width=&quot;1501&quot; data-origin-height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1604&quot; data-origin-height=&quot;677&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsQHSD/btsKiX5psCh/iyzqBMDg38liTwXbBaD9LK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsQHSD/btsKiX5psCh/iyzqBMDg38liTwXbBaD9LK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsQHSD/btsKiX5psCh/iyzqBMDg38liTwXbBaD9LK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsQHSD%2FbtsKiX5psCh%2FiyzqBMDg38liTwXbBaD9LK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1604&quot; height=&quot;677&quot; data-origin-width=&quot;1604&quot; data-origin-height=&quot;677&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. 사용자 요청에 따라 쿼리를 조절할 수 없는 문제, 지표가 어떤 과정으로 계산된 것인지 알기 어려운 문제 등 존재&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 시계열 DB를 활용해서 개발 편의성 개선 및 쿼리 커스텀 기능 제공&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발 편의성 개선&lt;br /&gt;- 지표 계산을 위한 로직을 고수준 쿼리에서 처리 &amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;간결성&lt;/b&gt;&lt;br /&gt;- TSDB 쿼리 및 템플릿들을 테이블로 관리 &amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;선언성&lt;/b&gt;&lt;br /&gt;쿼리 커스텀 기능 제공&lt;br /&gt;- 사용자 요청 시점에 TSDB로부터 지표 조회 &amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;실시간성&lt;/b&gt;&lt;br /&gt;- 텍스트 템플릿을 사용한 TSDB 쿼리 변형 &amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;유연성&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&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;1620&quot; data-origin-height=&quot;686&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgJIA0/btsKiC1zqk7/hXli1ejyb20sGldtGkdqs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgJIA0/btsKiC1zqk7/hXli1ejyb20sGldtGkdqs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgJIA0/btsKiC1zqk7/hXli1ejyb20sGldtGkdqs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgJIA0%2FbtsKiC1zqk7%2FhXli1ejyb20sGldtGkdqs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1620&quot; height=&quot;686&quot; data-origin-width=&quot;1620&quot; data-origin-height=&quot;686&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1601&quot; data-origin-height=&quot;675&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOImtO/btsKi0HPe4S/WpMsfQbmUydQkAmULAbgfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOImtO/btsKi0HPe4S/WpMsfQbmUydQkAmULAbgfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOImtO/btsKi0HPe4S/WpMsfQbmUydQkAmULAbgfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOImtO%2FbtsKi0HPe4S%2FWpMsfQbmUydQkAmULAbgfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1601&quot; height=&quot;675&quot; data-origin-width=&quot;1601&quot; data-origin-height=&quot;675&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4. 기존 텍스트 템플릿은 사용자 요청에 따라 동적 쿼리 변경을 목적으로 하지만 중복이 생길 수 있고 핸들링하기에 시간 소요가 많음.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; Victoria Metrics의 MetricsQL을 적용하므로써 강력한 기능인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;With 템플릿&lt;/b&gt;을 사용하여 해결&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot;&gt;위의 개선이 이루어지더라도 네이버같이 수천만이 이용하는 서비스에서는 TSDB 사용시 속도저하가 일어날 수 밖에 없음..따라서 API Server와 TSDB간의 성능개선 실시&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1373&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AdB2G/btsKjxd6dUa/AO7zJRKzdYYfkzJ0UcbINK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AdB2G/btsKjxd6dUa/AO7zJRKzdYYfkzJ0UcbINK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AdB2G/btsKjxd6dUa/AO7zJRKzdYYfkzJ0UcbINK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAdB2G%2FbtsKjxd6dUa%2FAO7zJRKzdYYfkzJ0UcbINK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1373&quot; height=&quot;668&quot; data-origin-width=&quot;1373&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciytAu/btsKi2SYbxH/vkL0EauEyj8dhKdAyVGkZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciytAu/btsKi2SYbxH/vkL0EauEyj8dhKdAyVGkZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciytAu/btsKi2SYbxH/vkL0EauEyj8dhKdAyVGkZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciytAu%2FbtsKi2SYbxH%2FvkL0EauEyj8dhKdAyVGkZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1556&quot; height=&quot;558&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오컴의 면도날(Occam's Razor)은 복잡한 현상을 설명할 때, 그 현상을 가장 적은 가정과 개념으로 설명하려는 원칙. 즉, &quot;가장 간단한 설명이 가장 그럴듯한 설명이다&quot; 라는 뜻&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/147</guid>
      <comments>https://minggu92.tistory.com/147#entry147comment</comments>
      <pubDate>Fri, 25 Oct 2024 07:56:03 +0900</pubDate>
    </item>
    <item>
      <title>Data pipeline with Open Source Kafka</title>
      <link>https://minggu92.tistory.com/146</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GZABt/btsKizxcF5B/rluT978VymOkAqCetR3kck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GZABt/btsKizxcF5B/rluT978VymOkAqCetR3kck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GZABt/btsKizxcF5B/rluT978VymOkAqCetR3kck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGZABt%2FbtsKizxcF5B%2FrluT978VymOkAqCetR3kck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1138&quot; height=&quot;824&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;
&lt;h1 id=&quot;id-2024.07.04DatapipelinewithOpenSourceKafka-DatapipelinewithOpenSourceKafka&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;Data pipeline with Open Source Kafka&lt;/h1&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;2024년 6월 29일 (토) 13:00 - 18:00&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;지티플러스 9층 CCoE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;a href=&quot;http://www.gtplus.co.kr/about/notice/52&quot;&gt;http://www.gtplus.co.kr/about/notice/52&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1751&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jczc4/btsKizYg4xO/9rGsgYeYGDIwaOvR1WTeMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jczc4/btsKizYg4xO/9rGsgYeYGDIwaOvR1WTeMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jczc4/btsKizYg4xO/9rGsgYeYGDIwaOvR1WTeMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJczc4%2FbtsKizYg4xO%2F9rGsgYeYGDIwaOvR1WTeMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1232&quot; height=&quot;1751&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;1751&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;카프카의 커넥터는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.confluent.io/hub&quot;&gt;https://www.confluent.io/hub&lt;/a&gt;에서 다운받을 수 있음.&lt;br /&gt;free license말고 사내에선 confluent kafka를 쓰니까 commercial license까지 가능할듯? (어차피 제네럴 한 것들은 다 free임)&lt;/li&gt;
&lt;li&gt;KRaft 통해 더 이상 Zookeper를 사용안해도 될 듯? 이중관리를 안해도 되고 (사실 우리가 하는건 하니고 담당팀에서 하시겠지만...)&lt;br /&gt;성능도 월등이 뛰어나다고 함. 장애 조치도 매우 빨라짐&lt;/li&gt;
&lt;li&gt;발표자료&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/lecnQ/btsKjHguENO/SRA1ca3Ab586OKh913j0U1/Data_Pipeline_with_OpenSource_Kafka_20240704_v3.0.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Data_Pipeline_with_OpenSource_Kafka_20240704_v3.0.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;2.28MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1626&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KG1kB/btsKiqUQ7WQ/kLlhOKZRBSV4IJQJUKbG8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KG1kB/btsKiqUQ7WQ/kLlhOKZRBSV4IJQJUKbG8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KG1kB/btsKiqUQ7WQ/kLlhOKZRBSV4IJQJUKbG8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKG1kB%2FbtsKiqUQ7WQ%2FkLlhOKZRBSV4IJQJUKbG8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1626&quot; height=&quot;720&quot; data-origin-width=&quot;1626&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/146</guid>
      <comments>https://minggu92.tistory.com/146#entry146comment</comments>
      <pubDate>Fri, 25 Oct 2024 07:40:37 +0900</pubDate>
    </item>
    <item>
      <title>KotlinConf'24 Global in South Korea</title>
      <link>https://minggu92.tistory.com/145</link>
      <description>&lt;p&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R721U/btsKjOfAcrq/zVb6fndVztVtXjqg9b6CPk/img.png&quot; /&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 753px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 84px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 84px;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 84px;&quot;&gt;
&lt;h1 id=&quot;id-2024.06.29KotlinConf'24Global-KotlinConf'24GlobalinSouthKorea&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;KotlinConf'24 Global in South Korea&lt;/h1&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;2024년 6월 29일 (토) 13:00 - 18:00&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;건국대학교 학생회관 2층 Prime Hall&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;&lt;a href=&quot;https://infcon.day/session/&quot;&gt;https://infcon.day/session/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 609px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 609px;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 609px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;1824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6SSDj/btsKjsRqOl3/bksQJhjfEN6HLvTaHakFp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6SSDj/btsKjsRqOl3/bksQJhjfEN6HLvTaHakFp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6SSDj/btsKjsRqOl3/bksQJhjfEN6HLvTaHakFp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6SSDj%2FbtsKjsRqOl3%2FbksQJhjfEN6HLvTaHakFp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;349&quot; height=&quot;500&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;1824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1265&quot; data-origin-height=&quot;1835&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CvtvQ/btsKiFRvI42/Ff1mQQ7mK89oPNv8XjjVNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CvtvQ/btsKiFRvI42/Ff1mQQ7mK89oPNv8XjjVNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CvtvQ/btsKiFRvI42/Ff1mQQ7mK89oPNv8XjjVNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCvtvQ%2FbtsKiFRvI42%2FFf1mQQ7mK89oPNv8XjjVNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;346&quot; height=&quot;502&quot; data-origin-width=&quot;1265&quot; data-origin-height=&quot;1835&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코틀린의 공식 컨프가 아닌 국가별 커뮤니티 세션.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jetbrain이 후원하니 얘네 스티커는 많이 받게 된다.&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;Kotlin Compiler&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;K2&lt;/b&gt;가 나옴 &amp;rarr; 프론트와 백엔드도 코틀린 컴파일러가 다르다고 함.(wasm도 가능)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Frontend Intermediate Representation (FIR) 피르라고 읽음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제약을 포함한 스마트 캐스팅이 된다. 그리고&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;inline Lamda에서 스마트 캐스팅이 된다!!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;|| 뒤에도 상위 타입으로 추론이 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 자료 흐름 프레임워크에 중점을 두나요?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제어 흐름을 기술하는 것은 개발자의 주요 업무&lt;/li&gt;
&lt;li&gt;스마트 캐스트는 인지 부하를 줄여준다
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;추가적인 언어 구성은 없음&lt;/li&gt;
&lt;li&gt;점진적인 확장 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;when 구문에서만 함수형 언어의 &quot;가드&quot; 개념을 도입하게 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름 기반 비구조화에서 componentN 호출하지 않도록 한다고 함 (2.2부터 가능할듯)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dataarg class&amp;nbsp; 라는 것이 나옴. &amp;rarr; 기본 함수의 파라미터만 바뀔 때 오버로드 하지 않도록 기존 파라미터를 Extendable&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;error object&amp;nbsp; 가 도입이 됨. 대신 이 유니온 타입은 에러를 담을 때만 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원시타입이나 참조타입 대신&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Value Class&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;를 사용하는 방법을 이야기함 (코틀린 1.5 이상)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체를 생성하지 않기 때문에 오버헤드가 없음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;@JvmInline&amp;nbsp; 어노테이션을 붙여야함.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;기본 생성 함수는 equals(), toString(), hashCode() 만 존재한다.
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;copy(), componentN() 이 없다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;불변타입은 1개만 허용한다.&lt;/li&gt;
&lt;li&gt;=== 레퍼런스 비교를 불허한다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;발표 자료 공유&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;박준수(Version Catalog) -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://speakerdeck.com/junjaboy/gradle-version-catalog-with-kts-kotlinconf24-global-v0-dot-1&quot;&gt;https://speakerdeck.com/junjaboy/gradle-version-catalog-with-kts-kotlinconf24-global-v0-dot-1&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;김희망(Project Valhalla) -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://speakerdeck.com/esperar/project-valhalla-value-class-gimhyimang&quot;&gt;https://speakerdeck.com/esperar/project-valhalla-value-class-gimhyimang&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;김용욱(Kotlin 2.0) -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://speakerdeck.com/dalinaum/recap-kotlin-language-features-in-2-dot-0-and-beyond-michail-zarecenskij&quot;&gt;https://speakerdeck.com/dalinaum/recap-kotlin-language-features-in-2-dot-0-and-beyond-michail-zarecenskij&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이선협(Kotlin Script) -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://speakerdeck.com/kciter/kotlin-script-hwalyonghagi&quot;&gt;https://speakerdeck.com/kciter/kotlin-script-hwalyonghagi&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;권혁준(Expressive Kotlin) -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://speakerdeck.com/davidkwon7/refactoring-to-expressive-kotlin&quot;&gt;https://speakerdeck.com/davidkwon7/refactoring-to-expressive-kotlin&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안성용(KMP Success + androidx room) -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://speakerdeck.com/fornewid/android-jetpack-supports-kmp&quot;&gt;https://speakerdeck.com/fornewid/android-jetpack-supports-kmp&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;곽의진(Compose Multiplatform animation &amp;amp; sensor) -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://speakerdeck.com/kwakeuijin/tap-it-shake-it-fling-it-sheep-it-the-gesture-animations-dance&quot;&gt;https://speakerdeck.com/kwakeuijin/tap-it-shake-it-fling-it-sheep-it-the-gesture-animations-dance&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/145</guid>
      <comments>https://minggu92.tistory.com/145#entry145comment</comments>
      <pubDate>Fri, 25 Oct 2024 07:32:48 +0900</pubDate>
    </item>
    <item>
      <title>World IT Show 2024</title>
      <link>https://minggu92.tistory.com/144</link>
      <description>&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/qUoaj/btsKjHOkBC8/HZcoHTCnGaEadZGCTyHi00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qUoaj/btsKjHOkBC8/HZcoHTCnGaEadZGCTyHi00/img.png&quot; data-origin-width=&quot;1530&quot; data-origin-height=&quot;1184&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.0812%; margin-right: 10px;&quot; data-widthpercent=&quot;50.67&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qUoaj/btsKjHOkBC8/HZcoHTCnGaEadZGCTyHi00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqUoaj%2FbtsKjHOkBC8%2FHZcoHTCnGaEadZGCTyHi00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1530&quot; height=&quot;1184&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CSg0v/btsKjMhLFKX/MQqrz4AbkfCO56dskO4kN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CSg0v/btsKjMhLFKX/MQqrz4AbkfCO56dskO4kN0/img.png&quot; data-origin-width=&quot;1526&quot; data-origin-height=&quot;1213&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.756%;&quot; data-widthpercent=&quot;49.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CSg0v/btsKjMhLFKX/MQqrz4AbkfCO56dskO4kN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCSg0v%2FbtsKjMhLFKX%2FMQqrz4AbkfCO56dskO4kN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1526&quot; height=&quot;1213&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;World IT Show 2024(WIS 2024)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #242424; text-align: left;&quot;&gt;2024.4.17(수) &amp;ndash; 4. 19(금), 3일간&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;코엑스&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;a href=&quot;https://www.worlditshow.co.kr/main/main.php&quot;&gt;https://www.worlditshow.co.kr/main/main.php&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1624&quot; data-origin-height=&quot;978&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NxbXr/btsKhy0kvsH/4S6CLbZ6Kkc7hByDBJVXXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NxbXr/btsKhy0kvsH/4S6CLbZ6Kkc7hByDBJVXXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NxbXr/btsKhy0kvsH/4S6CLbZ6Kkc7hByDBJVXXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNxbXr%2FbtsKhy0kvsH%2F4S6CLbZ6Kkc7hByDBJVXXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1624&quot; height=&quot;978&quot; data-origin-width=&quot;1624&quot; data-origin-height=&quot;978&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;매년 코엑스에서 진행되는 월드 IT 쇼를 갔다왔다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;삼성, LG, SKT 등 대기업부터 아주 작은 소규모 스타트업까지 다양한 기업에서 참여한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3일간 아무때나 부스를 돌아다닐 수 있지만 나는 주로 부대행사에 초점을 두는데 이번에 꽤 흥미로운 아이템들이 보였다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Software 뿐만 아니라 ICT, 헬스케어, AI, 로봇 등 다양한 IT 분야의 신제품 및 솔루션들이 출품하기 때문에 소비 트렌드를 읽을 수 있고 인사이트를 넓히는데 도움이 된다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기억에 남는 아이템들은 모바일 여권 Trip.Pass&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/ZZ3w5/btsKhOV7PqX/5vqicotAN6u0wG7L6Pqsd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZZ3w5/btsKhOV7PqX/5vqicotAN6u0wG7L6Pqsd0/img.png&quot; data-origin-width=&quot;1593&quot; data-origin-height=&quot;917&quot; data-is-animation=&quot;false&quot; style=&quot;width: 52.2873%; margin-right: 10px;&quot; data-widthpercent=&quot;52.9&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZZ3w5/btsKhOV7PqX/5vqicotAN6u0wG7L6Pqsd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZZ3w5%2FbtsKhOV7PqX%2F5vqicotAN6u0wG7L6Pqsd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1593&quot; height=&quot;917&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A1Hg5/btsKizxcznb/1zK9Di6zC6ay1U1vYVM0c1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A1Hg5/btsKizxcznb/1zK9Di6zC6ay1U1vYVM0c1/img.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;816&quot; data-is-animation=&quot;false&quot; style=&quot;width: 46.5499%;&quot; data-widthpercent=&quot;47.1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A1Hg5/btsKizxcznb/1zK9Di6zC6ay1U1vYVM0c1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA1Hg5%2FbtsKizxcznb%2F1zK9Di6zC6ay1U1vYVM0c1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1262&quot; height=&quot;816&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그로스 해킹 올인원 서비스를 표방하는 A/B 테스트 솔루션 핵클.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵클은 회사로 초청해서 이야기도 들어봤다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JqOMm/btsKiGbOD6m/Y4ohrcXksaQMcNLEumzfLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JqOMm/btsKiGbOD6m/Y4ohrcXksaQMcNLEumzfLk/img.png&quot; data-origin-width=&quot;1328&quot; data-origin-height=&quot;893&quot; data-is-animation=&quot;false&quot; style=&quot;width: 31.9287%; margin-right: 10px;&quot; data-widthpercent=&quot;32.69&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JqOMm/btsKiGbOD6m/Y4ohrcXksaQMcNLEumzfLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJqOMm%2FbtsKiGbOD6m%2FY4ohrcXksaQMcNLEumzfLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1328&quot; height=&quot;893&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3vCtX/btsKjsjyvsN/68G3zsehq2zEkvTiIcnHzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3vCtX/btsKjsjyvsN/68G3zsehq2zEkvTiIcnHzk/img.png&quot; data-origin-width=&quot;1103&quot; data-origin-height=&quot;734&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.2636%; margin-right: 10px;&quot; data-widthpercent=&quot;33.03&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3vCtX/btsKjsjyvsN/68G3zsehq2zEkvTiIcnHzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3vCtX%2FbtsKjsjyvsN%2F68G3zsehq2zEkvTiIcnHzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1103&quot; height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciVnva/btsKhIaEYI2/1kcjSxtmwsEsVffvlkpUM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciVnva/btsKhIaEYI2/1kcjSxtmwsEsVffvlkpUM1/img.png&quot; data-origin-width=&quot;1193&quot; data-origin-height=&quot;765&quot; data-is-animation=&quot;false&quot; style=&quot;width: 33.4821%;&quot; data-widthpercent=&quot;34.28&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciVnva/btsKhIaEYI2/1kcjSxtmwsEsVffvlkpUM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciVnva%2FbtsKhIaEYI2%2F1kcjSxtmwsEsVffvlkpUM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1193&quot; height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot;&gt;카메라 설치만으로 비전/음성 기반 생체 신호를 포착해 맥박, 호흡, 심리적 스트레스를 측정하는 엠마헬스케어&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSLR5f/btsKjKxtOHF/JDIxTckXEA1NGkbTkok13k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSLR5f/btsKjKxtOHF/JDIxTckXEA1NGkbTkok13k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSLR5f/btsKjKxtOHF/JDIxTckXEA1NGkbTkok13k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSLR5f%2FbtsKjKxtOHF%2FJDIxTckXEA1NGkbTkok13k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;873&quot; height=&quot;625&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot;&gt;사이버펑크에 가까웠던 안구건조증 치료기 누리아이&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1369&quot; data-origin-height=&quot;709&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dI25c1/btsKi3j16nV/OuuvMHOMCkAldcqJgLRnj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dI25c1/btsKi3j16nV/OuuvMHOMCkAldcqJgLRnj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dI25c1/btsKi3j16nV/OuuvMHOMCkAldcqJgLRnj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdI25c1%2FbtsKi3j16nV%2FOuuvMHOMCkAldcqJgLRnj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1369&quot; height=&quot;709&quot; data-origin-width=&quot;1369&quot; data-origin-height=&quot;709&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot;&gt;수어를 텍스트로, 텍스트를 수어로 변환해주는 바토너스&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;749&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNCPjW/btsKit4OnNI/H8CjG9nUnvCloJhyavNiH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNCPjW/btsKit4OnNI/H8CjG9nUnvCloJhyavNiH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNCPjW/btsKit4OnNI/H8CjG9nUnvCloJhyavNiH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNCPjW%2FbtsKit4OnNI%2FH8CjG9nUnvCloJhyavNiH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;857&quot; height=&quot;749&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;749&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/144</guid>
      <comments>https://minggu92.tistory.com/144#entry144comment</comments>
      <pubDate>Fri, 25 Oct 2024 07:26:27 +0900</pubDate>
    </item>
    <item>
      <title>PostgreSQL Meetup SEOUL</title>
      <link>https://minggu92.tistory.com/143</link>
      <description>&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/ApDHt/btsKha47U9N/qegqRnvpzE32UyUPTJBTw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ApDHt/btsKha47U9N/qegqRnvpzE32UyUPTJBTw1/img.png&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;827&quot; data-is-animation=&quot;false&quot; style=&quot;width: 54.2504%; margin-right: 10px;&quot; data-widthpercent=&quot;54.89&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ApDHt/btsKha47U9N/qegqRnvpzE32UyUPTJBTw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FApDHt%2FbtsKha47U9N%2FqegqRnvpzE32UyUPTJBTw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1250&quot; height=&quot;827&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byL7RI/btsKhoIPR8T/PKdmDey6onsE9u5cRhpZe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byL7RI/btsKhoIPR8T/PKdmDey6onsE9u5cRhpZe1/img.png&quot; data-origin-width=&quot;1482&quot; data-origin-height=&quot;1193&quot; data-is-animation=&quot;false&quot; style=&quot;width: 44.5868%;&quot; data-widthpercent=&quot;45.11&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byL7RI/btsKhoIPR8T/PKdmDey6onsE9u5cRhpZe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyL7RI%2FbtsKhoIPR8T%2FPKdmDey6onsE9u5cRhpZe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1482&quot; height=&quot;1193&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 324px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;PostgreSQL Meetup SEOUL #1. PostgreSQL 100% 활용법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;2024년 4월 17일 18:30 - 20:30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;삼성역 섬유연합회 2층 컨퍼런스홀 C3룸 (서울 강남구 테헤란로 518)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 20px;&quot;&gt;&lt;a href=&quot;https://www.meetup.com/pgmeetupseoul/events/300140824&quot;&gt;https://www.meetup.com/pgmeetupseoul/events/300140824&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 244px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 244px;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%; height: 244px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;337&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOtHQm/btsKhnXtNuT/PKGsxfVkklMs6loSWhpGkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOtHQm/btsKhnXtNuT/PKGsxfVkklMs6loSWhpGkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOtHQm/btsKhnXtNuT/PKGsxfVkklMs6loSWhpGkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOtHQm%2FbtsKhnXtNuT%2FPKGsxfVkklMs6loSWhpGkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;812&quot; height=&quot;337&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;337&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;PostgreSQL Opensource에 기여하는 방법에는 코드 커밋만 있는 것이 아니라 테스트도 있다.&lt;br /&gt;어차피 postgres는 C로 만들어져서 잘 모름..PostgreSQL은 RDB가 아니라 ORDB라고 하는데 (객체 관계형 DB) 그렇게 써본 적이 없다..내가 느끼는 다른 oss rdb와 다른 점은 pg/sql로 함수 만들기가 쉽다..? 프로그래밍 하는 느낌&lt;/li&gt;
&lt;li&gt;Logical Replication은 SQL문으로 말아주기 때문에 이기종간 복제가 가능하고 Physical Replication은 저장소에 저장하기 직전 단계를 가져와 복사한다. (바이너리 레벨에서 동일)&lt;br /&gt;Fail Over는 시스템 장애시 자동으로 백업 시스템으로 전환하는 기능이다. (Slave Node에서 stand by 상태가 active로 변경되는 것)&lt;br /&gt;발표하시는 분이 엄청난 고수라는 걸 느꼈다. 세션 마치고 현장에서 질문 20~30 개를 막힘없이 대답하심&lt;br /&gt;나는 클라우드 네이티브에서의 PG사용에 대해 질문했는데 그분 답변이&quot;Cloud Native 환경에서의 Scale in, out은 어플리케이션이나 미들레벨에서 가져가야지 DBMS 레벨에서 가져가면 안된다. &quot;라고함. 도커 이미지로 빠르게 부팅할 수 있는 클라우드 환경과 데이터를 복제해서 정합성을 보장해야 하는 DBMS는 스케일링하는 차원이 다르기 때문인 듯..&lt;br /&gt;미들웨어를 플렉서블하게 구성해야 한다고 이해했다.&lt;/li&gt;
&lt;li&gt;PostgreSQL의 Extension중 하나인 Apache AGE 라고 하는 것에 들었다. PG는 Extension community가 매우 잘 되어 있고 활발하다고 한다. AGE를 설치하면 그래프 데이터베이스로써 사용할 수 있게 되는데 쉽게 말해 일반 RDB의 Row 형태로 보기 힘든 데이터를 그래프 형태로 데이터를 가공해 표현하는 것이다. 데이터 분석 쪽에서 유용하게 쓰일 수 있다고 생각했으나 개발자 레벨에선..? 전혀 쓸 일 없을 듯.. 아무튼 익스텐션은 잘 되어있는 걸로&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/143</guid>
      <comments>https://minggu92.tistory.com/143#entry143comment</comments>
      <pubDate>Thu, 24 Oct 2024 11:07:18 +0900</pubDate>
    </item>
    <item>
      <title>인포그램 x GitLap DevOps 밋업</title>
      <link>https://minggu92.tistory.com/142</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1417&quot; data-origin-height=&quot;1196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7vuy2/btsKicgx2hY/fc1zKXSvNnei5jDYXG6kM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7vuy2/btsKicgx2hY/fc1zKXSvNnei5jDYXG6kM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7vuy2/btsKicgx2hY/fc1zKXSvNnei5jDYXG6kM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7vuy2%2FbtsKicgx2hY%2Ffc1zKXSvNnei5jDYXG6kM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1417&quot; height=&quot;1196&quot; data-origin-width=&quot;1417&quot; data-origin-height=&quot;1196&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4a4a4a; text-align: left;&quot;&gt;Gitlab Korea 밋업 #18 - VSM으로 완성하는 DevSecOps와 SlackBot 자동화&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;2023년 11월 28일 19시&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;강남파이낸스센터 21층 대회의실 (개꿀)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;a href=&quot;https://festa.io/events/4332?q_mailing_7TZRproaY7L87HMKcwfbwHKXcbqy1uMLm8ybD=Rnv3wydphTEADua8Ni8dKQN8dJ1SxHVMRkt6fGYdBYzbcWuTRXJpjDCPm&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://festa.io/events/4332?q_mailing_7TZRproaY7L87HMKcwfbwHKXcbqy1uMLm8ybD=Rnv3wydphTEADua8Ni8dKQN8dJ1SxHVMRkt6fGYdBYzbcWuTRXJpjDCPm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;1845&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/so2Vx/btsKibhEaHR/MI84YpA6iVkyFqpWIgK6TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/so2Vx/btsKibhEaHR/MI84YpA6iVkyFqpWIgK6TK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/so2Vx/btsKibhEaHR/MI84YpA6iVkyFqpWIgK6TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fso2Vx%2FbtsKibhEaHR%2FMI84YpA6iVkyFqpWIgK6TK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1022&quot; height=&quot;1845&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;1845&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;GitLab X InfoGrab : DevOps&amp;gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. DevOps VSM 소개&lt;br /&gt;* VSM이란?&lt;br /&gt;Value Stream Management&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 업무에 대한 백로그를 그루밍하고, 담당자를 할당하고, 코드 커밋을 하고, QA하고&lt;br /&gt;&amp;nbsp;배포 하는 모든 일련의 과정을 보려고 하는 것임&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Value Stream : 개발 생산성을 높여 지속적인 고객가치 제공을 위한 흐름, 이를 개선하는 프로세스&lt;br /&gt;구글의 DORA4 에서 평가 기준을 만듦. 정량적(속도, 안정성), 정성적 평가가 존재&lt;br /&gt;Gitlab Value Stream Analystic : 일에 대한 트래픽이 얼마나 몰리는지 확인할 수 있다.&lt;br /&gt;Analystics Dashborad를 통해 데이터를 측정, 가시화&lt;br /&gt;PR을 머지까지의 소요시간을 보고 어떠한 업무가 오래 걸릴 수 밖에 없었는지 확인 및 대비 가능하게.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;warp up =&amp;gt; 낭비(다운타임)을 줄이고 자동화(업타임)을 늘려 고객 만족 획득 기회 늘어남.&lt;br /&gt;낭비 - 재작업, 반복작업, 고객에게 필요없는 고퀄작업, 오버 프로덕션, 대기시간, 불필요한 작업 등&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;---&lt;br /&gt;GitLab을 통한 CI/CD를 이용한다면 이에 대한 플로우와 데이터를 시각화하여 보여주는 기능같음.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 자동화 구현 시연&amp;nbsp;&lt;br /&gt;Triage 라는 봇을 활용해 MR 시에 openai api를 이용해 챗GPT가 코드 리뷰를 진행하는 과정을 데모로 진행.&lt;br /&gt;정책에 의해 이슈 관리 자동화를 시도함.&lt;br /&gt;라벨, due date등이 자동으로 설정&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;빌드, 패키지, 테스트, 보안검사 등을 파이프라인 자동화 진행을 통해 VSM 개선&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Gitlab Compliance 프레임워크 : 파이프라인을 다양한 어플리케이션에 주입(유료)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. 사내에서 업무 협업툴로 wiki를 사용하는만큼 노션 자동화엔 그닥 얻을 건 없었다는 점&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;밋업이 끝나고 다른 개발자 분들과 네트워킹을 했는데 재미있었다.&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/142</guid>
      <comments>https://minggu92.tistory.com/142#entry142comment</comments>
      <pubDate>Thu, 24 Oct 2024 09:33:49 +0900</pubDate>
    </item>
    <item>
      <title>OpenTRS: 프론트엔드 개발자라면 지금 바로 알아야 할 Front-End 취약점 극복 방안</title>
      <link>https://minggu92.tistory.com/141</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;OpenTRS: 프론트엔드 개발자라면 지금 바로 알아야 할 Front-End 취약점 극복 방안&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;2023년 9월 14일 (목) 16:00 ~ 19:00&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;더에셋빌딩 18층 (네이버D2SF) , 서울 서초구 서초대로74길 14&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;a href=&quot;https://event-us.kr/theori/event/69964&quot;&gt;https://event-us.kr/theori/event/69964&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1222&quot; data-origin-height=&quot;1221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QP18O/btsKg0hlcI6/QN9MHkpnZVPjhai7HDQkXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QP18O/btsKg0hlcI6/QN9MHkpnZVPjhai7HDQkXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QP18O/btsKg0hlcI6/QN9MHkpnZVPjhai7HDQkXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQP18O%2FbtsKg0hlcI6%2FQN9MHkpnZVPjhai7HDQkXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1222&quot; height=&quot;1221&quot; data-origin-width=&quot;1222&quot; data-origin-height=&quot;1221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;프론트엔드 보안 위협 어떻게 극복할까?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Part 1. Securing the Front Lines: Protecting Front-End Applications from Overlooked Vulnerabilities&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;왜 지금 Front-End 취약점이 중요할까요?&lt;/li&gt;
&lt;li&gt;Real world에서 발견된 Front-End 취약점 사례를 살펴보고&lt;/li&gt;
&lt;li&gt;대응 자동화 방안 시연(데모)합니다&lt;/li&gt;
&lt;li&gt;Front-End security 에서 빼놓을 수 없는 &quot;CSP&quot; 에 대해서도 짚어드려요!&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;* nodejs 환경변수에 있는거 번들링 할 때 다 주입되나?&lt;br /&gt;ex) process.env.TOKEN&lt;br /&gt;* nextjs의 _buildManifest.js 안에 들어있는 routing navigation은 다 보인다.&lt;br /&gt;* 디버깅을 위한 source map -&amp;gt; 위험하다고 하는데 외부 공개가 얼마나 위험한지?&lt;br /&gt;-&amp;gt; apm 툴을 이용해서 source map을 넣어 디버깅하는게 best practice&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;* Content integrity (CSP, SRI)&lt;br /&gt;-&amp;gt; src 태그에 integrity hash 하드코딩 하는 이유&lt;br /&gt;-&amp;gt; 근데 로드하지 못하는 경우가 있는 리스크&lt;br /&gt;-&amp;gt; headless browser 를 통해 먼저 스캐닝하고 시뮬레이션 해보고 가용성 확보해라.&lt;br /&gt;CSP를 통한 외부 도메인으로부터 불러온 리소스 디텍션.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Part 2. How (Not) to Sandbox Node.js: vm2 Postmortem&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;vm2 라이브러리 구현을 분석하고&lt;/li&gt;
&lt;li&gt;vm2 취약점의 case study를 해봅니다.&lt;/li&gt;
&lt;li&gt;vm2 사용 사례와&lt;/li&gt;
&lt;li&gt;vm2를 통해 OSS 의존성 및 공급망 보안 문제를 살펴봅니다&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;* vm 안에 어떠한 context라도 넣으면&amp;nbsp;&lt;br /&gt;-&amp;gt; js로 만들어진 js패키지는 안전할 수 없다고 생각한다고함.&lt;br /&gt;vm2를 사용하는 라이브러리를 사용하는 라이브러리 쓰면 개발자 잘못?&lt;br /&gt;Q) 그럼 보안담당자가 어떻게 사전감지?&lt;br /&gt;A) 현실적으로 모두 audit하는건 불가능..deploy cycle에 security가 들어가야 하는 것아닌가&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Part 3. 보안적 관점에서의 Front-End 자격증명 정보 관리와 브라우저 데이터 저장소 선택의 장/단점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적절한 자격 증명 정보 관리와 브라우저 데이터 저장소 선택이 중요한 이유는 무엇일까요?&lt;/li&gt;
&lt;li&gt;Front-End 자격 증명 정보 관리와 브라우저 데이터 저장소 선택의 장단점을 살펴보고&lt;/li&gt;
&lt;li&gt;공격 시나리오로 인해 발생 가능한 문제(Front-End 자격증명 정보 관리 취약점)의 장단점과 해결 방안을 제시합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;* JWT&lt;br /&gt;* cookie, local-storage, session-storage&amp;nbsp;&lt;br /&gt;* XSS는 아실거고..CSRF 아시나요&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/141</guid>
      <comments>https://minggu92.tistory.com/141#entry141comment</comments>
      <pubDate>Thu, 24 Oct 2024 09:31:34 +0900</pubDate>
    </item>
    <item>
      <title>Microsoft X GitHub Roadshow 2023</title>
      <link>https://minggu92.tistory.com/140</link>
      <description>&lt;p&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWedGC/btsKf9lSV2G/RSU16t5ToMZghVecNaiXo1/img.png&quot; /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1515&quot; data-origin-height=&quot;1238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DZZ8S/btsKg3yngFo/MIH67UDDTVri41kiF1Wa3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DZZ8S/btsKg3yngFo/MIH67UDDTVri41kiF1Wa3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DZZ8S/btsKg3yngFo/MIH67UDDTVri41kiF1Wa3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDZZ8S%2FbtsKg3yngFo%2FMIH67UDDTVri41kiF1Wa3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1515&quot; height=&quot;1238&quot; data-origin-width=&quot;1515&quot; data-origin-height=&quot;1238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;Microsoft X GitHub Roadshow 2023 - Level Up with GitHub Copilot &amp;amp; Codespaces&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일시&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: left;&quot;&gt;2023년 5월 15일 (월) 13:00 ~ 17:30&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;장소&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;코엑스 컨퍼런스룸 3F 300호&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;홈페이지&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;a href=&quot;https://infcon.day/session/&quot;&gt;https://infcon.day/session/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.4186%;&quot;&gt;일정&lt;/td&gt;
&lt;td style=&quot;width: 85.5814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;726&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bETN8S/btsKgfe7RoI/ywW7YxafwUnj9YX1ngJLK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bETN8S/btsKgfe7RoI/ywW7YxafwUnj9YX1ngJLK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bETN8S/btsKgfe7RoI/ywW7YxafwUnj9YX1ngJLK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbETN8S%2FbtsKgfe7RoI%2FywW7YxafwUnj9YX1ngJLK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;970&quot; height=&quot;726&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;726&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4가지 세션으로 이루어진 Github Codespaces 기반의 데모 위주 밋업이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마소에서 각 세션에 대해 라이브 코딩을 진행하는 대담함을 보였으나 역시 오류 뻥뻥(...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Microsoft는 Azure를, GitHub은 Codespaces와 Copilot을 홍보하는 자리.&lt;/p&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://github.com/Azure-Samples/gh-codespaces-copilot-in-a-day-ko&quot;&gt;https://github.com/Azure-Samples/gh-codespaces-copilot-in-a-day-ko&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Codespaces 데모 레포 : &lt;a href=&quot;https://github.com/gh-productivity-workshops/PetSpotR&quot;&gt;https://github.com/gh-productivity-workshops/PetSpotR&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xXSQQ/btsKhb3Zi7q/RkmFbqcPGDiYNMCMb3Sqf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xXSQQ/btsKhb3Zi7q/RkmFbqcPGDiYNMCMb3Sqf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xXSQQ/btsKhb3Zi7q/RkmFbqcPGDiYNMCMb3Sqf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxXSQQ%2FbtsKhb3Zi7q%2FRkmFbqcPGDiYNMCMb3Sqf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;356&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot;&gt;코드 버튼 클릭 후 Codespaces 탭에서 새 Codespaces를 생성하면 됨.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Codespaces&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot;&gt;는 브라우저 기반 IDE로 보임.(workspace 대신 code spaces!)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1637&quot; data-origin-height=&quot;1176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzpCdl/btsKg2MY6PV/cG4ukfpCpXRZHJEtGXrfM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzpCdl/btsKg2MY6PV/cG4ukfpCpXRZHJEtGXrfM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzpCdl/btsKg2MY6PV/cG4ukfpCpXRZHJEtGXrfM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzpCdl%2FbtsKg2MY6PV%2FcG4ukfpCpXRZHJEtGXrfM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1637&quot; height=&quot;1176&quot; data-origin-width=&quot;1637&quot; data-origin-height=&quot;1176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Visual Studio Code와 같은 UI를 사용함. Extension 설치도 가능함. 별도로 로컬에 VSC를 설치하지 않아도 웹 브라우저 내에서 IDE를 사용한다는 점에서 편리해보임.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;개발 자체를 Codespaces를 이용하고 Github Action등과 같은 서비스 연계, Credential도 public하게 관리하지 않는다는 것을 보여줌.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;OpenAI와 Microsoft 협업으로 Azure AI라는 것을 만들어둠. ChatGPT API를 이용하는 것&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Resource에 대한 정의는 json이나 yaml을 사용하지 않고 Microsoft에서 만든 bicep을 사용함. BICEP 확장자에 대한 이야기 (&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep&quot;&gt;https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep&lt;/a&gt;)&lt;br /&gt;GitHub Copilot을 잘 사용하기 위해선 주석을 잘 작성해야 함. 주석으로 명령을 하고&amp;nbsp; 몇 초 뒤 작성코드의 예시를 뿌려줌. 그러나 작성해준 그대로의 코드를 온전히 사용한 적은 별로 없는 듯. Copilot은 완벽한 코드를 만들어주는 것이 아니라 내가 Review를 한다는 느낌으로 작성하라고 함&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Codespaces 자체는 훌륭해보임(VSC user 한정). 컨테이너 환경이기 때문에 config잘 설정해두면 중복으로 설정할 필요가 없음. 즉 개발자마다 각각 개발환경을 구축할 필요가 없다는 점에서 starter kit의 역할을 해줄 수 있을듯. Docker container처럼 실행환경을 fix하는 것이 아니라 개발환경을 fix하는 것의 차이. 다만 브라우저 기반이라 사용하지 못하는 단축키가 많을 듯..?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>테크 행사</category>
      <author>ming.gu</author>
      <guid isPermaLink="true">https://minggu92.tistory.com/140</guid>
      <comments>https://minggu92.tistory.com/140#entry140comment</comments>
      <pubDate>Thu, 24 Oct 2024 09:26:08 +0900</pubDate>
    </item>
  </channel>
</rss>