본문 바로가기

프로그래밍/Golang28

Golang Arrays(배열), Slice(슬라이스) - 선언, 초기화 방법 ※ 개요고정 크기 또는 가변 크기?크기가 타입의 일부인가?다차원 배열은 어떻게 생겼나?빈 배열은 의미가 있는가?Golang 개발팀은 위의 질문에 대한 답을 찾기위해 1년이 걸렸다고 합니다. 앞으로의 포스팅을 통해 Arrays(배열), Slice(슬라이스)에 대해 기본부터 특성 사용법까지 알아 보도록 하겠습니다.참고링크: 배열, 슬라이스(및 문자열)(go.dev) ※ Arrays(배열)배열은 동일한 타입의 요소들을 연속된 메모리 공간에 저장하는 데이터 구조입니다.주요특징 고정 크기: Go의 배열은 선언 시 크기가 고정되며, 이는 변경할 수 없습니다.타입의 일부: 배열의 크기는 타입의 일부입니다. 즉, [5]int와 [10]int는 서로 다른 타입입니다.값 타입: Go에서 배열은 값 타입입니다. 이는 배열을.. 2024. 7. 31.
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.