Sad Puppy 3 [묘공단] Go언어 고급 22-23장(자료구조, 에러 핸들링) :: 개발자 아지트

자료구조

 

  • 배열
    • 원소마다 메모리가 연속적으로 할당되어 있다.
  • 리스트
    • 메모리 할당이 연속적이지 않다. 
    • 원소 추가 및 삭제의 시간복잡도는 O(1)로, 배열에 비해 처리가 빠르다. 
    • 시작과 끝이 연결되어 원형 구조를 이룬다. 
    • 키, 값의 쌍으로 이루어진 데이터 구조이다. 
    • 데이터를 빠르게 처리할 수 있다. 

 

 

에러 핸들링

 

Go에서는 Error 인터페이스를 통해 에러를 반환한다. 

 

에러는 errors.New() 혹은 fmt.Errorf()함수를 통해 만들 수 있다. 

사용자 정의 타입으로 Error()메서드를 정의해 error 객체를 만들 수 있다. 

 

에러를 감싸서 새로운 에러를 만들수도 있고(에러 랩핑),  감싸진 에러는 다시 풀어서 에러 처리를 할 수 있다. 

감싸진 에러를 다시 풀 때는 errors 패키지의 As()함수를 통해 사용한다. 

 

 

프로그램을 사용하다가 계속 사용하기 어려운 상황에 직면할 경우, 프로그램의 흐름을 중지시키는 기능을 패닉이라고 한다. 

Go에서는 프로그램을 즉시 종료할 때 내장함수인 panic()함수를 통해서 하고 복구는 recover() 함수를 통해 할 수 있다. 

 

 

 

 

 

 

해당 글은 [Tucker의 Go 언어 프로그래밍] 22장~23장을 읽고 공부한 글입니다. 

+ Recent posts