<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://blog.copybee.dev/blog/development</id>
    <title>Copybee Blog Blog</title>
    <updated>2026-01-02T15:41:04.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://blog.copybee.dev/blog/development"/>
    <subtitle>Copybee Blog Blog</subtitle>
    <icon>https://blog.copybee.dev/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[커리어에 대한 생각과 정리]]></title>
        <id>https://blog.copybee.dev/blog/development/커리어에 대한 생각과 정리</id>
        <link href="https://blog.copybee.dev/blog/development/커리어에 대한 생각과 정리"/>
        <updated>2026-01-02T15:41:04.000Z</updated>
        <summary type="html"><![CDATA[https://news.hada.io/topic?id=25262]]></summary>
        <content type="html"><![CDATA[<p><a href="https://news.hada.io/topic?id=25262" target="_blank" rel="noopener noreferrer" class="">https://news.hada.io/topic?id=25262</a></p>
<p>위 글을 읽고 내 커리어에 대한 생각을 한번 정리해보자.</p>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="development" term="development"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[web3.0 을 활용한 블로그 서비스]]></title>
        <id>https://blog.copybee.dev/blog/development/개발 아이디어/web3.0 을 활용한 블로그 서비스</id>
        <link href="https://blog.copybee.dev/blog/development/개발 아이디어/web3.0 을 활용한 블로그 서비스"/>
        <updated>2026-01-02T14:48:01.000Z</updated>
        <summary type="html"><![CDATA[- [ ]  Web 3.0 + 블록체인을 이용한 블로그 플랫폼 개발?]]></summary>
        <content type="html"><![CDATA[<ul class="contains-task-list containsTaskList_pzhI">
<li class="task-list-item">
<p><input type="checkbox" disabled=""> <!-- --> Web 3.0 + 블록체인을 이용한 블로그 플랫폼 개발?</p>
<p>앞으로는 text 로 된걸 더 선호하려나?</p>
<p>아니면 SNS 처럼 짧은걸로도 ㅇㅇ</p>
<p>뭐가 되었건 내가 쓴 글의 소유권을 가지고 싶어할듯</p>
<p>이런 서비스를 개발하면서 크립토 + web3 공부해보면 좋을듯ㅇㅇ</p>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div></div>
</li>
</ul>
<p>근데 진짜로 사람들이 내 글이라고 소유권을 느낄까?</p>
<p>거기서 돈을 어떻게 벌지? 차라리 플러그인으로 <code>커피 보내기</code> 같은게 더 나은거 아닐까?</p>
<p>:::</p>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="development" term="development"/>
        <category label="개발 아이디어" term="개발 아이디어"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[링크별 생각 정리]]></title>
        <id>https://blog.copybee.dev/blog/development/개발 아이디어/링크별 생각 정리</id>
        <link href="https://blog.copybee.dev/blog/development/개발 아이디어/링크별 생각 정리"/>
        <updated>2026-01-02T14:47:35.000Z</updated>
        <summary type="html"><![CDATA[- [ ]  링크별 내 생각을 정리하는 메모장을 만들어볼까?]]></summary>
        <content type="html"><![CDATA[<ul class="contains-task-list containsTaskList_pzhI">
<li class="task-list-item">
<p><input type="checkbox" disabled=""> <!-- --> 링크별 내 생각을 정리하는 메모장을 만들어볼까?</p>
<p>우측 하단에 … 을 만들고, 클릭하면 임시로 붙여넣을 수 있는 메모장을 만드는거지</p>
<p>링크 단위로 관리할 수 있고ㅇㅇ</p>
</li>
</ul>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="development" term="development"/>
        <category label="개발 아이디어" term="개발 아이디어"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[투자 SNS]]></title>
        <id>https://blog.copybee.dev/blog/development/개발 아이디어/투자 SNS</id>
        <link href="https://blog.copybee.dev/blog/development/개발 아이디어/투자 SNS"/>
        <updated>2026-01-02T13:17:30.000Z</updated>
        <summary type="html"><![CDATA[어떠한 이슈가 있을때 글을 쓰고,]]></summary>
        <content type="html"><![CDATA[<p>어떠한 이슈가 있을때 글을 쓰고,
그 아이디어가 끝나면 완료를 눌러 해당 시점에 재료가 소멸했다고 표시</p>
<p>그리고 그 기간의 종가를 기준으로 매매했을떄의 수익률을 계산해서 보여주면 재밋을듯</p>
<p>내 프로필에 들어가면 승률 / 기간별 수익률 평균 등을 볼 수 있는거지</p>
<p>종목 테그 기반의 SNS 플랫폼 재밋을듯</p>
<p>시장 지수 대비해서 얼마나 추가로 수익을 냈는지도 보면 재밋을듯</p>
<p>매매원칙에 대해서 조회하는 페이지를 개발하자</p>
<h2 class="anchor anchorTargetStickyNavbar_PlYP" id="매매원칙-탐지기">매매원칙 탐지기<a href="https://blog.copybee.dev/blog/development/%EA%B0%9C%EB%B0%9C%20%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4/%ED%88%AC%EC%9E%90%20SNS#%EB%A7%A4%EB%A7%A4%EC%9B%90%EC%B9%99-%ED%83%90%EC%A7%80%EA%B8%B0" class="hash-link" aria-label="Direct link to 매매원칙 탐지기" title="Direct link to 매매원칙 탐지기" translate="no">​</a></h2>
<p>매매 원칙에 따라서 어떤 이평선을 기준으로 했을때</p>
<ul>
<li class="">가장 수익률이 극대화 되는가?</li>
<li class="">가장 리스크가 최소화 되는가?</li>
<li class="">승률이 높은거</li>
</ul>
<p>기간별로 일봉 주봉 월봉 으로 산출</p>
<p>차트에 보이는 기간동안의 고점 저점 평균 값을 표시
이동하면서 변하는 값을 같이 보여주도록...!</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="차트-라이브러리">차트 라이브러리<a href="https://blog.copybee.dev/blog/development/%EA%B0%9C%EB%B0%9C%20%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4/%ED%88%AC%EC%9E%90%20SNS#%EC%B0%A8%ED%8A%B8-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC" class="hash-link" aria-label="Direct link to 차트 라이브러리" title="Direct link to 차트 라이브러리" translate="no">​</a></h3>
<ul>
<li class="">trading view 기본꺼 사용?</li>
<li class="">react finance chart 써도 됨</li>
</ul>
<p>음... 고민되긴 하네</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="자산군별-표시">자산군별 표시<a href="https://blog.copybee.dev/blog/development/%EA%B0%9C%EB%B0%9C%20%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4/%ED%88%AC%EC%9E%90%20SNS#%EC%9E%90%EC%82%B0%EA%B5%B0%EB%B3%84-%ED%91%9C%EC%8B%9C" class="hash-link" aria-label="Direct link to 자산군별 표시" title="Direct link to 자산군별 표시" translate="no">​</a></h3>
<ul>
<li class="">
<p>금 / 은 / 구리</p>
</li>
<li class="">
<p>국내 주식 / 해외주식</p>
</li>
<li class="">
<p>비트코인 / 이더리움 / 알트코인</p>
</li>
<li class="">
<p>국내 채권 / 해외 채권</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="msci-리벨런싱-조회용-조건식">MSCI 리벨런싱 조회용 조건식<a href="https://blog.copybee.dev/blog/development/%EA%B0%9C%EB%B0%9C%20%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4/%ED%88%AC%EC%9E%90%20SNS#msci-%EB%A6%AC%EB%B2%A8%EB%9F%B0%EC%8B%B1-%EC%A1%B0%ED%9A%8C%EC%9A%A9-%EC%A1%B0%EA%B1%B4%EC%8B%9D" class="hash-link" aria-label="Direct link to MSCI 리벨런싱 조회용 조건식" title="Direct link to MSCI 리벨런싱 조회용 조건식" translate="no">​</a></h3>
<ul>
<li class="">
<p>조건식</p>
<p>편입 조건</p>
<ul>
<li class="">4<del>5조 정도? (그럼 2</del>3조 + @ 가 있는 기업)<!-- -->
<ul>
<li class="">그럼 2~4조 정도 되는 기업들을 찾아봐야함</li>
</ul>
</li>
<li class="">스토리가 있는 기업??</li>
<li class="">단기 급등은 제외</li>
</ul>
<p>누가 계속 이거 관련해서 올리는건가;; 근데 왜 말이 다르지ㅋㅋ;;</p>
<ul>
<li class="">2~3조 사이의 시가총액</li>
<li class="">섹터 시황이 좋은가 + 트레이딩 아이디어가 존재하는가?</li>
<li class="">보고서 + 수급 → 시가총액 4~5조 → 차트 매매(매도)</li>
</ul>
</li>
</ul>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="development" term="development"/>
        <category label="개발 아이디어" term="개발 아이디어"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[2025 Toss 개발 컨퍼런스 후기 정리]]></title>
        <id>https://blog.copybee.dev/blog/development/후기/2025 Toss 개발 컨퍼런스 후기 정리</id>
        <link href="https://blog.copybee.dev/blog/development/후기/2025 Toss 개발 컨퍼런스 후기 정리"/>
        <updated>2026-01-02T12:57:56.000Z</updated>
        <summary type="html"><![CDATA[Native ESM에 올라탄 마이크로 프론트엔드]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_PlYP" id="native-esm에-올라탄-마이크로-프론트엔드"><strong>Native ESM에 올라탄 마이크로 프론트엔드</strong><a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#native-esm%EC%97%90-%EC%98%AC%EB%9D%BC%ED%83%84-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C" class="hash-link" aria-label="Direct link to native-esm에-올라탄-마이크로-프론트엔드" title="Direct link to native-esm에-올라탄-마이크로-프론트엔드" translate="no">​</a></h2>
<blockquote>
<p><strong>토스증권의 마이크로 프론트엔드 아키텍쳐(MFA), 어떻게 구현되었을까요? Navtive ESM과 Import Map을 활용해 매우 큰 규모의 코드에서도 Silo별 독립 배포, 쾌적한 개발 환경, 빠른 사용자 경험을 동시에 달성한 과정을 소개합니다.</strong></p>
</blockquote>
<p>기존 1개 프로젝트 문제</p>
<ul>
<li class="">배포시 PR 이 여러개 중복</li>
<li class="">변경 영향도 증가</li>
<li class="">빌드시간 + 배포시간</li>
</ul>
<p>마이크로 프론트엔드로 전환</p>
<p>도메인 분할 단위를 어떻게 가져갈 것인가?</p>
<p>⇒ Page 단위가 가장 적합했음</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="런타임-통합">런타임 통합<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EB%9F%B0%ED%83%80%EC%9E%84-%ED%86%B5%ED%95%A9" class="hash-link" aria-label="Direct link to 런타임 통합" title="Direct link to 런타임 통합" translate="no">​</a></h3>
<p>각 페이지별 넘어가는게 많아서 js를 활용한 런타임 통합</p>
<p>SPA 처럼 동적으로 laze하게 불러오는 느낌으로 함</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="native-esm">Native ESM<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#native-esm" class="hash-link" aria-label="Direct link to Native ESM" title="Direct link to Native ESM" translate="no">​</a></h3>
<p>브라우저 ESM → 실행시점에 모듈을 다운로드</p>
<div class="language-jsx codeBlockContainer_odWx theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_q8oI"><pre tabindex="0" class="prism-code language-jsx codeBlock_XvAK thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ov2Q"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">B</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://exmaple.com/hello.js"</span><br></div></code></pre></div></div>
<p>위와같이 불러와서 처리함</p>
<p>해당 js를 보는 시점에 js 값을 불러옴</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="import-map">Import map<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#import-map" class="hash-link" aria-label="Direct link to Import map" title="Direct link to Import map" translate="no">​</a></h3>
<p>다운로드 될 내용을 직접 적용 가능함</p>
<div class="language-jsx codeBlockContainer_odWx theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_q8oI"><pre tabindex="0" class="prism-code language-jsx codeBlock_XvAK thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ov2Q"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">script</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">type</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">importmap</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text"> "imports": {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">   "@mfa/app-a": "/app-a.js</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">script</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<p>위와같이 불러옴</p>
<p>결국 import map을 어떻게 제공해주느냐가 문제임</p>
<p>⇒ 토스에서는 HTML 에서 서빙함</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="라우팅-테이블">라우팅 테이블<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EB%9D%BC%EC%9A%B0%ED%8C%85-%ED%85%8C%EC%9D%B4%EB%B8%94" class="hash-link" aria-label="Direct link to 라우팅 테이블" title="Direct link to 라우팅 테이블" translate="no">​</a></h3>
<p>해당 페이지로 접근했을때 app 을 동적으로 로드함</p>
<p>host app과 client app 간의 결합은 importmap 을 사용함</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="페이지-이동">페이지 이동<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%9D%B4%EB%8F%99" class="hash-link" aria-label="Direct link to 페이지 이동" title="Direct link to 페이지 이동" translate="no">​</a></h3>
<p>보통은 하나의 앱 내에서 처리하는걸 기본으로 함</p>
<p>다만 이경우엔 페이지 이동이 앱 외부로도 가능해야함</p>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_L72q"><p>이부분은 패스함…ㄷ</p><p>이게 노하우일것같은데ㄷㄷ</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="실제-구현">실제 구현<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EC%8B%A4%EC%A0%9C-%EA%B5%AC%ED%98%84" class="hash-link" aria-label="Direct link to 실제 구현" title="Direct link to 실제 구현" translate="no">​</a></h3>
<p>개별배포가 가능해야함</p>
<p>[이미지 첨부]</p>
<p>각각의 path를 보고 어떤 app을 불러와야하는지를 알 수 있음</p>
<p>라우팅 테이블은 동적으로 HTML을 만들어서 내려줌</p>
<p>배포</p>
<ul>
<li class="">걱 app이 배포가 되면 ImportMap값을 업데이트하여 새로운 사용자가 다시 올 수 있도록 처리함</li>
<li class="">카라니 배포와 프리뷰 배포도 쉽게 처리가 가능함</li>
<li class="">로컬 환경도 마찬가지로 importmap을 처리하면 가능함<!-- -->
<ul>
<li class="">localhost:3000을 넣으면 됨</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="번들-사이즈-최적화">번들 사이즈 최적화<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EB%B2%88%EB%93%A4-%EC%82%AC%EC%9D%B4%EC%A6%88-%EC%B5%9C%EC%A0%81%ED%99%94" class="hash-link" aria-label="Direct link to 번들 사이즈 최적화" title="Direct link to 번들 사이즈 최적화" translate="no">​</a></h3>
<p>공통으로 사용중인것들은 하나로 합침</p>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_L72q"><p>다른거 하다가 못봤네 ㄷㄷ</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_PlYP" id="언제나-누구에게나-평등하게-빠른-웹"><strong>언제나, 누구에게나, 평등하게 빠른 웹</strong><a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EC%96%B8%EC%A0%9C%EB%82%98-%EB%88%84%EA%B5%AC%EC%97%90%EA%B2%8C%EB%82%98-%ED%8F%89%EB%93%B1%ED%95%98%EA%B2%8C-%EB%B9%A0%EB%A5%B8-%EC%9B%B9" class="hash-link" aria-label="Direct link to 언제나-누구에게나-평등하게-빠른-웹" title="Direct link to 언제나-누구에게나-평등하게-빠른-웹" translate="no">​</a></h2>
<blockquote>
<p><strong>‘성능 격차 없는 웹’을 목표로, 다양한 네트워크·디바이스 환경에서도 모든 사용자에게 빠르고 일관된 경험을 제공하기 위한 토스뱅크의 웹 성능 최적화 여정을 소개해요. CDN, Caching, Preload 등 다양한 기술을 활용해 웹의 한계를 극복하려 했던 실전 사례와 그 과정에서의 고민들을 함께 공유합니다.</strong></p>
</blockquote>
<p>네트워크 상태나 상황, 기기 등에 따라서 속도 문제가 생김</p>
<ul>
<li class="">네트워크 변수<!-- -->
<ul>
<li class="">한 유저가 같은 경험을 하는것도 중요함</li>
</ul>
</li>
<li class="">모두에게 같은 성능 경험<!-- -->
<ul>
<li class="">동일 네트워크 + 동일 하드웨어 성능</li>
</ul>
</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_L72q"><p>이게 가능한가?
기기가 다르고 네트워크가 다른데…ㄷㄷ</p></div></div>
<p>기기에 따라서는 고정변수니 네트워크에 집중함</p>
<p>SSR 방식으로 처리</p>
<p>js를 지연처리하여 화면을 먼저 보여주도록 처리함</p>
<p>마지막에 API dycjd</p>
<p>[나중에 pdf 나오면 캡쳐 넣자 - 크리티컬 랜더링 패스]</p>
<p>클라이언트의 네트워크 통신 상황에 따라 다름</p>
<p>vs 모바일 네이티브랑 비교해서 각각 필요한 리소스를 불러오는데 필요한 값들을 불러오는데 차이가 큼</p>
<p>⇒ 최대한 html, css, js를 가져오는 시간을 줄이자!</p>
<p>CDN 도 그중 하나임</p>
<p>Disk cache를 사용하는것도 괜찮은 방법임</p>
<p>http cache 전략을 잘 사용할것</p>
<p>디자인 시스템은 cdn으로 제공중임. 버전에 따라 다름</p>
<p>JS로직도ㅇㅇ</p>
<p>html에서 캐싱된 리소스를 요청하면 ㅇㅇ</p>
<p>html을 캐싱 안함</p>
<p>⇒ SSR 에서 html을 캐싱하면 문제가 생길 수 있음</p>
<p>클라이언트에서 데이터를 호출하는걸 최소화해서 처리하였음 ⇒ 서버에서 API 데이터까지 불러와서 처리함</p>
<p>stale while revalidate (SWR)</p>
<p>다음 버전의 정보를 미리 백드라운드에서 가져옴</p>
<p>최초 접근일때만 네트워크를 받아옴</p>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_L72q"><p>항상 최초 화면을 보여줘야하는 경우엔 좋은 방법은 아닐 수 있음</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="payload">payload<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#payload" class="hash-link" aria-label="Direct link to payload" title="Direct link to payload" translate="no">​</a></h3>
<p>service worker 를 활용</p>
<p>⇒ 다양한 서비스를 제공하고 있는 곳에선 좀 어려웠음</p>
<p>App을 통해 Preload 사용</p>
<p>⇒ 어떤 리소스를 preload 를 할지 고민</p>
<ul>
<li class="">유입이 많은 페이지?</li>
<li class="">첫 진입</li>
</ul>
<div class="language-jsx codeBlockContainer_odWx theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_q8oI"><pre tabindex="0" class="prism-code language-jsx codeBlock_XvAK thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ov2Q"><div class="token-line" style="color:#393A34"><span class="token plain">preloadPages </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"/index"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/???"</span><span class="token punctuation" style="color:#393A34">]</span><br></div></code></pre></div></div>
<p>preload list 에 js와 css를 따로 저장함</p>
<p>앱이 원하는 타이밍에 preload list 를 가져와서 미리 캐싱을 해둠.</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="cdn-요청수가-너무-많음">CDN 요청수가 너무 많음<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#cdn-%EC%9A%94%EC%B2%AD%EC%88%98%EA%B0%80-%EB%84%88%EB%AC%B4-%EB%A7%8E%EC%9D%8C" class="hash-link" aria-label="Direct link to CDN 요청수가 너무 많음" title="Direct link to CDN 요청수가 너무 많음" translate="no">​</a></h3>
<p>신규 배포가 없는경우엔 CDN preload 를 하지 않도록 처리함</p>
<p>⇒e-tag</p>
<p>진입 가능성이 있는 유저만 preload 하도록 처리</p>
<ul>
<li class="">진입 경험이 있는 사람만 사용</li>
</ul>
<p>daily preload</p>
<p>wifi 무제한 사용자?</p>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_L72q"><p>이걸 어떻게 알지?</p></div></div>
<p>스토리지 사이즈</p>
<p>여러가지 요소를 보고 preload 할지 여부를 확인함</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="지표">지표<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EC%A7%80%ED%91%9C" class="hash-link" aria-label="Direct link to 지표" title="Direct link to 지표" translate="no">​</a></h3>
<p>FCP</p>
<p>얼마나 빠르게?</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="안쓰는-이유">안쓰는 이유<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EC%95%88%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0" class="hash-link" aria-label="Direct link to 안쓰는 이유" title="Direct link to 안쓰는 이유" translate="no">​</a></h3>
<ul>
<li class="">너무 잦은 배포로 preload 시간이 없음</li>
<li class="">CDN 요청 수가 너무 많음</li>
<li class=""></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_PlYP" id="더-나은-ux를-위한-프론트엔드-전략"><strong>더 나은 UX를 위한 프론트엔드 전략</strong><a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EB%8D%94-%EB%82%98%EC%9D%80-ux%EB%A5%BC-%EC%9C%84%ED%95%9C-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%EC%A0%84%EB%9E%B5" class="hash-link" aria-label="Direct link to 더-나은-ux를-위한-프론트엔드-전략" title="Direct link to 더-나은-ux를-위한-프론트엔드-전략" translate="no">​</a></h2>
<blockquote>
<p><strong>토스뱅크가 더 나은 UX를 만들기 위해 어떤 노력을 해왔는지 소개하고자 해요. 누구나 할 수 있는 작은 시도들이 모여 어떻게 큰 사용자 경험의 개선으로 이어졌는지, 그리고 그렇게 만들어낸 UX를 꾸준히 지켜가기 위해 선택한 전략까지 함께 공유합니다.</strong></p>
</blockquote>
<p>로딩속도 + 안정성</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="로딩속도">로딩속도<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EB%A1%9C%EB%94%A9%EC%86%8D%EB%8F%84" class="hash-link" aria-label="Direct link to 로딩속도" title="Direct link to 로딩속도" translate="no">​</a></h3>
<p>SSR 활용</p>
<ol>
<li class="">네트워크 구간</li>
<li class=""><strong>스크립트 구간</strong></li>
<li class=""><strong>데이터 페칭 구간</strong></li>
</ol>
<p>SSR을 통해 html을 그려서 내려줘서 초기 로딩 속도가 개선되긴 함</p>
<p>어떤 영역을 SSR로 그릴것인가?</p>
<p>⇒ 금액 영역만 보기로 결정함</p>
<ul>
<li class="">비즈니스적 측면<!-- -->
<ul>
<li class="">금액을 가징 먼저 보고싶음</li>
</ul>
</li>
<li class="">기술적 측면<!-- -->
<ul>
<li class="">거래내역 API 응답까지 너무 오래걸림</li>
<li class="">브라우저에 내려줄 HTML 사이즈가 너무 커질 수도 있음</li>
</ul>
</li>
</ul>
<p>거래내역은 클라이언트사이드 캐싱을 하기로함</p>
<p>localstorage 에 저장함.</p>
<p>두번쨰 진입부터 차이남</p>
<p>localstorage 에서 먼저 가져오고, ㅇㅇ</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="번들-사이즈">번들 사이즈<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EB%B2%88%EB%93%A4-%EC%82%AC%EC%9D%B4%EC%A6%88" class="hash-link" aria-label="Direct link to 번들 사이즈" title="Direct link to 번들 사이즈" translate="no">​</a></h3>
<p>js 평가 시간을 줄이기 위한 노력임</p>
<ul>
<li class="">미사용 의존성 제거</li>
<li class="">용량 큰 라이브러리는 작은 라이브러리로 대체</li>
<li class="">같은 라이브러리지만 버전이 다른것을 정리</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_L72q"><p>이거 옛날에 slash21 에 있는 js bundle 다이어트 참고</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="api-waterfall-개선">API waterfall 개선<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#api-waterfall-%EA%B0%9C%EC%84%A0" class="hash-link" aria-label="Direct link to API waterfall 개선" title="Direct link to API waterfall 개선" translate="no">​</a></h3>
<p>API가 하나씩 feching</p>
<p>suspense 를 통한 처리</p>
<p>useSuspenseQuery 를 잘못하용하면 직렬로 API 를 호출하게 됨</p>
<p>⇒ useSuspenseQueries 를 사용하는게 나음</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="화면-안정성">화면 안정성<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%ED%99%94%EB%A9%B4-%EC%95%88%EC%A0%95%EC%84%B1" class="hash-link" aria-label="Direct link to 화면 안정성" title="Direct link to 화면 안정성" translate="no">​</a></h3>
<p>천천히 보면 보이는 것들이 있음</p>
<ol>
<li class="">
<p>금액이 다 보이고 깜빡임</p>
<ul>
<li class="">서버에서는 금액이 다 보임</li>
<li class="">애니메이션이 진행되면서 안보였다가 fade in</li>
</ul>
</li>
<li class="">
<p>카드 아이콘이 깜빡임</p>
<ul>
<li class="">클라에서 이미지를 결정했음.</li>
<li class="">서버사이드에서 이미지를 내려주도록 처리</li>
</ul>
</li>
<li class="">
<p>보내기 버튼 깜빡임</p>
<ul>
<li class="">송금 가능 여부에 따라서 enable / disable 처리를 하는중</li>
<li class="">데이터를 가져오면서…ㅇㅇ</li>
<li class="">⇒ 송금 가능한 사람이 더 많으니 enable 을 기본값으로 처리</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div></div>
</li>
</ol>
<p>이건 트레이드 오프인듯</p>
<p>:::</p>
<ol start="4">
<li class="">
<p>광고배너의 레이아웃 시프트</p>
<ul>
<li class="">광고배너는 클라이언트 랜더링</li>
<li class="">시간이 지나먼 바뀌어야하기에 cache 처리 불가 → 사용 내역보다 빠르게 노출이 불가능함</li>
<li class="">⇒ 디자인적으로 해결</li>
</ul>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div></div>
</li>
</ol>
<p>이거 뭘 해결했다는거지?ㄷㄷ</p>
<p>이해를 못함</p>
<p>:::</p>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="lcp-최적화">LCP 최적화<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#lcp-%EC%B5%9C%EC%A0%81%ED%99%94" class="hash-link" aria-label="Direct link to LCP 최적화" title="Direct link to LCP 최적화" translate="no">​</a></h3>
<p>LCP는 로딩 끝났다고 느끼는 시점</p>
<ol>
<li class="">
<p>특정 API가 느린 문제</p>
<p>⇒ 동기적으로 호출하는게 문제임</p>
</li>
<li class="">
<p>API 응답 시간이 느렸음</p>
<ul>
<li class="">API 병렬 호출 제한</li>
<li class="">http 1.0 을 사용했음</li>
</ul>
</li>
<li class="">
<p>SSE을 활용 못했음</p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_PlYP" id="성능-개선-전략">성능 개선 전략<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0-%EC%A0%84%EB%9E%B5" class="hash-link" aria-label="Direct link to 성능 개선 전략" title="Direct link to 성능 개선 전략" translate="no">​</a></h4>
<p>aggregation API 도입함</p>
<p>⇒ 호출 갯수를</p>
<p>서버 fetching 실패하면 client 에서 refetch 하도록 처리하고 있음</p>
<p>상단 노출되는 부분만 SSR 하고, 아래쪽은 CSR 을 사용함</p>
<div class="theme-admonition theme-admonition-info admonition_Wt15 alert alert--info"><div class="admonitionHeading_eEu9"><span class="admonitionIcon_aYfc"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_L72q"><p>이정도로까지 해야되는구나;;</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_PlYP" id="이후-대응">이후 대응<a href="https://blog.copybee.dev/blog/development/%ED%9B%84%EA%B8%B0/2025%20Toss%20%EA%B0%9C%EB%B0%9C%20%EC%BB%A8%ED%8D%BC%EB%9F%B0%EC%8A%A4%20%ED%9B%84%EA%B8%B0%20%EC%A0%95%EB%A6%AC#%EC%9D%B4%ED%9B%84-%EB%8C%80%EC%9D%91" class="hash-link" aria-label="Direct link to 이후 대응" title="Direct link to 이후 대응" translate="no">​</a></h3>
<p>변경 이력 관리</p>
<ul>
<li class="">잦은 실험으로 인해 ㅇㅇ</li>
</ul>
<p>계속해서 기록을 남기고 어떻게 되었는지 확인함</p>
<p>LCP 를 기준으로 ㅇㅇ</p>
<p>자동화된 LCP 모니터링</p>
<p>매주 LCP 성능 체크 하고 알림 시스템</p>
<p>이상 발생 시 즉시 분석하여 원인 파악</p>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="development" term="development"/>
        <category label="후기" term="후기"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Node.js 버전 업그레이드]]></title>
        <id>https://blog.copybee.dev/blog/development/update-node-version</id>
        <link href="https://blog.copybee.dev/blog/development/update-node-version"/>
        <updated>2025-07-04T13:31:35.000Z</updated>
        <content type="html"><![CDATA[<p>update 할때 보통 n 패키지를 이용함
근데 업데이트 했는데 active 는 바뀌지 않는 현상이 생김
설치 경로가 달랐던거고 아래 명령어로 해결함</p>
<div class="language-bash codeBlockContainer_odWx theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_q8oI"><pre tabindex="0" class="prism-code language-bash codeBlock_XvAK thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ov2Q"><div class="token-line" style="color:#393A34"><span class="token plain">ln -sf installed경로 active경로</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_PlYP" id="참고">참고<a href="https://blog.copybee.dev/blog/development/update-node-version#%EC%B0%B8%EA%B3%A0" class="hash-link" aria-label="Direct link to 참고" title="Direct link to 참고" translate="no">​</a></h2>
<p><a href="https://www.freecodecamp.org/korean/news/how-to-update-node-and-npm-to-the-latest-version/" target="_blank" rel="noopener noreferrer" class="">Node와 NPM을 최신 버전으로 업데이트 하기</a></p>
<p><a href="https://velog.io/@younoah/n-path" target="_blank" rel="noopener noreferrer" class="">n 패키지 installed, active 경로가 달라 node 버전 변경이 안될 때</a></p>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="Docusaurus" term="Docusaurus"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Docker 스터디]]></title>
        <id>https://blog.copybee.dev/blog/development/docker-study</id>
        <link href="https://blog.copybee.dev/blog/development/docker-study"/>
        <updated>2025-07-04T13:31:35.000Z</updated>
        <summary type="html"><![CDATA[회사에서 오랜만에 스터디를 진행했다.]]></summary>
        <content type="html"><![CDATA[<p>회사에서 오랜만에 스터디를 진행했다.
주제는 Docker 로 정해졌고, 스터디 방식부터 어떻게 스터디할지 논의끝에 책을 통해 4주간 진행하기로 하였다.</p>
<p>책은 여러 후보가 나왔다.</p>
<ul>
<li class=""></li>
</ul>
<p>최종적으론 <a class="" href="https://blog.copybee.dev/">dd</a> 를 선택했다.</p>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="docker" term="docker"/>
        <category label="study" term="study"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[http 완벽 가이드]]></title>
        <id>https://blog.copybee.dev/blog/development/http 완벽 가이드</id>
        <link href="https://blog.copybee.dev/blog/development/http 완벽 가이드"/>
        <updated>2025-07-04T13:31:35.000Z</updated>
        <summary type="html"><![CDATA[http 스팩에 대해서 스터디]]></summary>
        <content type="html"><![CDATA[<p>http 스팩에 대해서 스터디</p>]]></content>
        <author>
            <name>Jeon ilju</name>
            <uri>https://github.com/lanace</uri>
        </author>
        <category label="docker" term="docker"/>
        <category label="study" term="study"/>
    </entry>
</feed>