<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>프론트 개발 블로그</title>
    <link>https://maybe-b50.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 23 Jul 2026 22:49:51 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>maybe.b50</managingEditor>
    <item>
      <title>CORE WEB VITALS (웹 성능 지표)</title>
      <link>https://maybe-b50.tistory.com/173</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Core Web Vitals는 구글이 정의한 &lt;b&gt;웹페이지의 실제 사용자 경험 품질을 측정하는 3가지 핵심 지표&lt;/b&gt;예요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검색 순위(SEO)에도 영향을 미침.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. LCP (Largest Contentful Paint) &amp;mdash; 로딩 속도&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;뭘 측정하나&lt;/b&gt;: 화면에서 가장 큰 콘텐츠(보통 히어로 이미지, 큰 텍스트 블록)가 렌더링되는 시점&lt;/li&gt;
&lt;li&gt;&lt;b&gt;의미&lt;/b&gt;: &quot;사용자가 페이지의 주요 콘텐츠를 봤다고 느끼는 시점&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기준&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;좋음: 2.5초 이하&lt;/li&gt;
&lt;li&gt;개선 필요: 2.5~4초&lt;/li&gt;
&lt;li&gt;나쁨: 4초 초과&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원인&lt;/b&gt;: 느린 서버 응답, 렌더링 차단 CSS/JS, 최적화 안 된 이미지 등&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. INP (Interaction to Next Paint) &amp;mdash; 반응성&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;뭘 측정하나&lt;/b&gt;: 사용자가 클릭/탭/키 입력했을 때, 화면이 실제로 반응하기까지 걸리는 시간&lt;/li&gt;
&lt;li&gt;&lt;b&gt;의미&lt;/b&gt;: &quot;버튼 눌렀는데 왜 안 눌리지?&quot; 하는 그 느낌을 수치화한 것&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기준&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;좋음: 200ms 이하&lt;/li&gt;
&lt;li&gt;개선 필요: 200~500ms&lt;/li&gt;
&lt;li&gt;나쁨: 500ms 초과&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;참고&lt;/b&gt;: 2024년 3월부터 기존 FID(First Input Delay)를 대체한 지표예요. FID는 &quot;첫 입력까지의 지연&quot;만 봤다면, INP는 &lt;b&gt;페이지 생애 전체의 모든 인터랙션&lt;/b&gt;을 다 측정해서 더 엄격해요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원인&lt;/b&gt;: 무거운 JS 실행, 메인 스레드 블로킹, 불필요한 리렌더링(React에서 자주 발생)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. CLS (Cumulative Layout Shift) &amp;mdash; 시각적 안정성&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;뭘 측정하나&lt;/b&gt;: 페이지 로딩 중 요소들이 갑자기 움직이는 정도(레이아웃이 얼마나 &quot;덜컹거리는지&quot;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;의미&lt;/b&gt;: 글 읽으려는데 광고 로딩되면서 버튼이 밀려서 잘못 클릭되는 그 경험&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기준&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;좋음: 0.1 이하&lt;/li&gt;
&lt;li&gt;개선 필요: 0.1~0.25&lt;/li&gt;
&lt;li&gt;나쁨: 0.25 초과&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원인&lt;/b&gt;: 크기 지정 안 된 이미지/광고, 동적으로 삽입되는 콘텐츠, 웹폰트 로딩으로 인한 텍스트 리플로우&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;실무에서 자주 만나는 개선 포인트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지표 퍼블리싱/프론트엔드 관점 실전 팁&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LCP&lt;/td&gt;
&lt;td&gt;&amp;lt;img&amp;gt;에 width/height 명시, 이미지 lazy loading, 폰트 preload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INP&lt;/td&gt;
&lt;td&gt;이벤트 핸들러 안에서 무거운 연산 피하기, React라면 useMemo/useCallback으로 불필요한 재계산 줄이기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLS&lt;/td&gt;
&lt;td&gt;이미지/광고 영역 aspect-ratio로 미리 확보, 웹폰트는 font-display: swap + 폴백 폰트 크기 맞추기&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;측정은 크롬 개발자도구의 &lt;b&gt;Lighthouse&lt;/b&gt; 탭이나 &lt;b&gt;PageSpeed Insights&lt;/b&gt;에서 바로 확인 가능해요. 실제 유저 데이터 기준으로 보려면 &lt;b&gt;Chrome UX Report(CrUX)&lt;/b&gt; 나 구글 서치 콘솔의 &quot;핵심 웹 지표&quot; 리포트를 보시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #121212; color: #f8f8f6; text-align: start;&quot;&gt;ender-blocking requests- est saving of 580 ms Requests are blocking the page's initial render, which may delay LCP. Deferring of inliinging can move these network reqeusts out of the critial path. FCP / LCP, unscored &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Works</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/173</guid>
      <comments>https://maybe-b50.tistory.com/173#entry173comment</comments>
      <pubDate>Mon, 13 Jul 2026 10:05:50 +0900</pubDate>
    </item>
    <item>
      <title>You're loading fonts wrong(and it's cripping your performance)</title>
      <link>https://maybe-b50.tistory.com/166</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;글꼴 설정이 왜 잘못되었는지, 이를 수정하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.jonoalderson.com/performance/youre-loading-fonts-wrong/?utm_source=Nomad+Academy&amp;amp;utm_campaign=6c590e1186-EMAIL_CAMPAIGN_2025_09_05&amp;amp;utm_medium=email&amp;amp;utm_term=0_4313d957c9-7ac123137e-158246701&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.jonoalderson.com/performance/youre-loading-fonts-wrong/?utm_source=Nomad+Academy&amp;amp;utm_campaign=6c590e1186-EMAIL_CAMPAIGN_2025_09_05&amp;amp;utm_medium=email&amp;amp;utm_term=0_4313d957c9-7ac123137e-158246701&lt;/a&gt;&lt;/p&gt;</description>
      <category>Works</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/166</guid>
      <comments>https://maybe-b50.tistory.com/166#entry166comment</comments>
      <pubDate>Sun, 14 Sep 2025 21:50:53 +0900</pubDate>
    </item>
    <item>
      <title>MUI - material UI, MUI base, JOY UI, MUI System 차이</title>
      <link>https://maybe-b50.tistory.com/165</link>
      <description>&lt;div&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;562&quot; data-start=&quot;142&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;562&quot; data-start=&quot;202&quot;&gt;
