최근 포스트

[Go] defer

12 분 소요

개요 defer는 함수가 종료되기 직전에 특정 함수 호출을 지연시키는 키워드입니다. 주요 특징: 지연 실행: 함수 반환 직전에 실행됨 LIFO 순서: 스택 구조로 나중에 defer된 것이 먼저 실행 인자 즉시 평가: defer 문을 만나는 순간 인자가 평가됨 패...

[Go] user-defined type

15 분 소요

개요 사용자 정의 타입은 Go에서 새로운 타입을 생성하는 방법입니다. 주요 특징: 타입 별칭 vs 새 타입: type 키워드로 둘 다 가능 구조체: 여러 필드를 묶은 복합 타입 메서드: 타입에 연결된 함수 임베딩: 상속 대신 조합으로 기능 확장 값 vs 포인...

[Go] interface

15 분 소요

개요 인터페이스는 Go의 타입 시스템의 핵심으로, 메서드 시그니처의 집합을 정의합니다. 주요 특징: 메서드 집합: 타입이 구현해야 할 메서드들을 정의 암시적 구현: 명시적 선언 없이 자동으로 구현됨 (덕 타이핑) 다형성: 서로 다른 타입을 하나의 인터페이스로 처리 ...

[Go] map

13 분 소요

개요 맵(map)은 키-값 쌍을 저장하는 해시 테이블 기반 자료구조입니다. 주요 특징: 키-값 쌍: 고유한 키로 값에 접근 참조 타입: 함수 인자로 전달 시 참조 전달 제로값은 nil: nil 맵에 쓰기 시도는 패닉 발생 순서 없음: 순회 순서가 무작위 (의도적...

[Go] slice

13 분 소요

개요 슬라이스(slice)는 동적 크기를 가진 배열의 유연한 뷰입니다. 주요 특징: 동적 크기: 런타임에 크기 변경 가능 참조 타입: 내부 배열에 대한 참조 (포인터, 길이, 용량) 제로값은 nil: nil 슬라이스도 안전하게 사용 가능 make() 또는 슬라이...

[Go] array

10 분 소요

개요 배열(array)은 고정 크기의 같은 타입 요소들의 연속된 모음입니다. 주요 특징: 고정 크기: 선언 시 크기가 결정되며 변경 불가 값 타입: 할당/전달 시 전체 복사 발생 제로값 초기화: 선언 시 자동으로 제로값으로 초기화 타입의 일부: 크기가 타입의 일...

[Go] package

10 분 소요

개요 패키지(package)는 Go의 코드 모듈화 및 재사용 단위입니다. 주요 특징: 코드를 논리적으로 그룹화하는 기본 단위 디렉토리 하나당 하나의 패키지 (테스트 패키지 제외) 대문자로 시작하는 식별자는 export (공개) init() 함수로 패키지 초기화 ...

[Go] pointer

12 분 소요

개요 포인터는 메모리 주소를 저장하는 변수입니다. Go의 포인터는 안전하게 설계되어 있어 포인터 연산이 제한적이지만, 효율적인 메모리 관리와 데이터 공유를 가능하게 합니다. 주요 특징: & 연산자: 변수의 주소 획득 * 연산자: 포인터 역참조 (값 접근) 로...

[Go] variadic arguments function

11 분 소요

개요 가변 인자 함수(Variadic Function)는 임의 개수의 인자를 받을 수 있는 함수입니다. 주요 특징: 타입 앞에 생략 부호(...)를 붙여서 선언 함수 내부에서 슬라이스로 처리됨 반드시 매개변수 목록의 마지막에 위치해야 함 슬라이스 언팩(unpac...