Skip to main content
Haril Song
Owner, Software Engineer at 42dot

Haril is a software engineer who loves to build things. He is passionate about open-source and loves to contribute to the community. He is the owner of this blog.

View all authors

'글을 잘 쓴다는 것'은 무엇일까? - 글쓰기 파이프라인

· 14 min read
Haril Song
Owner, Software Engineer at 42dot

저는 대부분의 글은 마크다운 에디터인 Obsidian 을 사용하고, GitHub page 로 블로그를 호스팅하고 있습니다. 두 가지 서로 다른 플랫폼에서 흐름이 끊기지 않고 글 쓰는 습관을 유지하려면 어떻게 해야하는지, 제가 사용하고 있는 방법을 소개합니다.

info

이 글은 글또에서 진행한 성윤님의 프레젠테이션에서 영감을 받아 작성하였습니다.

chezmoi, 세상 편리하게 dotfile 관리하기

· 13 min read
Haril Song
Owner, Software Engineer at 42dot

새로운 맥북을 사서 기분이 좋았다가 개발 환경을 다시 세팅해줄 생각에 머리가 어지러웠던 적은 없으신가요? 업무 중 기가 막힌 툴을 찾았지만, 집에서 개인 환경에 다시 설정할 생각에 귀찮으셨던 적은 없으신가요? github 으로 설정들을 관리하고 싶지만, 보안성이 신경쓰여 push 할때도 한 참 고민하신 적은 없으신가요?

아마 복수의 기기를 사용하고 계시다면 한 번쯤은 이런 고민을 해보셨을 것 같은데요, 플랫폼에 상관없이 설정들을 일관되게 관리하려면 어떻게 해야할까요?

[O2] Obsidian plugin 개발하기

· 14 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

Obsidian 은 마크다운 파일간 링크를 통해 그래프 뷰를 제공하여 편리하게 정보를 저장하고 탐색할 수 있도록 해줍니다. 하지만 이를 위해서 오리지널 마크다운 문법 외적으로 Obsidian만의 고유 문법을 강요하는데요. 이 때문에 Obsidian에서 글을 작성하면 다른 플랫폼에서 마크다운 문서를 읽을 때 호환되지 않는 영역이 존재하게 됩니다.

저는 글 작성기준(23년 2월) Jekyll 블로그를 사용하여 포스팅을 하고 있기 때문에 Obsidian 에서 글을 작성하게 되면 블로그 발행을 위해 이후 수작업으로 문법을 수정해줘야하는 워크플로우가 있었습니다. 구체적으로는 다음과 같습니다.

info

현재(24년 5월 이후) 보고 계신 블로그는 Docusaurus 를 사용하고 있습니다. O2 에서 Docusaurus 로 변환하는 기능은 지원하지 않으며, 추후 개발 예정입니다. O2 2.0 부터 Docusaurus 를 지원합니다.

  • [[]]을 사용한 파일링크는 Obsidian 고유 문법
  • img 파일을 비롯한 attachments 경로 재설정
  • title.md -> yyyy-MM-dd-title.md
  • callout 문법

image layer 간의 경계를 넘어가는 이중 점선 화살표는 수작업이 필요한 부분입니다.

Obsidian 과 Jekyll 을 병행해서 사용하는 이상 이 문법 변환 과정 및 attachment 복사 과정을 자동화해야할 필요가 있었습니다.

Obsidian 은 Notion 과는 다르게 커뮤니티 플러그인을 통해 기능의 확장이 가능하니 한 번 직접 만들어보기로 합니다. 공식 문서를 좀 살펴보니 Obsidian 은 plugin 을 NodeJS 기반으로 만들도록 가이드하고 있더군요. 언어의 선택지가 넓지 않은 것이 좀 아쉽지만 TypeScript 도 평소 관심가지던 언어라서, 공부해볼겸 NodeJS/TS 환경을 구성했습니다.

Google Kubernetes Engine 를 Local CLI 를 통해 관리하기

· 5 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

Google 에서 제공하는 Cloud shell 을 통해 언제 어디서나 Web 을 통해서 kubectl 을 실행할 수 있다는 점은 매우 편리하지만 간단한 조회 명령 한 줄을 위해서 Web 접근 및 인증 등 다소 귀찮은 작업이 필요하다는 단점이 있습니다. 이번 글에서는 Google Cloud Kubernetes 를 local 에서 CLI 를 통해 빠르게 관리하기 위한 방법을 공유합니다.

Test 의 실행속도를 빠르게, Spring context mocking

· 5 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

모든 프로젝트에서 테스트 코드를 작성하는 것은 이제 일상이 된지 오래다. 프로젝트가 성장해나간다면 필연적으로 테스트의 수도 많아지면서 전체 테스트 수행시간이 점점 길어지게 된다. 특히 Spring framework 을 기반으로 하는 프로젝트의 테스트를 쓰고 있다면 Spring Bean 의 Context loading 에 의해서 테스트 실행이 급격하게 느려지게 되는데, 이 글에서는 이러한 문제를 해결하기 위한 방법을 소개한다.

2022년 회고 겸 삶의 지도

· 32 min read
Haril Song
Owner, Software Engineer at 42dot

들어가기 전에

2022년 회고를 적으려다가 삶의 지도라는 일종의 자소서를 적어야할 필요성이 생겼습니다. 하여 지금까지의 제 경험을 간략하게 자서전처럼 적어보고자 합니다.