일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- golang slice remove
- package
- golang pointer
- 패스트캠퍼스AI부트캠프
- 패스트캠퍼스업스테이지에이아이랩
- 스코프
- golang
- keyword
- 업스테이지패스트캠퍼스
- 패스트캠퍼스
- slice
- array
- 함수
- struct
- 변수
- golang array
- Pointer
- Interface
- 메서드
- 타입
- 패스트캠퍼스업스테이지부트캠프
- UpstageAILab
- 국비지원
- golang interface
- golang slice
- scope
- 상수
- method
- receiver
- receiver method
- Today
- Total
목록2024/07 (23)
느리지만 꾸준히, 코딩
개요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..
객체 지향 프로그래밍에서의 인터페이스객체 지향 프로그래밍(OOP)에서 인터페이스는 매우 중요한 개념입니다. 인터페이스는 클래스가 구현해야 할 메서드들의 집합을 정의합니다. 설계도와 같아서, 어떤 기능들이 있어야 하는지를 명시합니다. 인터페이스 사용 예시예를 들어, '동물' 인터페이스가 있다고 가정해봅시다.인터페이스 동물 { 소리내기() 움직이기()}강아지[동물] { 소리내기() { 출력("멍멍!") } 움직이기() { 출력("강아지가 뛰어갑니다.") }}고양이[동물] { 소리내기() { 출력("야옹~") } 움직이기() { 출력("고양이가 살금살금 걷습니다.") }}동물소리듣기(동물 animal) { ..
1. 인터페이스란 무엇인가?소프트웨어 개발에서 '인터페이스'는 두 개의 시스템, 프로그램, 또는 구성 요소 간의 상호작용 지점을 정의합니다. 이는 마치 두 사람이 대화를 나누는 방식과 유사합니다. 인터페이스는 이 '대화'의 규칙과 방법을 정의하는 것과 비슷합니다.2. 인터페이스의 종류사용자 인터페이스 (UI): 사용자와 시스템 간의 상호작용을 담당합니다.그래픽 사용자 인터페이스 (GUI)명령줄 인터페이스 (CLI)프로그래밍 인터페이스: 소프트웨어 구성 요소 간의 상호작용을 정의합니다.API (Application Programming Interface)라이브러리 인터페이스하드웨어 인터페이스: 하드웨어 구성 요소 간의 통신을 관리합니다.USB, HDMI 등3. 인터페이스의 주요 목적추상화: 복잡한 시스템..
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..
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..
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)메서드는 특정 타입과 연관된 함수입니다.함..
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..
상수란?상수는 프로그램 실행 중 변경되지 않는 고정된 값을 나타냅니다. 상수 정의Golang에서 상수는 const 키워드를 사용하여 정의합니다.const Pi = 3.14159const MaxUsers = 100const Greeting = "Hello, World!" 여러 상수를 그룹으로 정의할 수도 있습니다const ( StatusOK = 200 StatusNotFound = 404 StatusInternalServerError = 500)타입이 있는 상수와 없는 상수1. 타입이 없는 상수const MaxValue = 100 2. 타입이 있는 상수const MaxValue int = 10 타입이 없는 상수는 더 유연하게 사용할 수 있으며, 필요에 따라 암시적으로 타입 변환이 가능합니다..
변수선언var 키워드 사용Golang에서는 var 키워드를 사용합니다.`var {변수_이름} 타입` 의 형태를 따릅니다.var name stringvar age intvar isStudent bool short variable declarationGolang에서 타입추론이 가능합니다.`:=`구문은 암묵적으로 타입 할당문을 사용할 수 있습니다.`:=`구문은 함수 내에서만 사용할 수 있습니다. 패키지 레벨에서는 사용할 수 없습니다.함수 내부에서 암묵적 유형의 선언 :=대신 짧은 할당 문을 사용할 수 있습니다.name := "Gopher"age := 25isStudent := true패키지 레벨 선언의 제한사항명확성과 일관성Go는 코드의 명확성과 일관성을 매우 중요하게 여깁니다. := 연산자는 변수의 선언과 ..
Go 모듈, 왜 사용해야 할까?버전 관리 용이: 특정 버전 지정으로 프로젝트 재현성을 보장합니다.종속성 관리 간소화: go.mod로 종속성을 명확히 정의하고 관리합니다.외부 패키지 사용 편리: go get으로 쉽게 패키지를 추가하고 관리합니다.$GOPATH 의존성 제거: 프로젝트의 독립적인 관리가 가능해집니다.빌드 성능 향상: 필요한 패키지만 사용하여 빌드 속도가 개선됩니다.프로젝트 생성예제 프로젝트를 생성하겠습니다.$ go mod init slowin.com/examplego: creating new go.mod: module slowin.com/example$ go get rsc.io/quote/v3go: downloading rsc.io/quote/v3 v3.1.0go: added golang.or..