&lt;tr data-end=&quot;301&quot; data-start=&quot;202&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;239&quot; data-start=&quot;202&quot;&gt;&lt;b&gt;Material UI&lt;/b&gt;&lt;br /&gt;(@mui/material)&lt;/td&gt;
&lt;td data-end=&quot;268&quot; data-start=&quot;239&quot; data-col-size=&quot;sm&quot;&gt;구글 &lt;b&gt;머티리얼 디자인&lt;/b&gt; 기반 UI 컴포넌트&lt;/td&gt;
&lt;td data-end=&quot;301&quot; data-start=&quot;268&quot; data-col-size=&quot;sm&quot;&gt;가장 널리 쓰임. 버튼, 다이얼로그, 셀렉트 등 포함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;385&quot; data-start=&quot;302&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;332&quot; data-start=&quot;302&quot;&gt;&lt;b&gt;MUI Base&lt;/b&gt;&lt;br /&gt;(@mui/base)&lt;/td&gt;
&lt;td data-end=&quot;356&quot; data-start=&quot;332&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;스타일 없는&lt;/b&gt; 순수 기능 컴포넌트&lt;/td&gt;
&lt;td data-end=&quot;385&quot; data-start=&quot;356&quot; data-col-size=&quot;sm&quot;&gt;스타일링 자유도 높음 (headless UI)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;470&quot; data-start=&quot;386&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;413&quot; data-start=&quot;386&quot;&gt;&lt;b&gt;Joy UI&lt;/b&gt;&lt;br /&gt;(@mui/joy)&lt;/td&gt;
&lt;td data-end=&quot;440&quot; data-start=&quot;413&quot; data-col-size=&quot;sm&quot;&gt;MUI 팀이 만든 &lt;b&gt;다른 디자인 시스템&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;470&quot; data-start=&quot;440&quot; data-col-size=&quot;sm&quot;&gt;머티리얼이 아닌, 감성적이고 우아한 UI 디자인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;562&quot; data-start=&quot;471&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;505&quot; data-start=&quot;471&quot;&gt;&lt;b&gt;MUI System&lt;/b&gt;&lt;br /&gt;(@mui/system)&lt;/td&gt;
&lt;td data-end=&quot;536&quot; data-start=&quot;505&quot; data-col-size=&quot;sm&quot;&gt;스타일 유틸리티 (spacing, layout 등)&lt;/td&gt;
&lt;td data-end=&quot;562&quot; data-start=&quot;536&quot; data-col-size=&quot;sm&quot;&gt;Emotion 기반의 스타일링 도구 모음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>React</category>
      <category>JOYUI</category>
      <category>MaterialUI</category>
      <category>MUI</category>
      <category>MUIbase</category>
      <category>MUISystem</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/165</guid>
      <comments>https://maybe-b50.tistory.com/165#entry165comment</comments>
      <pubDate>Fri, 25 Jul 2025 09:14:49 +0900</pubDate>
    </item>
    <item>
      <title>PMG 공정도란?</title>
      <link>https://maybe-b50.tistory.com/164</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. PMG = Project Master Gantt 의 약자로 전체 프로젝트의 공정(Plan &amp;amp; Schedule)을 Gantt Chart 형식으로 정리한 마스터 일정표를 말함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공정도란? 작업 순서와 기간을 시각적으로 표현한 도표. 일반적으로 Gantt 차트 형태.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PMG 공정도&lt;/b&gt;는 보통 다음 내용을 포함합니다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;424&quot; data-start=&quot;313&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;351&quot; data-start=&quot;313&quot;&gt;전체 작업(WBS: Work Breakdown Structure)&lt;/li&gt;
