Go에서 defer, panic, recover는 에러 처리 및 리소스 정리에 중요한 역할을 합니다. 이 세 가지를 이해하고 활용하면 더 견고하고 안정적인 코드를 작성할 수 있습니다.deferdefer 키워드는 함수가 종료되기 직전에 실행할 코드를 지정하는 데 사용됩니다. 주로 리소스 해제, 파일 닫기, 뮤텍스 해제 등의 작업에 사용됩니다. defer 문은 선언된 순서의 역순으로 실행됩니다.예제: defer 사용package mainimport ( "fmt" "os")func main() { f, err := os.Open("example.txt") if err != nil { fmt.Println(err) return } defer f.Close..
Go에서 에러 처리(Error Handling)는 매우 중요한 개념입니다. Go는 예외(Exception)를 사용하지 않고, 반환 값으로 에러를 전달하여 명시적으로 처리하는 방식을 채택하고 있습니다. 이는 코드의 가독성과 오류 처리의 명확성을 높이는 장점이 있습니다.에러 인터페이스Go 표준 라이브러리는 error 인터페이스를 제공하며, 이는 에러를 나타내기 위한 기본 타입입니다. error 인터페이스는 단 하나의 메서드를 가집니다:type error interface { Error() string}에러 생성에러는 주로 errors 패키지의 New 함수를 사용하여 생성할 수 있습니다.package mainimport ( "errors" "fmt")func main() { err := ..
Go 인터페이스는 메서드의 집합을 정의하는 타입입니다. 인터페이스를 사용하면 여러 타입이 동일한 메서드를 구현할 수 있으며, 이를 통해 다형성을 구현할 수 있습니다. 인터페이스는 Go 언어의 강력한 기능 중 하나로, 코드의 유연성과 확장성을 높여줍니다.인터페이스 정의인터페이스는 interface 키워드를 사용하여 정의합니다. 인터페이스에는 메서드의 시그니처만 정의되며, 메서드의 구현은 해당 인터페이스를 구현하는 타입에서 정의합니다.예제: 인터페이스 정의package mainimport "fmt"// Speaker 인터페이스 정의type Speaker interface { Speak() string}// Person 구조체 정의type Person struct { Name string}// Pe..
Go에서 메서드는 특정 타입에 속하는 함수를 의미합니다. 메서드는 구조체(struct)와 같은 사용자 정의 타입에 대해 동작을 정의하는 데 사용됩니다. 메서드를 사용하면 특정 타입의 인스턴스와 관련된 작업을 수행하는 함수를 정의할 수 있습니다.메서드 정의메서드를 정의할 때는 함수 선언과 유사하지만, 함수명 앞에 리시버(receiver)를 명시합니다. 리시버는 메서드가 속하는 타입의 인스턴스를 가리킵니다.값 리시버(Value Receiver)와 포인터 리시버(Pointer Receiver)메서드는 값 리시버와 포인터 리시버를 사용할 수 있습니다. 값 리시버는 리시버의 복사본을 사용하고, 포인터 리시버는 리시버의 주소를 사용하여 메서드 내부에서 리시버의 값을 변경할 수 있습니다.예제: 값 리시버를 사용하는 ..
Go 언어에서 구조체(struct)는 여러 필드를 그룹화하여 복합 데이터를 정의하는 사용자 정의 타입입니다. 구조체는 객체지향 프로그래밍의 클래스와 유사한 개념으로, 관련된 데이터와 메서드를 하나의 단위로 묶어 관리할 수 있습니다.구조체 정의구조체를 정의할 때는 struct 키워드를 사용합니다. 구조체는 하나 이상의 필드로 구성되며, 각 필드는 이름과 타입을 가집니다.type Person struct { Name string Age int}위 예제에서는 Person이라는 구조체 타입을 정의하였으며, Name과 Age라는 두 개의 필드를 가지고 있습니다.구조체 초기화구조체를 초기화하고 사용하는 방법에는 여러 가지가 있습니다.1. 필드 이름을 명시하여 초기화p := Person{ Name:..
Go 언어에서 패키지(Package)는 코드를 구조화하고 관리하기 위한 중요한 개념입니다. 패키지는 함수, 변수, 구조체 등의 코드를 논리적으로 그룹화하여 모듈화하고 재사용 가능한 단위로 제공합니다. Go 언어의 모든 코드는 패키지 내에 위치하며, 패키지를 통해 코드의 구성 및 관리가 가능합니다.패키지의 기본 구성 요소패키지 선언모든 Go 파일은 package 선언으로 시작합니다. 예를 들어, main 패키지는 Go 프로그램의 실행 진입점을 나타내며 반드시 main 패키지로 선언되어야 합니다.package main일반적으로 다른 패키지의 코드를 사용할 때는 해당 패키지의 이름을 지정해야 합니다. 예를 들어, fmt 패키지를 사용할 때:import "fmt"패키지 내의 함수와 변수package mypack..
배열Go 언어에서 배열(Array)은 동일한 데이터 타입의 요소들이 순서대로 저장되는 고정 크기의 컬렉션입니다. 배열은 선언 시 크기를 지정하며, 한 번 선언된 크기는 변경할 수 없습니다.배열 선언과 초기화Go 언어에서 배열은 다음과 같이 선언됩니다: // 배열의 선언var arr [5]int // 크기가 5인 정수형 배열 선언// 배열의 초기화arr = [5]int{1, 2, 3, 4, 5} // 배열 요소 초기화// 배열 요소에 접근fmt.Println(arr[0]) // 첫 번째 요소에 접근하여 출력위 예제에서 arr은 크기가 5인 정수형 배열을 선언하고 초기화하고 있습니다. 배열 요소에 접근할 때는 인덱스를 사용하여 접근합니다. 인덱스는 0부터 시작하며, 범위를 벗어나는 인덱스로 접근하려 하면 런..
Go 언어에서 클로저 (closure)는 함수와 그 함수가 선언될 당시의 외부 변수를 함께 포함한 것입니다. 클로저는 함수 리터럴로 만들어지며, 해당 함수 리터럴은 자신이 선언된 범위(scope) 내의 변수를 계속 유지하면서 사용할 수 있습니다. 이는 함수가 종료된 이후에도 그 변수가 사라지지 않고, 계속해서 접근 가능하게 만듭니다.클로저의 구조Go에서 클로저는 다음과 같은 구조를 가집니다: func outerFunction() func() { outerVariable := 10 innerFunction := func() { fmt.Println("Outer variable inside closure:", outerVariable) } return innerFunctio..
Go 언어에서 함수는 코드 블록을 묶어서 재사용 가능한 단위로 만들어주는 기본적인 구성 요소입니다. 함수는 일련의 문장들을 실행하는 블록이며, 특정한 동작을 수행하고 값을 반환할 수 있습니다.함수 선언Go에서 함수는 func 키워드를 사용하여 선언됩니다. 기본적인 함수의 형태는 다음과 같습니다:func functionName(parameterList) returnType { // 함수 본문 // return 문}functionName: 함수의 이름입니다.parameterList: 함수에 전달되는 매개변수(parameter) 목록입니다. 매개변수가 없는 경우 비워둘 수 있습니다.returnType: 함수가 반환하는 값의 타입입니다. 반환할 값이 없는 경우 returnType 대신 ()를 사용합니..
Go 언어에서 반복문은 주로 for 문을 사용하여 구현됩니다. Go에서는 for 문 하나만으로 다양한 반복을 수행할 수 있으며, 다른 언어에서 사용되는 while 문과 do-while 문은 for 문으로 대체됩니다.기본 for 문기본적인 for 문은 초기화, 조건, 후처리로 구성됩니다. package mainimport "fmt"func main() { for i := 0; i 위 예제에서 i는 0부터 시작하여 5보다 작을 때까지 1씩 증가하며 반복됩니다.조건만 있는 for 문조건만을 사용하는 for 문은 다른 언어의 while 문과 유사합니다. package mainimport "fmt"func main() { i := 0 for i 이 예제는 i가 5보다 작을 때까지 반복합니다.무한 ..
- Total
- Today
- Yesterday
- RESTful
- Javascript
- 엑셀
- 스프링
- Spring Boot
- 메시지
- sample
- spring
- REST
- mybatis
- thymeleaf
- 타임리프
- oracle
- listToMap
- mapToList
- 스프링부트
- java
- UI
- ag grid
- 샘플
- 그리드
- 설정
- 예제
- springboot
- lombok
- SHEETJS
- example
- restful서비스
- AG-GRID
- cache
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |