▲GN⁺ 2024-09-30 | parent | ★ favorite | on: Go 웹 개발에 대한 몇가지 노트(jvns.ca)Hacker News 의견 Go 언어는 프로젝트를 5일 동안 작업하고 2년 동안 방치한 후에도 문제없이 다시 코딩할 수 있게 해줌 Go 언어는 몇 년 전부터 배우기 시작했지만 크게 변하지 않아 오랜 시간이 지나도 여전히 유용함 Go 언어의 웹 개발 포스트에서 embed 패키지가 언급되지 않은 것이 아쉬움 단일 바이너리로 정적 리소스를 번들링하는 것이 매우 편리함 데이터베이스 트랜잭션은 실패하도록 설계되었기 때문에 항상 재시도 루프를 사용해야 함 트랜잭션 루프에 Context를 추가하여 취소할 수 있도록 하는 것이 좋음 sqlc는 몇 가지 주요 제한 사항과 사소한 불편함이 있어 사용하기 전에 이슈 목록을 확인하는 것이 좋음 동적 쿼리, 일대다 관계, 임베디드 CTE, 복합 타입 등을 지원하지 않음 간단한 요구사항에는 적합하지만 복잡한 작업에는 수동 접근 방식을 사용해야 함 Go를 컨테이너 내에서 실행할 때 GOMAXPROCS를 적절히 설정하여 CPU 스로틀링을 피해야 함 GOMEMLIMIT을 사용하면 GC에 대한 걱정을 줄일 수 있음 Kubernetes나 Docker를 사용할 때 자동으로 설정할 수 있음 html/template는 이상하고 많은 문제를 가지고 있어 사용하지 않는 것이 좋음 대신 Templ을 선호함 라우팅에 대한 언급이 반가움 오랫동안 mux에 익숙해져 있었지만 새로운 릴리스 기능을 주목하지 않았음 새로운 직장에서 한 달 동안 Go를 사용했지만 싫어함 Go는 지난 20년간의 언어 개발에서 아무것도 배우지 않은 것 같음 nil 문제로 인해 간단한 작업도 복잡해짐 SQLite를 사용할 때 단일 쓰레드 작성자 풀과 다른 읽기 풀을 사용하는 것이 좋음 BEGIN CONCURRENT를 사용하여 동시성을 개선할 수 있음 Go의 단순성과 프레임워크 의존성이 없는 점을 사랑함 표준 라이브러리와 검증된 서드파티 라이브러리만으로도 훌륭한 것을 만들 수 있음 웹 앱이나 CLI 도구를 만들 때 Go가 적합함 명시적인 오류 처리를 좋아함 큰 Go 팬임
Hacker News 의견
embed패키지가 언급되지 않은 것이 아쉬움Context를 추가하여 취소할 수 있도록 하는 것이 좋음sqlc는 몇 가지 주요 제한 사항과 사소한 불편함이 있어 사용하기 전에 이슈 목록을 확인하는 것이 좋음GOMAXPROCS를 적절히 설정하여 CPU 스로틀링을 피해야 함GOMEMLIMIT을 사용하면 GC에 대한 걱정을 줄일 수 있음html/template는 이상하고 많은 문제를 가지고 있어 사용하지 않는 것이 좋음Templ을 선호함mux에 익숙해져 있었지만 새로운 릴리스 기능을 주목하지 않았음nil문제로 인해 간단한 작업도 복잡해짐BEGIN CONCURRENT를 사용하여 동시성을 개선할 수 있음