Skip to content

Commit de2bd68

Browse files
committed
deploy: f6490ce
1 parent b12ce0e commit de2bd68

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

posts/bootcamp-backend-spring-boot/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
</span></span><span class=line><span class=cl>9. 상품 등록 기능으로 학습하는 도메인 주도 개발 &amp; 패키지 구조 </span></span></code></pre></div></div><ul><li>AI 시대의 개발자는 더 이상 단순 코드를 작성하는 사람이 아니다. 무엇을 만들어야 하는지 정의하고, AI가 생성한 결과를 검증하며, 문제를 재구성할 수 있는 사구력을 요구한다. 결국 차별화는 도구 사용 능력이 아닌 사고의 깊이에서 발생한다.</li><li>도메인 주도 개발(DDD, Domain-Driven Design)이란 기술 중심이 아닌, <strong>비즈니스(도메인) 중심으로 소프트웨어를 설계하는 방법이다.</strong></li><li>도메인은 기술이 아닌, 해결하려는 현실 세계의 문제다.</li><li>도메인은 단순 데이터 구조가 아닌 데이터가 지켜야할 비즈니스 규칙과 책임이 담겨있다.</li><li><strong>일반적인 계층형 패키지 구조</strong><ul><li>간단한 프로젝트에서는 문제가 발생하지 않는다. 이해하기 쉽고 빠른 개발이 가능하다.</li><li>하지만 기능이 커지면 코드가 흩어진다. 도메인 응집도가 낮아지고 Service가 비대해진다. 비즈니스 규칙이 Service 계층에 집중되면 도메인 객체는 단순 (Anemic Domain Model) 데이터구조로 전략하기 쉽다.</li></ul></li><li><strong>DDD</strong><ul><li>기술 계층이 아닌, 도메인(기능) 기준으로 패키지를 묶는다. 도메인 응집도가 높고 테스트하기 쉬워진다. 하지만 학습 비용이 높고 초기 설계 비용이 크다.</li></ul></li><li>책에서는 DDD를 패키지 정리 방법으로 소개한다. 하지만 DDD는 단순한 구조 정리가 아닌 비즈니스 중심 설계 철학이다. Entity, Value Obeject, Aggregate, Ubiquitous Language와 같은 개념을 포함하며, 복잡한 도메인을 다룰 때 진가가 나타난다. 따라서 모든 프로젝트에 반드시 필요한 방법은 아니며, 규모와 복잡도에 따라 선택적으로 적용하는 것이 바람직하다.</li><li>실무에서는 레이어드 아키텍처와 도메인 중심 패키지를 섞어 사용한다.</li></ul><h2 class="relative group">3. 변화<div id=3-변화 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=#3-%eb%b3%80%ed%99%94 aria-label=앵커>#</a></span></h2><ul><li>공식문서와 <a href=https://www.jetbrains.com/guide/go/tips/quick-documentation/ target=_blank rel=noreferrer>Quick Documentation 기능</a>을 사용하는 비율이 증가했다.</li><li>학습과 정리의 중요성을 뼈저리게 느꼈다.</li></ul><h2 class="relative group">4. 앞으로의 계획<div id=4-앞으로의-계획 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=#4-%ec%95%9e%ec%9c%bc%eb%a1%9c%ec%9d%98-%ea%b3%84%ed%9a%8d aria-label=앵커>#</a></span></h2><ul><li>프로젝트를 진행하며 삽질, 깨달은 내용 정리</li></ul><h2 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=#%eb%a7%88%ec%b9%98%eb%a9%b0 aria-label=앵커>#</a></span></h2><h3 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%95%98%eb%8d%98-%ec%a0%90 aria-label=앵커>#</a></span></h3><ul><li>얇은 책이라 부담 없이 읽고 참여하기 좋았다.</li><li>최대한 쉽고 친절하게 설명해 주시려는 배려가 느껴졌다. 추가 학습을 위한 추천 키워드도 인상 깊었다.</li><li>자신감이 떨어졌거나, 어떤 내용을 학습해야 할지 벽에 부딪힌 상황에 읽기 좋다.</li><li>무심코 지나갔던 내용을 한 번 더 생각, 정리하는 시간을 가졌다.</li><li>깊이를 더하기 위해 공식 문서를 참고하고 매주 후기를 작성할 때 가장 좋았다. 특히 프로젝트 구조, 도메인 주도 설계(DDD, Domain-Driven Design)가 기억에 남는다.</li></ul><h3 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%95%84%ec%89%ac%ec%9b%a0%eb%8d%98-%ec%a0%90 aria-label=앵커>#</a></span></h3><ul><li>계곡에 가서 신발을 벗고 물에 발만 담근 채 돌아온 느낌이라 아쉬웠다.</li><li>설 연휴로 흐름이 끊겨 아쉬웠다.</li><li>실습이 적어 아쉬웠다.</li><li>능동적으로 참여하는 챌린지라기보단 정적으로 혼자 독서하는 기분이라 아쉬웠다. 참여하는 활동, 미션이 많았으면 좋겠다.</li></ul><h3 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%b0%b8%ea%b3%a0-%ec%9e%90%eb%a3%8c aria-label=앵커>#</a></span></h3><ul><li><a href=https://product.kyobobook.co.kr/detail/S000219025613 target=_blank rel=noreferrer>『부트캠프 백엔드 개발자 편 with 스프링 부트』(김송아, 한빛미디어, 2026)</a></li><li><a href=https://www.inflearn.com/users/1604107/@nextdoordeveloper target=_blank rel=noreferrer>인프런 &lsquo;[4주 과정] 『부트캠프 백엔드 개발자 편 with 스프링 부트』 완독 챌린지&rsquo;</a></li><li><a href=https://inf.run/8AdRR target=_blank rel=noreferrer>인프런 &lsquo;송아지할때송아김송아입니다.&rsquo;</a></li></ul></div></div></section><footer class="pt-8 max-w-prose print:hidden"><div class=pt-8><hr class="border-dotted border-neutral-300 dark:border-neutral-600"><div class="flex justify-between pt-3"><span class="flex flex-col"><a class="flex text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400" href=/posts/retrospective-20260222/><span class=leading-6><span class="inline-block rtl:rotate-180">&larr;</span>&ensp;월간 장태근 2월호 'BANG BANG'
2323
</span></a><span class="ms-6 mt-1 text-xs text-neutral-500 dark:text-neutral-400"><time datetime=2026-02-22T05:20:58+09:00>2026.02.22</time>
2424
</span></span><span class="flex flex-col items-end"><a class="flex text-right text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400" href=/posts/java-start-variables/><span class=leading-6>변수&ensp;<span class="inline-block rtl:rotate-180">&rarr;</span>
25-
</span></a><span class="me-6 mt-1 text-xs text-neutral-500 dark:text-neutral-400"><time datetime=2026-03-02T19:32:36+09:00>2026.03.02</time></span></span></div></div></footer></article><div id=scroll-to-top class="fixed bottom-6 end-6 z-50 transform translate-y-4 opacity-0 duration-200"><a href=#the-top class="pointer-events-auto flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400" aria-label="맨 위로 스크롤" title="맨 위로 스크롤">&uarr;</a></div></main><footer id=site-footer class="py-10 print:hidden"><nav class="flex flex-row pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400"><ul class="flex list-none flex-col sm:flex-row"><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/tags/ title=Tags>Tags</a></li><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/categories/ title=Categories>Categories</a></li></ul></nav><div class="flex items-center justify-between"><p class="text-sm text-neutral-500 dark:text-neutral-400">&copy;
25+
</span></a><span class="me-6 mt-1 text-xs text-neutral-500 dark:text-neutral-400"><time datetime=2026-03-02T19:32:36+09:00>2026.03.02</time></span></span></div></div><div class=pt-3><hr class="border-dotted border-neutral-300 dark:border-neutral-600"><div class=pt-3><script src=https://giscus.app/client.js data-repo=devmeeple/devmeeple.github.io data-repo-id=R_kgDOLZf5oA data-category=Announcements data-category-id=DIC_kwDOLZf5oM4Chwui data-mapping=pathname data-strict=0 data-reactions-enabled=1 data-emit-metadata=0 data-input-position=bottom data-theme=preferred_color_scheme data-lang=ko crossorigin=anonymous async></script></div></div></footer></article><div id=scroll-to-top class="fixed bottom-6 end-6 z-50 transform translate-y-4 opacity-0 duration-200"><a href=#the-top class="pointer-events-auto flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400" aria-label="맨 위로 스크롤" title="맨 위로 스크롤">&uarr;</a></div></main><footer id=site-footer class="py-10 print:hidden"><nav class="flex flex-row pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400"><ul class="flex list-none flex-col sm:flex-row"><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/tags/ title=Tags>Tags</a></li><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/categories/ title=Categories>Categories</a></li></ul></nav><div class="flex items-center justify-between"><p class="text-sm text-neutral-500 dark:text-neutral-400">&copy;
2626
2026
2727
장태근</p><p class="text-xs text-neutral-500 dark:text-neutral-400"><a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href=https://gohugo.io/ target=_blank rel="noopener noreferrer">Hugo</a> & <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href=https://blowfish.page/ target=_blank rel="noopener noreferrer">Blowfish</a> 로 제공됨</p></div><script>mediumZoom(document.querySelectorAll("img:not(.nozoom)"),{margin:24,background:"rgba(0,0,0,0.5)",scrollOffset:0})</script></footer><div id=search-wrapper class="invisible fixed inset-0 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh] z-500" data-url=https://devmeeple.github.io/><div id=search-modal class="flex flex-col w-full max-w-3xl min-h-0 mx-auto border rounded-md shadow-lg top-20 border-neutral-200 bg-neutral dark:border-neutral-700 dark:bg-neutral-800"><header class="relative z-10 flex items-center justify-between flex-none px-2"><form class="flex items-center flex-auto min-w-0"><div class="flex items-center justify-center w-8 h-8 text-neutral-400"><span class="relative block icon"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9.0 208 0S0 93.1.0 208s93.1 208 208 208c48.3.0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9.0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7.0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7.0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg></span></div><input type=search id=search-query class="flex flex-auto h-12 mx-1 bg-transparent appearance-none focus:outline-dotted focus:outline-2 focus:outline-transparent" placeholder=검색 tabindex=0></form><button id=close-search-button class="flex items-center justify-center w-8 h-8 text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400" title="닫기 (Esc)">
2828
<span class="relative block icon"><svg viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75.0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3 54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75.0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75.0-45.25s32.75-12.5 45.25.0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25.0s12.5 32.75.0 45.25l-105.4 105.4L310.6 361.4z"/></svg></span></button></header><section class="flex-auto px-2 overflow-auto"><ul id=search-results></ul></section></div></div></div></body></html>

