본문 바로가기

golang18

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.
Golang의 struct(구조체)와 receiver(리시버) 메서드: 객체 지향적 설계의 새로운 접근 Go 언어는 객체 지향 프로그래밍의 개념을 독특한 방식으로 구현합니다. 클래스 대신 구조체를 사용하고, 메서드를 통해 행동을 정의합니다.struct 와 receiver method1. 구조체 (Struct) Go에는 클래스가 없지만 구조체가 있습니다.구조체는 관련된 데이터를 그룹화하는 사용자 정의 타입입니다.type Person struct { Name string Age int} 2. 메서드 (Method) 메서드는 함수와 비슷하지만, 리시버(receiver)라고 불리는 특정 타입이나 객체에 바인딩됩니다.func (p Person) SayHello() { fmt.Printf("Hello, I'm %s\n", p.Name)}여기서 `(p Person)`이 리시버입니다. 이 메서드는 `P.. 2024. 7. 23.
Golang func 와 method Go 프로그래밍 언어에서 함수와 메서드는 코드 구조화와 재사용성을 위한 핵심 요소입니다. 이 두 가지 개념은 비슷해 보이지만 중요한 차이점이 있습니다.함수 (Functions)함수는 특정 작업을 수행하는 독립적인 코드 블록입니다.func 키워드로 정의합니다.func String() { // ... some code}이름, 매개변수 목록, 반환 타입을 가집니다.// 이름, 매개변수 목록, 반환 타입을 가집니다.func Add(a, b int) int { return a + b}여러 값을 반환할 수 있습니다.// 여러 값을 반환할 수 있습니다.func Swap(a, b int) (int, int) { return b, a}독립적으로 호출됩니다.메서드 (Methods)메서드는 특정 타입과 연관된 함수입니다.함.. 2024. 7. 22.
Golang type(타입) 키워드 탐구 : Named Type과 Type Alias의 차이와 활용 type 키워드는 새로운 타입을 정의하는 데 사용되는 중요한 키워드입니다.기본 타입 정의type 키워드를 사용하여 기존 타입을 기반으로 새로운 타입을 정의할 수 있습니다.type MyInt inttype MyString string 이렇게 정의된 타입은 원래 타입과 구조적으로 동일하지만, Go 컴파일러는 이를 다른 타입으로 취급합니다. 구조체 정의type을 사용하여 구조체를 정의할 수 있습니다.type Person struct { Name string Age int} 인터페이스 정의인터페이스도 type 키워드로 정의합니다.type Printer interface { Print() string} 함수 타입 정의함수 시그니처를 새로운 타입으로 정의할 수 있습니다.type MathFunc f.. 2024. 7. 21.