<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>행복의 주문, 디리릿!!</title>
    <link>https://zi-c.tistory.com/</link>
    <description> </description>
    <language>ko</language>
    <pubDate>Tue, 19 May 2026 22:38:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>뜌듑</managingEditor>
    <image>
      <title>행복의 주문, 디리릿!!</title>
      <url>https://tistory1.daumcdn.net/tistory/4238501/attach/860aaed5727b44db8f7559611066542d</url>
      <link>https://zi-c.tistory.com</link>
    </image>
    <item>
      <title>[MongoDB] aggregate $dateToString 사용법 (specifier, ISODate)</title>
      <link>https://zi-c.tistory.com/49</link>
      <description>&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;$dateToString 이란?&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;dateToString는 &lt;span style=&quot;color: #333333;&quot;&gt;mongodb의 date object를&amp;nbsp;&lt;/span&gt;사용자가 지정한 포맷으로 변환시켜 주는 몽고디비 operator이다. aggregate 구문에서 $project와 함께 사용된다.&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;dateToString 사용법&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;project&lt;/span&gt;&amp;nbsp;: {&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #EF6F53;&quot;&gt;formattedDate&lt;/span&gt; : {$dateToString : { &lt;span style=&quot;color: #409D00;&quot;&gt;format&lt;/span&gt; : &quot;xxxxxxx&quot;, date : &quot;$&lt;span style=&quot;color: #0593D3;&quot;&gt;value&lt;/span&gt;&quot;}}&lt;br&gt;}&lt;br&gt;주로 위 포맷으로 aggregate project 구문 안에서 dateToString을 사용할 수 있으며, &lt;span style=&quot;color: #409D00;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에&lt;/span&gt; 지정한 형식으로 date object인 $&lt;span style=&quot;color: #0593D3;&quot;&gt;value &lt;/span&gt;값을 사용자가 임의로 네이밍한 값인 &lt;span style=&quot;color: #EF6F53;&quot;&gt;formattedDate&lt;/span&gt;&amp;nbsp;값으로 뽑을 수 있다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예를 들어, 아래의 도큐먼트 정보를 가질 때&lt;/span&gt;&lt;br&gt;{ &quot;&lt;span style=&quot;color: #0593D3;&quot;&gt;value&lt;/span&gt;&quot; : ISODate(&quot;2014-01-07T08:15:39.736Z&quot;) }&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: 100.0%; text-align: justify;&quot;&gt;db.collection.aggregate([&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ $project: {&amp;nbsp;&lt;span style=&quot;color: #EF6F53;&quot;&gt;formattedDate &lt;/span&gt;:&amp;nbsp;{&amp;nbsp;$dateToString:&amp;nbsp;{&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;format&lt;/span&gt;: &quot;&lt;span style=&quot;color: #409D00;&quot;&gt;포맷&lt;/span&gt;&quot;, date: &quot;$&lt;span style=&quot;color: #0593D3;&quot;&gt;value&lt;/span&gt;&quot; } } } }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;])&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 실행할 때에 project 된 결괏값인 &lt;/span&gt;&lt;span style=&quot;color: #EF6F53;&quot;&gt;formattedDate&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 은&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;color: #409D00;&quot;&gt;포맷&lt;/span&gt;이 &lt;b&gt;%Y&lt;span style=&quot;color: #EE2323;&quot;&gt;-&lt;/span&gt;%m&lt;span style=&quot;color: #EE2323;&quot;&gt;-&lt;/span&gt;%d&lt;/b&gt; 라면&amp;nbsp;&amp;nbsp;&quot;2014&lt;b&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;-&lt;/span&gt;&lt;/b&gt;01&lt;b&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;-&lt;/span&gt;&lt;/b&gt;07&quot; 이 되고&lt;br&gt;&lt;span style=&quot;color: #409D00;&quot;&gt;포맷&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 &lt;/span&gt;&lt;b&gt;%Y%m%d&lt;/b&gt; 라면 &quot;20140107&quot; 이고&lt;br&gt;&lt;span style=&quot;color: #409D00;&quot;&gt;포맷&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%m&lt;/span&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%d&lt;/span&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%Y&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 라면 &lt;/span&gt;&quot;01&lt;b&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;/&lt;/span&gt;&lt;/b&gt;07&lt;b&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;/&lt;/span&gt;&lt;/b&gt;2014&quot;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;이 되는 것이다.&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한마디로 date object의 정보에서 필요한 것만 뽑아서 원하는 형식으로 보여주는 것이 가능하다는 것이다.&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;포맷 지정자 classifier&lt;/b&gt;&lt;/h3&gt;&lt;table style=&quot;background-color: #ffffff; color: #21313c; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style3&quot;&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #1c2d38; text-align: start;&quot;&gt;Specifiers&lt;/span&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #1c2d38; text-align: start;&quot;&gt;Description&lt;/span&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #1c2d38; text-align: start;&quot;&gt;Possible Values&lt;/span&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;%d&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Day of Month (2 digits, zero padded)&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;01-31&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%G&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Year in ISO 8601 format&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;0000-9999&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%H&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Hour (2 digits, zero padded, 24-hour clock)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;00-23&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%j&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Day of year (3 digits, zero padded)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;001-366&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%L&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Millisecond (3 digits, zero padded)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;000-999&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;%m&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Month (2 digits, zero padded)&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;01-12&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%M&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Minute (2 digits, zero padded)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;00-59&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%S&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Second (2 digits, zero padded)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;00-60&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%w&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Day of week (1-Sunday, 7-Saturday)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1-7&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%u&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Day of week number in ISO 8601 format (1-Monday, 7-Sunday)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1-7&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%U&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Week of year (2 digits, zero padded)&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;00-53&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%V&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Week of Year in ISO 8601 format&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;01-53&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;%Y&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Year (4 digits, zero padded)&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;0000-9999&lt;/b&gt;&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%z&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;The timezone offset from UTC.&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;+/-[hh][mm]&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #ffffff; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%Z&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;The minutes offset from UTC as a number. For example, if the timezone offset (+/-[hhmm]) was&amp;nbsp;+0445, the minutes offset is&amp;nbsp;+285.&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;+/-mmm&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr style=&quot;background-color: #f9fbfa; color: #1c2d38;&quot;&gt; 
   &lt;td style=&quot;text-align: left; width: 10.4651%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%%&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 71.9767%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Percent Character as a Literal&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
   &lt;td style=&quot;text-align: left; width: 17.4419%;&quot;&gt; 
    &lt;div data-leafygreen-ui=&quot;td-inner-div&quot;&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;%&lt;/span&gt; 
    &lt;/div&gt; &lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;format, date 이외에도 timezone, onNull과 같은 옵션들도 있으니 추가 사항은&amp;nbsp;&lt;span style=&quot;color: #0070D1;&quot;&gt;mongodb 공식 문서&lt;/span&gt;에서 확인할 수 있다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;예제&lt;/b&gt;&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;아래는 몽고디비 공식 도큐먼트에 나와있는 예제이다.&lt;br&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: 100.0%; text-align: justify;&quot;&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&quot;_id&quot;&amp;nbsp;:&amp;nbsp;1,&lt;br&gt;&amp;nbsp;&amp;nbsp;&quot;item&quot;&amp;nbsp;:&amp;nbsp;&quot;abc&quot;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&quot;price&quot;&amp;nbsp;:&amp;nbsp;10,&lt;br&gt;&amp;nbsp;&amp;nbsp;&quot;quantity&quot;&amp;nbsp;:&amp;nbsp;2,&lt;br&gt;&amp;nbsp;&amp;nbsp;&quot;&lt;span style=&quot;color: #0593D3;&quot;&gt;date&lt;/span&gt;&quot;&amp;nbsp;:&amp;nbsp;ISODate(&quot;&lt;b&gt;2014-01-01&lt;/b&gt;T08:15:39.736Z&quot;)&lt;br&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;위와 같은 document를 가질 때&lt;br&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: 100.0%; text-align: justify;&quot;&gt;db.sales.aggregate(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$project:&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;span style=&quot;color: #EF6F53;&quot;&gt;yearMonthDayUTC&lt;/span&gt;:&amp;nbsp;{&amp;nbsp;$dateToString:&amp;nbsp;{&amp;nbsp;&lt;span style=&quot;color: #409D00;&quot;&gt;format&lt;/span&gt;:&amp;nbsp;&quot;%Y-%m-%d&quot;,&amp;nbsp;date:&amp;nbsp;&quot;$&lt;span style=&quot;color: #0593D3;&quot;&gt;date&lt;/span&gt;&quot;&amp;nbsp;}&amp;nbsp;},&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;timewithOffsetNY:&amp;nbsp;{&amp;nbsp;$dateToString:&amp;nbsp;{&amp;nbsp;format:&amp;nbsp;&quot;%H:%M:%S:%L%z&quot;,&amp;nbsp;date:&amp;nbsp;&quot;$date&quot;,&amp;nbsp;timezone:&amp;nbsp;&quot;America/New_York&quot;}&amp;nbsp;},&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;timewithOffset430:&amp;nbsp;{&amp;nbsp;$dateToString:&amp;nbsp;{&amp;nbsp;format:&amp;nbsp;&quot;%H:%M:%S:%L%z&quot;,&amp;nbsp;date:&amp;nbsp;&quot;$date&quot;,&amp;nbsp;timezone:&amp;nbsp;&quot;+04:30&quot;&amp;nbsp;}&amp;nbsp;},&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minutesOffsetNY:&amp;nbsp;{&amp;nbsp;$dateToString:&amp;nbsp;{&amp;nbsp;format:&amp;nbsp;&quot;%Z&quot;,&amp;nbsp;date:&amp;nbsp;&quot;$date&quot;,&amp;nbsp;timezone:&amp;nbsp;&quot;America/New_York&quot;&amp;nbsp;}&amp;nbsp;},&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minutesOffset430:&amp;nbsp;{&amp;nbsp;$dateToString:&amp;nbsp;{&amp;nbsp;format:&amp;nbsp;&quot;%Z&quot;,&amp;nbsp;date:&amp;nbsp;&quot;$date&quot;,&amp;nbsp;timezone:&amp;nbsp;&quot;+04:30&quot;&amp;nbsp;}&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;위의 dateToString 포맷으로 project한 결괏값은&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: 100.0%; text-align: justify;&quot;&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;_id&quot;&amp;nbsp;:&amp;nbsp;1,&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&lt;span style=&quot;color: #EF6F53;&quot;&gt;yearMonthDayUTC&lt;/span&gt;&quot;&amp;nbsp;:&amp;nbsp;&quot;2014-01-01&quot;,&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;timewithOffsetNY&quot;&amp;nbsp;:&amp;nbsp;&quot;03:15:39:736-0500&quot;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;timewithOffset430&quot;&amp;nbsp;:&amp;nbsp;&quot;12:45:39:736+0430&quot;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;minutesOffsetNY&quot;&amp;nbsp;:&amp;nbsp;&quot;-300&quot;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;minutesOffset430&quot;&amp;nbsp;:&amp;nbsp;&quot;270&quot;&lt;br&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;[참조]&lt;br&gt;&lt;a href=&quot;https://www.mongodb.com/docs/manual/reference/operator/aggregation/dateToString/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.mongodb.com/docs/manual/reference/operator/aggregation/dateToString/&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>괴발개발</category>
      <category>dateToString specifier</category>
      <category>mongodb dateToString</category>
      <category>mongodb dateToString aggregate</category>
      <category>mongodb isodate 변환 aggregate</category>
      <category>mongodb 날짜 뽑기</category>
      <category>몽고디비 dateToString</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/49</guid>
      <comments>https://zi-c.tistory.com/49#entry49comment</comments>
      <pubDate>Wed, 14 Jun 2023 09:12:05 +0900</pubDate>
    </item>
    <item>
      <title>[이쁜 무료 폰트 추천] suite 스위트체 by SUNN, 폰트 윈도우/맥 설치하는 법</title>
      <link>https://zi-c.tistory.com/48</link>
      <description>&lt;link href=&quot;https://cdn.jsdelivr.net/gh/sunn-us/SUITE/fonts/static/woff2/SUITE.css&quot; rel=&quot;stylesheet&quot;&gt;

