[golang] sync.WaitGroup으로 고루틴 작업 기다리기
·
Language/Go
서론Go 언어에서는 동시성 처리를 간편하게 할 수 있는 고루틴(goroutine)을 제공한다. 여러 고루틴을 동시에 실행하고 이들의 작업이 완료될 때까지 기다리는 문제는 sync.WaitGroup을 사용하여 해결할 수 있다. sync.WaitGroup은 여러 고루틴의 작업을 동기화하고 모든 고루틴이 작업을 완료할 때까지 대기하는 기능을 제공한다. 이를 통해 고루틴들이 완료될 때까지 기다리며 효율적인 병렬 처리를 할 수 있다. 예제package mainimport ( "fmt" "sync")func main() { var wg sync.WaitGroup for i := 0; i  메소드 설명메소드설명sync.WaitGroup.Add(n int)WaitGroup에 대기할 고루틴을 n만큼 추가한다.sync.W..
[MariaDB] 시스템 테이블 ERROR 1932: Table doesn't exist in engine 오류 중단 없이 복구하기
·
DBMS/MariaDB
서론최근 MariaDB 10.4.19 버전에서 ERROR 1932 (42S02): Table 'mysql.innodb_table_stats' doesn't exist in engine 오류를 겪었다. 이 오류는 InnoDB 스토리지 엔진에서 해당 테이블을 찾지 못할 때 발생하며, 운영 중인 DBMS였기 때문에 중단하지 않고 해결하는 방법이 필요했다. 이 글에서는 이 오류를 중단 없이 해결한 방법을 정리해본다. 문제 상황테이블을 조회하려고 할 때 아래와 같은 오류가 발생했다.MariaDB [(none)]> SELECT * FROM mysql.innodb_table_stats;ERROR 1932 (42S02): Table 'mysql.innodb_table_stats' doesn't exist in engi..
[golang] html/template 패키지로 동적 페이지 처리하기
·
Language/Go
서론Go 언어에서 html/template 패키지를 사용하면 HTML 문서 내에서 Go 템플릿 문법을 활용하여 Go와 상호작용하며 동적 페이지를 구성할 수 있다. Go 템플릿에는 조건문, 반복문 및 Go 함수 호출을 사용하여 JSP, PHP, ASP와 같은 서버 사이드 스크립트 언어처럼 사용할 수 있다. 이 글에서는 간단한 HTTP 서버에서 html/template 패키지를 활용하여 동적 웹 페이지를 서비스하는 방법을 소개한다. Go 변수를 HTML에 출력하기Go 코드package mainimport ( "html/template" "log" "net/http")var totalCnt intfunc main() { http.HandleFunc("/", handler) log.Fatal(http.Liste..