본문 바로가기

전체 글74

[TIL] Prism.js: code prettier html과 json을 예쁘게 보여줄 필요가 있어 라이브러리를 찾아보다가 prism.js를 사용해 보게 되었다. react에서 사용해 보기 위해 prism-react-renderer부터 시작해봤다. npm install --save prism-react-renderer {({ className, style, tokens, getLineProps, getTokenProps }) => ( {tokens.map((line, i) => ( {line.map((token, key) => ( ))} ))} )} custom theme이 다양하게 있었지만, 오히려 기본 theme이 어울릴 것 같다는 의견에 서드파티가 아닌 Prism.js 공식 사이트에서 제공해준 대로 개발해 보았다. npm i -D @types/pri.. 2024. 1. 11.
[TIL] golang http server에 timeout handler 추가하기 Golang 서버에 timeout을 적용할 방법을 찾다가 나온 내용을 정리해둔다. 방법 1: http server에 timeout 설정 server := &http.Server{ Handler: h, ReadTimeout: 3 * time.Minute, WriteTimeout: 3 * time.Minute, } ReadTimeout: body를 포함한 전체 request를 읽기 위한 timeout. Handler가 request body의 허용 가능한 deadline이나 upload rate에 대한 request 별 decision을 내리지 않기 때문에 ReadHeaderTimeout을 사용하는 것이 권고된다. ReadHeaderTimeout: header를 읽는데 허용된 시간. Header를 다 읽으면.. 2023. 12. 25.
쉘 스크립트 기초 모던 리눅스 교과서 (마이클 하우센블라스) 를 읽으면서 쉘 스크립트에 대해서 짧게 나오는데, 내가 헷갈려 했던 부분이 여럿 적혀있어 이를 정리해두고자 한다. 데이터 타입 쉘은 일반적으로 모든 것을 문자열로 취급하지만 배열과 같은 일부 고급 데이터 유형은 지원한다. os=('Linux' 'macOS' 'Windows') echo "${os[0]}" # Linux numberofos="${#os[@]}" # 흐름 제어 분기와 반복도 가능하다. if [ $a -eq $b ] ; then echo "yes" fi for afile in /tmp/* ; do echo "$afile" done for i in {1..10}; do echo "$i" done while true; do ... done 함수 함수를 사.. 2023. 12. 25.
[TIL] golang promauto metric register시 panic golang에서 prometheus metric을 등록할 때 ‘-’가 들어가면 panic이 나는 경우가 있었다. 물론 ‘-’를 ‘_’로 바꿔주면 되는 이슈였지만, 애초에 prometheus metric을 logging하지 못한다고 panic이 나는게 이상하다. panic이 아니라 error를 리턴하여 에러 핸들링 로직으로 처리할 수 있어야 한다. AS-IS prometheus의 promauto package를 사용해서 gauge를 만들어 주고 있었다. newGauge := promauto.NewGauge( prometheus.GaugeOpts{ Namespace: PrometheusNameSpace, Name: metricName, Help: "Metric for " + metricName + ".", .. 2023. 12. 21.