본문 바로가기

전체 글33

Golang Interface - 빈 인터페이스 (interface{}) 1. 빈 인터페이스 소개Go 언어에서 interface{}는 "빈 인터페이스"라고 불리며, 특별한 의미를 가집니다. 이는 어떤 메서드도 정의하지 않은 인터페이스를 의미합니다.type EmptyInterface interface{} Go에서 모든 타입은 적어도 0개의 메서드를 구현하므로, 모든 타입은 빈 인터페이스를 만족합니다. 이는 interface{}가 어떤 타입의 값이라도 담을 수 있다는 것을 의미합니다. 2. 빈 인터페이스의 사용2.1 모든 타입을 받는 함수 파라미터func printAny(v interface{}) { fmt.Printf("값: %v, 타입: %T\n", v, v)}printAny(42) // 출력: 값: 42, 타입: intprintAny("Hello") /.. 2024. 7. 27.
Golang Interface - 암시적 인터페이스: 코드 유연성과 재사용성 Golang 인터페이스 소개Go 언어의 인터페이스는 다른 언어들과 비교하여 독특한 특징을 가지고 있습니다. Go의 인터페이스는 암시적으로 구현되며, 이는 Go의 유연성과 간결성을 높이는 핵심 요소입니다.1. 인터페이스의 기본 개념인터페이스는 메서드의 집합을 정의합니다. 구조체나 타입이 이 메서드들을 모두 구현하면, 해당 인터페이스를 구현한 것으로 간주됩니다. Go에서는 이를 명시적으로 선언할 필요가 없습니다.기본 문법인터페이스는 암묵적으로 구현예제출처 : 링크package mainimport "fmt"type I interface { M()}type T struct { S string}func (t T) M() { fmt.Println(t.S)}func main() { var i I = T{"hello".. 2024. 7. 27.
Golang Interface 최적화: 인터페이스 불필요한 추상화 피하고 테스트 용이성 높이기 개요Go 언어의 인터페이스는 다른 언어들과 달리 독특한 특성을 가지고 있습니다. Golang interface 사용시 주의할점을 알아 보겠습니다. 1. Golang 인터페이스 암묵적 구현의 개념Go에서는 타입이 인터페이스에 정의된 모든 메서드를 구현하기만 하면, 해당 타입은 자동으로 그 인터페이스를 만족합니다. 이를 "암묵적 구현"이라고 합니다. 이는 다른 언어에서 흔히 볼 수 있는 "implements" 키워드 같은 명시적 선언이 필요 없는 이유입니다. 2. Golang Wiki 설명 링크Go interfaces generally belong in the package that uses values of the interface type, not the package that implements tho.. 2024. 7. 27.
Golang Interface - OOP에서의 인터페이스 개념, 예시 및 장점 객체 지향 프로그래밍에서의 인터페이스객체 지향 프로그래밍(OOP)에서 인터페이스는 매우 중요한 개념입니다. 인터페이스는 클래스가 구현해야 할 메서드들의 집합을 정의합니다. 설계도와 같아서, 어떤 기능들이 있어야 하는지를 명시합니다. 인터페이스 사용 예시예를 들어, '동물' 인터페이스가 있다고 가정해봅시다.인터페이스 동물 { 소리내기() 움직이기()}강아지[동물] { 소리내기() { 출력("멍멍!") } 움직이기() { 출력("강아지가 뛰어갑니다.") }}고양이[동물] { 소리내기() { 출력("야옹~") } 움직이기() { 출력("고양이가 살금살금 걷습니다.") }}동물소리듣기(동물 animal) { .. 2024. 7. 26.
Golang Interface - 소프트웨어 인터페이스란? 1. 인터페이스란 무엇인가?소프트웨어 개발에서 '인터페이스'는 두 개의 시스템, 프로그램, 또는 구성 요소 간의 상호작용 지점을 정의합니다. 이는 마치 두 사람이 대화를 나누는 방식과 유사합니다. 인터페이스는 이 '대화'의 규칙과 방법을 정의하는 것과 비슷합니다.2. 인터페이스의 종류사용자 인터페이스 (UI): 사용자와 시스템 간의 상호작용을 담당합니다.그래픽 사용자 인터페이스 (GUI)명령줄 인터페이스 (CLI)프로그래밍 인터페이스: 소프트웨어 구성 요소 간의 상호작용을 정의합니다.API (Application Programming Interface)라이브러리 인터페이스하드웨어 인터페이스: 하드웨어 구성 요소 간의 통신을 관리합니다.USB, HDMI 등3. 인터페이스의 주요 목적추상화: 복잡한 시스템.. 2024. 7. 25.
Golang Interface - 포인터와 값 타입의 개념 및 활용 Go 언어에서의 값 타입과 포인터 타입 소개Go 언어는 정적 타입 언어로, 값 타입(Value Types)과 포인터 타입(Pointer Types)을 모두 지원합니다. 값 타입 (Value Types)값 타입은 변수가 직접 값을 저장하는 방식입니다. Go에서 기본적인 값 타입들은 다음과 같습니다:정수형: int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64부동소수점: float32, float64복소수: complex64, complex128불리언: bool문자열: string배열구조체 (struct)값 타입의 변수를 다른 변수에 할당하면, 값의 복사가 일어납니다.x := 5y := x // y에 x의 값이 복사됨x = 10 // x.. 2024. 7. 24.