VS Code 사용시 html.erb를 html로 인식하지 못하여 snippets을 사용하지 못할 경우
·
Dev/삽질 방지
VS Code를 이용하여 Ruby erb 파일을 편집할 때 snippets을 사용하고 싶은 경우가 있는데, 일반적인 html snippets이 인식이 안되는 현상이 있다. 이 경우 settings.json에 아래 코드를 추가해준 후 VSC를 재시작하면 정상 작동한다. "emmet.includeLanguages": {"erb": "html", "html.erb": "html" } html.erb 파일이 아니더라도 위와 같은 방식을 이용하면 된다.
구글 클라우드 상태 확인(GoogleHC) 때문에 서버가 터지다.
·
Dev
갑자기 서버가 10분 정도의 주기로 계속 재생성되는 현상이 있었다. 오토 스케일링이나 상태 확인(Health Check) 설정이 잘못된건지 살펴보며 1주일만에 겨우 원인을 밝혀냈다.원인구글 클라우드 부하 분산(로드 밸런서)는 안정성을 위해서 한 개가 아니라 여러개가 여러 가용성 존에서 동시에 들어간다. 그런데 이번에 구글이 무슨 업데이트를 한 건지 이 서버들이 엄청나게 늘어났다. 기존에 초당 4번 정도만 확인하던 상태 확인 요청이 수십개로 늘어나니까 부하를 견디지 못한 것이다.당시 마인리스트는 상태 확인을 전용 엔드포인트(예를 들어 /_health 같은 페이지)가 아닌 메인 페이지에 했었다. 문제는 당시 마인리스트의 메인 페이지는 캐싱조차 제대로 설정되지 않은 상태였다. 대량으로 늘어나는 상태 확인용 요..
Let's Encrypt DNS TXT로 발급받기
·
Dev/삽질 방지
무료로 SSL을 제공하는 Let's Encrpyt. 발급을 위해선 certbot이라는걸 설치한 후 도메인 인증 절차를 걸쳐서 발급해야 합니다. 이 방식을 ACME 챌린지라 부르는듯. 여튼 기본값은 웹서버를 열거나 웹에 특정 내용이 들어가 있는 특정 파일명을 가진 파일을 만들어서 인증하는 방식인데, 제가 쓰고 있는 Google Cloud Load Balancer에서 버킷 만들어서 인증을 시도하니 "ACME HTTP challenges are not supported"라는 괴랄한 오류가 뜹니다.HTTP 방식 말고 좀 쉬운 방법을 찾아보던 중 DNS TXT를 이용할 수 있는 방법이 존재하더군요.sudo certbot certonly --manual -d 쉼표로구분된도메인들 --preferred-challeng..
정규식으로 이메일이나 도메인 쓸때 주의사항
·
Dev/삽질 방지
위 사진을 봅시다. 언뜻 보기에는 아무 문제가 없어 보이죠. 하지만 정규식에서는 모든 문자열을 "."으로 표현합니다. 즉, 도메인 주소를 저렇게 .을 붙여 쓰게 되면 "iwinvhelperaiwinv.net"이라는 도메인도 해당되게 됩니다. 우측도 마찬가지죠. 이메일 주소인데 "asdasdasd@baracom"로 해도 일치하게 돼 버립니다.뭐 사소한 것일수도 있겠지만, 이런 사소한 점 하나로 사이트의 보안이 뚫려버릴수도 있습니다. 진짜 "."을 인식시키고 싶다면 앞에 역슬래시(키보드에서 원화)를 입력해주면 됩니다. "ryush00\.tistory\.com"처럼 입력하시면 됩니다.