안녕하세요 대무무입니다. 오늘은 Calibre-Web 이라는 웹 기반 E-book 관리 도구입니다. 이건 뭐야? 해당 도구를 몰랐던 시절에는 모든 문서들을 NAS 에서 하나의 디렉토리에 넣고 관리했는데 이렇게 하니 원하는 문서를 검색하는 것이 어려웠고 문서 관리하는 것 또한 힘들었습니다. 그래서 관리 시스템을 제공하는 오픈 소스 기반의 도구가 어떤 것들이 있을지 찾아보다 발견하게 되었습니다. Calibre 는 오픈 소스 E-book 관리 프로그램이며 문서들을 관리하는데 사용합니다. 다양한 문서 형식을 지원하며 OS 별로 다양하게 지원하는 것이 특징인데요. 요 프로그램을 web 기반으로 옮겨간 프로젝트가 Calibre-Web 입니다. 브라우저를 통해 E-book 파일들을 관리할 수 있는 장점이 있고 OPD..
안녕하세요 대무무입니다. 이전 글에서 Tailscale 이라는 WireGuard 기반 Mesh VPN 서비스를 소개해드렸는데요. 오늘은 Site-to-Site 방식이 무엇인지와 Tailscale 에서 유사하게 설정하는 방법에 대해 알려드리려 합니다. Site-to-Site VPN? 두 개 이상의 서로 다른 물리적 위치에 있는 네트워크 간 Private 한 하나의 가상 네트워크를 구축한 것을 뜻합니다. 주로 서로 다른 사무실 혹은 다른 지역에 위치한 기업의 지점들이 인터넷을 통해 마치 하나의 사설 네트워크로 보이게끔 설정 가능합니다. 아래 그림과 같이 네트워크 A 와 B 가 존재하는데 물리적으로는 A 네트워크와 B 네트워크 간 통신을 수행하려면 외부 인터넷을 통해 공개된 외부 IP 주소(혹은 도메인 주소)..
질문 프로세스와 쓰레드의 차이에 대해 설명해주세요. 멀티 프로세스와 멀티 쓰레드에 대해 설명해주세요. 답변 프로세스는 실행 중인 프로그램의 인스턴스를 말한다. 프로세스 별로 독립된 논리적인 메모리 영역을 가지며 다른 프로세스와 공유하지 않는다. 쓰레드는 프로세스 내 작업의 흐름을 나타내며 프로세스 내 최소 1개 이상의 쓰레드를 가질 수 있다. 각 쓰레드는 자기만의 stack 메모리 공간을 가지며 heap 이나 data, code 메모리 공간을 공유한다. 우리가 실행 파일(프로그램)을 실행하면 프로그램 내 코드가 메모리에 적재되어 인스턴스화가 일어나고 이후 OS 의 CPU 스케줄러를 통해 CPU 가 프로세스를 실행한다. 다음은 OpenAI 의 ChatGPT 의 답변이다. Why? 해당 질문은 기술면접을 받..