&lt;style&gt;
    body {font-family: 'SUITE', sans-serif;}
&lt;/style&gt;

&lt;h1&gt;미친 듯이 귀여운 폰트를 찾았다.&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1829&quot; data-origin-height=&quot;863&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxox25/btsjHc8zm0P/mDmUJZm5LYmvGx5FAssJr1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxox25/btsjHc8zm0P/mDmUJZm5LYmvGx5FAssJr1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxox25/btsjHc8zm0P/mDmUJZm5LYmvGx5FAssJr1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcxox25%2FbtsjHc8zm0P%2FmDmUJZm5LYmvGx5FAssJr1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1829&quot; height=&quot;863&quot; data-origin-width=&quot;1829&quot; data-origin-height=&quot;863&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sunn.us/&quot;&gt;https://sunn.us/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SUNN 님께서 오픈소스로 공개해주신 SUITE체&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엄청나게 깔끔하고 완전 내 취향저격이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKHOE3/btsjGZuMhzL/HzOnceA6qdCKos7T7PSxnK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKHOE3/btsjGZuMhzL/HzOnceA6qdCKos7T7PSxnK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKHOE3/btsjGZuMhzL/HzOnceA6qdCKos7T7PSxnK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKHOE3%2FbtsjGZuMhzL%2FHzOnceA6qdCKos7T7PSxnK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1055&quot; height=&quot;399&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;399&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;지금 이 포스트는 다 SUNN님의 스위트 체로 보이도록 설정을 해놓았다. (아마 웹에서만 그렇게 보일지도)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말로 너무나도 굉장히 이쁘다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 이런 이쁜 폰트를 오픈소스로 공개해주시다니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무나도 멋진 포트폴리오를 가지고 계신 실제로도 멋진 분이실 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;폰트 적용 법&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://sunn.us/suite/#keypoint&quot;&gt;사이트&lt;/a&gt;에 들어가 제일 아래 download 섹션에서 필요한 폰트 확장자 타입을 다운받는다. &lt;/br&gt;
&lt;a href=&quot;https://sunn.us/suite/#keypoint&quot;&gt;https://sunn.us/suite/#keypoint&lt;/a&gt; &lt;/br&gt;
보통 윈도우라면 TTF, 맥이라면 OTF 를 설치한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DXsOb/btsjFS4fLs5/68kg5sVrHuIFMwKcc89WMK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DXsOb/btsjFS4fLs5/68kg5sVrHuIFMwKcc89WMK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DXsOb/btsjFS4fLs5/68kg5sVrHuIFMwKcc89WMK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDXsOb%2FbtsjFS4fLs5%2F68kg5sVrHuIFMwKcc89WMK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;751&quot; height=&quot;339&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 다운로드 된 파일 압축을 풀고 &lt;b&gt;Windows&lt;/b&gt;라면 &lt;b&gt;글꼴&lt;/b&gt;, &lt;b&gt;MAC&lt;/b&gt; OS 라면 &lt;b&gt;Fonts&lt;/b&gt;를 검색해서 drag &amp;amp; drop으로 쉽게 설치할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F9W12/btsjJUeZQpY/OuBk5VpV3mz7lhi6n7HdsK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F9W12/btsjJUeZQpY/OuBk5VpV3mz7lhi6n7HdsK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F9W12/btsjJUeZQpY/OuBk5VpV3mz7lhi6n7HdsK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF9W12%2FbtsjJUeZQpY%2FOuBk5VpV3mz7lhi6n7HdsK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;781&quot; height=&quot;590&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>괴발개발</category>
      <category>fonts</category>
      <category>ppt 폰트 추천</category>
      <category>suite체</category>
      <category>귀여운 폰트</category>
      <category>스위트 폰트</category>
      <category>윈도우 폰트 설치하는 법</category>
      <category>이쁜 무료 폰트 추천</category>
      <category>이쁜 폰트</category>
      <category>폰트 설치법</category>
      <category>폰트 추천</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/48</guid>
      <comments>https://zi-c.tistory.com/48#entry48comment</comments>
      <pubDate>Mon, 12 Jun 2023 22:39:17 +0900</pubDate>
    </item>
    <item>
      <title>[Mockito] TC TooManyActualInvocations 에러 해결</title>
      <link>https://zi-c.tistory.com/47</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;발생 오류&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;발생 이유 : verify 를 1번으로 선언했지만, 실제 코드에서 2번 불림&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: 100%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;org.mockito.exceptions.verification&lt;span style=&quot;background-color: #f6e199;&quot;&gt;.&lt;b&gt;TooManyActualInvocations&lt;/b&gt;:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;whereIsNimoService.findNimo(&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;any&amp;gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;any&amp;gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;any&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Wanted&amp;nbsp;1&amp;nbsp;time:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;-&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;But&amp;nbsp;was&amp;nbsp;2&amp;nbsp;times:&lt;/span&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오류 TC 코드&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;import static org.mockito.Mockito.verify;

