일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- struct
- 메서드
- 패스트캠퍼스AI부트캠프
- 스코프
- slice
- scope
- package
- receiver method
- 패스트캠퍼스업스테이지에이아이랩
- golang array
- keyword
- array
- golang slice
- method
- 패스트캠퍼스
- receiver
- 변수
- golang pointer
- Pointer
- golang
- golang slice remove
- 상수
- 업스테이지패스트캠퍼스
- 국비지원
- golang interface
- Interface
- UpstageAILab
- 패스트캠퍼스업스테이지부트캠프
- 타입
- 함수
- Today
- Total
목록분류 전체보기 (61)
느리지만 꾸준히, 코딩
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..
Go 언어의 창시자 중 한 명인 Rob Pike는 Google에서 대규모 C++ 프로젝트를 개발하면서 정말 답답한 상황에 직면했습니다. 그의 팀은 대규모 컴퓨팅 클러스터를 구축하고 있었는데, 전체 시스템을 컴파일하는 데 무려 1시간이나 걸렸습니다. 이런 긴 컴파일 시간의 주요 원인은 바로 복잡한 종속성 계층 구조였고, 이는 개발자들에게 엄청난 스트레스를 주고 있었습니다. Rob Pike : "어느 날 보니 이해할 수 없는 종속성 패키지가 빌드되고 있었습니다. 찾아보니 전혀 사용하지 않는 패키지였고, 그 패키지의 빌드를 위해 37,000번이나 컴파일되고 있었습니다. 정말 머리가 아픈 상황이었죠." [Google I/O 2012 - Meet the Go Team ] 이러한 짜증 나고 비효율적인 경험은 롭파이..
[go.dev/blog/package-names 포스팅 참고]좋은 패키지 이름은 짧고 명확해야 합니다.1. 소문자로 작성되며, 밑줄이나 혼합 대소문자가 없습니다.좋은 예시:* time (시간 측정 및 표시 기능 제공)* list (이중 연결 리스트 구현)* http (HTTP 클라이언트 및 서버 구현) 2. 다른 언어에서 사용되는 일반적인 패턴이 Go에서는 관용적으로 사용되지 않을 수 있습니다.좋지 않은 예시:* computeServiceClient* priority_queue 3. 약어는 신중하게 사용되어야 하며, 프로그래머 누구나 쉽게 이해할 수 있는 영역에서는 축약된 단어를 사용할 수 있습니다.축약 사용 예시:* strconv (문자열 변환)* syscall (시스템 호출)* fmt (형식화된 I/..