목록- (91)
Study Memory Work
프로시저(PL/pgSQL)란? 프로시저란 데이터베이스 내에서 일련의 작업을 수행하기 위해 미리 작성된 코드 블록입니다. 이 코드 블록은 SQL 명령문과 프로그래밍 로직을 포함할 수 있습니다. 프로시저를 사용하면 데이터베이스에서 반복적으로 수행되는 작업을 단순화하고, 실행 효율을 높이며, 코드의 재사용성을 높일 수 있습니다. 프로시저(PL/pgSQL) 구조 DECLARE -- 선언부: 변수, 상수 및 데이터 타입 정의 BEGIN -- 실행 부분: 실행 코드 작성 EXCEPTION -- 예외 처리부: 예외 처리 코드 작성 END; 프로시저(PL/pgSQL) 종류 종류 설명 함수 (Functions) 데이터베이스에서 자주 사용되는 작업을 수행하기 위해 사용되며 주로 ‘계산’을 수행하기 위해서 사용이 됩니다 절..
CTE (공통 테이블 표현식) CTE는 "Common Table Expressions"의 약자로, 임시적으로 사용할 수 있는 쿼리 블록을 생성하는 기능입니다. 이를 사용하면 복잡한 쿼리를 더욱 가독성 있고 모듈화된 형태로 작성할 수 있습니다. 장점 가독성 향상: CTE를 사용하면 쿼리의 가독성이 향상됩니다. 쿼리의 각 부분을 개별적으로 정의하고, 이름을 부여하여 해당 부분을 쉽게 식별할 수 있습니다. 이는 복잡한 쿼리를 더 이해하기 쉽게 만듭니다. 코드 재사용: CTE를 사용하면 동일한 쿼리나 서브쿼리를 반복해서 작성할 필요가 없습니다. 한 번 정의된 CTE는 다른 부분에서 재사용할 수 있습니다. 이는 코드의 중복을 줄이고 유지 관리를 용이하게 만듭니다. 쿼리 최적화: 데이터베이스 시스템은 CTE를 보다..
PostgreSQL 함수 특징 모든 종류의 SQL 명령어는 함수로 정의할 수 있다. PostgreSQL는 프로시저와는 다르게 트랜잭션 제어 명령( ex. commit, savepoint) 및 vacutaion 등의 일부 유틸리티 명령은 사용할 수 없다. Return값이 없는 경우 void로 Return값을 정의할 수 있지만 이런 경우에는 프로시저를 사용한다. 프러시저가 SQL 표준이며, 프로시져는 transaction 컨트롤 등 추가적인 기능을 제공하기 때문이다. PostgreSQL 함수 구조 CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype AS $$ DECLARE -- 변수 선언 BEGIN -- 함수 로직 EN..
func main() { var wg sync.WaitGroup go watchNamespaces() wg.Add(1) wg.Wait() } 이 코드는 sync.WaitGroup을 사용하여 고루틴들이 작업을 완료할 때까지 기다리는 방법을 보여줍니다. sync.WaitGroup은 고루틴들이 완료될 때까지 기다리는 데 사용됩니다. 이는 병렬로 실행되는 고루틴들의 작업이 모두 끝날 때까지 메인 고루틴이 기다리도록 도와줍니다. wg.Add(1)은 WaitGroup에 1을 추가합니다. 이는 기다려야 하는 고루틴의 수를 나타냅니다. 여기서는 주로 메인 고루틴이 대기해야 하므로 1을 추가합니다. wg.Wait()은 WaitGroup이 0이 될 때까지 대기합니다. 현재 WaitGroup의 값이 0이 아니므로 이 코드는..
func packageName() string { pc, _, _, _ := runtime.Caller(1) parts := strings.Split(runtime.FuncForPC(pc).Name(), ".") pl := len(parts) pkage := "" if parts[pl-2][0] == '(' { pkage = strings.Join(parts[0:pl-2], ".") } else { pkage = strings.Join(parts[0:pl-1], ".") } packageNames := strings.Split(pkage, "/") config.Cfg.AddressInfo.Host = packageNames[0] return packageNames[0] }