인어를 위한 포스팅은 없다

인어를 위한 포스팅은 없다
mermaid logo - https://github.com/mermaid-js/mermaid

ghost를 통해 포스팅을 진행하면서 여러 기능들을 사용할 수가 있는데, 그 중 웹 페이지에서 자주 보이는 머메이드 기능이 없어 이를 추가하고 사용하는 방법에 대해서 포스팅하고자 합니다.

ghost에서 제공하는 editer기능에 없는

머메이드(Mermaid)란?

마크다운 기반의 다이어그램 생성 도구로, 간단한 코드로 복잡한 그래프를 시각화할 수 있는 도구입니다. JavaScript 기반 렌더링을 통해 코드를 시각화해주기 때문에 일부 환경에서는 사용할 수 없지만, 대부분의 인터넷 환경에서는 잘 작동됩니다.

직접 이미지를 넣을 수도 있지만 변경이 있을 때마다 이미지를 변경하고 이미지를 교체하는 작업을 진행해야하고 이미지가 삭제되어 아예 확인할 수 없는 상황이 발생 하기도 합니다. 또한 서버 관리자 입장에서는 이미지를 로드하지 않고, 사용자가 직접 랜더링하기 때문에 저장공간, 네트워크 사용 등 리소스 관리 측면에서도 유리할 수 있습니다.


포스팅에 인어를 풀어주기

블로그 전체에 머메이드 자바스크립트를 넣을 수도 있지만, 특정 포스팅에서만 사용하는 자바스크립트를 항상 불러오는것은 비효율적이기 때문에 포스팅마다 존재하는 code injection 기능을 사용합니다.

  1. 새 포스팅을 작성합니다.
  2. 우측 상단의 setting버튼 누릅니다.
  1. 목록 하단에서 code injection을 선택합니다.
  1. header 부분에 머메이드를 실행하는 코드를 추가합니다.
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
<script>
  document.addEventListener("DOMContentLoaded", function() {
    mermaid.initialize({ startOnLoad: true });
  });
</script>

code injection용 머메이드 실행 자바스크립트

  1. html 태그로 그래프를 작성합니다.
<div class="mermaid">
    graph LR;
        A[Blog] --> B
        B[Post] --> C
        C[Mermaid] --> D
        D[View] --> Profit
</div>

샘플 머메이드 그래프 코드블럭

graph LR; A[Blog] --> B B[Post] --> C C[Mermaid] --> D D[View] --> Profit

추가 기능

code injection에 스타일을 추가할 수 있습니다.

<style>
  .mermaid {
    display: flex;
    justify-content: center;
    align-items: center;
    height: auto;
  }
</style>

중앙에 정렬되는 머메이드 그래프가 되었습니다.


포스팅의 내용뿐만 아니라 기능까지 자유롭게 커스텀해서 사용할 수 있는 시대입니다. 이제 포스팅에 다른 기능의 code injection 도 소개할 예정입니다.

특히 블로그 운영과 밀접하게 관련된 통계 수집을 google analytics로 수집할 예정이며 블로그의 모든 곳에서 작동하는 code injection을 통해 작동 시킬 예정입니다.

Read more

비동기 프로그래밍 : golang

비동기 프로그래밍 : golang

비동기 프로그래밍의 필요성과 Go 언어의 등장 * 최신 애플리케이션은 높은 처리량과 낮은 지연 시간을 요구하며, 이는 단일 스레드 방식으로는 달성하기 어렵습니다. * 비동기/동시성 프로그래밍이 필수적이 되었지만, 기존 언어에서는 복잡한 스레드 관리, 락(Lock) 메커니즘 등으로 인해 개발 난이도가 높았습니다. * Go 언어는 이러한 문제를 해결하기 위해 Goroutine과 Channel이라는 독창적이고 강력한 동시성 프리미티브를