본문 바로가기

전체 글771

Go programming 복합 타입 - 배열 에 대하여 오늘은 go 언어의 복합 타입에 대해 포스팅을 남깁니다. 복합타입 기본타입을 다양한 방법으로 결합하여 생성한 타입 복합타입의 유형 복합타입의 유형은 배열, 슬라이스, 맵, 구조체 이렇게 4가지가 있습니다. 특징 복합타입 유형 별 특징은 다음과 같습니다. 다양한 특징이 있지만 상세한 특징은 각 타입별 설명에 정리 합니다. 고정크기 배열, 구조체는 집합타입으로 크기가 고정되어 있습니다. 지정 된 사이즈 이상의 데이터를 할당이 불가능합니다. 동적크기 슬라이스, 맵은 동적 데이터 구조입니다. 값을 추가할 때 마다 커질 수 있습니다. 간단한 특징은 이정도로 설명하고 타입별 세부특징을 알아보겠습니다. 배열 배열은 0개 이상으로 이뤄진 고정길이 시퀀스 입니다. 지정된 특정 타입으로만 원소를 이루고 있으며, 길이를 고.. 2023. 7. 29.
go programming - byte array 숫자에 콤마를 붙이는 방법 오늘은 go programming 연습삼아 아래의 예제 코드를 만들어 보았습니다. string 이 아닌 byte array 에 숫자를 할당해 두고 1,000 단위로 콤마를 붙여주는 코드입니다. package main import "fmt" func comma(s []byte) []byte { rByteArray := make([]byte, len(s)+len(s)/3) j := 0 for i := 0; i < len(s); i++ { if i != 0 && i%3 == 0 { rByteArray[j] = ',' j = j + 1 rByteArray[j] = s[i] j = j + 1 continue } rByteArray[j] = s[i] j = j + 1 } return rByteArray } func.. 2023. 7. 23.
go programming - switch문 go 언어도 다른 언어와 동일하게 switch 문을 제공합니다. 프로그래밍 언어를 접해보신 분들이라면 switch 문에 대해서는 익숙하시리라 생각이 들어 자세한 설명은 생략하겠습니다. go 언어에서 switch 사용은 다음 예시를 통해 알 수 있습니다. package main import ( "fmt" ) func test() int { return 1 } func main() { switch test() { case 1: fmt.Print("test is one \n") case 2: fmt.Print("test is two \n") default: fmt.Print("Default!!! \n") } } switch 문은 test 함수의 실행 결과를 가지고 case 에서 비교를 수행합니다. case 에.. 2023. 7. 21.
Linux 에서 프로세스의 core file(core dump) 분석 리눅스 환경에서 프로그래밍을 하고 서비스를 운영하다 보니 프로세스가 제대로 동작하지 않는 경우가 종종 발생합니다. 이런 경우, 제가 주로 선택하는 방식은 2가지 입니다. 1. gdb 를 프로세스에 붙인다. gdb 의 간단한 사용은 아래 내용을 참고하세요. 2022.12.06 - [CS] - gdb 기초 사용방법 - 리눅스에서 C++ 디버깅 실행부터 값 출력까지 gdb 기초 사용방법 - 리눅스에서 C++ 디버깅 실행부터 값 출력까지 gdb란? GDB는 GNU project의 디버거로, 실행되는 상황 또는 충돌이 발생한 프로그램에서 일어난 일들을 볼 수 있도록 한다. GDB, the GNU Project debugger, allows you to see what is going on `inside' anot.. 2023. 7. 21.
Go언어 HTTP 응답코드(Status) 출력 방법 사진: Unsplash의Glenn Carstens-Peters 2023.07.03 - [분류 전체보기] - go programming - strings.HasPrefix 사용 go programming - strings.HasPrefix 사용 사진: Unsplash의Glenn Carstens-Peters 2023.06.24 - [CS/Go] - [Go programming] Requesting http get method to an url from an argument [Go programming] Requesting http get method to an url from an argument 사진: Unsplash의Sergey Zolkin Today, I made a t armin.tistory.com.. 2023. 7. 5.
go programming - strings.HasPrefix 사용 사진: Unsplash의Glenn Carstens-Peters 2023.06.24 - [CS/Go] - [Go programming] Requesting http get method to an url from an argument [Go programming] Requesting http get method to an url from an argument 사진: Unsplash의Sergey Zolkin Today, I made a test program to get response by requesting http get method. Here's the sample code. package main import ( "fmt" "io/ioutil" "net/http" "os" ) func main() {.. 2023. 7. 3.
티스토리 블로그 애드센스 수익감소, 워드프레스 이동하기 - Amazon Lightsail 사진: Unsplash의Glenn Carstens-Peters 티스토리 자체광고 [안내] 6월 27일부터 티스토리 자체 광고를 신설합니다. 안녕하세요. 티스토리팀입니다. 6월 27일부터 개별 티스토리 본문 내에 티스토리 자체 광고를 신설합니다. 티스토리 자체 광고를 통한 수익은 안정적인 서비스 환경 제공을 위해 활용될 예정입 notice.tistory.com 최근 티스토리에서 시행하고 있는 광고정책으로 인해 애드센스 계정에 문제가 생기는 분들이 많습니다. 6월 27일부터 시행된 정책이고 수익형 블로그 대상으로 티스토리의 자체광고를 붙이는 정책을 의미합니다. 티스토리가 올린 공지에 따르면 수익을 창출하지 않는 블로그에 대해서는 광고를 붙이지 않는다고 합니다. 수익형 블로그 그럼 수익형 블로그의 기준이 무엇.. 2023. 7. 2.
[Go programming] Requesting http get method to an url from an argument 사진: Unsplash의Sergey Zolkin Today, I made a test program to get response by requesting http get method. Here's the sample code. package main import ( "fmt" "io/ioutil" "net/http" "os" ) func main() { for _, url := range os.Args[1:] { // Request http get with given url from the first argument. resp, err := http.Get(url) if err != nil { fmt.Fprintf(os.Stderr, "fetch: %v\n", err) os.Exit(1) } // rea.. 2023. 6. 24.
[go programming] http get method 요청 응답을 stdout으로 출력하기 사진: Unsplash의Christin Hume http get method 요청을 하고 response 내용을 stdout 으로 바로 출력하는 코드입니다. 요청을 보낼 url을 argument로 전달받는데, 이를 위해서 os 패키지의 Args 를 이용합니다. package main import ( "fmt" "io" "net/http" "os" ) func main() { for _, url := range os.Args[1:] { // Request http get with given url from the first argument. resp, err := http.Get(url) if err != nil { fmt.Fprintf(os.Stderr, "fetch: %v\n", err) os.Exit.. 2023. 6. 23.
리눅스에서 passwordless ssh 접속 시 잘 안되는 경우 checklist 사진: Unsplash의Christin Hume 안녕하세요 warehouse 입니다. 오늘은 최근 업무를 하면서 겪었던 ssh 문제에 대해 다뤄보려고 합니다. 운영 중인 리눅스 환경에 새로운 계정을 만들어서 사용해야 하는 상황이었는데 keygen을 통해 ssh를 비밀번호 없이 가능한 환경을 만들고자 했는데 아무리 해도 잘 안 되는 상황이었습니다. 제가 겪었던 문제는 다음과 같습니다. 1. ssh-keygen을 이용하여. ssh 디렉터리 내 id_rsa 생성을 완료 2. .ssh 디렉터리의 700 권한 확인 3. id_rsa.pub(644), id_rsa (600)의 권한 확인 제가 당시에 알고 있던 permission 세팅은 이 정도였는데요. 이것만으로는 부족했는지 제대로 접속이 안되길래 더 확인을 해 .. 2023. 6. 22.
[Go언어연습] 중복 된 내용이 있는 파일명 리스트를 출력하는 프로그램 사진: Unsplash의Sergi Kabrera 안녕하세요 warehouse입니다. 오늘은 Go 언어를 연습하는 과정에서 만든 프로그램에 대한 코드를 정리해 보았습니다. 아래 코드는 파일 리스트를 인자로 받아 같은 내용을 갖고있는 파일들 리스트를 출력하는 프로그램 입니다. package main import ( "bufio" "fmt" "os" ) func main() { counts := make(map[string]int) m_filename := make(map[string]int) files := os.Args[1:] if len(files) == 0 { countLines(os.Stdin, counts, m_filename) } else { for _, arg := range files { f,.. 2023. 6. 6.
[Go언어] 중복 줄 찾기 프로그램, 입/출력에 활용하는 bufio 패키지 사진: Unsplash의Sergi Kabrera 오늘은 stdin 으로 입력을 받아 중복되는 입력의 카운트를 출력해 주는 프로그램을 작성하였습니다. package main import ( "bufio" "fmt" "os" ) func main() { counts := make(map[string]int) input := bufio.NewScanner(os.Stdin) for input.Scan() { counts[input.Text()]++ if input.Text() == "" { break } } for line, n := range counts { if n > 1 { fmt.Printf("%d\t%s\n", n, line) } } } 코드를 보면서 설명을 드리자면 우선 표준입출력을 받아오기 위해서 .. 2023. 5. 18.
go 언어 명령어 인자와 실행파일 이름 동시에 출력하기 2023.05.01 - [CS/Go] - [프로그래밍 언어] Go 언어 기초 - 커맨드라인 인수와 os.Args 변수 [프로그래밍 언어] Go 언어 기초 - 커맨드라인 인수와 os.Args 변수 2023.04.30 - [CS/Go] - [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world 안녕하세요 warehouse 입니다. 최근 프로젝트를 진행하면서 Go armin.tistory.com 이미 커맨드 라인 인수에서 어느정도 다뤘던 내용이지만 예시를 위주로 다시한번 작성합니다. Command-line Argument 출력 package main import ( "fmt" "os" "strings" ) func .. 2023. 5. 7.
looping array in go programming language Go is a powerful and efficient programming language that has gained popularity in recent years. One of the key features of Go is its support for loops, which allow you to execute a block of code repeatedly until a certain condition is met. In this article, we will explore the two types of for loops in Go and how to use them effectively. Traditional for loop The traditional for loop in Go is simi.. 2023. 5. 7.
[Go언어기초] go 언어 반복문, for 문 사용하기 [프로그래밍 언어] Go 언어 기초 - 커맨드라인 인수와 os.Args 변수 2023.04.30 - [CS/Go] - [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world 안녕하세요 warehouse 입니다. 최근 프로젝트를 진행하면서 Go armin.tistory.com 커맨드 라인 인수에 이어서 오늘은 반복문에 대해 적어봅니다. for 루프 for 문은 대부분의 프로그래밍 언어에서 사용하는 반복 문 입니다. 다른 언어의 경우 while, do ~ while 등 for 외에 사용되는 반복문이 존재하지만 go 언어에서는 for를 유일하게 사용합니다. go 언어에서는 다양한 반복문을 지원하지는 않지만 for 문.. 2023. 5. 7.