PageSourceSearch

https://maily.so/piren.habit/posts/2qzpe88yo4x

html maily.so collected 2026-10-01 10:42:37 UTC 109,509 bytes, 1,298 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ko">
3<head>
4    <title>&quot;이 영상 보는 것도 미뤘습니다&quot;</title>
5    <meta name="description" content="미루는 습관을 개선하는 방법">
6  <meta property="og:type" content="website">
7  <meta property="og:site_name" content="피렌의 습관레터">
8  <meta property="og:title" content="&quot;이 영상 보는 것도 미뤘습니다&quot;">
9    <meta property="og:description" content="미루는 습관을 개선하는 방법">
10  <meta property="og:url" content="https://maily.so/piren.habit/posts/2qzpe88yo4x">
11
12    <meta property="og:image" content="https://cdn.maily.so/202609/1790624621860206.jpeg"/>
13
14<meta name="robots" content="index, follow">
15<meta name="googlebot" content="index, follow">
16<meta name="yeti" content="index, follow">
17
18  <link rel="icon" type="image/png" sizes="32x32" href="https://cdn.maily.so/favicons/202603/1774338579841227.png">
19  <link rel="apple-touch-icon" href="https://cdn.maily.so/favicons/202603/1774338579841227.png">
20
21<meta name="msapplication-TileColor" content="#da532c">
22<meta content="width=device-width,minimum-scale=1,initial-scale=1" name="viewport">
23
24<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
25<meta name="theme-color" content="#1b1917" media="(prefers-color-scheme: dark)">
26
27<meta name="csrf-param" content="authenticity_token" />
28<meta name="csrf-token" content="c-toFihVWEkNifssKjx6k1MJKGOYX24XhJQ05xKJqbI6Qj2iTYz4LTC7N84jY_1bHFAI9okzAGUdzaHZaTAC_w" />
29
30
31<script type="text/javascript">window.MailyI18n = {"pin":{"sending":"발송중..","sent":"발송완료 (스팸함도 확인해주세요)","resent":"재발송완료 (스팸함도 확인해주세요)","failed":"발송실패 (재시도 하기)","resend":"재발송 하기","enter_pin":"핀 번호를 입력해주세요","enter_pin_with_spam_notice_html":"이메일로 전송 된 8자리 숫자를 입력해주세요\u003cbr\u003e\u003cspan class=\"text-blue-600 dark:text-blue-400\"\u003e📩 Outlook은 정크/스팸함도 꼭 확인해주세요.\u003c/span\u003e","outlook_spam_notice":"📩 Outlook은 인증코드가 정크/스팸함으로 갈 수 있어요. 받은 편지함에 없으면 꼭 확인해주세요.","invalid_email":"이메일 형식을 확인해주세요","generic_error":"오류가 발생했습니다."},"clipboard":{"copied_generic":"선택하신 값이 클립보드에 복사되었습니다.","copied_value_html":"\u003cb\u003e%{value}\u003c/b\u003e 값이 클립보드에 복사되었습니다.","section_link_copied":"섹션 링크가 복사되었습니다.","section_link_failed":"링크 복사에 실패했습니다."},"copy_protection":{"blocked":"콘텐츠 복사가 제한되어 있어요."},"payment_card":{"connecting":"결제 수단을 연결하고 있습니다... 잠시만 기다려주세요.","connect_failed":"결제 수단 연결 중 문제가 발생했습니다. 다시 시도해주세요."}};</script>
31
32
33<script type="text/javascript" charset="utf-8">
34  (function() {
35    function getInitialColorMode() {
36
37      const persistedColorPreference = window.localStorage.getItem('nightwind-mode');
38      const hasPersistedPreference = typeof persistedColorPreference === 'string';
39      if (hasPersistedPreference) {
40        return persistedColorPreference;
41      }
42      const mql = window.matchMedia('(prefers-color-scheme: dark)');
43      const hasMediaQueryPreference = typeof mql.matches === 'boolean';
44      if (hasMediaQueryPreference) {
45        return mql.matches ? 'dark' : 'light';
46      }
47      return 'light';
48    }
49    getInitialColorMode() === 'light' ? document.documentElement.classList.remove('dark') : document.documentElement.classList.add('dark');
50  })()
51</script>
51
52
53
54<script src="https://cdn.maily.so/public/vite/assets/application-CSbOld2a.js" crossorigin="anonymous" type="module"></script>
54<link rel="modulepreload" href="https://cdn.maily.so/public/vite/assets/application-CSbOld2a.js" as="script" crossorigin="anonymous">
55<link rel="modulepreload" href="https://cdn.maily.so/public/vite/assets/stimulus_loader-BNX404QA.js" as="script" crossorigin="anonymous">
56<link rel="modulepreload" href="https://cdn.maily.so/public/vite/assets/zoom-DRlziGC9.js" as="script" crossorigin="anonymous">
57<link rel="stylesheet" href="https://cdn.maily.so/public/vite/assets/application-COJT48RO.css" />
58
59
60<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" defer></script>
vendor: 1 bytes, line 60
60
61<script>
62  document.addEventListener("turbo:load", function() {
63    WebFont.load({
64      google: {
65        families: ['Noto Sans KR:100,300,400,500,700,900']
66      }
67    });
68  })
69</script>
69
70
71<link rel="preload" crossorigin="anonymous" href="https://fastly.jsdelivr.net/gh/wanteddev/[email protected]/packages/wanted-sans/fonts/webfonts/variable/split/WantedSansVariable.min.css">
72
73
74    <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 68 bytes, lines 74-75
74
75    <script async src="https://www.googletagmanager.com/gtag/js?id=
75G-D0Z3Q83EN3
vendor: 16 bytes, lines 75-76
75"></script>
76    
76<script>
77      window.dataLayer = window.dataLayer || [];
78      function gtag(){dataLayer.push(arguments);}
79      gtag('js', new Date());
80      window.lastGoogleAnalyticsTimeStamp = -0;
81
82      document.addEventListener("turbo:load", function(event) {
83        if(typeof(gtag) == "function") {
84            if (window.lastGoogleAnalyticsTimeStamp < event.timeStamp) {
85                gtag("config", "G-D0Z3Q83EN3", {
86                    "page_title": document.title,
87                    "page_path": event.detail.url.replace(window.location.protocol + "//" + window.location.hostname + (location.port && ":" + location.port), ""),
88                });
89            }
90
91            window.lastGoogleAnalyticsTimeStamp = event.timeStamp;
92        }
93      });
94    </script>
94
95
96    
96<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6146308520594364"
97            crossorigin="anonymous"></script>
97
98
99  
99<script type="text/javascript" charset="utf-8">
100    window.dataLayer = window.dataLayer || [];
101    function gtag(){dataLayer.push(arguments);}
102    gtag('js', new Date());
103</script>
103
104
105
106
107
108
109
110  <link rel="alternate" type="application/rss+xml"
111        title="피렌의 습관레터 RSS"
112        href="https://maily.so/piren.habit/feed">
113    <link href="https://maily.so/piren.habit/posts/2qzpe88yo4x" rel="canonical">
114</head>
115
116<body class="bg-white dark:bg-stone-900 space-branded"
117      style="--primary-background-color: #e3f2fd;
118        --primary-text-color: #0d47a1;
119        --brand-rgb: 227 242 253; --brand-button-text: #0d47a1;">
120
121  <div id="loginModal"
122     data-controller="components--modal components--auth"
123     data-components--modal-initial-status="false">
124  <div data-target="components--modal.modal" style="display: none;"
125       class="fixed bottom-0 inset-x-0 px-4 pb-6 sm:inset-0 sm:p-0 sm:flex sm:items-center sm:justify-center z-40">
126    <div data-action="click->components--modal#hideModal"
127         class="fixed inset-0 transition-opacity">
128      <div class="absolute inset-0 bg-stone-300 dark:bg-stone-700 opacity-75 z-40"></div>
129    </div>
130    <div class="bg-white dark:bg-stone-900 rounded-lg p-4 overflow-auto shadow-xl transform transition-all max-w-sm lg:max-w-lg w-full mx-auto sm:p-6"
131         style="max-height: 75vh;"
132         role="dialog" aria-modal="true" aria-labelledby="modal-headline">
133      <form class="relative" data-components--auth-target="form" action="/piren.habit/users/pin_sign_in" accept-charset="UTF-8" data-remote="true" method="post"><input type="hidden" name="authenticity_token" value="Qo0ojAcezRg3b373mYACnKWUnAE_EszcL1Px-M0f7MrH50XUQtzAxPrFWWaF21KEE5iYPsfc1lS3JOdvxJIaJQ" />
134        <div class="space-y-4">
135          <div class="space-y-1">
136            <p class="text-lg font-medium text-slate-900 dark:text-slate-200">
137              로그인이 필요해요
138            </p>
139            <p class="text-sm text-slate-600 dark:text-slate-300">이메일 인증으로 간편하게 로그인/가입을 하실 수 있어요. (계정이 없으시면, 자동으로 메일리 회원가입이 되며 계정 설정에서 비밀번호를 지정하실 수 있어요.)</p>
140          </div>
141          <div class="space-y-2">
142            <label class="text-sm font-medium leading-5 text-slate-700 dark:text-slate-300" for="email">이메일</label>
143            <div class="mt-1 flex rounded-md shadow-sm">
144              <div class="relative flex-1 focus-within:z-40">
145                <input data-components--auth-target="email" placeholder="[email protected]" required="required" class="bg-white dark:bg-stone-900 bg-dark-maily text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-none rounded-l-md border-r-0" type="email" name="email" id="email" />
146              </div>
147              <button type="button"
148                      data-action="click->components--auth#startAuthentication"
149                      data-components--auth-target="authButton"
150                      class="-ml-px maily-secondary-button rounded-none rounded-r-md">
151                인증하기
152              </button>
153            </div>
154          </div>
155          <div class="hidden" data-target="components--auth.authenticationField">
156            <div class="flex justify-between">
157              <label for="email" class="text-sm font-medium leading-5 text-slate-700 dark:text-slate-300">이메일 인증하기</label>
158              <span data-action="click->components--auth#resendPin"
159                    class="text-xs font-bold leading-5 text-slate-700 dark:text-slate-300 underline underline-offset-2 hover:text-slate-900 dark:hover:text-slate-100 cursor-pointer">재발송</span>
160            </div>
161            <div class="mt-1 flex rounded-md shadow-sm">
162              <div class="relative flex-grow focus-within:z-40">
163                <input autocomplete="off" placeholder="12345678" pattern="[0-9]*" inputmode="numeric" data-components--auth-target="pin" class="bg-white dark:bg-stone-900 bg-dark-maily text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-none rounded-l-md border-r-0" min="10000000" max="99999999" type="number" name="user_pin" id="user_pin" />
164              </div>
165              <input type="submit" name="commit" value="확인" class="-ml-px maily-secondary-button rounded-none rounded-r-md" data-disable-with="확인중..." />
166            </div>
167            <p class="mt-2 text-sm text-slate-600 dark:text-slate-300"
168               data-components--auth-target="pinNotification">이메일로 전송 된 8자리 숫자를 입력해주세요</p>
169          </div>
170          <div class="mt-3" id="privacyAgreement">
171            <div class="flex items-center">
172              <input name="privacy_agreement" type="hidden" value="0" /><input required="required" data-components--auth-target="privacyAgreement" class="focus:ring-gray-400 h-4 w-4 text-gray-600 dark:text-gray-500 border-gray-300 dark:border-gray-500 rounded" type="checkbox" value="1" checked="checked" name="privacy_agreement" id="privacy_agreement" />
173              <label class="w-full text-left ml-2 block text-xs leading-5 text-gray-700 dark:text-gray-300 cursor-pointer" for="privacy_agreement">
174                메일리 <a target="_blank" class="underline hover:text-slate-700 dark:text-slate-300" href="https://maily.so/app/service_policy">이용약관</a> <a target="_blank" class="underline hover:text-slate-700 dark:text-slate-300" href="https://maily.so/app/privacy_agreement">개인정보처리방침</a> 에 동의합니다.
175</label>            </div>
176          </div>
177        </div>
178</form>      <div class="border-t border-gray-100 dark:border-gray-700 my-3 md:my-5"></div>
179      <div class="my-6">
180        
181    <form class="button_to" method="post" action="/app/users/auth/google_oauth2?redirect_path=%2Fpiren.habit%2Fposts%2F2qzpe88yo4x&amp;space_url=piren.habit"><button data-turbo="false" class="group relative w-full flex justify-center py-2 px-4 border text-sm leading-5 font-medium rounded-md primary-start border border-gray-300 dark:border-gray-500 text-slate-700 dark:text-slate-300 bg-white dark:bg-stone-900 hover:text-slate-600 dark:text-slate-300 focus:outline-none focus:border-blue-300 focus:ring-blue-300 active:text-gray-800 dark:text-gray-100 active:bg-slate-50 dark:bg-slate-800 astro-primary primary-end transition duration-150 ease-in-out" type="submit">
182      <span class="absolute left-0 inset-y-0 flex items-center pl-3">
183            <svg class="w-5 h-5 mr-2" width="20" height="20" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
184              <path d="M17.64,9.20454545 C17.64,8.56636364 17.5827273,7.95272727 17.4763636,7.36363636 L9,7.36363636 L9,10.845 L13.8436364,10.845 C13.635,11.97 13.0009091,12.9231818 12.0477273,13.5613636 L12.0477273,15.8195455 L14.9563636,15.8195455 C16.6581818,14.2527273 17.64,11.9454545 17.64,9.20454545 L17.64,9.20454545 Z" id="Shape" fill="#4285F4" sketch:type="MSShapeGroup"></path>
185              <path d="M9,18 C11.43,18 13.4672727,17.1940909 14.9563636,15.8195455 L12.0477273,13.5613636 C11.2418182,14.1013636 10.2109091,14.4204545 9,14.4204545 C6.65590909,14.4204545 4.67181818,12.8372727 3.96409091,10.71 L0.957272727,10.71 L0.957272727,13.0418182 C2.43818182,15.9831818 5.48181818,18 9,18 L9,18 Z" id="Shape" fill="#34A853" sketch:type="MSShapeGroup"></path>
186              <path d="M3.96409091,10.71 C3.78409091,10.17 3.68181818,9.59318182 3.68181818,9 C3.68181818,8.40681818 3.78409091,7.83 3.96409091,7.29 L3.96409091,4.95818182 L0.957272727,4.95818182 C0.347727273,6.17318182 0,7.54772727 0,9 C0,10.4522727 0.347727273,11.8268182 0.957272727,13.0418182 L3.96409091,10.71 L3.96409091,10.71 Z" id="Shape" fill="#FBBC05" sketch:type="MSShapeGroup"></path>
187              <path d="M9,3.57954545 C10.3213636,3.57954545 11.5077273,4.03363636 12.4404545,4.92545455 L15.0218182,2.34409091 C13.4631818,0.891818182 11.4259091,0 9,0 C5.48181818,0 2.43818182,2.01681818 0.957272727,4.95818182 L3.96409091,7.29 C4.67181818,5.16272727 6.65590909,3.57954545 9,3.57954545 L9,3.57954545 Z" id="Shape" fill="#EA4335" sketch:type="MSShapeGroup"></path>
188            </svg>
189          </span>
190
191      <span>구글로 시작하기</span>
192</button><input type="hidden" name="authenticity_token" value="HOcwSHUrYN5I8sI-eqG28X-dMLo_WFznOpcgG7FmTAvkoYRwC-YTRnpu4DdfGc6h9A8mCbWn6YZ_xt9S6SR
192MKw" /></form>
193      </div>
194      <div class="text-right">
195        <a class="text-sm lg:text-base leading-5 lg:leading-6 font-medium text-slate-700 dark:text-slate-300 underline underline-offset-2 hover:text-slate-900 dark:hover:text-slate-100 cursor-pointer" href="/piren.habit/users/sign_in?redirect_path=%2Fpiren.habit%2Fposts%2F2qzpe88yo4x">
196          비밀번호로 로그인 하기
197</a>      </div>
198    </div>
199  </div>
200</div>
201
202  <div id="subscribeModal"
203     data-controller="components--subscribe-modal"
204     data-components--subscribe-modal-initial-status="false"
205     data-components--subscribe-modal-initial-plan="">
206  <div data-target="components--subscribe-modal.modal" style="display: none;"
207       class="fixed bottom-0 inset-x-0 px-4 pb-6 sm:inset-0 sm:p-0 sm:flex sm:items-center sm:justify-center z-30">
208    <div data-action="click->components--subscribe-modal#hideModal"
209         class="fixed inset-0 transition-opacity">
210      <div class="absolute inset-0 bg-stone-300 dark:bg-stone-700 opacity-75 z-30"></div>
211    </div>
212    <div class="relative bg-white dark:bg-stone-900 rounded-lg px-4 pt-5 pb-4 overflow-auto shadow-xl transform transition-all max-w-sm sm:max-w-xl w-full mx-auto sm:p-6"
213         style="max-height: 75vh;"
214         role="dialog" aria-modal="true" aria-labelledby="modal-headline">
215      <fieldset class="space-y-3 lg:space-y-4">
216        <legend class="text-lg font-medium text-slate-900 dark:text-slate-200 mb-2">
217          피렌의 습관레터 구독하기
218        </legend>
219
220        <p class="text-sm text-slate-900 dark:text-slate-200 text-left whitespace-pre-line" style="word-break: keep-all;">- 뉴스레터는 매주 화요일 오전 6시에 찾아갑니다
221- 논문과 경험에서 뽑아낸 실용적인 습관 정보를 공유합니다
222</p>
223      </fieldset>
224
225      
226
227
228      <form id="subscribeModal" class="" data-components--subscribe-modal-target="form" data-controller="google-analytics--form" data-action="submit-&gt;google-analytics--form#event" data-event-params="{&quot;name&quot;:&quot;subscribe&quot;,&quot;component&quot;:&quot;modal&quot;}" action="/piren.habit/subscriptions" accept-charset="UTF-8" data-remote="true" method="post"><input type="hidden" name="authenticity_token" value="EQdK9-UR9fm13UXD7HoNoBu5Rhf3MJh_E7j6ctjtYlkFs1Ensg4HI4Z6fOJyDvTGtHD_HC6c1_dPGK0NClTCjw" />
229        <input value="https://maily.so/piren.habit/posts/2qzpe88yo4x" type="hidden" name="subscription[referrer_url]" id="subscription_referrer_url" />
230        <div style="position: absolute; top: -500px;">
231          <input placeholder="가짜필드" class="" type="text" name="subscription[profile]" id="subscription_profile" />
232        </div>
233        <fieldset class="space-y-3 lg:space-y-4">
234            <input id="a9f2c2d1310d94b1567efd3e1b147119_free" required="required" data-action="click-&gt;components--subscribe-modal#forFreePlan" class="hidden" type="radio" value="free" checked="checked" name="subscription[plan]" />
235
236          
237        </fieldset>
238
239          <div class="mt-6 space-y-2"
240               data-controller="components--email-validator">
241            <div class="mt-1 relative rounded-md shadow-sm">
242              <label class="absolute -top-2 left-2 inline-block bg-white dark:bg-stone-900 px-1 text-xs font-medium text-slate-900 dark:text-slate-200" for="subscription_email">이메일</label>
243              <input data-components--subscribe-modal-target="email" data-components--email-validator-target="email" data-action="keyup-&gt;components--email-validator#validateEmail" placeholder="[email protected]" required="required" class="bg-white dark:bg-stone-900 bg-dark-maily text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-md" type="email" name="subscription[email]" id="subscription_email" />
244            </div>
245
246            <p class="hidden mt-1 text-xs text-green-600"
247               data-components--email-validator-target="emailValidation"></p>
248          </div>
249
250            <div class="mt-4 relative rounded-md shadow-sm">
251              <label class="absolute -top-2 left-2 inline-block bg-white dark:bg-stone-900 px-1 text-xs font-medium text-slate-900 dark:text-slate-200" for="subscription_name">닉네임</label>
252              <input placeholder="라이언" data-components--subscribe-modal-target="name" class="bg-white dark:bg-stone-900 bg-dark-maily text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-md" type="text" name="subscription[name]" id="subscription_name" />
253            </div>
254
255
256          <div class="mt-3">
vendor: 93 bytes, lines 256-257
256
257            <script src="https://www.recaptcha.net/recaptcha/api.js" async defer ></script>
258<div data-sitekey="6LcBSkEaAAAAAP3s5SItSz41SJttHWghaybLELpz" class="g-recaptcha "></div>
259
260          </div>
261          <div class="mt-5 hidden"
262               data-target="components--subscribe-modal.authenticationField">
263            <div class="flex justify-between">
264              <label for="email" class="text-sm font-medium leading-5 text-slate-700 dark:text-slate-300">이메일 인증하기</label>
265              <span data-action="click->components--subscribe-modal#resendPin"
266                    class="text-xs font-bold leading-5 text-slate-700 dark:text-slate-300 underline underline-offset-2 hover:text-slate-900 dark:hover:text-slate-100 cursor-pointer">재발송</span>
267            </div>
268            <div class="mt-1 flex rounded-md shadow-sm">
269              <div class="relative flex-grow focus-within:z-30">
270                <input autocomplete="off" placeholder="12345678" pattern="[0-9]*" inputmode="numeric" data-target="components--subscribe-modal.pin" class="bg-white dark:bg-stone-900 bg-dark-maily text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-none rounded-l-md" min="10000000" max="99999999" type="number" name="subscription[user_pin]" id="subscription_user_pin" />
271              </div>
272              <input type="submit" name="commit" value="확인" class="-ml-px maily-secondary-button rounded-none rounded-r-md" data-disable-with="확인중..." />
273            </div>
274            <p class="mt-2 text-sm text-slate-600 dark:text-slate-300"
275               data-target="components--subscribe-modal.pinNotification">이메일로 전송 된 8자리 숫자를 입력해주세요</p>
276          </div>
277          <div class="mt-3" id="privacyAgreement">
278            <div class="flex items-center">
279              <input name="subscription[privacy_agreement]" type="hidden" value="0" /><input required="required" data-target="components--subscribe-modal.privacyAgreement" class="focus:ring-gray-400 h-4 w-4 text-gray-600 dark:text-gray-500 border-gray-300 dark:border-gray-500 rounded" type="checkbox" value="1" checked="checked" name="subscription[privacy_agreement]" id="subscription_privacy_agreement" />
280              <label class="w-full text-left ml-2 block text-xs leading-5 text-gray-700 dark:text-gray-300 cursor-pointer" for="subscription_privacy_agreement">
281                [필수] 메일리 <a target="_blank" class="underline hover:text-slate-700 dark:text-slate-300" href="https://maily.so/app/service_policy">이용약관</a> <a target="_blank" class="underline hover:text-slate-700 dark:text-slate-300" href="https://maily.so/app/privacy_agreement">개인정보처리방침</a> 에 동의합니다.
282</label>            </div>
283          </div>
284
285        <input type="submit" name="commit" value="등록" class="hidden" data-components--subscribe-modal-target="hiddenSubmit" data-disable-with="등록" />
286</form>
287      <div class="sticky bottom-0 mt-5 sm:mt-6 grid grid-cols-2 gap-3 grid-flow-row-dense"
288           data-target="components--subscribe-modal.confirmButtons">
289          <span class="flex w-full rounded-md shadow-sm col-start-2"
290                data-target="components--subscribe-modal.confirmFreePlan">
291            <button type="button"
292                    data-action="click->components--subscribe-modal#submitForm"
293                    class="w-full maily-secondary-button">
294              구독하기
295            </button>
296          </span>
297
298        <span class="flex w-full rounded-md shadow-sm col-start-2 hidden"
299              data-target="components--subscribe-modal.confirmPaidPlan">
300            <button data-action="click->components--subscribe-modal#startAuthentication"
301                    type="button" class="w-full maily-secondary-button">
302              구독하기
303            </button>
304          </span>
305
306        <span class="flex w-full rounded-md shadow-sm mt-0 col-start-1">
307            <button data-action="click->components--subscribe-modal#hideModal"
308                    type="button" class="w-full maily-white-button">취소</button>
309          </span>
310      </div>
311
312        <div class="border-t border-gray-100 dark:border-gray-700 my-3 md:my-5"></div>
313
314        
315    <form class="button_to" method="post" action="/app/users/auth/google_oauth2?redirect_path=%2Fpiren.habit%2Fposts%2F2qzpe88yo4x%3Fpop%3Dup&amp;space_url=piren.habit"><button data-turbo="false" class="group relative w-full flex justify-center py-2 px-4 border text-sm leading-5 font-medium rounded-md primary-start border border-gray-300 dark:border-gray-500 text-slate-700 dark:text-slate-300 bg-white dark:bg-stone-900 hover:text-slate-600 dar
315k:text-slate-300 focus:outline-none focus:border-blue-300 focus:ring-blue-300 active:text-gray-800 dark:text-gray-100 active:bg-slate-50 dark:bg-slate-800 astro-primary primary-end transition duration-150 ease-in-out" type="submit">
316      <span class="absolute left-0 inset-y-0 flex items-center pl-3">
317            <svg class="w-5 h-5 mr-2" width="20" height="20" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
318              <path d="M17.64,9.20454545 C17.64,8.56636364 17.5827273,7.95272727 17.4763636,7.36363636 L9,7.36363636 L9,10.845 L13.8436364,10.845 C13.635,11.97 13.0009091,12.9231818 12.0477273,13.5613636 L12.0477273,15.8195455 L14.9563636,15.8195455 C16.6581818,14.2527273 17.64,11.9454545 17.64,9.20454545 L17.64,9.20454545 Z" id="Shape" fill="#4285F4" sketch:type="MSShapeGroup"></path>
319              <path d="M9,18 C11.43,18 13.4672727,17.1940909 14.9563636,15.8195455 L12.0477273,13.5613636 C11.2418182,14.1013636 10.2109091,14.4204545 9,14.4204545 C6.65590909,14.4204545 4.67181818,12.8372727 3.96409091,10.71 L0.957272727,10.71 L0.957272727,13.0418182 C2.43818182,15.9831818 5.48181818,18 9,18 L9,18 Z" id="Shape" fill="#34A853" sketch:type="MSShapeGroup"></path>
320              <path d="M3.96409091,10.71 C3.78409091,10.17 3.68181818,9.59318182 3.68181818,9 C3.68181818,8.40681818 3.78409091,7.83 3.96409091,7.29 L3.96409091,4.95818182 L0.957272727,4.95818182 C0.347727273,6.17318182 0,7.54772727 0,9 C0,10.4522727 0.347727273,11.8268182 0.957272727,13.0418182 L3.96409091,10.71 L3.96409091,10.71 Z" id="Shape" fill="#FBBC05" sketch:type="MSShapeGroup"></path>
321              <path d="M9,3.57954545 C10.3213636,3.57954545 11.5077273,4.03363636 12.4404545,4.92545455 L15.0218182,2.34409091 C13.4631818,0.891818182 11.4259091,0 9,0 C5.48181818,0 2.43818182,2.01681818 0.957272727,4.95818182 L3.96409091,7.29 C4.67181818,5.16272727 6.65590909,3.57954545 9,3.57954545 L9,3.57954545 Z" id="Shape" fill="#EA4335" sketch:type="MSShapeGroup"></path>
322            </svg>
323          </span>
324
325      <span>구글로 시작하기</span>
326</button><input type="hidden" name="authenticity_token" value="aXMGQjO1_LYZfLGrD67m8XeX7y8X_bepOHG4XA7GySGRNbJ6TXiPLivgk6IqFp6h_AX5nJ0CAsh9IEcVVoTJAQ" /></form>
327
328        <div class="top-1 lg:top-2 relative col-span-2 text-center text-gray-400 dark:text-gray-600">
329            <span class="text-xs mb-1 cursor-pointer hover:underline"
330                  data-controller="components--remote"
331                  data-action="click->components--remote#openLoginModal">이미 구독하셨나요?</span>
332        </div>
333    </div>
334  </div>
335</div>
336
337<nav class="bg-white dark:bg-stone-900">
338  <div class="w-full max-w-6xl mx-auto px-5 py-3">
339    <div class="w-full flex justify-between h-10 lg:h-12 space-x-2 lg:space-x-3">
340        <div class="flex-1 flex md:flex items-center space-x-2 truncate">
341          <a class="block shrink-0" href="/">
342            <img alt="메일리 로고" class="w-7 lg:w-8 h-7 lg:h-8 border-2 border-transparent object-cover" src="https://cdn.maily.so/images/logo_icon.png" />
343</a>              <a class="truncate" href="/piren.habit">
344                <b class="text-base text-black dark:text-white lg:text-xl p-0.5">피렌의 습관레터</b>
345</a>        </div>
346      <div class="flex items-center space-x-4 lg:space-x-5">
347        <button type="button"
348                data-controller="components--darkmode"
349                data-action="click->components--darkmode#toggleColorMode"
350                aria-label="다크/라이트 모드 전환"
351                class="flex items-center justify-center">
352          <svg xmlns="http://www.w3.org/2000/svg" class="text-yellow-200 hover:text-yellow-300 fill-current stroke-current h-6 w-6 inline-block dark:hidden" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
353            <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
354            <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"/>
355          </svg>
356          <svg xmlns="http://www.w3.org/2000/svg" class="text-yellow-200 hover:text-yellow-300 fill-current stroke-current h-6 w-6 hidden dark:block" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
357            <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
358            <circle cx="12" cy="12" r="4"/>
359            <path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"/>
360          </svg>
361        </button>
362          <div class="shrink-0">
363              <div x-data="{ open: false }"
364                   class="ml-2 lg:ml-3 shrink-0 flex items-center">
365                <div @click.outside="open = false" class="relative" x-data="{ open: false }">
366                  <div>
367                    <button
368                      @click="open = !open"
369                      style="touch-action: manipulation;"
370                      type="button" class="z-10 z-10 flex text-sm border-2 border-transparent roun
370ded-full focus:outline-none focus:border-gray-300 transition duration-150 ease-in-out" aria-haspopup="true" aria-expanded="true">
371                      <svg class="h-8 w-8 p-0.5 fill-current text-slate-600 dark:text-slate-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
372                        <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
373                      </svg>
374                    </button>
375                  </div>
376                  <div x-show="open"
377                       style="display: none;"
378                       x-description="Profile dropdown panel, show/hide based on dropdown state." x-transition:enter="transition ease-out duration-200" x-transition:enter-start="transform opacity-0 scale-95" x-transition:enter-end="transform opacity-100 scale-100" x-transition:leave="transition ease-in duration-75" x-transition:leave-start="transform opacity-100 scale-100" x-transition:leave-end="transform opacity-0 scale-95"
379                       class="z-[2000] origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg" style="display: none;">
380                    <div class="rounded-md bg-white dark:bg-stone-900 border border-stone-200 dark:border-stone-600" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
381                      <div class="px-4 py-3">
382                        <p class="text-slate-600 dark:text-slate-300 text-sm leading-5">
383                          로그인을 안해도 바로 구독할 수 있어요 :)
384                        </p>
385                      </div>
386                      <div class="border-t border-gray-100 dark:border-gray-700"></div>
387                      <div class="py-1">
388                        <a @click="open = false"
389                           data-controller="components--remote"
390                           data-action="click->components--remote#openSubscriptionModal"
391                           class="cursor-pointer block px-4 py-2 text-sm text-green-700 dark:text-green-700 leading-5 hover:bg-gray-100 dark:bg-stone-900 dark:text-slate-200 dark:hover:bg-stone-700 focus:outline-none focus:bg-gray-100 focus:text-slate-900 dark:text-slate-200" role="menuitem">
392                          구독하기
393                        </a>
394                        <a class="block px-4 py-2 text-sm leading-5 text-slate-600 bg-white hover:text-slate-900 hover:bg-stone-200 dark:bg-stone-900 dark:text-slate-200 dark:hover:bg-stone-700 focus:outline-none focus:bg-gray-100 focus:text-slate-900 dark:text-slate-200" href="/piren.habit/users/sign_in?redirect_path=%2Fpiren.habit%2Fposts%2F2qzpe88yo4x">
395                          로그인
396</a>                      </div>
397                    </div>
398                  </div>
399                </div>
400              </div>
401          </div>
402      </div>
403    </div>
404  </div>
405  </div>
406</nav>
407<div class="z-30 fixed inset-0 flex items-end justify-center px-4 py-6 pointer-events-none sm:p-6 sm:items-start sm:justify-end">
408  <div id="flashesContainer"
409       data-controller="components--flashes"
410       data-components--flashes-target="container"
411       class="flex flex-col max-w-sm w-full space-y-2">
412    
413  </div>
414</div>
415
416<div class="pb-14 lg:pb-20 bg-white dark:bg-stone-900"
417     id="appContainer"
418     style="min-height: 75vh;">
419  <div class="w-full relative bg-white dark:bg-stone-900"
420     data-controller="posts--show"
421     data-posts--show-enable-popup="true"
422     data-action="scroll@window->posts--show#onScroll">
423  <div class="max-w-2xl lg:max-w-6xl w-full mx-auto grid grid-cols-9 gap-4 lg:gap-8 py-4 lg:py-8">
424    <div class="hidden lg:block lg:col-span-2 lg:pt-[6rem]" data-posts--show-target="scrollSpy">
425      
426
427  <nav class="bg-white dark:bg-stone-900 lg:sticky flex flex-col truncate" style="top: 5rem;" x-data="{ lastOpened: null }">
428      
429  <div class="flex items-center hover:bg-stone-200 dark:hover:bg-stone-700 cursor-pointer"
430       data-action="click->posts--show#scrollTo"
431       data-scroll-id="FD3sZ-ywc_">
432    <p class="pointer-events-none px-3 py-2 text-sm leading-5 font-medium text-slate-600 dar
432k:text-slate-300 focus:outline-none transition ease-in-out duration-150 truncate flex-1 min-w-0">[✉️&nbsp;피렌의 편지]</p>
433  </div>
434
435      
436  <div class="flex items-center hover:bg-stone-200 dark:hover:bg-stone-700 cursor-pointer"
437       data-action="click->posts--show#scrollTo"
438       data-scroll-id="HG16laC1cx">
439    <p class="pointer-events-none px-3 py-2 text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 focus:outline-none transition ease-in-out duration-150 truncate flex-1 min-w-0">여러분은 주로 어떤 걸 미루시나요?</p>
440  </div>
441
442      
443  <div class="flex items-center hover:bg-stone-200 dark:hover:bg-stone-700 cursor-pointer"
444       data-action="click->posts--show#scrollTo"
445       data-scroll-id="DDFa9jlfWE">
446    <p class="pointer-events-none px-3 py-2 text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 focus:outline-none transition ease-in-out duration-150 truncate flex-1 min-w-0">‘미루기 습관’은 하나의 습관이 아닙니다</p>
447  </div>
448
449      
450  <div class="flex items-center hover:bg-stone-200 dark:hover:bg-stone-700 cursor-pointer"
451       data-action="click->posts--show#scrollTo"
452       data-scroll-id="OABYzFwHcX">
453    <p class="pointer-events-none px-3 py-2 text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 focus:outline-none transition ease-in-out duration-150 truncate flex-1 min-w-0">‘하나의 순간’에만 변화주기</p>
454  </div>
455
456      
457  <div class="flex items-center hover:bg-stone-200 dark:hover:bg-stone-700 cursor-pointer"
458       data-action="click->posts--show#scrollTo"
459       data-scroll-id="xub7qlw2aq">
460    <p class="pointer-events-none px-3 py-2 text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 focus:outline-none transition ease-in-out duration-150 truncate flex-1 min-w-0">‘그냥 바로 해’ 다짐만으로는 안 된다</p>
461  </div>
462
463      
464  <div class="flex items-center hover:bg-stone-200 dark:hover:bg-stone-700 cursor-pointer"
465       data-action="click->posts--show#scrollTo"
466       data-scroll-id="M73RkkkSR6">
467    <p class="pointer-events-none px-3 py-2 text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 focus:outline-none transition ease-in-out duration-150 truncate flex-1 min-w-0">정말 힘든 미루기는 따로 있다 - “일 시작하기”</p>
468  </div>
469
470  </nav>
471
472    </div>
473    <div class="col-span-9 lg:col-span-5 lg:col-start-3">
474      <div class="flex items-center justify-between space-x-2 lg:space-x-4 p-3 lg:px-0 bg-white dark:bg-stone-900 sticky top-0 z-10"
475     data-posts--show-target="writerTopBar"
476     id="postWriterBar">
477  <a class="flex-1 group block focus:outline-none mr-2 text-slate-700 dark:text-slate-300 hover:text-slate-900 dark:text-slate-200" href="/piren.habit">
478    <div class="flex items-center">
479      <img loading="lazy" alt="피렌의 습관레터의 프로필 이미지" class="inline-block h-10 lg:h-12 w-10 lg:w-12 border-1 border-gray-100 dark:border-gray-700 bg-gray-100 rounded-full object-cover" src="https://cdn.maily.so/202412/1733388995102366.png" />
480      <div class="flex-1 ml-3 space-y-1">
481        <p class="text-sm leading-5 font-medium">
482          피렌의 습관레터
483        </p>
484        <p class="text-xs leading-4 font-medium truncate-1-lines" style="word-break: break-all;">
485          자연스럽게 습관을 만드는 인사이트를 주 1회 전해드립니다. 
486        </p>
487      </div>
488    </div>
489</a>  <div class="shrink-0 flex items-center">
490      <span class="inline-flex rounded-md shadow-sm">
491    <button data-controller="components--remote"
492            data-action="click-&gt;components--remote#openSubscriptionModal"
493            class="maily-secondary-button">
494      <svg xmlns="http://www.w3.org/2000/svg" class="stroke-current h-4 w-4 mr-1" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
495        <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
496        <line x1="12" y1="5" x2="12" y2="19"/>
497        <line x1="5" y1="12" x2="19" y2="12"/>
498      </svg>
499      구독하기
500    </button>
501  </span>
502
503  </div>
504</div>
505
506<div class="lg:mt-8 mb-2 lg:mb-4 space-y-4 p-3 lg:p-0">
507    <h2 class="text-xl font-bold text-slate-700 dark:text-slate-300 leading-snug break-words flex flex-wrap items-center gap-2">
508        <a class="underline hover:no-underline" href="/piren.habit/c/article">습관 정보</a>
509    </h2>
510  <h1 class="text-[32px] text-slate-900 dark:text-slate-200 font-black leading-snug break-words">&quot;
510이 영상 보는 것도 미뤘습니다&quot;</h1>
511  <div class="space-y-2">
512    <h2 class="flex-1 text-base lg:text-xl text-slate-700 dark:text-slate-300 leading-snug break-words">미루는 습관을 개선하는 방법</h2>
513    <div class="text-xs lg:text-sm flex space-x-2">
514      <span class="text-slate-600 dark:text-slate-300">2026.09.29</span>
515        <span class="text-gray-300">|</span>
516        <span class="text-slate-600 dark:text-slate-300 flex items-center">
517                조회 259
518              </span>
519          <span class="text-gray-300">|</span>
520          <div data-action="click->posts--show#scrollTo"
521               data-scroll-id="comments"
522               class="group text-slate-600 dark:text-slate-300 flex items-center cursor-pointer">
523            <svg xmlns="http://www.w3.org/2000/svg"
524                 class="pointer-events-none mr-1 h-4 w-4 stroke-current group-active:text-green-700 group-focus:text-green-700 group-hover:text-green-700" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
525              <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
526              <path d="M12 20l-3 -3h-2a3 3 0 0 1 -3 -3v-6a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v6a3 3 0 0 1 -3 3h-2l-3 3"/>
527              <line x1="8" y1="9" x2="16" y2="9"/>
528              <line x1="8" y1="13" x2="14" y2="13"/>
529            </svg>
530            <span class="pointer-events-none group-active:text-green-700 group-focus:text-green-700 group-hover:text-green-700">0</span>
531          </div>
532        <span class="text-gray-300">|</span>
533        <div x-data="{ feedbackOpen: false }" class="flex items-center">
534    <div class="text-sm px-0.5 group text-slate-600 dark:text-slate-300 flex items-center cursor-pointer"
535         @click="feedbackOpen = !feedbackOpen;">
536      <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 stroke-current group-active:text-green-700 group-focus:text-green-700 group-hover:text-green-700" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
537        <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
538        <path d="M5 6h10a1 1 0 0 1 1 1v8a4 4 0 0 1 -4 4h-4a4 4 0 0 1 -4 -4v-8a1 1 0 0 1 1 -1"/>
539        <path d="M16 9h2a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-2"/>
540      </svg>
541    </div>
542
543  <div x-show="feedbackOpen"
544       style="display: none;"
545       class="fixed z-20 inset-0 overflow-y-auto">
546    <div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
547      <div x-show="feedbackOpen"
548           @click="feedbackOpen = !feedbackOpen"
549           style="display: none;"
550           x-description="Background overlay, show/hide based on modal state."
551           class="fixed inset-0 transition-opacity">
552        <div class="absolute inset-0 bg-stone-300 dark:bg-stone-700 opacity-75 z-30"></div>
553      </div>
554
555      <!-- This element is to trick the browser into centering the modal contents. -->
556      <span class="hidden sm:inline-block sm:align-middle sm:h-screen"></span>&#8203;
557
558      <div x-show="feedbackOpen"
559           style="display: none;"
560           data-controller="components--remote"
561           x-description="Modal panel, show/hide based on modal state."
562           class="inline-block align-bottom bg-white dark:bg-stone-900 rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-sm w-full sm:p-6" role="dialog" aria-modal="true" aria-labelledby="modal-headline">
563
564        <div class="flex items-center space-x-5">
565          <span class="text-2xl lg:text-3xl">☕</span>
566        </div>
567        <div class="mt-3 text-left sm:mt-5">
568          <h3 class="text-base leading-6 font-medium text-slate-900 dark:text-slate-200">
569            피렌의 습관레터 님에게 커피와 쪽지 보내기
570          </h3>
571          <div class="mt-2">
572            <p class="text-sm leading-5 text-slate-600 dark:text-slate-300">
573              커피와 함께 하고싶은 말을 쪽지에 적어주시면 메일리가 전달해드려요.
574            </p>
575
576            <p class="mt-1 italic text-xs text-slate-600 dark:text-slate-300">보내시는 분의 이메일주소, 닉네임과 함께 전달됩니다.</p>
577          </div>
578        </div>
579
580
581        <form action="/piren.habit/writers/buy_coffee" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="LUgnzNkjqJMEVFMO-qW9-UX90cV5IG5BTtJgQlGIJwMDyCTNyKHvJ_kciCBoLJY-lwKmS__JPjMRnwUoCBFD8w" />
582          <div>
583            <div class="mt-6">
584              <label class="block text-base font-medium leading-7 text-slate-900 dark:text-slate-200" for="coffee">커피</label>
585              <select x-ref="coffeeSelect" required="required" class="cursor-pointer bg-gray-100 dark:bg-stone-700 text-slate-900 dark:text-slate-200 mt-1 block w-full pl-3 pr-10 py-2 text-base border-gray-300 dark:border-gray-500 focus:outline-none focus:ring-blue-300 focus:border-blue-300 sm:text-sm rounded-md" name="coffee" id="coffee"><option value="">메뉴 선택하기</option>
586<option value="커피 우유 (1,500원)">
586커피 우유 (1,500원)</option>
587<option value="테이크아웃 아메리카노 (3,000원)">테이크아웃 아메리카노 (3,000원)</option>
588<option value="아메리카노 (5,000원)">아메리카노 (5,000원)</option>
589<option value="핸드드립 스페셜티 커피 (9,000원)">핸드드립 스페셜티 커피 (9,000원)</option>
590<option value="라떼와 초콜릿 케이크 (18,000원)">라떼와 초콜릿 케이크 (18,000원)</option>
591<option value="아메리카노 5잔 (25,000원)">아메리카노 5잔 (25,000원)</option>
592<option value="한 달치 커피 (50,000원)">한 달치 커피 (50,000원)</option></select>
593            </div>
594            <div class="mt-4">
595              <label class="block text-base font-medium leading-7 text-slate-900 dark:text-slate-200" for="feedback">쪽지</label>
596              <div class="rounded-md shadow-sm">
597                <textarea data-action="click->components--remote#openLoginModal"
598                          name="blocked"
599                          readonly
600                          rows="3"
601                          placeholder="로그인 하고 쪽지 보내기 &rarr;"
602                          class="cursor-pointer bg-gray-100 dark:bg-stone-700 text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-md"></textarea>
603              </div>
604            </div>
605          </div>
606          <div class="mt-5 sm:mt-6 grid grid-cols-2 gap-3 grid-flow-row-dense">
607              <span class="flex w-full rounded-md shadow-sm col-start-2">
608                <button type="button"
609                        data-action="click->components--remote#openLoginModal"
610                        class="cursor-pointer w-full maily-dark-button opacity-50">보내기</button>
611              </span>
612            <span class="flex w-full rounded-md shadow-sm mt-0 col-start-1">
613              <button type="button"
614                      @click="
615                      feedbackOpen = false; setTimeout(() => {
616                        $refs.coffeeSelect.value = '';
617                        $refs.feedbackInput.value = '';
618                      }, 1000);
619                      "
620                      class="w-full text-center maily-white-button">
621                나중에 하기
622              </button>
623            </span>
624          </div>
625</form>      </div>
626    </div>
627  </div>
628</div>
629        <button type="button"
630                data-controller="components--share"
631                aria-label="공유하기"
632                data-target="components--share.copyText"
633                data-components--share-title="피렌의 습관레터"
634                data-components--share-text="&quot;이 영상 보는 것도 미뤘습니다&quot;"
635                data-components--share-url="https://maily.so/piren.habit/posts/2qzpe88yo4x"
636                data-action="components--share#onClickShare"
637                class="hidden group text-slate-600 dark:text-slate-300 flex items-center cursor-pointer outline-none active:outline-none focus:outline-none">
638          <span class="text-gray-300 mr-2">|</span>
639          <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 stroke-current text-slate-600 dark:text-slate-300 group-active:text-slate-600 dark:text-slate-300 group-focus:text-slate-600 dark:text-slate-300 group-hover:text-slate-600 dark:text-slate-300" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
640            <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
641            <path d="M11 7h-5a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-5"/>
642            <line x1="10" y1="14" x2="20" y2="4"/>
643            <polyline points="15 4 20 4 20 9"/>
644          </svg>
645        </button>
646
647    </div>
648      <div class="flex justify-end items-center space-x-2">
649        
650<div class="flex space-x-1 italic">
651  <span class="text-slate-700 dark:text-slate-300 font-semibold">from.</span>
652  <div class="isolate flex gap-1">
653      <span class="text-slate-700 dark:text-slate-300">Piren</span>
654
655  </div>
656</div>
657      </div>
658  </div>
659</div>
660
661<div class="lg:mt-10">
662      <article class="w-full bg-white dark:bg-stone-900 p-3 lg:p-0 mb-4 lg:mb-8 prose dark:prose-invert max-w-full post-body-narrow">
663      <h3 data-block-id='FD3sZ-ywc_' id="FD3sZ-ywc_" class="group/anchor relative" data-controller="components--anchor-copy" data-components--anchor-copy-id-value="FD3sZ-ywc_">[✉️&nbsp;피렌의 편지]<button type="button" data-action="components--anchor-copy#copy" aria-label="이 섹션 링크 복사" contenteditable="false" class="not-prose absolute top-1/2 right-0 -translate-y-1/2 inline-flex items-center justify-center w-7 h-7 rounded-md text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 bg-white dark:bg-stone-900 opacity-0 group-hover/anchor:opacity-100 focus:opacity-100 transition-opacity duration-150 cursor-pointer no-underline"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 15l6 -6"/> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"/> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"/> </svg> </button></h3><p data-block-id='2dmMxdOo4P'>안녕하세요, 구독자님! 습관 디자이너 피렌입니다.</p><p data-block-id='XUsievHc3Z'>
663추석 연휴는 잘 보내셨나요? 저는 독일에서 추석 느낌을 조금이라도 내고자 근처 한인마트에서 송편을 사먹었어요. 요즘에는 한국에 있어도 명절에 대가족이 다 모이는 일이 없다고는 하지만, 괜히 어릴적 복작거렸던 ê·¸ 순간이 그립더라고요.</p><p data-block-id='JpV9XkFVCl'>오늘 뉴스레터도 아침 러닝 중에 떠오른 생각을 다듬어서 써보았어요. 유튜브에서 [듣는 유튜브]로도 들으실 수 있으니, 듣는 게 편하신 분들은 아래 링크에서 들어보셔도 좋습니다!</p><figure data-block-id='l9Ic5SQrV2'><iframe title="유튜브 영상 (https://www.youtube.com/embed/Q33z367MTN8)" style="max-width: 100%; margin: 0 auto;" width="580" height="320" src="https://www.youtube.com/embed/Q33z367MTN8" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><hr data-block-id='8oDcuXq0jr'><p data-block-id='8JhIMblJqU'><b>나는 도대체 왜 미룰까, 어떻게 하면 그만 미룰 수 있을까</b> 고민하며 '미루기'에 관한 유튜브 영상을 보신 적이 있나요? 저는 이 '미루기' 영상들에서 가장 흥미로웠던 게 ê·¸ 영상에 달린 '댓글'이었어요.</p><figure data-block-id='Cf8JBwrGuK'><blockquote><p class="text-left"><b>"이 영상 보는 것도 미뤘습니다"</b></p></blockquote></figure><p data-block-id='R1UlhW7epg'>거의 모든 영상에 이 댓글이 달려있더라고요. 약간의 자조가 담긴 이 댓글을 ë³´ê³  공감이 되어 재미있었어요. 저도 ê·¸ 영상을 '나중에 ë³¼ 동영상' 목록에 추가하던 참이었거든요. (저만 그런 ê±° 아니죠?)</p><p data-block-id='TKGxy5XZzz'>오늘 뉴스레터에서는 다른 영상들과는 다르게 '왜 미루는가'에 대해서는 다루지 않으려고 해요. 대신<mark class="cdx-marker" style="background: rgb(221, 235, 241);"><b> '왜 미루지 않는 습관을 만드려는 우리의 시도는 실패하는가', 그리고 '어떻게 하면 미루는 습관을 개선할 수 있을까'</b></mark><b></b>에 대해 다뤄볼게요.</p><hr data-block-id='g_4NmECRnS'><h3 data-block-id='HG16laC1cx' id="HG16laC1cx" class="group/anchor relative" data-controller="components--anchor-copy" data-components--anchor-copy-id-value="HG16laC1cx">여러분은 주로 어떤 걸 미루시나요?<button type="button" data-action="components--anchor-copy#copy" aria-label="이 섹션 링크 복사" contenteditable="false" class="not-prose absolute top-1/2 right-0 -translate-y-1/2 inline-flex items-center justify-center w-7 h-7 rounded-md text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 bg-white dark:bg-stone-900 opacity-0 group-hover/anchor:opacity-100 focus:opacity-100 transition-opacity duration-150 cursor-pointer no-underline"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 15l6 -6"/> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"/> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"/> </svg> </button></h3><p data-block-id='wm1EgmatQC'>여러분은 주로 어떤 걸 미루시나요? 알람이 울리자마자 일어나지 않고 미루는 것도 미루기의 하나고, 정리정돈이나 설거지, 빨래 개기 같은 사소한 집안일을 미루는 것도 하나예요. 메신저나 이메일 온 걸 읽는 것을 미루는 분들도 있죠.</p><p data-block-id='L4xOb1hHBE'>여기까지는 매일 반복되는 일이고, 이거 말고도 가끔씩 해야 하는 것들을 미루기도 해요. 병원 예약, 특히 치과 정기검진 같은 거요. 1년에 한 번은 가야 하는데 미루고 미루다가 "마지막으로 언제 오셨어요?" 하는 질문에 "한 2, 3년 전쯤이요"라고 답하는, 그런 경우도 있잖아요.</p><hr data-block-id='qxxli7Zfj6'><h3 data-block-id='DDFa9jlfWE' id="DDFa9jlfWE" class="group/anchor relative" data-controller="components--anchor-copy" data-components--anchor-copy-id-value="DDFa9jlfWE">‘미루기 습관’은 하나의 습관이 아닙니다<button type="button" data-action="components--anchor-copy#copy" aria-label="이 섹션 링크 복사" contenteditable="false" class="not-prose absolute top-1/2 right-0 -translate-y-1/2 inline-flex items-center justify-center w-7 h-7 rounded-md text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 bg-white dark:bg-stone-900 opacity-0 group-hover/anchor:opacity-100 focus:opacity-100 transition-opacity duration-150 cursor-pointer no-underline"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 15l6 -6"/> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"/> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"/> </svg> </button></h3><p data-block-id='45Ri6YHMGP'>이렇게 미루는 일은 정말 많아요. 그런데 저희는 흔히 이걸 "미루기"라는 하나로 뭉뚱그려 생각하곤 하죠. 사실 ê·¸ 안에 종류가 이렇게 다양한데 말이에요. 여기서 <mark class="cdx-marker" style="background: rgb(221, 235, 241);"><b>미루는 습관을 고치기 힘든 이유에 대한 힌트</b></mark><b></b>가 있습니다.</p><figure data-block-id='6CsKlghSJG'><blockquote><p class="text-left"><b>‘미루기 습관’은 하나의 습관이 아닙니다.</b></p></blockquote></figure><p data-block-id='ZIN-UgMbnA'>‘미루기’ 굉장히 포괄적인 개념이에요. 그래서 미루는 습관을 개선한다는 ê±´ 굉장히 모호한 말입니다. <b>미루는 행동의 종류가 이렇게 다양한데, ê·¸ 전체를 한꺼번에 다 고치겠다는 것과 같기 때문이에요.</b></p><p data-block-id='L-1r7Dkxi4'><b>미루는 습관을 개선하려는 분들이 바로 이 함정에 빠져요. </b>미루던 모든 걸 한꺼번에 "이제부터 다 바로바로 해야지" 하고 마음먹는 거예요. 정리도 바로, 설거지도 바로, 쇼핑도 바로, 오늘 할 일도 바로.</p><p data-block-id='9Dupi8_zbA'><b>이렇게 하루 정도는 해낼 수 있을지도 모르지만, 오래 지속할 수는 없습니다.</b> 왜냐하면 미루던 모든 걸 한꺼번에 그때그때 다 해내려면 에너지가 정말 많이 들기 떄문이에요. 그래서 금방 지치게 되고, 또 다시 미루는 하루가 시작됩니다.</p><hr data-block-id='D1lBnt8Dwp'><h3 data-block-id='OABYzFwHcX' id="OABYzFwHcX" class="group/anchor relative" data-controller="components--anchor-copy" data-components--anchor-copy-id-value="OABYzFwHcX">‘하나의 순간’에만 변화주기<button type="button" data-action="components--anchor-copy#copy" aria-label="이 섹션 링크 복사" contenteditable="false" class="not-prose absolute top-1/2 right-0 -translate-y-1/2 inline-flex items-center justify-center w-7 h-7 rounded-md text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 bg-white dark:bg-stone-900 opacity-0 group-hover/anchor:opacity-100 focus:opacity-100 transition-opacity duration-150 cursor-pointer no-underline"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 15l6 -6"/> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"/> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"/> </svg> </button></h3><p data-block-id='SixJReXWfQ'>미루는 습관을 개선하려고 할 때 가장 먼저, 그리고 정말 중요하게 해야 하는 게 하나 있어요. <mark class="cdx-marker" style="background: rgb(221, 235, 241);"><b>미루는 모든 순간 중에서 딱 한 가지만 정해서, 그것만 먼저 바꿔보는 거예요.</b></mark><b></b></p><p data-block-id='sDB2Rj1iu4'>그래서 저는 미루는 습관 개선을 위한 습관 디자인을 할 때 첫 단ê
663³„로, 하루 중 혹은 일상에서 어떤 상황에서 무엇을 미루시는지 ê·¸ 모든 상황을 함께 이야기 나눕니다. 그리고 그중에서 <b>딱 한 가지만 정해서 시작해요.</b></p><div data-block-id='D5866lqVI5' class="has-block-style-color" style="display: grid; grid-template-columns: 1fr; gap: 0px; padding: 8px 16px 8px 16px; margin: 10px 0px 10px 0px; border-radius: 3px; overflow: hidden; background-color: #f9f8f7; box-sizing: border-box;"><div class="maily-col"><h4 data-block-id='XlNcV6EFr8' id="XlNcV6EFr8">자주 묻는 질문. "이렇게 하나씩 바꿔서 언제 다 고치나요?"</h4><p data-block-id='wDCVoLObiV'>하나의 순간에 집중해서 시작해야 한다고 설명드렸을 때, 자주 듣는 질문이 있습니다. “이렇게 하나씩 바꿔서 언제 다 고치나요?” 하는 질문이에요. 그런데 이렇게 ‘한 순간’으로 시작하는 이유가 있어요.</p><p data-block-id='r5Mn8Zd9p2'>예를 들어 미루는 순간을 목록으로 만들었더니 열 가지가 나왔다고 해볼게요. 그중 딱 한 가지만 성공적으로 바꾸면, 다른 순간에도 도미노처럼 변화가 번집니다.</p><p data-block-id='ETxXjciVrn'>왜냐하면 어떤 행동을 미루지 않고 바로바로 반복하다 ë³´ë©´, "나 이거 계속 바로 하고 있네"라고 스스로 인식하게 되거든요. 거기서부터 "나는 미루지 않는 사람이구나" 하는 정체성이 생기기 시작합니다.</p><p data-block-id='0YKOLKquuL'>그리고 한번 이 정체성이 생기면, 우리는 또 이 정체성에 맞춰서 행동하게 되니까 다른 순간에도 나도 모르게 조금씩 바로 하게 되는 현상이 생기는 거예요.</p></div></div><hr data-block-id='T-_A6G6w5w'><h3 data-block-id='xub7qlw2aq' id="xub7qlw2aq" class="group/anchor relative" data-controller="components--anchor-copy" data-components--anchor-copy-id-value="xub7qlw2aq">‘그냥 바로 해’ 다짐만으로는 안 된다<button type="button" data-action="components--anchor-copy#copy" aria-label="이 섹션 링크 복사" contenteditable="false" class="not-prose absolute top-1/2 right-0 -translate-y-1/2 inline-flex items-center justify-center w-7 h-7 rounded-md text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 bg-white dark:bg-stone-900 opacity-0 group-hover/anchor:opacity-100 focus:opacity-100 transition-opacity duration-150 cursor-pointer no-underline"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 15l6 -6"/> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"/> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"/> </svg> </button></h3><p data-block-id='oP0KEIqZZA'>근데 여기서 정말 중요한 게 있어요. 이 한 가지를 골랐다고 해서, "이제부터 무조건 바로 해!"라고 다짐만 하면 안됩니다.&nbsp;<mark class="cdx-marker" style="background: rgb(221, 235, 241);"><b>미루지 않고 바로 하기 위한 ‘습관 디자인’이 필요해요.</b></mark><b></b> ‘언제, 어디서, 무엇을, 어떻게 바로 할지’를 구체적으로 정해보는 거죠.</p><p data-block-id='zrQKV6uceF'><b>최근 습관 디자인 사례</b>를 공유해드릴게요. 미루는 습관을 개선하고 싶다고 찾아오신 회사원이셨는데, 아침에는 출근 준비를 하느라 정신이 없고, 저녁에는 퇴근하고나면 기력이 없어 움직일 힘이 없으셨어요.</p><p data-block-id='Oh8VEQjE-O'>그래서 미루는 것 중에서 한 가지를 정해 변화를 시작했습니다. 이때 중요한 ê±´ <b>미루는 일 중 가장 힘든 것부터 변화를 주는게 아니라, ‘그래도 내가 이건 할 수 있지’하는 것으로</b> 정하는 거예요.</p><p data-block-id='0rBDqUFqBi'>이분의 경우에는 ê·¸ 한 가지가 바로 <b>화장품 정리</b>였습니다. 그래서 저희는 화장품 정리 습관을 이렇게 디자인했어요.</p><figure data-block-id='wXKFvxXQSa'><blockquote><p class="text-left"><b>세수하고 화장품을 다 사용하자마자 상자에 넣어 선반 위에 올려놓는다.</b></p></blockquote></figure><p data-block-id='VZ9BVWMbq5'>이렇게 디자인하고, 첫 번째 습관은 금방 자리를 잡았습니다. ê·¸ 후로 쓰레기 바로 버리기, 식기 정리하기 등 다른 정리 정돈과 관련한 습관들을 쌓아나가면서 ‘미루는 습관’을 개선하셨어요.</p><hr data-block-id='L95lF2d-qm'><h3 data-block-id='M73RkkkSR6' id="M73RkkkSR6" class="group/anchor relative" data-controller="components--anchor-copy" data-components--anchor-copy-id-value="M73RkkkSR6">정말 힘든 미루기는 따로 있다 - “일 시작하기”<button type="button" data-action="components--anchor-copy#copy" aria-label="이 섹션 링크 복사" contenteditable="false" class="not-prose absolute top-1/2 right-0 -translate-y-1/2 inline-flex items-center justify-center w-7 h-7 rounded-md text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 bg-white dark:bg-stone-900 opacity-0 group-hover/anchor:opacity-100 focus:opacity-100 transition-opacity duration-150 cursor-pointer no-underline"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 15l6 -6"/> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"/> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"/> </svg> </button></h3><p data-block-id='MEyH__DKT_'>우리가 정말 미루기로 괴로운 상황은, 사실 이런 자잘한 집안일이 아니에요. <b>정말 해야 하는 일, 예를 들면 "일을 시작하는 것" 자체를 미루는 것 때문에 힘들어하는 분들이 정말 많으세요.</b></p><p data-block-id='E7gzeFqw_X'>출근하시는 분들은 강제적으로 시작 시점이 정해져 있으니 크게 문제가 안 되는데, <b>혼자 일하시는 분들</b>은 시작이 전적으로 나에게 달려 있잖아요. 그러다 보니 <b>일 시작을 미루는 게 힘들다</b>ê³  이야기해주시는 분들이 많아요.</p><p data-block-id='m-mSRH1KJg'>다음 뉴스레터에서는 <b>일 시작을 미루지 않는 방법</b>에 대해서 다뤄볼게요.</p><p data-block-id='6jYw7EVTNM'><b><mark class="cdx-marker" style="background: rgb(221, 235, 241);">오늘은 미루는 모든 순간 중 딱 한 가지만 골라 보시고, ê·¸ 한 가지를 “언제,어디서,무엇을,어떻게” 할지 구체적으로 디자인해보세요.</mark></b></p><p data-block-id='YYKtoGVV20'>P.S. 이 미루는 습관 한 가지를 제대로 디자인해보고 싶다면, 습관 디자인 원데이 클래스를 추천드려요. (원데이 클래스 참가자는 기다리지 않고 바로 습관 디자인 커뮤니티에 참여하실 수 있습니다.)&nbsp;</p><div data-block-id='isq1VTPKmT' style="text-align: center; margin-top: 24px; margin-bottom: 24px;"><a target='_blank' href="https://www.latpeed.com/products/pcNuJ" class="editor-button" style="color:#0d47a1;background-color:#e3f2fd;">습관 디자인 원데이 클래스 참여하기</a></div><div data-block-id='DDNbOgvDg3' style="text-align: center; margin-top: 24px; margin-bottom: 24px;"><a target='_blank' href="https://piren.notion.site/6c068695cb1c820eb0df017d030cb9aa?pvs=105" class="editor-button" style="color:#0d47a1;background-color:#e3f2fd;">습관 디자인 원데이 클래스 참여하기(해외거주자)</a></div><p data-block-id='j45OPgi9JR'>&nbsp;</p>
664    </article>
665      <article class="w-full bg-white dark:bg-stone-900 p-3 lg:p-0 mb-4 lg:mb-8 prose dark:prose-invert max-w-full post-body-narrow">
666        <p data-block-id='EJevgc5VgB'>&nbsp;</p>
667      </article>
668
669
670    <div class="sm:rounded-md my-5 bg-white dark:bg-stone-900 border border-stone-200 dark:border-stone-600"
671     id="actionArea">
672  <div class="px-8 py-12">
673
674
675    <h3 class="text-lg lg:text-xl font-medium text-slate-900 dark:text-slate-200 text-center">다가올 뉴스레터가 궁금하신가요?</h3>
676    <div class="mt-2 text-sm leading-5 text-slate-500 dark:text-slate-400 text-center">
677      <p class="text-center">지금 구독해서 새로운 레터를 받아보세요</p>
678    </div>
679
680    <div class="mt-5 flex justify-center items-center space-x-2">
681            <div class="max-w-md w-full mx-auto lg:p-5 space-y-3 text-center">
682              <form class="w-full" data-components--subscribe-modal-target="form" data-controller="google-analytics--form" data-action="submit-&gt;google-analytics--form#event" data-event-params="{&quot;name&quot;:&quot;subscribe&quot;,&quot;component&quot;:&quot;post_bottom&quot;}" action="/piren.habit/subscriptions" accept-charset="UTF-8" data-remote="true" method="post"><input type="hidden" name="authenticity_token" value="LPz1bc7W0LDk-Y6440_FA3FZb9CHeGpLQZzZrZre6p44SO69mckiatdet5l9Ozxl3pDW217UJcMdPI7SSGdKSA" />
683  <input value="https://maily.so/piren.habit/posts/2qzpe88yo4x" type="hidden" name="subscription[referrer_url]" id="subscription_referrer_url" />
684  <input value="free" type="hidden" name="subscription[plan]" id="subscription_plan" />
685  <div class="space-y-3 mt-2 text-left"
686       data-controller="components--email-validator">
687      <div class="relative rounded-md shadow-sm">
688        <label class="absolute -top-2 left-2 inline-block bg-white dark:bg-stone-900 px-1 text-xs font-medium text-slate-900 dark:text-slate-200" for="subscription_name">닉네임</label>
689        <input id="embedSubscriptionName" placeholder="닉네임" class="bg-white dark:bg-stone-900 bg-dark-maily text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-md" type="text" name="subscription[name]" />
690      </div>
691
692    
693
694
695    <div class="flex rounded-md shadow-sm">
696      <div class="relative flex-grow focus-within:z-10">
697        <label class="absolute -top-2 left-2 inline-block bg-white dark:bg-stone-900 px-1 text-xs font-medium text-slate-900 dark:text-slate-200" for="subscription_email">이메일</label>
698
699        <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
700          ✉️
701        </div>
702        <input id="embedSubscriptionEmail" placeholder="[email protected]" required="required" data-components--email-validator-target="email" data-action="keyup-&gt;components--email-validator#validateEmail" class="pl-10 bg-white dark:bg-stone-900 bg-dark-maily text-slate-900 dark:text-slate-200 shadow-sm border-r-0 focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-none rounded-l-md" type="email" name="subscription[email]" />
703      </div>
704      <input type="submit" name="commit" value="구독" id="embedSubmitButton" class="-ml-px maily-secondary-button rounded-none rounded-r-md" data-disable-with="구독" />
705    </div>
706    <p class="hidden mt-1 text-xs text-green-600"
707       data-components--email-validator-target="emailValidation"></p>
708  </div>
709
710  <div class="mt-2" id="embedPrivacyAgreement">
711    <div class="flex items-center">
712      <input name="subscription[privacy_agreement]" type="hidden" value="
7120" /><input required="required" class="focus:ring-gray-400 h-4 w-4 text-gray-600 dark:text-gray-500 border-gray-300 dark:border-gray-500 rounded" type="checkbox" value="1" checked="checked" name="subscription[privacy_agreement]" id="subscription_privacy_agreement" />
713      <label class="w-full text-left ml-2 block text-xs leading-5 text-gray-700 dark:text-gray-300 cursor-pointer" for="subscription_privacy_agreement">
714        [필수] 메일리 <a target="_blank" class="underline hover:text-slate-700 dark:text-slate-300" href="https://maily.so/app/service_policy">이용약관</a> <a target="_blank" class="underline hover:text-slate-700 dark:text-slate-300" href="https://maily.so/app/privacy_agreement">개인정보처리방침</a> 에 동의합니다.
715</label>    </div>
716  </div>
717  <div id="embedErrorMessage" class="hidden text-red-700 text-xs mt-1"></div>
718  <div id="embedSuccessMessage" class="hidden text-green-700 dark:text-green-700 text-xs mt-1"></div>
719</form>
720            </div>
721    </div>
722  </div>
723</div>
724
725      <div class="w-full flex items-start">
726      <div x-data="{ feedbackOpen: false }" class="w-full">
727    <div class="w-full" id="long_tail">
728      <div class="px-4 py-10 lg:px-0 sm:p-6">
729        <div class="text-center sm:text-left sm:flex sm:items-start sm:justify-between">
730          <div>
731            <h3 class="text-lg leading-6 text-slate-900 dark:text-slate-200">
732              이번 뉴스레터 어떠셨나요?
733            </h3>
734            <div class="mt-2 max-w-xl text-sm leading-5 text-slate-600 dark:text-slate-300">
735              <p>
736                피렌의 습관레터 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!
737              </p>
738            </div>
739          </div>
740          <div class="mt-5 sm:mt-0 sm:ml-6 sm:shrink-0 sm:flex sm:items-center">
741              <span class="inline-flex rounded-md shadow-sm">
742                <button type="button"
743                        @click="feedbackOpen = !feedbackOpen;"
744                        class="maily-white-button-sm">
745                    지금 보내기 &rarr;
746                  </button>
747              </span>
748          </div>
749        </div>
750      </div>
751    </div>
752
753  <div x-show="feedbackOpen"
754       style="display: none;"
755       class="fixed z-20 inset-0 overflow-y-auto">
756    <div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
757      <div x-show="feedbackOpen"
758           @click="feedbackOpen = !feedbackOpen"
759           style="display: none;"
760           x-description="Background overlay, show/hide based on modal state."
761           class="fixed inset-0 transition-opacity">
762        <div class="absolute inset-0 bg-stone-300 dark:bg-stone-700 opacity-75 z-30"></div>
763      </div>
764
765      <!-- This element is to trick the browser into centering the modal contents. -->
766      <span class="hidden sm:inline-block sm:align-middle sm:h-screen"></span>&#8203;
767
768      <div x-show="feedbackOpen"
769           style="display: none;"
770           data-controller="components--remote"
771           x-description="Modal panel, show/hide based on modal state."
772           class="inline-block align-bottom bg-white dark:bg-stone-900 rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-sm w-full sm:p-6" role="dialog" aria-modal="true" aria-labelledby="modal-headline">
773
774        <div class="flex items-center space-x-5">
775          <span class="text-2xl lg:text-3xl">☕</span>
776        </div>
777        <div class="mt-3 text-left sm:mt-5">
778          <h3 class="text-base leading-6 font-medium text-slate-900 dark:text-slate-200">
779            피렌의 습관레터 님에게 커피와 쪽지 보내기
780          </h3>
781          <div class="mt-2">
782            <p class="text-sm leading-5 text-slate-600 dark:text-slate-300">
783              커피와 함께 하고싶은 말을 쪽지에 적어주시면 메일리가 전달해드려요.
784            </p>
785
786            <p class="mt-1 italic text-xs text-slate-600 dark:text-slate-300">보내시는 분의 이메일주소, 닉네임과 함께 전달됩니다.</p>
787          </div>
788        </div>
789
790
791        <form action="/piren.habit/writers/buy_coffee" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="bHaIUIJ1aNr2MgraOp2MbdM2Xj3pI0b0fbreuN4M4KlC9otRk_cvbgt60fSoFKeqAckps2_KFoYi97vSh5WEWQ" />
792          <div>
793            <div class="mt-6">
794              <label class="block text-base font-medium leading-7 text-slate-900 dark:text-slate-200" for="coffee">커피</label>
795              <select x-ref="coffeeSelect" required="required" class="cursor-pointer bg-gray-100 dark:bg-stone-700 text-slate-900 dark:text-slate-200 mt-1 block w-full pl-3 pr-10 py-2 text-base border-gray-300 dark:border-gray-500 focus:outline-none focus:ring-blue-300 focus:border-blue-300 sm:text-sm rounded-md" name="coffee" id="coffee"><option value="">메뉴 선택하기</option>
796<option value="커피 우유 (1,500원)">커피 우유 (1,500원)</option>
797<option value="테이크아웃 아메리카노 (3,000원)">테이크아웃 아메리카노 (3,000원)</option>
798<option value="아메리카노 (5,000원)">아메리카노 (5,000원)</option>
799<option value="핸드드립 스페셜티 커피 (9,000원)">핸드드립 스페셜티 커피 (9,000원)</option>
800<option value="라떼와 초콜릿 케이크 (18,000원)">라떼와 초콜릿 케이크 (18,000원)</option>
801<option value="아메리카노 5잔 (25,000원)">아메리카노 5잔 (25,000원)</option>
802<option value="한 달치 커피 (50,000원)">한 달치 커피 (50,000원)</option></select>
803            </div>
804            <div class="mt-4">
805              <label class="block text-base font-medium leading-7 text-slate-900 dark:text-slate-200" for="feedback">쪽지</label>
806              <div class="rounded-md shadow-sm">
807                <textarea data-action="click->components--remote#openLoginModal"
808                          name="blocked"
809                          readonly
810                          rows="3"
811                          placeholder="로그인 하고 쪽지 보내기 &rarr;"
812                          class="cursor-pointer bg-gray-100 dark:bg-stone-700 text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-md"></textarea>
813              </div>
814            </div>
815          </div>
816          <div class="mt-5 sm:mt-6 grid grid-cols-2 gap-3 grid-flow-row-dense">
817              <span class="flex w-full rounded-md shadow-sm col-start-2">
818                <button type="button"
819                        data-action="click->components--remote#openLoginModal"
820                        class="cursor-pointer w-full maily-dark-button opacity-50">보내기</button>
821              </span>
822            <span class="flex w-full rounded-md shadow-sm mt-0 col-start-1">
823              <button type="button"
824                      @click="
825                      feedbackOpen = false; setTimeout(() => {
826                        $refs.coffeeSelect.value = '';
827                        $refs.feedbackInput.value = '';
828                      }, 1000);
829                      "
830                      class="w-full text-center maily-white-button">
831                나중에 하기
832              </button>
833            </span>
834          </div>
835</form>      </div>
836    </div>
837  </div>
838</div>
839    </div>
840
841    <div class="flex flex-col items-end justify-center space-x-2 lg:space-x-4 p-3">
842      <div class="shrink-0 flex items-center justify-end space-x-1 lg:space-x-2">
843        <button type="button"
844                data-controller="components--share"
845                aria-label="공유하기"
846                data-target="components--share.copyText"
847                data-components--share-title="피렌의 습관레터"
848                data-components--share-text="&quot;이 영상 보는 것도 미뤘습니다&quot;"
849                data-components--share-url="https://maily.so/piren.habit/posts/2qzpe88yo4x"
850                data-action="components--share#onClickShare"
851                class="-ml-px hidden group relative inline-flex items-center px-3 py-2 text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 hover:text-slate-600 dark:text-slate-300 focus:outline-none active:text-slate-700 dark:text-slate-300 transition ease-in-out duration-150">
852          <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 stroke-current text-slate-600 dark:text-slate-300 group-active:text-slate-600 dark:text-slate-300 group-focus:text-slate-600 dark:text-slate-300 group-hover:text-slate-600 dark:text-slate-300" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
853            <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
854            <path d="M11 7h-5a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-5"/>
855            <line x1="10" y1="14" x2="20" y2="4"/>
856            <polyline points="15 4 20 4 20 9"/>
857          </svg>
858        </button>
859      </div>
860    </div>
861
862
863    <div class="w-full p-3 lg:px-0 text-right">
864  
865</div>
866
867<div class="py-2 px-3 lg:p-0 ">
868  <div id="comments"
869     data-controller="components--remote"
870     data-components--remote-user-signed-in-value="false">
871  <div>
872    <span class="font-bold leading-6 text-slate-900 dark:text-slate-200 text-sm sm:text-base sm:leading-8 sm:truncate">댓글</span>
873  </div>
874    <div class="mt-1 sm:mt-0 sm:col-span-2">
875    <p class="text-sm text-slate-600 dark:text-slate-300">의견을 남겨주세요</p>
876      <div class="flex rounded-md shadow-sm mt-1">
877        <textarea data-action="click->components--remote#openLoginModal"
878                  name="blocked"
879                  readonly
880                  rows="2"
881                  placeholder="로그인 하고 댓글 남기기"
882                  class="cursor-pointer bg-gray-100 dark:bg-stone-700 text-slate-900 dark:text-slate-200 shadow-sm focus:ring-blue-300 focus:border-blue-300 block w-full sm:text-sm border-gray-300 dark:border-gray-500 rounded-md"></textarea>
883      </div>
884      <div class="mt-2" id="privacyAgreement">
885        <div class="flex items-center justify-end">
886          <input type="checkbox" name="private" id="8168081b3be62b2f425efdf5b53de1a6" value="0" disabled="disabled" data-action="click-&gt;components--remote#openLoginModal" class="focus:ring-green-333 h-4 w-4 text-green-700 dark:text-green-700 border-gray-300 dark:border-gray-500 rounded" />
887          <label for="8168081b3be62b2f425efdf5b53de1a6" data-action="click-&gt;components--remote#openLoginModal" class="ml-2 block text-xs leading-5 text-gray-700 dark:text-gray-300 cursor-pointer">
888            비공개로 댓글 남기기
889</label>        </div>
890      </div>
891      <div class="mt-2 flex justify-end">
892        <span class="text-sm lg:text-base leading-5 lg:leading-6 font-medium text-green-700 dark:text-green-700 cursor-pointer opacity-75 focus:outline-none"
893              data-action="click->components--remote#openLoginModal">확인</span>
894      </div>
895  </div>
896
897  <div class="comments-input-container pt-3">
898      <div class="flex flex-col justify-end">
899        <span class="flex items-end text-right text-xs lg:text-sm text-slate-600 dark:text-slate-300">의견이 있으신가요? 제일 먼저 댓글을 달아보세요 !</span>
900      </div>
901    <ul class="divide-y divide-gray-100 dark:divide-gray-700">
902    </ul>
903  </div>
904</div>
905</div>
906
907  <div class="px-3 py-4 lg:px-0 lg:py-6 space-y-2">
908      <div class="grid grid-cols-1 sm:grid-cols-2 gap-x-2 lg:gap-x-4">
909          <div class="flex flex-col">
910            <h2 class="text-slate-600 dark:text-slate-300 text-xs font-medium uppercase tracking-wide mt-2 pt-4 mb-1">이전 뉴스레터</h2>
911            <div class="sm:hidden">
912              
913<a href="https://maily.so/piren.habit/posts/1gz2wxgxz3q" data-turbo-frame="_top" class="post-card-list-item not-prose flex flex-col sm:flex-row sm:items-stretch sm:min-h-[100px] lg:min-h-[180px] sm:border border-slate-200 dark:border-slate-700 sm:rounded-md overflow-hidden py-3 sm:py-0 no-underline transition sm:hover:shadow-md" style="text-decoration: none;">
914  <div class="flex sm:contents">
915  <div class="flex-1 min-w-0 flex flex-col sm:p-5">
916      <div class="hidden sm:flex items-center gap-1.5 text-xs mb-2 min-w-0">
917          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
918      </div>
919    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-xl whitespace-normal truncate-2-lines truncate mb-2">알람을 끄고도 못 일어나는 당신에게</p>
920      <p class="text-slate-700 dark:text-slate-300 text-sm truncate-2-lines mb-2">알람을 끄자마자 하루를 시작하게 만들어주는 한 가지 행동. [✉️ 피렌의 편지] 안녕하세요, 구독자님! 습관 디자이너 피렌입니다. 제가 드디어 유튜브를 시작했습니다. 나중에는 어떻게 발전할지 모르겠지만, 처음은 뉴스레터 내용을 들으실</p>
921    <div class="hidden sm:flex flex-1 items-end">
922      <div class="block text-xs text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.09.22</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 403</span></div></div>
923    </div>
924  </div>
925    <div class="shrink-0 self-start relative bg-cover bg-center w-[140px] h-[80px] lg:w-[315px] lg:h-[180px] pb-0 ml-3 sm:ml-0 rounded-none" style="background-image: url('https://cdn.maily.so/202609/1790017047508511.png');"></div>
926  </div>
927  <div class="sm:hidden mt-2 text-xs text-slate-600 dark:text-slate-300">
928    <div class="flex flex-wrap items-center gap-0.5"><span>2026.09.22</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>습관 정보</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 403</span></div>
929  </div>
930</a>
931
932            </div>
933            <div class="hidden sm:block h-full">
934              
935<a href="https://maily.so/piren.habit/posts/1gz2wxgxz3q" data-turbo-frame="_top" class="not-prose flex flex-col h-full border border-slate-200 dark:border-slate-700 rounded-md overflow-hidden no-underline transition hover:shadow-md" style="text-decoration: none;">
936    <div class="w-full" style="aspect-ratio: 7 / 4; background: url('https://cdn.maily.so/202609/1790017047508511.png') center/cover no-repeat;"></div>
937  <div class="p-3 lg:p-4 flex flex-col flex-1">
938      <div class="flex items-center gap-1.5 text-xs mb-2 min-w-0">
939          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
940      </div>
941    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-lg leading-snug mb-2 truncate-2-lines">알람을 끄고도 못 일어나는 당신에게</p>
942      <p class="text-slate-700 dark:text-slate-300 text-sm leading-snug mb-1 truncate-2-lines">알람을 끄자마자 하루를 시작하게 만들어주는 한 가지 행동. [✉️ 피렌의 편지] 안녕하세요, 구독자님! 습관 디자이너 피렌입니다. 제가 드디어 유튜브를 시작했습니다. 나중에는 어떻게 발전할지 모르겠지만, 처음은 뉴스레터 내용을 들으실</p>
943    <div class="mt-auto pt-2">
944      <div class="text-[11px] text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.09.22</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 403</span></div></div>
945    </div>
946  </div>
947</a>
948
949            </div>
950          </div>
951      </div>
952
953      <h2 class="text-slate-600 dark:text-slate-300 text-xs font-medium uppercase tracking-wide mt-4 pt-4 mb-1 flex items-baseline justify-between gap-2 flex-wrap">
954        <span>다른 뉴스레터</span>
955      </h2>
956      <div class="grid grid-cols-1 sm:grid-cols-2 gap-2 lg:gap-4">
957            <div class="sm:hidden">
958              
959<a href="https://maily.so/piren.habit/posts/mjz6kk2nrwk" data-turbo-frame="_top" class="post-card-list-item not-prose flex flex-col sm:flex-row sm:items-stretch sm:min-h-[100px] lg:min-h-[180px] sm:border border-slate-200 dark:border-slate-700 sm:rounded-md overflow-hidden py-3 sm:py-0 no-underline transition sm:hover:shadow-md" style="text-decoration: none;">
960  <div class="flex sm:contents">
961  <div class="flex-1 min-w-0 flex flex-col sm:p-5">
962      <div class="hidden sm:flex items-center gap-1.5 text-xs mb-2 min-w-0">
963          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
964      </div>
965    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-xl whitespace-normal truncate-2-lines truncate mb-2">릴스보는 습관만큼 빠르게 좋은 습관을 만드는 방법 (2)</p>
966      <p class="text-slate-700 dark:text-slate-300 text-sm truncate-2-lines mb-2">보상 알아차리기 (feat. 습관 기록). [📨 피렌의 편지] &quot;흘러간 것은 잡히지 않습니다. 깊이 새겨져 있는 것만 잡을 수 있어요.&quot; 헬스를 마치고 집으로 돌아오는 길, 오디오북에서 이 문장을 듣자마자 운동 가방 속 독</p>
967    <div class="hidden sm:flex flex-1 items-end">
968      <div class="block text-xs text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.05.19</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 687</span></div></div>
969    </div>
970  </div>
971    <div class="shrink-0 self-start relative bg-cover bg-center w-[140px] h-[80px] lg:w-[315px] lg:h-[180px] pb-0 ml-3 sm:ml-0 rounded-none" style="background-image: url('https://cdn.maily.so/202605/1779130694909695.png');"></div>
972  </div>
973  <div class="sm:hidden mt-2 text-xs text-slate-600 dark:text-slate-300">
974    <div class="flex flex-wrap items-center gap-0.5"><span>2026.05.19</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>습관 정보</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 687</span></div>
975  </div>
976</a>
977
978            </div>
979            <div class="hidden sm:block h-full">
980              
981<a href="https://maily.so/piren.habit/posts/mjz6kk2nrwk" data-turbo-frame="_top" class="not-prose flex flex-col h-full border border-slate-200 dark:border-slate-700 rounded-md overflow-hidden no-underline transition hover:shadow-md" style="text-decoration: none;">
982    <div class="w-full" style="aspect-ratio: 7 / 4; background: url('https://cdn.maily.so/202605/1779130694909695.png') center/cover no-repeat;"></div>
983  <div class="p-3 lg:p-4 flex flex-col flex-1">
984      <div class="flex items-center gap-1.5 text-xs mb-2 min-w-0">
985          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
986      </div>
987    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-lg leading-snug mb-2 truncate-2-lines">릴스보는 습관만큼 빠르게 좋은 습관을 만드는 방법 (2)</p>
988      <p class="text-slate-700 dark:text-slate-300 text-sm leading-snug mb-1 truncate-2-lines">보상 알아차리기 (feat. 습관 기록). [📨 피렌의 편지] &quot;흘러간 것은 잡히지 않습니다. 깊이 새겨져 있는 것만 잡을 수 있어요.&quot; 헬스를 마치고 집으로 돌아오는 길, 오디오북에서 이 문장을 듣자마자 운동 가방 속 독</p>
989    <div class="mt-auto pt-2">
990      <div class="text-[11px] text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.05.19</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 687</span></div></div>
991    </div>
992  </div>
993</a>
994
995            </div>
996            <div class="sm:hidden">
997              
998<a href="https://maily.so/piren.habit/posts/vpzlnxy2rk9" data-turbo-frame="_top" class="post-card-list-item not-prose flex flex-col sm:flex-row sm:items-stretch sm:min-h-[100px] lg:min-h-[180px] sm:border border-slate-200 dark:border-slate-700 sm:rounded-md overflow-hidden py-3 sm:py-0 no-underline transition sm:hover:shadow-md" style="text-decoration: none;">
999  <div class="flex sm:contents">
1000  <div class="flex-1 min-w-0 flex flex-col sm:p-5">
1001      <div class="hidden sm:flex items-center gap-1.5 text-xs mb-2 min-w-0">
1002          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
1003      </div>
1004    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-xl whitespace-normal truncate-2-lines truncate mb-2">&quot;운동 해야지&quot; 다짐이 매번 실패하는 심리학적 이유 (ft. 일관성의 법칙)</p>
1005      <p class="text-slate-700 dark:text-slate-300 text-sm truncate-2-lines mb-2">[📨 피렌의 편지] 안녕하세요, 습관 디자이너 피렌입니다. 한 달 넘는 공백 기간 동안 습관 디자인 앱을 개발하고, 지난 주 화요일 습관 디자인 커뮤니티 1기를 모집했어요. 하루만</p>
1006    <div class="hidden sm:flex flex-1 items-end">
1007      <div class="block text-xs text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.08.18</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 605</span></div></div>
1008    </div>
1009  </div>
1010    <div class="shrink-0 self-start relative bg-cover bg-center w-[140px] h-[80px] lg:w-[315px] lg:h-[180px] pb-0 ml-3 sm:ml-0 rounded-none" style="background-image: url('https://cdn.maily.so/202608/1786997917376938.png');"></div>
1011  </div>
1012  <div class="sm:hidden mt-2 text-xs text-slate-600 dark:text-slate-300">
1013    <div class="flex flex-wrap items-center gap-0.5"><span>2026.08.18</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>습관 정보</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 605</span></div>
1014  </div>
1015</a>
1016
1017            </div>
1018            <div class="hidden sm:block h-full">
1019              
1020<a href="https://maily.so/piren.habit/posts/vpzlnxy2rk9" data-turbo-frame="_top" class="not-prose flex flex-col h-full border border-slate-200 dark:border-slate-700 rounded-md overflow-hidden no-underline transition hover:shadow-md" style="text-decoration: none;">
1021    <div class="w-full" style="aspect-ratio: 7 / 4; background: url('https://cdn.maily.so/202608/1786997917376938.png') center/cover no-repeat;"></div>
1022  <div class="p-3 lg:p-4 flex flex-col flex-1">
1023      <div class="flex items-center gap-1.5 text-xs mb-2 min-w-0">
1024          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
1025      </div>
1026    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-lg leading-snug mb-2 truncate-2-lines">&quot;운동 해야지&quot; 다짐이 매번 실패하는 심리학적 이유 (ft. 일관성의 법칙)</p>
1027      <p class="text-slate-700 dark:text-slate-300 text-sm leading-snug mb-1 truncate-2-lines">[📨 피렌의 편지] 안녕하세요, 습관 디자이너 피렌입니다. 한 달 넘는 공백 기간 동안 습관 디자인 앱을 개발하고, 지난 주 화요일 습관 디자인 커뮤니티 1기를 모집했어요. 하루만</p>
1028    <div class="mt-auto pt-2">
1029      <div class="text-[11px] text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.08.18</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 605</span></div></div>
1030    </div>
1031  </div>
1032</a>
1033
1034            </div>
1035            <div class="sm:hidden">
1036              
1037<a href="https://maily.so/piren.habit/posts/x1zg54l3oqg" data-turbo-frame="_top" class="post-card-list-item not-prose flex flex-col sm:flex-row sm:items-stretch sm:min-h-[100px] lg:min-h-[180px] sm:border border-slate-200 dark:border-slate-700 sm:rounded-md overflow-hidden py-3 sm:py-0 no-underline transition sm:hover:shadow-md" style="text-decoration: none;">
1038  <div class="flex sm:contents">
1039  <div class="flex-1 min-w-0 flex flex-col sm:p-5">
1040      <div class="hidden sm:flex items-center gap-1.5 text-xs mb-2 min-w-0">
1041          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
1042      </div>
1043    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-xl whitespace-normal truncate-2-lines truncate mb-2">핸드폰을 줄이려는 모든 노력이 실패하는 이유 </p>
1044      <p class="text-slate-700 dark:text-slate-300 text-sm truncate-2-lines mb-2">핸드폰 습관 개선 시리즈 (1). [📨 피렌의 편지] 안녕하세요, 습관 디자이너 피렌입니다. 공휴일이 많았던 5월이 지나고, 어느새 6월이 되었습니다. 6월에 피렌의 습관레터는 &#39;핸드폰 습관&#39;에 집중해보려고 해요.</p>
1045    <div class="hidden sm:flex flex-1 items-end">
1046      <div class="block text-xs text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.06.02</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 873</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>댓글 2</span></div></div>
1047    </div>
1048  </div>
1049    <div class="shrink-0 self-start relative bg-cover bg-center w-[140px] h-[80px] lg:w-[315px] lg:h-[180px] pb-0 ml-3 sm:ml-0 rounded-none" style="background-image: url('https://cdn.maily.so/202606/1780343983898506.png');"></div>
1050  </div>
1051  <div class="sm:hidden mt-2 text-xs text-slate-600 dark:text-slate-300">
1052    <div class="flex flex-wrap items-center gap-0.5"><span>2026.06.02</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>습관 정보</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 873</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>댓글 2</span></div>
1053  </div>
1054</a>
1055
1056            </div>
1057            <div class="hidden sm:block h-full">
1058              
1059<a href="https://maily.so/piren.habit/posts/x1zg54l3oqg" data-turbo-frame="_top" class="not-prose flex flex-col h-full border border-slate-200 dark:border-slate-700 rounded-md overflow-hidden no-underline transition hover:shadow-md" style="text-decoration: none;">
1060    <div class="w-full" style="aspect-ratio: 7 / 4; background: url('https://cdn.maily.so/202606/1780343983898506.png') center/cover no-repeat;"></div>
1061  <div class="p-3 lg:p-4 flex flex-col flex-1">
1062      <div class="flex items-center gap-1.5 text-xs mb-2 min-w-0">
1063          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
1064      </div>
1065    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-lg leading-snug mb-2 truncate-2-lines">핸드폰을 줄이려는 모든 노력이 실패하는 이유 </p>
1066      <p class="text-slate-700 dark:text-slate-300 text-sm leading-snug mb-1 truncate-2-lines">핸드폰 습관 개선 시리즈 (1). [📨 피렌의 편지] 안녕하세요, 습관 디자이너 피렌입니다. 공휴일이 많았던 5월이 지나고, 어느새 6월이 되었습니다. 6월에 피렌의 습관레터는 &#39;핸드폰 습관&#39;에 집중해보려고 해요.</p>
1067    <div class="mt-auto pt-2">
1068      <div class="text-[11px] text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.06.02</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 873</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>댓글 2</span></div></div>
1069    </div>
1070  </div>
1071</a>
1072
1073            </div>
1074            <div class="sm:hidden">
1075              
1076<a href="https://maily.so/piren.habit/posts/2nznqnxmzp5" data-turbo-frame="_top" class="post-card-list-item not-prose flex flex-col sm:flex-row sm:items-stretch sm:min-h-[100px] lg:min-h-[180px] sm:border border-slate-200 dark:border-slate-700 sm:rounded-md overflow-hidden py-3 sm:py-0 no-underline transition sm:hover:shadow-md" style="text-decoration: none;">
1077  <div class="flex sm:contents">
1078  <div class="flex-1 min-w-0 flex flex-col sm:p-5">
1079      <div class="hidden sm:flex items-center gap-1.5 text-xs mb-2 min-w-0">
1080          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
1081      </div>
1082    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-xl whitespace-normal truncate-2-lines truncate mb-2">핸드폰 습관을 바꾸려면 먼저 ‘이것’부터 해야 합니다 </p>
1083      <p class="text-slate-700 dark:text-slate-300 text-sm truncate-2-lines mb-2">핸드폰 습관 개선 시리즈 (2). [📨 피렌의 편지] 안녕하세요, 습관 디자이너 피렌입니다. 지난주에 드디어 핸드폰 습관 개선 기록 앱 &lt;언해빗 UNHABIT&gt;의 베타 버전을 완성하고, 습관 디자인 커뮤니티 분들과</p>
1084    <div class="hidden sm:flex flex-1 items-end">
1085      <div class="block text-xs text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.06.09</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 579</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>댓글 4</span></div></div>
1086    </div>
1087  </div>
1088    <div class="shrink-0 self-start relative bg-cover bg-center w-[140px] h-[80px] lg:w-[315px] lg:h-[180px] pb-0 ml-3 sm:ml-0 rounded-none" style="background-image: url('https://cdn.maily.so/202606/1780913720132076.png');"></div>
1089  </div>
1090  <div class="sm:hidden mt-2 text-xs text-slate-600 dark:text-slate-300">
1091    <div class="flex flex-wrap items-center gap-0.5"><span>2026.06.09</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>습관 정보</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 579</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>댓글 4</span></div>
1092  </div>
1093</a>
1094
1095            </div>
1096            <div class="hidden sm:block h-full">
1097              
1098<a href="https://maily.so/piren.habit/posts/2nznqnxmzp5" data-turbo-frame="_top" class="not-prose flex flex-col h-full border border-slate-200 dark:border-slate-700 rounded-md overflow-hidden no-underline transition hover:shadow-md" style="text-decoration: none;">
1099    <div class="w-full" style="aspect-ratio: 7 / 4; background: url('https://cdn.maily.so/202606/1780913720132076.png') center/cover no-repeat;"></div>
1100  <div class="p-3 lg:p-4 flex flex-col flex-1">
1101      <div class="flex items-center gap-1.5 text-xs mb-2 min-w-0">
1102          <span class="text-slate-500 dark:text-slate-400 truncate">습관 정보</span>
1103      </div>
1104    <p class="text-slate-900 dark:text-slate-200 font-bold text-base lg:text-lg leading-snug mb-2 truncate-2-lines">핸드폰 습관을 바꾸려면 먼저 ‘이것’부터 해야 합니다 </p>
1105      <p class="text-slate-700 dark:text-slate-300 text-sm leading-snug mb-1 truncate-2-lines">핸드폰 습관 개선 시리즈 (2). [📨 피렌의 편지] 안녕하세요, 습관 디자이너 피렌입니다. 지난주에 드디어 핸드폰 습관 개선 기록 앱 &lt;언해빗 UNHABIT&gt;의 베타 버전을 완성하고, 습관 디자인 커뮤니티 분들과</p>
1106    <div class="mt-auto pt-2">
1107      <div class="text-[11px] text-slate-600 dark:text-slate-300"><div class="flex flex-wrap items-center gap-0.5"><span>2026.06.09</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>조회 579</span><span class="text-gray-300 dark:text-gray-600 mx-1">·</span><span>댓글 4</span></div></div>
1108    </div>
1109  </div>
1110</a>
1111
1112            </div>
1113      </div>
1114  </div>
1115</div>
1116    </div>
1117  </div>
1118</div>
1119
1120  <div x-data="{ platformChatOpen: false }"
1121     x-init="$watch('platformChatOpen', v => {
1122       if (v) $nextTick(() => {
1123         const input = document.querySelector('#platform-floating-ai-chat textarea');
1124         if (input) input.focus();
1125       });
1126     })"
1127     @open-platform-chat.window="platformChatOpen = true">
1128
1129
1130  <!-- Floating 채팅 패널 -->
1131  <div x-show="platformChatOpen"
1132       x-transition:enter="ease-out duration-300"
1133       x-transition:enter-start="opacity-0 translate-y-4"
1134       x-transition:enter-end="opacity-100 translate-y-0"
1135       x-transition:leave="ease-in duration-200"
1136       x-transition:leave-start="opacity-100 translate-y-0"
1137       x-transition:leave-end="opacity-0 translate-y-4"
1138       class="fixed right-0 sm:right-4 bottom-0 sm:bottom-4 z-20 w-full sm:w-[400px] h-[min(700px,80vh)] sm:rou
1138nded-2xl shadow-2xl bg-white dark:bg-gray-800 flex flex-col overflow-hidden border border-gray-200 dark:border-gray-700"
1139       style="display: none;">
1140
1141    <!-- 헤더 -->
1142    <div class="flex-shrink-0 px-4 py-3 border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800">
1143      <div class="flex items-center justify-between">
1144        <div class="flex items-center gap-3">
1145          <div class="w-8 h-8 rounded-full bg-gradient-to-br from-blue-100 to-blue-200 dark:from-blue-900/30 dark:to-blue-800/30 flex items-center justify-center">
1146            <img class="w-5 h-5" style="width: 20px; height: 20px;" src="https://cdn.maily.so/public/assets/logo_icon-4b302b58cb10470170e942bfd93bff9d153e43184714b1ce6307432b27cc108e.png" />
1147          </div>
1148          <div>
1149            <h3 class="text-sm font-semibold text-gray-900 dark:text-white">메일리 도우미</h3>
1150            <p class="text-xs text-gray-500 dark:text-gray-400">메일리 사용법에 대해 답변합니다</p>
1151          </div>
1152        </div>
1153        <div class="flex items-center gap-2">
1154          <a href="/app/guides" target="_blank" class="text-xs text-blue-600 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300">가이드 보기</a>
1155          <button @click="platformChatOpen = false"
1156                  class="p-1.5 rounded-full text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white transition-colors">
1157            <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
1158              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
1159            </svg>
1160          </button>
1161        </div>
1162      </div>
1163    </div>
1164
1165    <!-- 채팅 콘텐츠 (turbo_frame으로 로드) -->
1166    <turbo-frame class="flex-1 flex flex-col overflow-hidden" loading="lazy" id="platform-floating-ai-chat" src="/app/platform_ai_chat/embed">
1167      <div class="flex-1 flex items-center justify-center">
1168        <div class="flex gap-1">
1169          <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce [animation-delay:-0.3s]"></span>
1170          <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce [animation-delay:-0.15s]"></span>
1171          <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce"></span>
1172        </div>
1173      </div>
1174</turbo-frame>  </div>
1175</div>
1176
1177<script>
1178  // Turbo Frame 로드 에러 처리
1179  (function() {
1180    const frameId = 'platform-floating-ai-chat';
1181
1182    document.addEventListener('turbo:before-fetch-response', (event) => {
1183      const frame = event.target;
1184      if (frame.id !== frameId) return;
1185
1186      const response = event.detail.fetchResponse.response;
1187      if (!response.ok) {
1188        event.preventDefault();
1189
1190        let errorMessage = "채팅을 불러오는 중 오류가 발생했습니다.";
1191        if (response.status === 403) {
1192          errorMessage = "AI 채팅 서비스가 현재 이용 불가능합니다.";
1193        }
1194
1195        frame.innerHTML = `
1196          <div class="flex-1 flex flex-col items-center justify-center p-6 text-center">
1197            <div class="w-16 h-16 mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center">
1198              <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-red-500 dark:text-red-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
1199                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
1200              </svg>
1201            </div>
1202            <p class="text-sm text-gray-600 dark:text-gray-400">${errorMessage}</p>
1203          </div>
1204        `;
1205      }
1206    });
1207  })();
1208</script>
1208
1209
1210</div>
1211
1212
1213<div class="w-full mx-auto bg-white dark:bg-stone-900 border-t border-gray-100 dark:border-gray-700">
1214  <div class="max-w-6xl w-full mx-auto grid grid-cols-4 gap-4 lg:gap-8 p-5 py-8 lg:py-16">
1215    <div class="col-span-4 md:col-span-2">
1216        <div class="mb-8 lg:mb-16 space-y-2">
1217          <b class="text-base text-black dark:text-white lg:text-xl">© 2026 피렌의 습관레터</b>
1218            <p class="text-gray-600 dark:text-gray-300">자연스럽게 습관을 만드는 인사이트를 주 1회 전해드립니다. </p>
1219          <div class="flex space-x-3 pt-2">
1220              <a href="https://www.threads.com/@piren.habit" target="_blank" rel="noopener noreferrer"
1221                 class="text-gray-600 dark:text-gray-400 hover:text-slate-900 dark:hover:text-slate-100 transition-colors duration-200"
1222                 title="threads.com/@piren.habit">
1223                <svg
1224  xmlns="http://www.w3.org/2000/svg"
1225  class="stroke-current flex-shrink-0 w-[18px] h-[18px]"
1226  viewBox="0 0 24 24"
1227  fill="none"
1228  stroke="#000000"
1229  stroke-width="1.5"
1230  stroke-linecap="round"
1231  stroke-linejoin="round"
1232>
1233  <path d="M19 7.5c-1.333 -3 -3.667 -4.5 -7 -4.5c-5 0 -8 2.5 -8 9s3.5 9 8 9s7 -3 7 -5s-1 -5 -7 -5c-2.5 0 -3 1.25 -3 2.5c0 1.5 1 2.5 2.5 2.5c2.5 0 3.5 -1.5 3.5 -5s-2 -4 -3 -4s-1.833 .333 -2.5 1" />
1234</svg>
1235
1236              </a>
1237            <a href="https://maily.so/piren.habit/feed"
1238               target="_blank" rel="noopener noreferrer"
1239               class="text-gray-600 dark:text-gray-400 hover:text-slate-900 dark:hover:text-slate-100 transition-colors duration-200"
1240               title="RSS">
1241              <svg
1242  xmlns="http://www.w3.org/2000/svg"
1243  class="stroke-current flex-shrink-0 w-[18px] h-[18px]"
1244  viewBox="0 0 24 24"
1245  fill="none"
1246  stroke="#000000"
1247  stroke-width="1.5"
1248  stroke-linecap="round"
1249  stroke-linejoin="round"
1250>
1251  <path d="M4 11a9 9 0 0 1 9 9" />
1252  <path d="M4 4a16 16 0 0 1 16 16" />
1253  <circle cx="5" cy="19" r="1" />
1254</svg>
1255
1256            </a>
1257          </div>
1258        </div>
1259      <p class="text-gray-400 text-xs flex">
1260        <a href="https://maily.so">
1261          <img alt="메일리 로고" class="inline-block dark:hidden h-7 w-auto" src="https://cdn.maily.so/images/green_logo.png" />
1262          <img alt="메일리 로고" class="hidden dark:inline-block h-7 w-auto" src="https://cdn.maily.so/images/white_logo.png" />
1263</a>      </p>
1264      <p class="mt-4 text-gray-600 dark:text-gray-400 text-sm space-x-2">
1265        <a class="hover:text-green-700 underline cursor-pointer" href="/app/guides">도움말</a>
1266        <a class="hover:text-green-700 underline cursor-pointer" href="/app/bug_reports/new">오류 및 기능 관련 제보</a>
1267      </p>
1268      <p class="mt-2 text-gray-600 dark:text-gray-400 text-sm space-x-2">
1269        <span class="">서비스 이용 문의</span><a class="text-gray-600 dark:text-gray-400" href="mailto:[email protected]">[email protected]</a>
1270        <a href="#" x-data @click.prevent="window.dispatchEvent(new CustomEvent('open-platform-chat'))" class="hover:text-green-700 underline cursor-pointer">채팅으로 문의하기</a>
1271      </p>
1272      <div class="mt-6 text-gray-600 dark:text-gray-400 text-xs leading-5">
1273        <div x-data="{ open: false }" class="mb-1">
1274          <p @click="open = !open"
1275             class="flex items-center cursor-pointer group">메일리 사업자 정보
1276            <svg x-show="!open" xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round">
1277              <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
1278              <path d="M6 9l6 6l6 -6" />
1279            </svg>
1280            <svg x-show="open" style="display: none;" xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 stroke-current" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
1281              <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
1282              <path d="M6 15l6 -6l6 6" />
1283            </svg>
1284          </p>
1285          <p x-show="open" style="display: none;">메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울특별시 송파구 위례광장로 199, 5층 501-2-31호</p>
1286        </div>
1287        <p>
1288          <a class="hover:text-green-700 underline cursor-pointer" href="/app/service_policy">이용약관</a>
1289          | <a class="hover:text-green-700 underline cursor-pointer" href="/app/privacy_agreement">개인정보처리방침</a>
1290          | <a class="hover:text-green-700 underline cursor-pointer" href="/app/auto_pay_agreement">정기결제 이용약관</a>
1291          | <a class="hover:text-green-700 underline cursor-pointer" href="/app/license">라이선스</a>
1292        </p>
1293      </div>
1294    </div>
1295  </div>
1296</div>
1297</body>
1298</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.