&lt;li data-end=&quot;369&quot; data-start=&quot;354&quot;&gt;각 작업의 시작일/종료일&lt;/li&gt;
&lt;li data-end=&quot;393&quot; data-start=&quot;372&quot;&gt;선행 작업/후속 작업 간 의존 관계&lt;/li&gt;
&lt;li data-end=&quot;405&quot; data-start=&quot;396&quot;&gt;주요 마일스톤&lt;/li&gt;
&lt;li data-end=&quot;424&quot; data-start=&quot;408&quot;&gt;일정 지연/진행률 표시 등&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Works</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/164</guid>
      <comments>https://maybe-b50.tistory.com/164#entry164comment</comments>
      <pubDate>Fri, 9 May 2025 08:55:05 +0900</pubDate>
    </item>
    <item>
      <title>[Eclipse] 이클립스 compare 화면 안보일 때</title>
      <link>https://maybe-b50.tistory.com/160</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;소스 충돌 해결 하고자 compare 화면을 보고자 했는데 소스 비교 화면이 보이질 않음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이클립스가 평소에도 느려서 이클립스 문젠가 싶었는데, Javascript 비교 버그 중 하나라고(StackOverflow) 함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;window &amp;gt;&amp;gt;&amp;nbsp; preferences &amp;gt;&amp;gt; compare/Patch&amp;nbsp;&lt;/li&gt;
&lt;li&gt;open structure compare automatically 체크박스 해제&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image001.png&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;715&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m9MHz/btrSmYXByoF/97cFBoztWWbU0zoo8xKQY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m9MHz/btrSmYXByoF/97cFBoztWWbU0zoo8xKQY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m9MHz/btrSmYXByoF/97cFBoztWWbU0zoo8xKQY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm9MHz%2FbtrSmYXByoF%2F97cFBoztWWbU0zoo8xKQY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;675&quot; height=&quot;715&quot; data-filename=&quot;image001.png&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;715&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(읽어보기)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; Javascript 비교 관련 버그라고 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/10457639/eclipse-compare-editor-stopped-showing-detailed-differences&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://stackoverflow.com/questions/10457639/eclipse-compare-editor-stopped-showing-detailed-differences&lt;/a&gt;&lt;/p&gt;</description>
      <category>Works</category>
      <category>Eclipse Bug</category>
      <category>Eclipse Compare View</category>
      <category>이클립스</category>
      <category>이클립스 소스 비교 안보일 때</category>
      <category>이클립스Compare</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/160</guid>
      <comments>https://maybe-b50.tistory.com/160#entry160comment</comments>
      <pubDate>Tue, 29 Nov 2022 16:45:34 +0900</pubDate>
    </item>
    <item>
      <title>SASS Function을 활용한 px  -&amp;gt; rem 단위 변환</title>
      <link>https://maybe-b50.tistory.com/156</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;SASS Function을 활용한 px&amp;nbsp; -&amp;gt; rem 단위 변환&lt;/h4&gt;