posts/java-start-variables/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
이 글은 시리즈의 일부입니다.</summary><div class="py-1 border-dotted border-neutral-300 border-s-1 -ms-5 ps-5 dark:border-neutral-600">부분 2:
3939
이 글</div></details></div></section><footer class="pt-8 max-w-prose print:hidden"><div class=pt-8><hr class="border-dotted border-neutral-300 dark:border-neutral-600"><div class="flex justify-between pt-3"><span class="flex flex-col"><a class="flex text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400" href=/posts/bootcamp-backend-spring-boot/><span class=leading-6><span class="inline-block rtl:rotate-180">&larr;</span>&ensp;부트캠프 백엔드 개발자 편 with 스프링 부트
4040
</span></a><span class="ms-6 mt-1 text-xs text-neutral-500 dark:text-neutral-400"><time datetime=2026-02-28T00:00:00+00:00>2026.02.28</time>
41-
</span></span><span class="flex flex-col items-end"></span></div></div></footer></article><div id=scroll-to-top class="fixed bottom-6 end-6 z-50 transform translate-y-4 opacity-0 duration-200"><a href=#the-top class="pointer-events-auto flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400" aria-label="맨 위로 스크롤" title="맨 위로 스크롤">&uarr;</a></div></main><footer id=site-footer class="py-10 print:hidden"><nav class="flex flex-row pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400"><ul class="flex list-none flex-col sm:flex-row"><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/tags/ title=Tags>Tags</a></li><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/categories/ title=Categories>Categories</a></li></ul></nav><div class="flex items-center justify-between"><p class="text-sm text-neutral-500 dark:text-neutral-400">&copy;
41+
</span></span><span class="flex flex-col items-end"></span></div></div><div class=pt-3><hr class="border-dotted border-neutral-300 dark:border-neutral-600"><div class=pt-3><script src=https://giscus.app/client.js data-repo=devmeeple/devmeeple.github.io data-repo-id=R_kgDOLZf5oA data-category=Announcements data-category-id=DIC_kwDOLZf5oM4Chwui data-mapping=pathname data-strict=0 data-reactions-enabled=1 data-emit-metadata=0 data-input-position=bottom data-theme=preferred_color_scheme data-lang=ko crossorigin=anonymous async></script></div></div></footer></article><div id=scroll-to-top class="fixed bottom-6 end-6 z-50 transform translate-y-4 opacity-0 duration-200"><a href=#the-top class="pointer-events-auto flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400" aria-label="맨 위로 스크롤" title="맨 위로 스크롤">&uarr;</a></div></main><footer id=site-footer class="py-10 print:hidden"><nav class="flex flex-row pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400"><ul class="flex list-none flex-col sm:flex-row"><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/tags/ title=Tags>Tags</a></li><li class="flex mb-1 text-end sm:mb-0 sm:me-7 sm:last:me-0"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href=/categories/ title=Categories>Categories</a></li></ul></nav><div class="flex items-center justify-between"><p class="text-sm text-neutral-500 dark:text-neutral-400">&copy;
4242
2026
4343
장태근</p><p class="text-xs text-neutral-500 dark:text-neutral-400"><a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href=https://gohugo.io/ target=_blank rel="noopener noreferrer">Hugo</a> & <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href=https://blowfish.page/ target=_blank rel="noopener noreferrer">Blowfish</a> 로 제공됨</p></div><script>mediumZoom(document.querySelectorAll("img:not(.nozoom)"),{margin:24,background:"rgba(0,0,0,0.5)",scrollOffset:0})</script></footer><div id=search-wrapper class="invisible fixed inset-0 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh] z-500" data-url=https://devmeeple.github.io/><div id=search-modal class="flex flex-col w-full max-w-3xl min-h-0 mx-auto border rounded-md shadow-lg top-20 border-neutral-200 bg-neutral dark:border-neutral-700 dark:bg-neutral-800"><header class="relative z-10 flex items-center justify-between flex-none px-2"><form class="flex items-center flex-auto min-w-0"><div class="flex items-center justify-center w-8 h-8 text-neutral-400"><span class="relative block icon"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9.0 208 0S0 93.1.0 208s93.1 208 208 208c48.3.0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9.0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7.0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7.0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg></span></div><input type=search id=search-query class="flex flex-auto h-12 mx-1 bg-transparent appearance-none focus:outline-dotted focus:outline-2 focus:outline-transparent" placeholder=검색 tabindex=0></form><button id=close-search-button class="flex items-center justify-center w-8 h-8 text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400" title="닫기 (Esc)">
4444
<span class="relative block icon"><svg viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75.0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3 54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75.0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75.0-45.25s32.75-12.5 45.25.0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25.0s12.5 32.75.0 45.25l-105.4 105.4L310.6 361.4z"/></svg></span></button></header><section class="flex-auto px-2 overflow-auto"><ul id=search-results></ul></section></div></div></div></body></html>

0 commit comments

Comments
 (0)