[WordPress] Cloudflare + Kubernetes 환경에서 Real IP 얻기

Preface 최근들어 부쩍 스팸성 댓글이 활발한것 같다. WordPress에서 글이나 댓글이 작성되면, 스팸 필터링 등을 위해 작성자 IP등의 정보가 기록된다. 스팸으로 의심되는 IP나 댓글 본문은 자동으로 스팸 필터링이 적용되는데, 이 때 구축 환경 때문에 실제 IP (Real IP)가 기록되지 않는 문제가 종종 있는것 같다. 지금 구축된 환경에서는 사실 실제 IP(Real IP)가 직접 전달되기는 어렵다. 이를 해결하려면 …

[VSCode] Markdown PDF LaTex 포함 변환하기 (+M1 속도 향상)

VSCode에는 Markdown을 PDF로 export할 수 있는 유용한 plugin(링크)이 있다. 해당 플러그인을 활용해서 LaTeX 수식이 있는 Markdown 파일을 PDF로 export해보자. 마지막 부분에는 Apple Silicon(M1) macOS에서 발생하는 timeout 이슈를 해결할 수 있는 별도의 chromium 다운로드 과정 또한 설명한다. 목차 1. “Markdown PDF” VSCode plugin 설치 VSCode에 Markdown PDF 라이브러리를 설치한다: 설치 바로가기 링크 2. Markdown 파일에 MathJax …

[ML] Cross Entropy Loss는 Negative Class를 고려할까?

일반적으로 사용되는 아래 CE Loss의 구현을 Softmax를 빼고 보면 Loss Term에 Negative Class에 대한 고려가 들어가있지 않다. (마지막 정리부에서 다루지만 사실 CE Loss와 Softmax를 분리해서 보는 생각이 잘못된 것 같다.) 이 의문에서 시작해서 답을 찾아갔던 과정을 정리해보았다. 아래 수식에서 $p(x_{i})$는 정답값 분포 [0.0, 0.0, 1.0, 0.0, 0.0]를, $\hat{p}(x_{i})$는 Softmax를 거쳐나온 각 클래스별 확률 분포 $0<\hat{p}(x_{i})<1$를 …

[Golang] 외부 라이브러리 의존없이 Go 정적 빌드(Static Build)하기

go build 명령어 실행 시 아래와 같이 지정해주면, 시스템 라이브러리 (libstdc 등)에 의존하지 않는 정적 프로그램으로 빌드할 수 있다. Environment Variables Build Arguments (Optional) Extra Arguments Advantages 정적 프로그램으로 빌드할 경우 libc를 포함한 외부 라이브러리에 대한 의존이 없어서 단독으로 실행이 가능하다. 예를 들어, 위에서 빌드한 프로그램 ./main을 아래와 같이 Docker scratch 이미지에 넣고 단독으로 실행이 …

jungin500/efinextboot – 멀티부팅을 좀더 간단하게

Windows/Ubuntu를 멀티부팅할 일이 잦아서 자주 사용하던 chengxuncc/booToLinux 유틸리티에는 몇가지 문제점이 존재한다. 해당 레포지토리 소스코드를 살펴본 결과 Golang으로 작성되었으며 생각보다 간단하게 구성되었다. 각 문제의 해결 방법을 찾을 수 있을것 같아 직접 밑바닥부터 다시 구현하였다. Features

[Linux] PyTorch CUDA 오류 해결 – libcudnn_cnn_infer.so, libnvrtc.so

Anaconda/Miniconda로 최신 PyTorch 2.0과 CUDA 라이브러리(pytorch-cuda=11.8)를 설치하고 PyTorch 라이브러리를 로드할 때 이런 오류가 발생하는 경우가 있다. 해당 문제는 pytorch-cuda로 설치된 libnvrtc.so 파일이 제대로 링크되지 않아 발생한 문제이다. 이를 해결하기 위해서는 아래와 같이 기존의 libnvrtc.so.11.2나 libnvrtc.so.11.8 등을 프로그램이 열심히 찾고있는 libnvrtc.so로 링크해주면 된다. 현재 사용중인 conda 환경을 activate하고, 아래 Snippet을 실행하여 링크를 진행하여 문제없이 작동하였다. 위 …