&lt;pre id=&quot;code_1666672428442&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// px to rem
$rem-base: 16px !default;

// STRIP UNIT 
// 측정 단위를 제거하고 반환 
@function strip-unit($num) {
    @return $num / ($num * 0 + 1);  // 10 / 10 * 0 + 1 
}

// CONVERT TO REM
@function convert-to-rem($value, $base-value: $rem-base) {  
    $value: strip-unit($value) / strip-unit($base-value) * 1rem; 
    @if($value == 0rem) {
        $value: 0;
    }
    @return $value;
}

// REM CALC
// rem-calc(10 20 30px 40);
// rem-calc(10);
@function rem-calc($values, $base-value: $rem-base) {
    $max: length($values); 
    @if $max == 1 {
        @return convert-to-rem(nth($values, 1), $base-value);  
    }
    $remValues: ();
    @for $i from 1 through $max {
        $remValues: append($remValues, convert-to-rem(nth($values, $i), $base-value));
    }
    @return $remValues;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;설명&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SASS의 Function 기능을 활용하여 디자인 상에 표현되는 px 값을 rem 으로 자동 변환하여 플렉시블 하게 여백 값을 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디자인 상 h1 요소에 padding-top 의 값이 10px 로 표현 되어 있을 때, 아래와 같이 rem-calc 함수를 통해 padding-top 값을 작성한다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1666672644803&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;h1 {padding-top: rem-clac(10);}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;rem-calc 함수 설명&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1666672940964&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$rem-base: 16px !default;

@function rem-calc($values, $base-value: $rem-base) {
    $max: length($values); 
    @if $max == 1 {
        @return convert-to-rem(nth($values, 1), $base-value);  
    }
    $remValues: ();
    @for $i from 1 through $max {
        $remValues: append($remValues, convert-to-rem(nth($values, $i), $base-value));
    }
    @return $remValues;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;nbsp;$rem-base 의 값은 브라우저의 기본 폰트 크기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- length() 는 해당 리스트의 갯수를 반환한다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- nth($list, $n) 는 두번째 값이 n이고 두번째 값의 n번째 인덱스 값을 반환함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- append($list, $value) 는 리스트 마지막 요소의 $value 를 추가 함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-1. $max 값이 1과 같을 경우 convert-to-rem 함수 리턴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-2. $max 값이 1이 아닌 경우 for 문을 통해서 $max 수까지 반복하여 $remValues에 아래의 값이 append 됨&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;convert-to-rem 함수 설명&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1666674129834&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// STRIP UNIT 
// 측정 단위를 제거하고 반환 
@function strip-unit($num) {
    @return $num / ($num * 0 + 1);   // 16px / (16px * 0 + 1)
}

// CONVERT TO REM
@function convert-to-rem($value, $base-value: $rem-base) {  
	// convert-to-rem(nth(10, 1), 16)
    // convert-to-rem(10, 16)
    
    $value: strip-unit(10) / strip-unit(16) * 1rem;  // 1 / 16 * 1 = 0.625rem
    @if($value == 0rem) {
        $value: 0;
    }
    @return $value;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SASS 에서 단위를 제거 하려면 1로 나눠야지 제거 가능함. (하기 strip-unit-function 참고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://css-tricks.com/snippets/sass/strip-unit-function/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://css-tricks.com/snippets/sass/strip-unit-function/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sass-lang.com/documentation/values/lists#access-an-element&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://sass-lang.com/documentation/values/lists#access-an-element&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://megaton111.cafe24.com/2017/01/16/sass-%EB%AC%B8%EB%B2%95-%EB%82%B4%EC%9E%A5%ED%95%A8%EC%88%98%ED%99%9C%EC%9A%A9-%EB%B9%88%EB%8F%84%EA%B0%80-%EB%86%92%EC%9D%80-%ED%95%A8%EC%88%98%EB%93%A4/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://megaton111.cafe24.com/2017/01/16/sass-%EB%AC%B8%EB%B2%95-%EB%82%B4%EC%9E%A5%ED%95%A8%EC%88%98%ED%99%9C%EC%9A%A9-%EB%B9%88%EB%8F%84%EA%B0%80-%EB%86%92%EC%9D%80-%ED%95%A8%EC%88%98%EB%93%A4/&lt;/a&gt;&lt;/p&gt;</description>
      <category>Works</category>
      <category>css</category>
      <category>px rem 변환</category>
      <category>Sass</category>
      <category>scss</category>
      <category>SCSS Function</category>
      <category>진짜유용하다</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/156</guid>
      <comments>https://maybe-b50.tistory.com/156#entry156comment</comments>
      <pubDate>Tue, 25 Oct 2022 14:16:41 +0900</pubDate>
    </item>
    <item>
      <title>[git error] github에 README.md 파일 생성 후 push rejected 발생</title>
      <link>https://maybe-b50.tistory.com/155</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jobc.tistory.com/177&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://jobc.tistory.com/177&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1666577133742&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;git push, pull (fatal: refusing to merge unrelated histories) 에러&quot; data-og-description=&quot;원격 저장소를 remote로 설정하고 바로 push를 하면 몇가지 오류가 발생할 수도 있다. 예를 들어 아래와 같은 오류 메시지이다. 1 2 ! [rejected] master -&amp;gt; master (non-fast-forward) error: failed to push som..&quot; data-og-host=&quot;jobc.tistory.com&quot; data-og-source-url=&quot;https://jobc.tistory.com/177&quot; data-og-url=&quot;https://jobc.tistory.com/177&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ENILH/hyQhzDM9tW/kLpGKHf4l3qit4n2MR6PvK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/923hg/hyQhGCURit/spAj1ZZZs68euJBXe4SF61/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://jobc.tistory.com/177&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jobc.tistory.com/177&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ENILH/hyQhzDM9tW/kLpGKHf4l3qit4n2MR6PvK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/923hg/hyQhGCURit/spAj1ZZZs68euJBXe4SF61/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;git push, pull (fatal: refusing to merge unrelated histories) 에러&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;원격 저장소를 remote로 설정하고 바로 push를 하면 몇가지 오류가 발생할 수도 있다. 예를 들어 아래와 같은 오류 메시지이다. 1 2 ! [rejected] master -&amp;gt; master (non-fast-forward) error: failed to push som..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jobc.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위으 블로그 덕분에 해결할 수 있었음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. git push origin main 실행 시 아래와 같이 rejected 발생&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1666577153073&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;! [rejected]        main -&amp;gt; main (non-fast-forward)
error: failed to push some refs to 'https://github.com/xxx/xxx.git'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Github에서 Repository 생성 시 README.md 파일 생성 함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 로컬 저장소에서 셋팅 된 소스를 push 하려고 했는데 위와 같이 rejected 되었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- non-fast-foward : 원격 저장소의 main 브랜치가 로컬 저장소의 버전보다 이전버전이 아니다 라는 의미&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 원격저장소에서 생성한 readme.md 파일의 이력이 로컬 저장소의 커밋 이력에는 없기 때문에 발생 된 에러.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결방법으로 readme.md 파일이 없이 저장소를 만들고 push 하거나 원격저장소의 마지막 commit(README.md 커밋이력)을 로컬 저장소의 commit 로그의 맨 앞으로 받아오는 방법이 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. git pull 로 원격저장소 이력을 가져오려고 했더니, 관련없는 히스토리이므로 merge 가 거부됨&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1666577992957&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git pull origin main
fatal: refusing to merge unrelated histories&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- pull 명령어는 fetch + merge 를 한꺼번에 처리하는 명령어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- mege는 로컬 저장소와 원격 저장소가 공통으로 가지고 있는 commit 지점이 존재해야 그 지점부터 병합을 시도하기 때문에 위의 경우 pull 명령어를 사용할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. pull 명령어에 옵션을 추가해 강제로 pull 함&lt;/p&gt;
&lt;pre id=&quot;code_1666578264605&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git pull origin (branchname) --allow-unrelated-histories&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 강제로 pull 했을 때 로컬저장소 README.md 파일과 원격저장소 README.md 파일이 충돌하여 conflict 발생함&lt;/p&gt;
&lt;pre id=&quot;code_1666578316937&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;* branch            main       -&amp;gt; FETCH_HEAD
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 충돌난 부분 수정하여 다시 add, commit 하여 push 함&amp;nbsp;&lt;/p&gt;</description>
      <category>Works</category>
      <category>git error</category>
      <category>git rejected</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/155</guid>
      <comments>https://maybe-b50.tistory.com/155#entry155comment</comments>
      <pubDate>Mon, 24 Oct 2022 11:37:33 +0900</pubDate>
    </item>
    <item>
      <title>[JSP] 서블릿 예외처리 response.sendError()</title>
      <link>https://maybe-b50.tistory.com/152</link>
      <description>&lt;h3 id=&quot;responsesenderrorhttp-상태-코드-오류-메시지&quot; data-ke-size=&quot;size23&quot;&gt;response.sendError(HTTP상태코드, 에러메세지)&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;HttpServletResponse : HTTP 응답정보를 처리하는 객체&lt;/h3&gt;
&lt;pre id=&quot;code_1665549571729&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%
response.sendError(HttpServletResponse.SC_FORBIDDEN); // 403 에러 발생 
response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404 에러 발생 
%&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@jihyeonee/%EC%8A%A4%ED%94%84%EB%A7%81-MVC-2%ED%8E%B8-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC%EC%99%80-%EC%98%A4%EB%A5%98-%ED%8E%98%EC%9D%B4%EC%A7%80&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@jihyeonee/%EC%8A%A4%ED%94%84%EB%A7%81-MVC-2%ED%8E%B8-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC%EC%99%80-%EC%98%A4%EB%A5%98-%ED%8E%98%EC%9D%B4%EC%A7%80&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletResponse.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletResponse.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Works</category>
      <category>HttpServletResponse</category>
      <category>jsp</category>
      <category>response.sendError()</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/152</guid>
      <comments>https://maybe-b50.tistory.com/152#entry152comment</comments>
      <pubDate>Wed, 12 Oct 2022 13:50:36 +0900</pubDate>
    </item>
    <item>
      <title>Javascript 중복 클릭 방지</title>
      <link>https://maybe-b50.tistory.com/148</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://itworldyo.tistory.com/136&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://itworldyo.tistory.com/136&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1664244752862&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;submit 중복 클릭 막기&quot; data-og-description=&quot;submit&amp;nbsp;중복&amp;nbsp;클릭&amp;nbsp;막기 중복 클릭으로 인해 가장 많이 발생하는 문제가 있습니다. 폼을 전송할 때 클릭이 2번 이상 발생하면서 폼이 2번 전송되어 2중으로 저장되는 경우입니다. 이러한 경우에 &quot; data-og-host=&quot;itworldyo.tistory.com&quot; data-og-source-url=&quot;https://itworldyo.tistory.com/136&quot; data-og-url=&quot;https://itworldyo.tistory.com/136&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Tdp2r/hyPWNVRC95/jXW7Bkb1I3E4aBIgWIjlk0/img.png?width=800&amp;amp;height=536&amp;amp;face=0_0_800_536,https://scrap.kakaocdn.net/dn/KxK5Y/hyPWFXP1SU/4Kqz014e2p3pJJrUOlKuyK/img.png?width=800&amp;amp;height=536&amp;amp;face=0_0_800_536,https://scrap.kakaocdn.net/dn/beW2Fb/hyPWMvTsv7/VuuTWZeakCSLCQCz5FxDEk/img.png?width=1543&amp;amp;height=1035&amp;amp;face=0_0_1543_1035&quot;&gt;&lt;a href=&quot;https://itworldyo.tistory.com/136&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://itworldyo.tistory.com/136&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Tdp2r/hyPWNVRC95/jXW7Bkb1I3E4aBIgWIjlk0/img.png?width=800&amp;amp;height=536&amp;amp;face=0_0_800_536,https://scrap.kakaocdn.net/dn/KxK5Y/hyPWFXP1SU/4Kqz014e2p3pJJrUOlKuyK/img.png?width=800&amp;amp;height=536&amp;amp;face=0_0_800_536,https://scrap.kakaocdn.net/dn/beW2Fb/hyPWMvTsv7/VuuTWZeakCSLCQCz5FxDEk/img.png?width=1543&amp;amp;height=1035&amp;amp;face=0_0_1543_1035');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;submit 중복 클릭 막기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;submit&amp;nbsp;중복&amp;nbsp;클릭&amp;nbsp;막기 중복 클릭으로 인해 가장 많이 발생하는 문제가 있습니다. 폼을 전송할 때 클릭이 2번 이상 발생하면서 폼이 2번 전송되어 2중으로 저장되는 경우입니다. 이러한 경우에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;itworldyo.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버튼 클릭 시 중복 이벤트 방지&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1664244980549&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 클릭 시 버튼 비활성화
	$('#btn').prop('disable', true);


OR 

const btnElem = document.querySelector('#btn');
btnElem.addEventListener('click', function(e) {
	this.setAttribute(&quot;disabled&quot;, &quot;disabled&quot;);
    // Submit 
});&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Javascript</category>
      <category>JavaScript</category>
      <category>중복이벤트</category>
      <category>중복클릭방지</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/148</guid>
      <comments>https://maybe-b50.tistory.com/148#entry148comment</comments>
      <pubDate>Tue, 27 Sep 2022 11:17:30 +0900</pubDate>
    </item>
    <item>
      <title>Galaxy Flip viewport size</title>
      <link>https://maybe-b50.tistory.com/144</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;기종&lt;/td&gt;
&lt;td&gt;Viewport&lt;br /&gt;화면 사이즈 (W x H)&lt;/td&gt;
&lt;td&gt;해상도 Phys. (W x H)&lt;/td&gt;
&lt;td&gt;인치&lt;/td&gt;
&lt;td&gt;DPR&lt;br /&gt;(Device Pixel Ratio)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&amp;nbsp;Galaxy Flip3&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;384&lt;span&gt;&amp;nbsp;&lt;/span&gt;x 939&lt;/td&gt;
&lt;td&gt;&amp;nbsp;1080 x 2640&lt;br /&gt;&amp;nbsp;260&lt;span&gt;&amp;nbsp;&lt;/span&gt;x 512&lt;/td&gt;
&lt;td&gt;6.7&lt;/td&gt;
&lt;td&gt;2.8125&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;Galaxy Flip2&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;6.7&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;Galaxy Flip&lt;/td&gt;
&lt;td&gt;&amp;nbsp;412 x 1004&lt;/td&gt;
&lt;td&gt;&amp;nbsp;1080 x 2636&lt;br /&gt;&amp;nbsp;112 x 300&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;6.7&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;&amp;nbsp;Galaxy Z Fold3&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&amp;nbsp;접힌화면&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;320&lt;span&gt;&amp;nbsp;&lt;/span&gt;x 872&lt;br /&gt;&lt;span&gt;&amp;nbsp;넓은화면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;674&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;x&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;842&lt;/td&gt;
&lt;td&gt;&amp;nbsp;접힌화면 840 x 2289&lt;br /&gt;&amp;nbsp;넓은화면 1769.25 x 2210.25&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;2.625&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&amp;nbsp;Galaxy Z Fold2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;884 x 1104&lt;/td&gt;
&lt;td&gt;&amp;nbsp;1768 x 2208&lt;/td&gt;
&lt;td&gt;7.6&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&amp;nbsp;Galaxy Fold&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;768 x 1076&lt;/td&gt;
&lt;td&gt;&amp;nbsp;1536 x 2152&lt;/td&gt;
&lt;td&gt;7.3&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Works</category>
      <category>갤럭시폴드해상도</category>
      <category>폴드Viewport</category>
      <author>maybe.b50</author>
      <guid isPermaLink="true">https://maybe-b50.tistory.com/144</guid>
      <comments>https://maybe-b50.tistory.com/144#entry144comment</comments>
      <pubDate>Fri, 2 Sep 2022 09:46:25 +0900</pubDate>
    </item>
  </channel>
</rss>