남는 맥미니에서 도커로 사이트를 하나 띄웠는데 백엔드가 너무 느리다.
프론트는 vue로 만들어진 정적파일이고, 백엔드는 golang으로 빌드된 실행파일이다.
백엔드에서 API응답이 늦다.

기존에 리눅스에서 서비스되던것이라 다른점은 호스트가 MacOS라는것.

백엔드는 느릴만한 로직이 없고.. 기존에도 빠르게 동작했었다.

결국 답은 찾았는데, 백엔드는 임베디드 데이터베이스를 쓰는데 파일을 로컬에 저장한다.
이 디비를 MacOS에 두고 도커에 마운트해 쓰는데 맥의 경우 파일시스템 동기화에 문제가 있는지 느리다고 한다.

해결방법은 volume 마운트 설정에 :delegated를 붙이라는것.
그렇게 하면 파일시스템 동기화를 비동기로 하면서 좀더 빨라진다고 한다.

version: '3.7'

services:
  app:
    build: .
    container_name: mysite-net
    ports:
      - "8003:80"
    volumes:
      - /Volumes/data/www/mysite.net/db_data:/data/db_data:delegated

실제로 이렇게 설정한 후 다시 돌리니 많이 빨라졌다.

또 문제가 생기면 도커를 포기하는 방법밖에...

아이가 어린이집으로부터 종종 옮겨오긴 하지만, 올 겨울들어 유독 감기와 기침을 자주 옮겨와서 몇달동안 아이가 기침하느라 밤잠을 설치는 날이 많았었는데 보통의 부모들처럼 이비인후과를 자주 들락거리는 날이 많아졌다.
처음엔 증상을 치료하는 효과가 좋은 듯 하다가 내성이 생겼다며 종류를 바꿔가며 항생제를 밥먹듯 먹인다.
그러다 중간에 아이가 배가 아프다는 경우도 생겼다. 잘은 모르겠지만 항생제의 부작용으로 장이 안좋아진게 아니었나 싶다.
결국, 이게 답은 아닌것 같아 이비인후과 대신 치료법을 바꿔보기로 했다.

바로 한의원...

종종 방문해 진맥을 하고 스티커 형태의 안아픈 침을 붙이고 뜸도 했다. 한약이 쓰다고 절대 안먹으려고 하는걸 꿀 조금 타서 먹이고 있다.

증상을 고치려 하는 이비인후과와는 달리, 원인을 해결하여 치료한다는 한의원의 방향성이 더 맞는것 같다. 한약을 두달째 먹고 있는데 치료 한 2주쯤부터 기침을 하지 않았고 노란콧물이 다 없어졌다. 그후로 내 기억엔 감기에 걸리는 걸 본 기억이 없다. 기침도 하는거 같지 않고 밤잠을 설치지도 않는다. 물론 한의원 치료가 비싸긴 했다. 하지만 몸을 해치지 않는 더 건강한 치료방법인 건 확실하다.

내성균이 더 위험하다며 대부분의 경우 (수술같은 특수한 경우를 제외하고) 항생제를 되도록 쓰면 안된다는 어떤 약사의 유튜브를 우연히 보고 최근 경험을 적어본다.

등기부등본이 필요해서 인터넷등기소 사이트에 접속해 이것저것 프로그램을 깔고......
결국 진입에 성공하고.. 겨우 결제도 하고... 출력 전단계까지 진입했다.

그런데... 아무리 해도 프로그램이 안뜨는거다.

평소에 맥을 쓰다보니 한참 고민하다가.. 프로그램 로그가 남았을거라는 생각에 이벤트 뷰어로 들어가봤다.

다행히 로그가 남았네...

VC런타임 라이브러리가 설치가 안돼 그런거 같은데 왜 알려주지도 않고 죽어버리면 어쩌라고... 32비트용... 으로 설치해야 하네?
MS피셜 더이상 지원하지 않는다는 VC 2008 SP1용 X86(32비트)용 런타임 라이브러리를 다운받아 설치하면 될거 같다. 

https://learn.microsoft.com/ko-kr/cpp/windows/latest-supported-vc-redist?view=msvc-170

 

지원되는 최신 Visual C++ 재배포 가능 패키지 다운로드

이 문서에서는 최신 버전의 Visual C++ 재배포 가능 패키지 패키지에 대한 다운로드 링크를 나열합니다.

learn.microsoft.com

그랬더니...

이제 프린트 하는 화면이 뜬다. 휴...

 

지금까지 이런 경우가 없었던것 같은데 계속 nginx의 proxy_cache설정을 해도 캐시가 MISS난다.
원인을 찾다보니...

proxy_buffering off;

설정이 include한 파일에 들어가 있어서....

AWS IVS 테스트 중 nodejs로 재생토큰 생성해 봤는데 혹시 나중에 참조할까 싶어 메모용..

const fs = require("fs");
const jwt = require('jsonwebtoken');


privateKey = fs.readFileSync('./private-key.pem');

expire = parseInt(new Date().getTime() / 1000, 10) + 60

payload = {
	"aws:channel-arn": "arn:aws:ivs:ap-northeast-2:538111149902:playback-key/vzVAAA2pkebk",
	"aws:access-control-allow-origin": "*",
	"exp": expire,
}

token = jwt.sign(payload, privateKey, { algorithm: 'ES384' });

url = "https://3fefaaab8240.ap-northeast-2.playback.live-video.net/api/video/v1/ap-northeast-2.538111149902.channel.86CWWWWOCiaSr.m3u8?token=" + token

console.log({url})

+ Recent posts