<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Decay · 인재덕</title>
    <link>https://jared.lynskey.co.nz/ko/tags/decay/</link>
    <description>소프트웨어 엔지니어링과 개발 조직 리더십에 대한 이야기. 성과 리뷰, 채용과 팀 확장, CI/CD, 데브옵스 모니터링, 에이전틱 AI. 서울에서 씁니다.</description>
    <generator>Hugo</generator>
    <language>ko</language>
    <copyright>© 2026 인재덕</copyright>
    <lastBuildDate>Wed, 28 Oct 2026 00:00:00 +1300</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/ko/tags/decay/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>피드 랭킹 알고리즘은 오래된 글을 언제 묻어버릴까</title>
      <link>https://jared.lynskey.co.nz/ko/posts/2023/2023-09-27-simulating-views/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ko/posts/2023/2023-09-27-simulating-views/</guid>
      <pubDate>Wed, 27 Sep 2023 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Content Ranking</category>
      <category>Decay</category>
      <category>Freshness</category>
      <category>Engagement</category>
      <description>피드 랭킹 알고리즘이 감쇠 함수로 신선도와 참여도를 저울질하는 방식을, 콘텐츠 피드를 만드는 게 일인 사람 입장에서 풀어 봤습니다.</description>
      <content:encoded><![CDATA[<p>콘텐츠 플랫폼에서 일하다 보니, 사용자 눈에는 절대 보이지 않는 질문 하나를 남들보다 오래 붙잡고 삽니다. 피드는 언제쯤 이 콘텐츠를 그만 보여줘야 할까?</p>
<p>콘텐츠는 낡습니다. 사람들은 새로운 게 뭔지 보려고 앱을 열고, 피드는 거기에 답해야 하죠. 그렇다고 지난달의 훌륭한 글이 단지 새롭지 않다는 이유로 사라져야 하는 것도 아닙니다. 이 트레이드오프를 모델링하는 표준적인 방법이 감쇠 함수인데, 이름에서 풍기는 것보다 훨씬 단순합니다.</p>

<h4 class="relative group">신선도는 중요하다, 어디서나는 아니지만
    <div id="신선도는-중요하다-어디서나는-아니지만" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%8b%a0%ec%84%a0%eb%8f%84%eb%8a%94-%ec%a4%91%ec%9a%94%ed%95%98%eb%8b%a4-%ec%96%b4%eb%94%94%ec%84%9c%eb%82%98%eb%8a%94-%ec%95%84%eb%8b%88%ec%a7%80%eb%a7%8c" aria-label="앵커">#</a>
    </span>
    
</h4>
<p>뉴스 사이트든 소셜 피드든, 열어 볼 때 우리가 찾는 건 대개 가장 최신 소식입니다. 뉴스나 금융 시장처럼 빠르게 움직이는 영역에서 지난주 콘텐츠는 그냥 짐이라, 그런 곳의 랭킹은 최신성에 크게 기울어 있습니다.</p>
<p>하지만 모든 영역이 그렇지는 않습니다. 학술 자료나 롱폼 저널리즘은 시간이 지나도 가치가 유지되고, 오히려 올라가기도 하죠. 콘텐츠의 나이는 대부분의 랭킹 시스템에서 의미가 있지만, 얼마나 큰 가중치를 줘야 하는지는 전적으로 무엇을 랭킹하느냐에 달렸습니다.</p>

<h4 class="relative group">지수 감쇠로 퇴색을 모델링하기
    <div id="지수-감쇠로-퇴색을-모델링하기" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%a7%80%ec%88%98-%ea%b0%90%ec%87%a0%eb%a1%9c-%ed%87%b4%ec%83%89%ec%9d%84-%eb%aa%a8%eb%8d%b8%eb%a7%81%ed%95%98%ea%b8%b0" aria-label="앵커">#</a>
    </span>
    
</h4>
<p>관련성이 흐려지는 과정을 모델링하는 정석은 지수 감쇠입니다. 오래될수록 체감 가치가 가속도가 붙어 떨어진다는 거죠. 가장 단순한 형태는 이렇습니다.</p>
<p><code>relevance = e^(-decay_rate × age)</code></p>
<p>여기서 relevance는 콘텐츠의 현재 가치, decay_rate(감쇠율)는 가치를 잃는 속도, age는 보통 게시 후 경과 일수입니다.</p>
<p>이 모델이 마음에 드는 이유는 조절할 값이 하나뿐이라는 점입니다. 감쇠율만 조절하면 콘텐츠의 유효기간을 몇 시간으로 할지, 며칠로 할지, 몇 주로 할지 정할 수 있습니다. 설정할 게 그게 전부예요.</p>

<h4 class="relative group">좋은 콘텐츠를 살려두는 건 참여도
    <div id="좋은-콘텐츠를-살려두는-건-참여도" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%a2%8b%ec%9d%80-%ec%bd%98%ed%85%90%ec%b8%a0%eb%a5%bc-%ec%82%b4%eb%a0%a4%eb%91%90%eb%8a%94-%ea%b1%b4-%ec%b0%b8%ec%97%ac%eb%8f%84" aria-label="앵커">#</a>
    </span>
    
</h4>
<p>나이는 그림의 절반일 뿐입니다. 조회수, 좋아요, 댓글은 사람들이 실제로 관심 있어 하는지를 알려주는 신호고, 이걸 무시하는 랭킹은 좋은 글까지 나쁜 글과 함께 묻어버립니다. 해결책은 단순하게 둘을 곱하는 겁니다.</p>
<p><code>score = engagement × e^(-decay_rate × age)</code></p>
<p>이렇게 하면 참여도가 높은 오래된 글이 평범한 새 글보다 위에 있을 수 있습니다. 다만 감쇠 항이 밑에서 계속 줄어들기 때문에, 자리를 지키려면 점점 더 많은 참여가 필요해지죠.</p>
<p>실제 라이프사이클은 이렇게 흘러갑니다. 새 글은 신선도 부스트를 받아 노출될 기회를 얻습니다. 사람들이 보고, 좋아요를 누르고, 댓글을 달면 점수가 오릅니다. 날이 지날수록 감쇠가 점수를 갉아먹고, 참여가 꾸준히 이어지는 글만 상위에 남습니다. 새 콘텐츠는 기회를 얻고, 정말 좋은 콘텐츠는 제 힘으로 자리를 지키는 구조입니다.</p>
<p>솔직히 이게 전부입니다. 지수 함수 하나, 참여도 항 하나, 조절할 값 하나. 어려운 건 우리 콘텐츠에 맞는 감쇠율을 정하는 일인데, 그 부분은 순전히 판단의 영역입니다.</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-09-27-simulating-views/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
