golang-structs-interfaces은(는) 무엇을 하나요?
Go 구조체(struct) 및 인터페이스(interface) 디자인 패턴 — 컴포지션, 임베딩, 타입 어서션, 타입 스위치, 인터페이스 분리, 인터페이스를 통한 의존성 주입, 구조체 필드 태그, 포인터 리시버와 값 리시버 선택. Go 타입을 설계하거나 인터페이스를 정의/구현할 때, 구조체나 인터페이스를 임베딩할 때, 타입 어서션이나 타입 스위치를 작성할 때, JSON/YAML/DB 직렬화를 위한 구조체 필드 태그를 추가할 때, 또는 포인터 리시버와 값 리시버 중 선택할 때 이 스킬을 사용하세요. 또한 사용자가 '인터페이스를 받고 구조체를 반환하라', 컴파일 타임 인터페이스 검사, 또는 작은 인터페이스를 조합하여 큰 인터페이스를 만드는 방법에 대해 질문할 때도 사용하세요.