-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.html
65 lines (61 loc) · 24.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!doctype html>
<html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta><title>CH DEVLOG</title><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="white"><meta name="application-name" content="CH DEV"><meta name="msapplication-TileImage" content="/img/favicon.ico"><meta name="msapplication-TileColor" content="white"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-title" content="CH DEV"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="description" content="개발 과정 기록"><meta property="og:type" content="blog"><meta property="og:title" content="CH DEVLOG"><meta property="og:url" content="https://changhoi.kim/"><meta property="og:site_name" content="CH DEVLOG"><meta property="og:description" content="개발 과정 기록"><meta property="og:locale" content="ko_KR"><meta property="og:image" content="https://changhoi.kim/img/og_image.png"><meta property="article:author" content="changhoi"><meta property="twitter:card" content="summary"><meta property="twitter:image:src" content="https://changhoi.kim/img/og_image.png"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https://changhoi.kim"},"headline":"CH DEVLOG","image":["https://changhoi.kim/img/og_image.png"],"author":{"@type":"Person","name":"changhoi"},"publisher":{"@type":"Organization","name":"CH DEVLOG","logo":{"@type":"ImageObject","url":"https://changhoi.kim/img/logo.jpg"}},"description":"개발 과정 기록"}</script><link rel="alternate" href="/rss2.xml" title="CH DEVLOG" type="application/atom+xml"><link rel="icon" href="/img/favicon.ico"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.0.0/css/all.css"><link data-pjax rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/styles/atom-one-light.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;600&family=Source+Code+Pro"><link data-pjax rel="stylesheet" href="/css/default.css"><style>body>.footer,body>.navbar,body>.section{opacity:0}</style><!--!--><!--!--><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/lightgallery.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/justifiedGallery.min.css"><script src="https://www.googletagmanager.com/gtag/js?id=G-QBSLW6WTZW" async></script><script>window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-QBSLW6WTZW');</script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/outdatedbrowser/outdatedbrowser.min.css"><style>.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#3273dc;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}</style><script src="https://cdn.jsdelivr.net/npm/[email protected]/pace.min.js"></script><script data-ad-client="ca-pub-2694882322458264" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" async></script><!-- hexo injector head_end start --><script>
(function () {
function switchTab() {
if (!location.hash) {
return;
}
const id = '#' + CSS.escape(location.hash.substring(1));
const $tabMenu = document.querySelector(`.tabs a[href="${id}"]`);
if (!$tabMenu) {
return;
}
const $tabMenuContainer = $tabMenu.parentElement.parentElement;
Array.from($tabMenuContainer.children).forEach($menu => $menu.classList.remove('is-active'));
Array.from($tabMenuContainer.querySelectorAll('a'))
.map($menu => document.getElementById($menu.getAttribute("href").substring(1)))
.forEach($content => $content.classList.add('is-hidden'));
if ($tabMenu) {
$tabMenu.parentElement.classList.add('is-active');
}
const $activeTab = document.querySelector(id);
if ($activeTab) {
$activeTab.classList.remove('is-hidden');
}
}
switchTab();
window.addEventListener('hashchange', switchTab, false);
})();
</script><!-- hexo injector head_end end --><meta name="generator" content="Hexo 7.3.0"></head><body class="is-2-column"><nav class="navbar navbar-main"><div class="container navbar-container"><div class="navbar-brand justify-content-center"><a class="navbar-item navbar-logo" href="/"><img src="/img/logo.jpg" alt="CH DEVLOG" height="28"></a></div><div class="navbar-menu"><div class="navbar-start"><a class="navbar-item is-active" href="/">Home</a><a class="navbar-item" href="/archives">Archives</a><a class="navbar-item" href="/tags">Tags</a><a class="navbar-item" href="/about">About</a></div><div class="navbar-end"><a class="navbar-item search" title="검색" href="javascript:;"><i class="fas fa-search"></i></a></div></div></div></nav><section class="section"><div class="container"><div class="columns"><div class="column order-2 column-main is-8-tablet is-8-desktop is-8-widescreen"><div class="card"><div class="card-image"><a class="image is-7by3" href="/posts/logs/20250101/"><img class="fill" src="/images/logo.jpg" alt="2024년, 창업 1년 차 회고"></a></div><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time datetime="2024-12-31T15:00:00.000Z" title="2025. 1. 1. 오전 12:00:00">2025-01-01</time> 게시 됨</span><span class="level-item"><time datetime="2024-12-31T15:00:00.000Z" title="2025. 1. 1. 오전 12:00:00">2025-01-01</time> 업데이트 됨</span><span class="level-item"><a class="link-muted" href="/categories/logs/">logs</a></span><span class="level-item">한 시간안에 읽기 (약 10860 단어)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/posts/logs/20250101/">2024년, 창업 1년 차 회고</a></p><div class="content"><p>2019년 1월 1일 개발 공부를 시작하며 이 블로그를 쓰기 시작했고, 벌써 6년째이지만 이제는 창업가와 개발자 사이에 어중간한 위치에 있는 사람으로서 ‘창업 1년 차’라는 이름으로 회고를 처음 써본다. 제목을 이렇게 정하니까 굉장히 색다른 느낌이다. <a href="/posts/logs/20240101">작년의 나는</a> 꿈을 확정하고 꿈을 이루기까지 나에게 방해가 되는 요소를 제거하는 한 해를 보냈고 이번 해는 실제로 창업에 뛰어들었던 첫 번째 해였다. 창업하면 일반적으로 정말 대부분의 영역에서 불편함을 느끼는 상태가 되어 엄청난 성장을 만들어낼 수 있는 것 같다. 그래서 이번 해는 배운 게 너무 많아서 추리는 과정이 더 오래 걸렸다. 추려낸 것들을 기록하지 못해 아쉬울 정도로 재밌는 한 해를 보냈다.</p></div><a class="article-more button is-small is-size-7" href="/posts/logs/20250101/#more">자세히 보기</a></article></div><div class="card"><div class="card-image"><a class="image is-7by3" href="/posts/logs/20240101/"><img class="fill" src="/images/logo.jpg" alt="2023년, 개발 5년 차 회고"></a></div><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time datetime="2023-12-29T15:00:00.000Z" title="2023. 12. 30. 오전 12:00:00">2023-12-30</time> 게시 됨</span><span class="level-item"><time datetime="2023-12-29T15:00:00.000Z" title="2023. 12. 30. 오전 12:00:00">2023-12-30</time> 업데이트 됨</span><span class="level-item"><a class="link-muted" href="/categories/logs/">logs</a></span><span class="level-item">한 시간안에 읽기 (약 6711 단어)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/posts/logs/20240101/">2023년, 개발 5년 차 회고</a></p><div class="content"><p>2019년 1월 1일에 개발 공부를 시작하면서 블로그를 시작했는데, 벌써 이 블로그도 5년째 이어졌다. 이번 해는 나에게 꽤 특별한 해였다. 작년 12월부터 시작된 실존적 고민으로부터 시작되어 앞으로 나는 어떻게 살아갈 것인지, 무엇을 하는 것이 나의 꿈을 위해 가장 좋은 방법일지 고민도 많이 하고 결론도 나왔다. 먼 미래에 뒤돌아봤을 때 2023년에 내렸던 결정과 내 사고 방식의 변화로 인해 2023년은 내 인생의 챕터를 가르는 해라고 판단할 것이 분명하다. 이 글을 읽는 당신은 한 사람이 인생의 한 챕터를 여는 시작점을 보고 있다고 말할 수 있다.</p></div><a class="article-more button is-small is-size-7" href="/posts/logs/20240101/#more">자세히 보기</a></article></div><div class="card"><div class="card-image"><a class="image is-7by3" href="/posts/etc/system-design-part-1/"><img class="fill" src="/images/2023-10-05-system-design-part-1/thumbnail.png" alt="대규모 시스템 디자인 Part 1 강의"></a></div><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time datetime="2023-10-04T15:00:00.000Z" title="2023. 10. 5. 오전 12:00:00">2023-10-05</time> 게시 됨</span><span class="level-item"><time datetime="2023-10-04T15:00:00.000Z" title="2023. 10. 5. 오전 12:00:00">2023-10-05</time> 업데이트 됨</span><span class="level-item"><a class="link-muted" href="/categories/etc/">etc</a></span><span class="level-item">1분안에 읽기 (약 113 단어)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/posts/etc/system-design-part-1/">대규모 시스템 디자인 Part 1 강의</a></p><div class="content"><p>이번에 제가 시스템 설계와 관련된 <a target="_blank" rel="external nofollow noopener noreferrer" href="https://inf.run/t6Wt">강의</a>를 만들었습니다. 대규모 시스템 디자인은 대규모 시스템을 만들며 공통적으로 만나게 되는 문제들을 해결하는 방법을 설명하고, 유명한 시스템을 공부하면서 실제로 어떻게 적용되고 있는지 배웁니다. <a target="_blank" rel="external nofollow noopener noreferrer" href="https://inf.run/t6Wt">강의 바로 가기</a></p>
</div></article></div><div class="card"><div class="card-image"><a class="image is-7by3" href="/posts/go/go-pkg-architecture-theory/"><img class="fill" src="/images/2023-07-13-go-pkg-architecture/thumbnail.png" alt="Go Package Architecture - 이론편"></a></div><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time datetime="2023-07-12T15:00:00.000Z" title="2023. 7. 13. 오전 12:00:00">2023-07-13</time> 게시 됨</span><span class="level-item"><time datetime="2023-07-12T15:00:00.000Z" title="2023. 7. 13. 오전 12:00:00">2023-07-13</time> 업데이트 됨</span><span class="level-item"><a class="link-muted" href="/categories/go/">go</a></span><span class="level-item">27분안에 읽기 (약 4010 단어)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/posts/go/go-pkg-architecture-theory/">Go Package Architecture - 이론편</a></p><div class="content"><p>Go에서 다른 언어와 다르게 Directory(디렉토리)는 굉장히 중요하다. 많은 다른 언어들은 실제 디렉토리의 역할 이상을 하지는 않지만, Go는 Package(패키지)와 밀접한 관계가 있으며 프로그램이 어떻게 작성될지 결정하는 한 부분이다. 그 때문에 Go에서 디렉토리 구조를 어떻게 할지는 패키지를 어떻게 구성할 것인지와 꽤 유관하다. 이번 글에서는 Go를 사용하면서 어떤 형태의 디렉토리와 패키지 구조를 구성하는 것이 좋을지 혼자만의 고민을 정리했다.</p></div><a class="article-more button is-small is-size-7" href="/posts/go/go-pkg-architecture-theory/#more">자세히 보기</a></article></div><div class="card"><div class="card-image"><a class="image is-7by3" href="/posts/database/scaling-memcache-at-facebook/"><img class="fill" src="/images/2023-06-23-scaling-memcache-at-facebook/thumbnail.png?style=centerme" alt="Scaling Memcache At Facebook"></a></div><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item"><time datetime="2023-06-22T15:00:00.000Z" title="2023. 6. 23. 오전 12:00:00">2023-06-23</time> 게시 됨</span><span class="level-item"><time datetime="2023-06-22T15:00:00.000Z" title="2023. 6. 23. 오전 12:00:00">2023-06-23</time> 업데이트 됨</span><span class="level-item"><a class="link-muted" href="/categories/database/">database</a></span><span class="level-item">38분안에 읽기 (약 5685 단어)</span></div></div><p class="title is-3 is-size-4-mobile"><a class="link-muted" href="/posts/database/scaling-memcache-at-facebook/">Scaling Memcache At Facebook</a></p><div class="content"><p>이 논문은 Planet Scale 서비스 중 하나인 Facebook(이하 Meta, 메타, 페이스북)이 어떻게 Memcache를 사용했는지에 대한 논문인데, 이 글은 이 논문 내용 중 “확장되는 스케일에서 어떻게 Data Consistency를 유지 했는가?”에 집중해 정리했다.</p>
<blockquote>
<p>논문에서는 <code>Memcache</code>와 <code>Memcached</code> 용어를 철저히 분리한다. 전자는 분산 시스템을 구성하는 시스템 자체를 의미하고 후자는 실행되는 서버, 바이너리 자체를 의미한다.</p>
</blockquote></div><a class="article-more button is-small is-size-7" href="/posts/database/scaling-memcache-at-facebook/#more">자세히 보기</a></article></div><nav class="pagination" role="navigation" aria-label="pagination"><div class="pagination-previous is-invisible is-hidden-mobile"><a href="/page/0/">이전</a></div><div class="pagination-next"><a href="/page/2/">다음</a></div><ul class="pagination-list is-hidden-mobile"><li><a class="pagination-link is-current" href="/">1</a></li><li><a class="pagination-link" href="/page/2/">2</a></li><li><span class="pagination-ellipsis">…</span></li><li><a class="pagination-link" href="/page/15/">15</a></li></ul></nav></div><div class="column column-left is-4-tablet is-4-desktop is-4-widescreen order-1"><div class="card widget" data-type="profile"><div class="card-content"><nav class="level"><div class="level-item has-text-centered flex-shrink-1"><div><figure class="image is-128x128 mx-auto mb-2"><img class="avatar is-rounded" src="https://avatars2.githubusercontent.com/u/34329147?s=400&u=9d1b1dc88bc8ee5965f35b0160780264c3619eb6&v=4" alt="Changhoi"></figure><p class="title is-size-4 is-block" style="line-height:inherit;">Changhoi</p><p class="is-size-6 is-block">changhoi</p><p class="is-size-6 is-flex justify-content-center"><i class="fas fa-map-marker-alt mr-1"></i><span>Seoul, Korea</span></p></div></div></nav><nav class="level is-mobile"><div class="level-item has-text-centered is-marginless"><div><p class="heading">포스트</p><a href="/archives/"><p class="title">72</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">카테고리</p><a href="/categories/"><p class="title">13</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">태그</p><a href="/tags/"><p class="title">47</p></a></div></div></nav><div class="level"><a class="level-item button is-primary is-rounded" href="https://github.com/changhoi" target="_blank" rel="external nofollow noopener noreferrer">팔로우</a></div><div class="level is-mobile is-multiline"><a class="level-item button is-transparent is-marginless" target="_blank" rel="external nofollow noopener noreferrer" title="Github" href="https://github.com/changhoi"><i class="fab fa-github"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="external nofollow noopener noreferrer" title="Email" href="mailto:[email protected]"><i class="fas fa-envelope-square"></i></a></div></div></div><div class="card widget" data-type="links"><div class="card-content"><div class="menu"><h3 class="menu-label">링크</h3><ul class="menu-list"><li><a class="level is-mobile" href="https://brain.changhoi.kim" target="_blank" rel="external nofollow noopener noreferrer"><span class="level-left"><span class="level-item">🤔 💬</span></span><span class="level-right"><span class="level-item tag">brain.changhoi.kim</span></span></a></li></ul></div></div></div><div class="card widget" data-type="categories"><div class="card-content"><div class="menu"><h3 class="menu-label">카테고리</h3><ul class="menu-list"><li><a class="level is-mobile" href="/categories/backend/"><span class="level-start"><span class="level-item">backend</span></span><span class="level-end"><span class="level-item tag">12</span></span></a></li><li><a class="level is-mobile" href="/categories/books/"><span class="level-start"><span class="level-item">books</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/categories/database/"><span class="level-start"><span class="level-item">database</span></span><span class="level-end"><span class="level-item tag">8</span></span></a></li><li><a class="level is-mobile" href="/categories/docker/"><span class="level-start"><span class="level-item">docker</span></span><span class="level-end"><span class="level-item tag">5</span></span></a></li><li><a class="level is-mobile" href="/categories/essay/"><span class="level-start"><span class="level-item">essay</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/categories/etc/"><span class="level-start"><span class="level-item">etc</span></span><span class="level-end"><span class="level-item tag">13</span></span></a></li><li><a class="level is-mobile" href="/categories/go/"><span class="level-start"><span class="level-item">go</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/categories/linux/"><span class="level-start"><span class="level-item">linux</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/categories/logs/"><span class="level-start"><span class="level-item">logs</span></span><span class="level-end"><span class="level-item tag">10</span></span></a></li><li><a class="level is-mobile" href="/categories/network/"><span class="level-start"><span class="level-item">network</span></span><span class="level-end"><span class="level-item tag">3</span></span></a></li><li><a class="level is-mobile" href="/categories/os/"><span class="level-start"><span class="level-item">os</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/categories/rust/"><span class="level-start"><span class="level-item">rust</span></span><span class="level-end"><span class="level-item tag">1</span></span></a></li><li><a class="level is-mobile" href="/categories/serverless/"><span class="level-start"><span class="level-item">serverless</span></span><span class="level-end"><span class="level-item tag">6</span></span></a></li></ul></div></div></div><div class="card widget" data-type="adsense"><div class="card-content"><div class="menu"><h3 class="menu-label">광고</h3><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2694882322458264" data-ad-slot="7304556949" data-ad-format="auto" data-full-width-responsive="true"></ins><script>(adsbygoogle = window.adsbygoogle || []).push({});</script></div></div></div></div><div class="column column-right is-4-tablet is-4-desktop is-4-widescreen order-3 is-sticky"><!--!--></div></div></div></section><footer class="footer"><div class="container"><div class="level"><div class="level-start"><a class="footer-logo is-block mb-2" href="/"><img src="/img/logo.jpg" alt="CH DEVLOG" height="28"></a><p class="is-size-7"><span>© 2025 changhoi</span> Powered by <a href="https://hexo.io/" target="_blank" rel="external nofollow noopener noreferrer">Hexo</a> & <a href="https://github.com/ppoffice/hexo-theme-icarus" target="_blank" rel="external nofollow noopener noreferrer">Icarus</a></p></div><div class="level-end"><div class="field has-addons"><p class="control"><a class="button is-transparent is-large" target="_blank" rel="external nofollow noopener noreferrer" title="Creative Commons" href="https://creativecommons.org/"><i class="fab fa-creative-commons"></i></a></p><p class="control"><a class="button is-transparent is-large" target="_blank" rel="external nofollow noopener noreferrer" title="Attribution 4.0 International" href="https://creativecommons.org/licenses/by/4.0/"><i class="fab fa-creative-commons-by"></i></a></p></div></div></div></div></footer><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/min/moment-with-locales.min.js"></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/clipboard.min.js" defer></script><script>moment.locale("ko");</script><script>var IcarusThemeSettings = {
article: {
highlight: {
clipboard: true,
fold: 'unfolded'
}
}
};</script><script data-pjax src="/js/column.js"></script><script src="/js/animation.js"></script><a id="back-to-top" title="맨 위로" href="javascript:;"><i class="fas fa-chevron-up"></i></a><script data-pjax src="/js/back_to_top.js" defer></script><!--!--><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/lightgallery.min.js" defer></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/jquery.justifiedGallery.min.js" defer></script><script>window.addEventListener("load", () => {
if (typeof $.fn.lightGallery === 'function') {
$('.article').lightGallery({ selector: '.gallery-item' });
}
if (typeof $.fn.justifiedGallery === 'function') {
if ($('.justified-gallery > p > .gallery-item').length) {
$('.justified-gallery > p > .gallery-item').unwrap();
}
$('.justified-gallery').justifiedGallery();
}
});</script><!--!--><div id="outdated"><h6>Your browser is out-of-date!</h6><p>Update your browser to view this website correctly.&npsb;<a id="btnUpdateBrowser" target="_blank" rel="external nofollow noopener noreferrer" href="http://outdatedbrowser.com/">Update my browser now </a></p><p class="last"><a href="#" id="btnCloseUpdateBrowser" title="Close">×</a></p></div><script src="https://cdn.jsdelivr.net/npm/[email protected]/outdatedbrowser/outdatedbrowser.min.js" defer></script><script>window.addEventListener("load", function () {
outdatedBrowser({
bgColor: '#f25648',
color: '#ffffff',
lowerThan: 'object-fit' // display on IE11 or below
});
});</script><!--!--><script data-pjax src="/js/main.js" defer></script><div class="searchbox"><div class="searchbox-container"><div class="searchbox-header"><div class="searchbox-input-container"><input class="searchbox-input" type="text" placeholder="입력 하세요..."></div><a class="searchbox-close" href="javascript:;">×</a></div><div class="searchbox-body"></div></div></div><script data-pjax src="/js/insight.js" defer></script><script data-pjax>document.addEventListener('DOMContentLoaded', function () {
loadInsight({"contentUrl":"/content.json"}, {"hint":"입력 하세요...","untitled":"(제목 없음)","posts":"포스트","pages":"페이지","categories":"카테고리","tags":"태그"});
});</script></body></html>