[Go] defer
개요 defer는 함수가 종료되기 직전에 특정 함수 호출을 지연시키는 키워드입니다. 주요 특징: 지연 실행: 함수 반환 직전에 실행됨 LIFO 순서: 스택 구조로 나중에 defer된 것이 먼저 실행 인자 즉시 평가: defer 문을 만나는 순간 인자가 평가됨 패...
개요 defer는 함수가 종료되기 직전에 특정 함수 호출을 지연시키는 키워드입니다. 주요 특징: 지연 실행: 함수 반환 직전에 실행됨 LIFO 순서: 스택 구조로 나중에 defer된 것이 먼저 실행 인자 즉시 평가: defer 문을 만나는 순간 인자가 평가됨 패...
개요 사용자 정의 타입은 Go에서 새로운 타입을 생성하는 방법입니다. 주요 특징: 타입 별칭 vs 새 타입: type 키워드로 둘 다 가능 구조체: 여러 필드를 묶은 복합 타입 메서드: 타입에 연결된 함수 임베딩: 상속 대신 조합으로 기능 확장 값 vs 포인...
개요 인터페이스는 Go의 타입 시스템의 핵심으로, 메서드 시그니처의 집합을 정의합니다. 주요 특징: 메서드 집합: 타입이 구현해야 할 메서드들을 정의 암시적 구현: 명시적 선언 없이 자동으로 구현됨 (덕 타이핑) 다형성: 서로 다른 타입을 하나의 인터페이스로 처리 ...
개요 맵(map)은 키-값 쌍을 저장하는 해시 테이블 기반 자료구조입니다. 주요 특징: 키-값 쌍: 고유한 키로 값에 접근 참조 타입: 함수 인자로 전달 시 참조 전달 제로값은 nil: nil 맵에 쓰기 시도는 패닉 발생 순서 없음: 순회 순서가 무작위 (의도적...
개요 슬라이스(slice)는 동적 크기를 가진 배열의 유연한 뷰입니다. 주요 특징: 동적 크기: 런타임에 크기 변경 가능 참조 타입: 내부 배열에 대한 참조 (포인터, 길이, 용량) 제로값은 nil: nil 슬라이스도 안전하게 사용 가능 make() 또는 슬라이...
개요 배열(array)은 고정 크기의 같은 타입 요소들의 연속된 모음입니다. 주요 특징: 고정 크기: 선언 시 크기가 결정되며 변경 불가 값 타입: 할당/전달 시 전체 복사 발생 제로값 초기화: 선언 시 자동으로 제로값으로 초기화 타입의 일부: 크기가 타입의 일...
개요 패키지(package)는 Go의 코드 모듈화 및 재사용 단위입니다. 주요 특징: 코드를 논리적으로 그룹화하는 기본 단위 디렉토리 하나당 하나의 패키지 (테스트 패키지 제외) 대문자로 시작하는 식별자는 export (공개) init() 함수로 패키지 초기화 ...
개요 포인터는 메모리 주소를 저장하는 변수입니다. Go의 포인터는 안전하게 설계되어 있어 포인터 연산이 제한적이지만, 효율적인 메모리 관리와 데이터 공유를 가능하게 합니다. 주요 특징: & 연산자: 변수의 주소 획득 * 연산자: 포인터 역참조 (값 접근) 로...
개요 가변 인자 함수(Variadic Function)는 임의 개수의 인자를 받을 수 있는 함수입니다. 주요 특징: 타입 앞에 생략 부호(...)를 붙여서 선언 함수 내부에서 슬라이스로 처리됨 반드시 매개변수 목록의 마지막에 위치해야 함 슬라이스 언팩(unpac...