[{"categories":["일반"],"collections":null,"content":"대학교 정보보호학과에서 공부하며 느낀 배움의 한계와 기록의 가치, 그리고 Hugo와 Cloudflare Workers를 활용해 공격 표면(Attack Surface) 없는 정적 블로그를 직접 구축하며 겪은 기술적 트러블슈팅을 정리했습니다.","date":"2026-10-15","objectID":"/posts/welcome-to-devlog/","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/"},{"categories":["일반"],"collections":null,"content":"안녕하세요! 현재 대학교에서 정보보호학을 전공하고 있는 한동수입니다. 컴퓨터 사이언스의 기초를 단단히 다지고, 시스템 보안과 개발을 함께 공부하면서 마주한 수많은 지식과 고민의 흔적들을 차곡차곡 축적하기 위해 개인 기술 블로그 DevLog를 열었습니다. 첫 포스트에서는 거창한 선언 대신, 왜 정보보호학을 공부하며 기록이 절실했는지, 그리고 이 블로그를 Hugo와 Cloudflare Workers 기반의 정적 사이트로 직접 구축하며 겪었던 실제 엔지니어링 과정과 트러블슈팅을 솔직하게 기록해 보려 합니다. ","date":"2026-10-15","heading":"","objectID":"/posts/welcome-to-devlog/:0:0","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#"},{"categories":["일반"],"collections":null,"content":"🎓 1. 왜 기록(Technical Writing)인가? ","date":"2026-10-15","heading":"🎓 1. 왜 기록(Technical Writing)인가?","objectID":"/posts/welcome-to-devlog/:1:0","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-1-왜-기록technical-writing인가"},{"categories":["일반"],"collections":null,"content":"쏟아지는 지식과 휘발성의 문제 정보보호학은 컴퓨터 시스템의 가장 밑바닥(Low-level)인 어셈블리어와 운영체제 커널부터, 네트워크 패킷 구조, 웹 아키텍처, 암호학에 이르기까지 광범위한 스펙트럼의 지식을 요구하는 복합 학문입니다. 수업을 듣고 과제를 하며 새로운 도구나 분석 기법을 배울 때는 분명 이해한 것 같지만, 조금만 시간이 지나면 머릿속에서 흐릿해지기 일쑤였습니다. \u0026ldquo;이 환경에서는 왜 버퍼 오버플로우 페이로드가 정확한 주소에 안착하지 못했는가?\u0026rdquo; \u0026ldquo;보안 완화 기법(ASLR, DEP, PIE 등)이 걸려 있을 때 이를 우회하거나 방어하는 원리는 무엇인가?\u0026rdquo; \u0026ldquo;이 프로토콜은 어떤 위협 모델을 방어하기 위해 설계되었는가?\u0026rdquo; 이러한 질문들은 단순히 머릿속에 담아두는 것만으로는 온전히 내 지식이 되지 못했습니다. ","date":"2026-10-15","heading":"쏟아지는 지식과 휘발성의 문제","objectID":"/posts/welcome-to-devlog/:1:1","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#쏟아지는-지식과-휘발성의-문제"},{"categories":["일반"],"collections":null,"content":"파인만 기법과 메타인지 \u0026ldquo;내가 아는 것을 남에게 명확하게 설명할 수 없다면, 나는 그것을 온전히 아는 것이 아니다.\u0026rdquo; 노벨 물리학상 수상자 리처드 파인만이 강조한 배움의 본질입니다. 글을 쓴다는 것은 내가 무엇을 알고 무엇을 모르는지 냉정하게 확인하는 메타인지 훈련입니다. 머릿속의 어설픈 직관을 타인이 읽고 검증할 수 있는 논리적 문장과 코드로 재구성하는 과정에서 비어 있던 개념의 구멍이 비로소 메워집니다. ","date":"2026-10-15","heading":"파인만 기법과 메타인지","objectID":"/posts/welcome-to-devlog/:1:2","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#파인만-기법과-메타인지"},{"categories":["일반"],"collections":null,"content":"🛡️ 2. 보안 전공자의 관점에서 본 블로그 아키텍처 Velog, Tistory, Medium, Notion 등 편리한 플랫폼이 넘쳐나는 시대에, 굳이 정적 사이트 생성기(Hugo)와 글로벌 엣지(Cloudflare)를 조합해 블로그를 직접 만든 데에는 보안 전공자로서의 명확한 이유가 있습니다. graph LR subgraph Traditional[\"전통적인 동적 CMS (예: WordPress)\"] User1[\"방문자\"] --\u003e WebServer[\"웹 서버 (Nginx/Apache)\"] WebServer --\u003e AppServer[\"애플리케이션 (PHP/Node)\"] AppServer --\u003e DB[(\"데이터베이스 (MySQL)\")] style Traditional fill:#ffebee,stroke:#c62828 end subgraph StaticArchitecture[\"DevLog 아키텍처 (Hugo + Cloudflare)\"] Author[\"작성자 (Markdown)\"] --\u003e|Git Push| Build[\"빌드 자동화 (Cloudflare)\"] Build --\u003e|컴파일| Edge[\"글로벌 엣지 CDN (정적 자산)\"] User2[\"방문자\"] --\u003e Edge style StaticArchitecture fill:#e8f5e9,stroke:#2e7d32 end ","date":"2026-10-15","heading":"🛡️ 2. 보안 전공자의 관점에서 본 블로그 아키텍처","objectID":"/posts/welcome-to-devlog/:2:0","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-2-보안-전공자의-관점에서-본-블로그-아키텍처"},{"categories":["일반"],"collections":null,"content":"① 공격 표면(Attack Surface)의 최소화 동적 CMS의 취약성: PHP 기반의 WordPress 같은 전통적인 동적 사이트는 웹 서버, 백엔드 런타임, 데이터베이스, 수많은 외부 플러그인을 동반합니다. 관리되지 않은 플러그인 하나로 인해 SQL Injection, 파일 업로드 취약점, 원격 코드 실행(RCE) 등의 공격 표면이 끊임없이 노출됩니다. 정적 사이트의 본질적 안전성: 반면 Hugo로 사전 컴파일된 정적 웹사이트는 순수한 HTML, CSS, JavaScript 파일만으로 구성됩니다. 실행할 백엔드 스크립트나 데이터베이스 자체가 존재하지 않으므로 서버 사이드 침해 사고의 가능성을 구조적으로 원천 차단할 수 있습니다. ","date":"2026-10-15","heading":"① 공격 표면(Attack Surface)의 최소화","objectID":"/posts/welcome-to-devlog/:2:1","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-공격-표면attack-surface의-최소화"},{"categories":["일반"],"collections":null,"content":"② 데이터 주권과 영속성 모든 글을 로컬의 순수 Markdown(.md) 파일로 작성하고 Git으로 버전 관리합니다. 상용 플랫폼의 서비스 종료나 정책 변경에 영향을 받지 않고, 언제든 다른 인프라로 100% 온전하게 이식할 수 있는 지식 자산의 영속성을 확보했습니다. ","date":"2026-10-15","heading":"② 데이터 주권과 영속성","objectID":"/posts/welcome-to-devlog/:2:2","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-데이터-주권과-영속성"},{"categories":["일반"],"collections":null,"content":"💡 3. 실제 구축 과정에서 마주친 트러블슈팅 이 블로그를 구축하고 Cloudflare에 배포하는 과정은 단순한 복사-붙여넣기가 아니라, 그 자체로 의미 있는 엔지니어링 실습이었습니다. 실제로 마주쳤던 대표적인 기술적 문제와 해결 과정을 기록해 둡니다. ","date":"2026-10-15","heading":"💡 3. 실제 구축 과정에서 마주친 트러블슈팅","objectID":"/posts/welcome-to-devlog/:3:0","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-3-실제-구축-과정에서-마주친-트러블슈팅"},{"categories":["일반"],"collections":null,"content":"① Hugo와 Dart Sass의 --embedded 프로토콜 통신 문제 FixIt 테마는 UnoCSS와 함께 SCSS를 컴파일하기 위해 Dart Sass를 필수로 요구합니다. 초기 Cloudflare 배포 시 빌드 명령어로 npm install -g sass \u0026amp;\u0026amp; hugo를 실행했으나, 빌드가 Start building sites … 상태에서 영원히 멈추는(Hang) 현상이 발생했습니다. # 원인 분석 npm으로 설치되는 `sass` 패키지는 순수 JavaScript 래퍼입니다. Hugo는 SCSS 컴파일 시 Dart Sass 프로세스와 양방향 파이프 통신(--embedded 프로토콜)을 수행하는데, 순수 JS 버전은 이 프로세스 핸드셰이크를 처리하지 못해 Hugo가 무한 대기에 빠졌던 것입니다. 해결 방법: build.sh 스크립트를 작성하여, 빌드 컨테이너 환경에서 Hugo의 --embedded 프로토콜을 온전히 지원하는 **공식 Dart Sass 독립 실행형 바이너리(Standalone Linux x64)**를 자동으로 감지 및 다운로드하도록 파이프라인을 구축했습니다. ","date":"2026-10-15","heading":"① Hugo와 Dart Sass의","objectID":"/posts/welcome-to-devlog/:3:1","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-hugo와-dart-sass의---embedded-프로토콜-통신-문제"},{"categories":["일반"],"collections":null,"content":"② 무상태(Stateless) CI/CD 환경에서의 Git Submodule 관리 테마 소스를 메인 레포지토리에 직접 병합하지 않고 독립적인 git submodule로 관리했습니다. 하지만 클라우드 빌드 환경에서는 서브모듈 디렉터리가 기본적으로 비어 있는 상태로 클론되기 때문에, 빌드 직전에 테마 의존성을 안전하게 당겨오는 과정이 필수적이었습니다. 이를 위해 빌드 스크립트 최상단에 서브모듈 동기화(git submodule update --init --recursive)를 선언하고, Hugo Extended 판별 로직과 결합하여 어떤 무상태(Stateless) 컨테이너에서도 의존성 없이 단일 스크립트로 빌드가 완결되도록 자동화했습니다. ","date":"2026-10-15","heading":"② 무상태(Stateless) CI/CD 환경에서의 Git Submodule 관리","objectID":"/posts/welcome-to-devlog/:3:2","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-무상태stateless-cicd-환경에서의-git-submodule-관리"},{"categories":["일반"],"collections":null,"content":"🚀 마무리하며 \u0026ldquo;배움에는 끝이 없고, 기록은 배움을 온전한 나의 것으로 만든다.\u0026rdquo; 대학 생활 동안 마주할 수많은 과제와 프로젝트, 보안 기술의 퍼즐들을 하나씩 풀어가며 이곳에 흔적을 남기겠습니다. 컴퓨터 시스템의 동작 원리와 정보보안에 관심 있는 분들과 함께 고민하고 성장하는 공간이 되길 바랍니다. 글을 읽으시면서 궁금한 점이나 피드백, 교정할 내용이 있다면 언제든 이메일(dongsu8142@naver.com)이나 GitHub으로 편하게 말씀해 주세요. 방문해 주셔서 진심으로 감사드립니다! ","date":"2026-10-15","heading":"🚀 마무리하며","objectID":"/posts/welcome-to-devlog/:4:0","tags":["DevLog","정보보안","Hugo","Cloudflare","대학생활","공부기록"],"title":"DevLog 시작하기: 정적 사이트 직접 구축기와 정보보안 공부의 기록","uri":"/posts/welcome-to-devlog/#-마무리하며"},{"categories":["Projects"],"collections":null,"content":"공부 기록과 프로젝트 쇼케이스를 위해 Hugo와 FixIt Git submodule 기반으로 구축한 정적 블로그 및 포트폴리오 시스템입니다.","date":"2026-10-15","objectID":"/projects/devlog-portfolio/","tags":["Hugo","Go","SCSS","Git"],"title":"개인 DevLog \u0026 포트폴리오 웹사이트 구축","uri":"/projects/devlog-portfolio/"},{"categories":["Projects"],"collections":null,"content":"공부한 내용을 체계적으로 아카이빙하고 프로젝트 결과물을 보여주기 위해 직접 구축한 정적 웹사이트 프로젝트입니다. ","date":"2026-10-15","heading":"","objectID":"/projects/devlog-portfolio/:0:0","tags":["Hugo","Go","SCSS","Git"],"title":"개인 DevLog \u0026 포트폴리오 웹사이트 구축","uri":"/projects/devlog-portfolio/#"},{"categories":["Projects"],"collections":null,"content":"📌 프로젝트 개요 사이트 주소: https://hdsu.net 저장소: github.com/dongsu8142 사용 기술: Hugo Extended (v0.168+), FixIt Theme, Dart Sass, KaTeX ","date":"2026-10-15","heading":"📌 프로젝트 개요","objectID":"/projects/devlog-portfolio/:1:0","tags":["Hugo","Go","SCSS","Git"],"title":"개인 DevLog \u0026 포트폴리오 웹사이트 구축","uri":"/projects/devlog-portfolio/#-프로젝트-개요"},{"categories":["Projects"],"collections":null,"content":"🎯 기술적 목표 \u0026amp; 특징 압도적인 빌드 및 로딩 속도: Go 기반의 Hugo 정적 사이트 생성기를 채택하여 수백 페이지도 0.2초 이내에 빌드되도록 최적화했습니다. Git Submodule 아키텍처: Hugo Module 의존성 대신 Git의 submodule 방식을 사용하여 테마 소스를 독립적으로 관리하고 버전 추적이 용이하도록 설계했습니다. 학습에 최적화된 리딩 경험: macOS 스타일의 코드 블록 및 원클릭 복사 기능 Fuse.js 기반의 빠른 클라이언트 사이드 검색 모바일/데스크톱 반응형 UI 및 다크 모드 자동 전환 수식 렌더링을 위한 KaTeX 지원 ","date":"2026-10-15","heading":"🎯 기술적 목표 \u0026amp; 특징","objectID":"/projects/devlog-portfolio/:2:0","tags":["Hugo","Go","SCSS","Git"],"title":"개인 DevLog \u0026 포트폴리오 웹사이트 구축","uri":"/projects/devlog-portfolio/#-기술적-목표--특징"},{"categories":["Projects"],"collections":null,"content":"💡 개발 회고 \u0026amp; 배운 점 무거운 CMS(WordPress 등)나 무거운 프런트엔드 SPA 프레임워크 대신 정적 사이트 생성기(SSG)를 선택함으로써 서버 유지비 없이 안전하고 빠른 블로그를 완성할 수 있었습니다. 또한 Git submodule 구조를 직접 다루며 서브모듈의 작동 원리와 버전 관리 흐름을 깊이 있게 이해할 수 있었습니다. ","date":"2026-10-15","heading":"💡 개발 회고 \u0026amp; 배운 점","objectID":"/projects/devlog-portfolio/:3:0","tags":["Hugo","Go","SCSS","Git"],"title":"개인 DevLog \u0026 포트폴리오 웹사이트 구축","uri":"/projects/devlog-portfolio/#-개발-회고--배운-점"},{"categories":null,"collections":null,"content":"대학에서 정보보호학을 공부하며 기록하는 학생 개발자 한동수(Dongsu Han) 소개입니다.","date":"2026-10-15","objectID":"/about/","tags":null,"title":"About Me","uri":"/about/"},{"categories":null,"collections":null,"content":"안녕하세요, 한동수(Dongsu Han)입니다! 👋 현재 대학교에서 정보보호학과를 다니고 있는 학생 개발자입니다. 시스템 보안과 안전한 소프트웨어 개발, 컴퓨터 사이언스 기초에 깊은 관심을 가지고 있으며, Rust와 C/C++, Python 등을 활용한 시스템 프로그래밍과 보안 기술을 탐구하는 것을 좋아합니다. ","date":"2026-10-15","heading":"안녕하세요, 한동수(Dongsu Han)입니다! 👋","objectID":"/about/:0:0","tags":null,"title":"About Me","uri":"/about/#안녕하세요-한동수dongsu-han입니다-"},{"categories":null,"collections":null,"content":"🎯 DevLog를 시작한 이유 대학 전공 수업(암호학, 시스템 보안, 네트워크 보안, 운영체제, 리버스 엔지니어링, 자료구조 등)을 듣고 혼자 개발 및 보안 실습을 진행하면서, **\u0026ldquo;배운 것을 온전히 내 것으로 만들기 위해서는 기록이 필수적이다\u0026rdquo;**라는 것을 느꼈습니다. 📚 전공 이론 정리: 암호학, 네트워크/시스템 보안 및 컴퓨터 사이언스 이론을 글과 코드로 직접 재구성하여 정리합니다. 💡 트러블슈팅 \u0026amp; 분석 기록: 프로그래밍 중 마주친 버그, 취약점 분석 과정과 해결 방법을 기록합니다. 🛠️ 프로젝트 회고: 사이드 프로젝트와 보안 도구를 개발하며 고민했던 의사결정을 기록합니다. \u0026ldquo;배운 내용을 누군가에게 설명할 수 있을 때, 비로소 진짜 나의 지식이 된다.\u0026rdquo; ","date":"2026-10-15","heading":"🎯 DevLog를 시작한 이유","objectID":"/about/:1:0","tags":null,"title":"About Me","uri":"/about/#-devlog를-시작한-이유"},{"categories":null,"collections":null,"content":"💻 관심 분야 \u0026amp; 기술 스택 관심 분야: 시스템 보안, 취약점 분석, 안전한 시스템 프로그래밍, 네트워크 보안, 암호학 언어: Rust, C/C++, Python, Go, JavaScript/TypeScript 도구 \u0026amp; 환경: Linux, Docker, Git \u0026amp; GitHub, Wireshark, GDB, Hugo ","date":"2026-10-15","heading":"💻 관심 분야 \u0026amp; 기술 스택","objectID":"/about/:2:0","tags":null,"title":"About Me","uri":"/about/#-관심-분야--기술-스택"},{"categories":null,"collections":null,"content":"📬 연락처 \u0026amp; 링크 GitHub: @dongsu8142 Email: dongsu8142@naver.com Blog: https://hdsu.net ","date":"2026-10-15","heading":"📬 연락처 \u0026amp; 링크","objectID":"/about/:3:0","tags":null,"title":"About Me","uri":"/about/#-연락처--링크"}]