@Mock
WhereIsNimoService whereIsNimoService;

@Test
public void test() {

	verify(whereIsNimoService).findNimo(any(), any(), any());
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;수정 TC 코드&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;Mockito.&lt;b&gt;times&lt;/b&gt; 를 사용하여 whereIsNimoService에서 findNimo가 몇 번 불리는지 명시하여 verify 통과&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1654819825736&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.times;

@Mock
WhereIsNimoService whereIsNimoService;

@Test
public void test() {

	verify(whereIsNimoService, times(2)).findNimo(any(), any(), any());
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt; &lt;/p&gt;</description>
      <category>괴발개발</category>
      <category>Mock</category>
      <category>Mockito</category>
      <category>org.mockito.exceptions.verification.TooManyActualInvocations</category>
      <category>TC</category>
      <category>TooManyActualInvocations</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/47</guid>
      <comments>https://zi-c.tistory.com/47#entry47comment</comments>
      <pubDate>Fri, 10 Jun 2022 10:39:29 +0900</pubDate>
    </item>
    <item>
      <title>버스타고 시외버스 아주대 정류장 위치 (유성, 정부청사행 시외버스)</title>
      <link>https://zi-c.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;이번 설에 대전 가는 기차표를 구하지 못해, 처음으로 버스타고 앱으로 유성행 시외버스를 타보았다. &lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: left;&quot;&gt;네이버 지도 앱에 &lt;span style=&quot;color: #006DD7;&quot;&gt;아주대시외버스&lt;/span&gt;&lt;b&gt; &lt;/b&gt;를 검색하면 나오는 곳보다 &lt;b&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;♥&lt;/span&gt;로 표시한 곳이 조금 더 정확한 위치라고&lt;/b&gt; 할 수 있다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1515&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/etnAv7/btrr0QEEwFU/lDjk6WZPXHSwPyqUOkiLQk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/etnAv7/btrr0QEEwFU/lDjk6WZPXHSwPyqUOkiLQk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/etnAv7/btrr0QEEwFU/lDjk6WZPXHSwPyqUOkiLQk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FetnAv7%2Fbtrr0QEEwFU%2FlDjk6WZPXHSwPyqUOkiLQk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;430&quot; height=&quot;603&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1515&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;1080&quot; data-origin-height=&quot;1669&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P4MXj/btrtDDWApV8/EyYni5mWdHoAUWnoVrruU0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P4MXj/btrtDDWApV8/EyYni5mWdHoAUWnoVrruU0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P4MXj/btrtDDWApV8/EyYni5mWdHoAUWnoVrruU0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP4MXj%2FbtrtDDWApV8%2FEyYni5mWdHoAUWnoVrruU0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1669&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1669&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;버스 정류장 왼쪽에 있는 기계에서 표 발권과 구매가 가능하다. 처음 와보는 탓에 조금 일찍 도착해서, 발권 후에 이디야에서 아아 한잔하면서 버스를 기다렸다. 버스 시간 2분 전까지 앉아있다가 슈슈슉 떠나기 가능.&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/yXqQb/btrsxIlBsSU/xdeuEslSiCGFLzMZV5aFGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yXqQb/btrsxIlBsSU/xdeuEslSiCGFLzMZV5aFGk/img.png&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1292&quot; style=&quot;width: 46.264%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yXqQb/btrsxIlBsSU/xdeuEslSiCGFLzMZV5aFGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyXqQb%2FbtrsxIlBsSU%2FxdeuEslSiCGFLzMZV5aFGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1744&quot; height=&quot;1292&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d7jYao/btrr3n8AYqE/SBaAmKWYKCt6NdBZ3UuTD1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d7jYao/btrr3n8AYqE/SBaAmKWYKCt6NdBZ3UuTD1/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; style=&quot;width: 25.7052%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d7jYao/btrr3n8AYqE/SBaAmKWYKCt6NdBZ3UuTD1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd7jYao%2Fbtrr3n8AYqE%2FSBaAmKWYKCt6NdBZ3UuTD1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq8l5t/btrr167AJ5H/S4yXIXEddbf4RynKoe3xXk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq8l5t/btrr167AJ5H/S4yXIXEddbf4RynKoe3xXk/img.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot; style=&quot;width: 25.7052%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq8l5t/btrr167AJ5H/S4yXIXEddbf4RynKoe3xXk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq8l5t%2Fbtrr167AJ5H%2FS4yXIXEddbf4RynKoe3xXk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt; &lt;br&gt; &lt;/p&gt;</description>
      <category>버스타고 대전청사</category>
      <category>버스타고 아주대</category>
      <category>버스타고 아주대 위치</category>
      <category>버스타고 유성</category>
      <category>유성 시외버스 아주대 위치</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/46</guid>
      <comments>https://zi-c.tistory.com/46#entry46comment</comments>
      <pubDate>Mon, 7 Feb 2022 19:51:35 +0900</pubDate>
    </item>
    <item>
      <title>[git] 로컬 브랜치로 리모트 다른 브랜치 덮어버리기</title>
      <link>https://zi-c.tistory.com/45</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;변경사항을 다 밀어버리고 싶은 리모트 브랜치 : &lt;span style=&quot;color: #8a3db6;&quot;&gt;apron&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 변경사항을 리모트로 보내려고 하는 로컬 브랜치 :  &lt;span style=&quot;color: #f89009;&quot;&gt;apron-local-change&lt;/span&gt;&lt;/p&gt;
&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: 100%;&quot;&gt;git push&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;-f&lt;/span&gt;&lt;/b&gt;&amp;nbsp;origin&amp;nbsp;&lt;span style=&quot;color: #f89009;&quot;&gt;apron-local-change&lt;/span&gt;:&lt;span style=&quot;color: #8a3db6;&quot;&gt;apron&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ 주의 할 점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;force update 하는 &lt;span style=&quot;color: #ee2323;&quot;&gt;-f&lt;/span&gt; 옵션을 사용하므로 리모트 브랜치에 필요한 커밋들이 없는지 꼭 확인하자.&lt;/span&gt;&lt;/p&gt;</description>
      <category>괴발개발</category>
      <category>how to force update different branch git</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/45</guid>
      <comments>https://zi-c.tistory.com/45#entry45comment</comments>
      <pubDate>Sun, 9 Jan 2022 13:00:18 +0900</pubDate>
    </item>
    <item>
      <title>[git] 로컬 브랜치 변경사항 다 버리고 원격 브랜치로 덮어쓰기</title>
      <link>https://zi-c.tistory.com/44</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;내가 하고 싶은 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 로컬 브랜치의 변경사항 버리고, 리모트 브랜치와 동일하게 가지고 싶음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 로컬 변경 사항들(커밋 및 파일 변경 사항들은)은 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;다 없어져도 됨.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브랜치명 : &lt;span style=&quot;color: #009a87;&quot;&gt;apron&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;git checkout &lt;span style=&quot;color: #009a87;&quot;&gt;apron&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git&amp;nbsp;fetch&amp;nbsp;--all&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git reset &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;--hard&lt;/b&gt; &lt;/span&gt;origin/&lt;span style=&quot;color: #009a87;&quot;&gt;apron&lt;/span&gt;&lt;/p&gt;</description>
      <category>괴발개발</category>
      <category>git reset --hard</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/44</guid>
      <comments>https://zi-c.tistory.com/44#entry44comment</comments>
      <pubDate>Sun, 9 Jan 2022 12:53:16 +0900</pubDate>
    </item>
    <item>
      <title>[클린아키텍처|요약정리] 31/32장 웹과 프레임워크는 세부사항이다.</title>
      <link>https://zi-c.tistory.com/43</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;31장 웹은 세부사항이다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UI와 애플리케이션 사이에는 추상화 가능한 또 다른 경계가 존재해야 한다. 애플리케이션의 업무 로직은 다수의 유스케이스로 구성되며, 각&amp;nbsp; 유스케이스는&amp;nbsp; 사용자를&amp;nbsp; 대신해서&amp;nbsp; 일부&amp;nbsp; 함수를&amp;nbsp; 수행하는&amp;nbsp; 것으로 볼 수 있다. 각 유스케이스는 입력 데이터, 수행할 처리 과정, 출력 데이터를 기반으로 기술할 수 있고, 웹은 이와는 독립적으로 실행할 수 있도록 해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;32장 프레임워크는 세부사항이다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프레임워크와 결합해서는 안된다. 결합도가 높아진다면 변경이 쉽지 않다. 적당한 거리를 두자. 프레임워크는 아키텍처의 바깥쪽 원에 속하는 세부사항으로 취급하자. 프레임워크가 아키텍처의 안쪽 원으로 들어오지 못하게 하라. 선택적으로 사용하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 JAVA 스프링을 사용할 때에 @Autowired 어노테이션이 업무 객체 도처에 산재해서는 안된다. 업무 객체는 절대로 스프링에 대해 알아서는 안된다. 업무 객체보다는 main 컴포넌트에서 스프링을 사용해서 의존성을 주입하는 편이 낫다.....(?)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;안 좋은 예&lt;/b&gt; : &lt;a href=&quot;https://stackoverflow.com/questions/15455878/how-to-autowire-business-objects-in-spring&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://stackoverflow.com/questions/15455878/how-to-autowire-business-objects-in-spring&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1639569548065&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;How to Autowire business objects in Spring&quot; data-og-description=&quot;I'm following the Controller -&amp;gt; Service -&amp;gt; DAO pattern. When I call a DAO implementation, I get back a DTO/Data object. Which then gets passed to the service layer, bringing together it's respective&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/15455878/how-to-autowire-business-objects-in-spring&quot; data-og-url=&quot;https://stackoverflow.com/questions/15455878/how-to-autowire-business-objects-in-spring&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b540AZ/hyMIWaIlLN/gDuhXnMEAC5NMqaTnVIsZK/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/15455878/how-to-autowire-business-objects-in-spring&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/15455878/how-to-autowire-business-objects-in-spring&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b540AZ/hyMIWaIlLN/gDuhXnMEAC5NMqaTnVIsZK/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&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;How to Autowire business objects in Spring&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I'm following the Controller -&amp;gt; Service -&amp;gt; DAO pattern. When I call a DAO implementation, I get back a DTO/Data object. Which then gets passed to the service layer, bringing together it's respective&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;좋은 예&lt;/b&gt; : &lt;a href=&quot;https://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1639569847717&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;[DAO] DAO, DTO, Entity Class의 차이 - Heee's Development Blog&quot; data-og-description=&quot;Step by step goes a long way.&quot; data-og-host=&quot;gmlwjd9405.github.io&quot; data-og-source-url=&quot;https://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html&quot; data-og-url=&quot;http://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gmlwjd9405.github.io/2018/12/25/difference-dao-dto-entity.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[DAO] DAO, DTO, Entity Class의 차이 - Heee's Development Blog&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Step by step goes a long way.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gmlwjd9405.github.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;</description>
      <category>괴발개발</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/43</guid>
      <comments>https://zi-c.tistory.com/43#entry43comment</comments>
      <pubDate>Wed, 15 Dec 2021 21:16:29 +0900</pubDate>
    </item>
    <item>
      <title>깃 커밋 추가 없이 마지막 커밋 수정하기 (git amend)</title>
      <link>https://zi-c.tistory.com/42</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;STEP 1&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 커밋에 수정할 사항들을 git add 하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;STEP 2&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;[option 1] git commit --amend&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;: 커밋 메시지를 수정을 위한 에디터가 켜진다. 커밋 메시지 수정이 필요한 경우 파일을 수정하고, 아니면 에디터 창을 닫으면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;[option 2] git commit -m &quot;memo&quot; --amend&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: -m 옵션을 주는 경우 마지막 커밋 메세지가 쌍 따옴표 안의 문장으로 대체된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;STEP 3 : remote 브랜치로 force push 하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[option 1] git push origin [branch-name] -f&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[option 2] git push origin +[branch-name]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[ option 1 ]&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.30.24.png&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/utgB6/btrnVxhwKDH/mvUtk2KjrBayFK0mKfJ9Ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/utgB6/btrnVxhwKDH/mvUtk2KjrBayFK0mKfJ9Ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/utgB6/btrnVxhwKDH/mvUtk2KjrBayFK0mKfJ9Ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FutgB6%2FbtrnVxhwKDH%2FmvUtk2KjrBayFK0mKfJ9Ek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;947&quot; height=&quot;158&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.30.24.png&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.26.11.png&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MWNRq/btrnVatnm4w/pCswwIPATROm6KL2Kjww40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MWNRq/btrnVatnm4w/pCswwIPATROm6KL2Kjww40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MWNRq/btrnVatnm4w/pCswwIPATROm6KL2Kjww40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMWNRq%2FbtrnVatnm4w%2FpCswwIPATROm6KL2Kjww40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;202&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.26.11.png&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;[ option 2 ]&amp;nbsp;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.13.30.png&quot; data-origin-width=&quot;953&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IKipD/btrnR5TpQRv/gSIseE4J2G28WYsgUjUk81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IKipD/btrnR5TpQRv/gSIseE4J2G28WYsgUjUk81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IKipD/btrnR5TpQRv/gSIseE4J2G28WYsgUjUk81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIKipD%2FbtrnR5TpQRv%2FgSIseE4J2G28WYsgUjUk81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;953&quot; height=&quot;156&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.13.30.png&quot; data-origin-width=&quot;953&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.13.51.png&quot; data-origin-width=&quot;953&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btLRJE/btrn1gSO6uy/R57p5yYKZkwHIwg8bqy0K1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btLRJE/btrn1gSO6uy/R57p5yYKZkwHIwg8bqy0K1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btLRJE/btrn1gSO6uy/R57p5yYKZkwHIwg8bqy0K1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtLRJE%2Fbtrn1gSO6uy%2FR57p5yYKZkwHIwg8bqy0K1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;115&quot; data-filename=&quot;스크린샷 2021-12-15 오후 2.13.51.png&quot; data-origin-width=&quot;953&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>괴발개발</category>
      <category>Git</category>
      <category>git amend</category>
      <category>git commit --amend</category>
      <category>git force push</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/42</guid>
      <comments>https://zi-c.tistory.com/42#entry42comment</comments>
      <pubDate>Wed, 15 Dec 2021 14:36:18 +0900</pubDate>
    </item>
    <item>
      <title>[클린아키텍처|요약정리] 30장 데이터베이스는 세부사항이다.</title>
      <link>https://zi-c.tistory.com/41</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;30장 데이터베이스는 세부사항이다&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;소프트웨어 시스템 아키텍처&lt;/span&gt; :&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;데이터베이스&lt;/span&gt;&lt;/b&gt;&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;건물&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;아키텍처&lt;/span&gt; :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;문 손잡이&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;소프트웨어 시스템의 아키텍처와 데이터베이스의 관계는 건물 아키텍처와 문 손잡이 정도이다.&amp;nbsp;아키텍처 관점에서 데이터베이스는 엔티티가 아닌 세부사항이며, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터에 접근할 방법을 제공하는 유틸리티(=소프트웨어) 일 뿐인 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;(엔티티 : 애플리케이션의 핵심적인 Business Rule을 담고 있는 객체로서 메서드/데이터 구조/함수 집합일 수 있다)&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;관계형 데이터베이스&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;220px-Cylinder_Head_Sector.svg.png&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;237&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Cylinder-head-sector&quot; target=&quot;_blank&quot; title=&quot;위키피디아&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYWENj/btrnL7DVAde/oYNgzFYuB6AWA3r10DCoR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYWENj%2FbtrnL7DVAde%2FoYNgzFYuB6AWA3r10DCoR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;237&quot; data-filename=&quot;220px-Cylinder_Head_Sector.svg.png&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/a&gt;&lt;figcaption&gt;Magnetic Disk&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디스크에서 1바이트 읽기 위해서는 Heads를 적절한 Track으로 옮기고 Sector가 돌아올 때 까지 기다린 후, 해당 섹터에서 4K를 모두 RAM으로 읽어 들여야 한다. 그리고 RAM 버퍼의 색인을 찾아서 필요한 바이트를 가져온다. 이 과정은 밀리초 단위의 시간이 걸린다. &amp;rarr; 오래 걸리는 거임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이러한 지연 시간을 완화하기 위해 색인/캐시/쿼리 최적화를 할 수 있는 접근 및 관리 시스템 필요해진 것이다. 그리고 시간이 지나며 뚜렷하게 구분되는 2가지의 유형(파일 시스템과 데이터베이스 시스템)으로 분리되었다. 이 두 시스템은 데이터를 디스크에 체계화해서 효율적으로 데이터를 저장/검색하게 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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: 100%;&quot;&gt;&lt;span&gt;&lt;b&gt;파일 시스템&lt;/b&gt; : 문서 기반, 이름 기준 검색/저장&lt;span&gt;&amp;nbsp;&lt;/span&gt; &amp;nbsp; , 내용 기준&lt;span&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;데이터베이스 시스템&lt;/b&gt;(DBMS) : 내용기반, RDBMS : 정형화된 문서 &lt;b&gt; &amp;nbsp;&amp;nbsp;&lt;/b&gt;, Document-oriented DB : 비정형 문서 &lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디스크는 RAM으로 대체되고 있고 시간이 지나며 디스크는 플로피 디스크, CD처럼 소멸될 것이다. 하지만&amp;nbsp;디스크가 모두 사라지고, 모든 데이터가 RAM에만 저장된다면 데이터를 어떻게 체계화할 것인가? 이미 우리는&amp;nbsp;파일 시스템, RDBMS 뿐만 아니라, 연결 리스트, 트리, 해시 테이블, 스택, 큐 등의 데이터 구조와 포인터나 reference를 사용하여 데이터 구조를 변경하여 사용 중이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이처럼 데이터베이스가 세부사항인 이유는 시간이 지나며 데이터에 접근하는 방식들은 변화하게 되기에 그저 데이터에 접근하는 메커니즘에 불과하기 때문이다. 그래서 아키텍처의 관점에서는 데이터가 어떤 데이터의 형태인지, 더해 디스크의 존재 자체도 인식해서는 안된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;성능은?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아키텍트 관점에서 성능은 저수준의 관심사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;결론&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;체계화된 데이터 구조와 데이터 모델은 아키텍처적으로&amp;nbsp; 중요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;데이터는 중요하다. 하지만 데이터베이스의 종류는 세부사항이다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>괴발개발</category>
      <category>DBMS</category>
      <category>RDBMS</category>
      <category>관계형데이터베이스</category>
      <category>클린아키텍처</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/41</guid>
      <comments>https://zi-c.tistory.com/41#entry41comment</comments>
      <pubDate>Tue, 14 Dec 2021 20:54:54 +0900</pubDate>
    </item>
    <item>
      <title>[우분투] /usr/bin/python3: No module named pip 해결하기</title>
      <link>https://zi-c.tistory.com/40</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;에러 메세지&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/usr/bin/python3:&amp;nbsp;No&amp;nbsp;module&amp;nbsp;named&amp;nbsp;pip&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;해결책&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;python3&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;sudo apt-get install python3-pip&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;python2&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;sudo apt-get install python-pip&lt;/code&gt;&lt;/pre&gt;</description>
      <category>괴발개발</category>
      <category>No module named pip</category>
      <category>Python</category>
      <category>리눅스</category>
      <category>우분투</category>
      <category>파이썬</category>
      <author>뜌듑</author>
      <guid isPermaLink="true">https://zi-c.tistory.com/40</guid>
      <comments>https://zi-c.tistory.com/40#entry40comment</comments>
      <pubDate>Fri, 10 Dec 2021 15:46:10 +0900</pubDate>
    </item>
  </channel>
</rss>