드리프트의 뉴 코딩 이야기
close
프로필 배경
프로필 로고

드리프트의 뉴 코딩 이야기

  • 분류 전체보기 (416)
    • Javascript (177)
    • Go (143)
    • Rust (33)
    • Python (31)
    • Docker (5)
    • Codings (10)
    • Linux (5)
    • Flutter (3)
    • Etc (9)
  • 홈
  • Javascript
  • Go
  • Rust
  • Python
Go 동시성 프로그래밍의 지휘자 sync.WaitGroup 완벽 가이드

Go 동시성 프로그래밍의 지휘자 sync.WaitGroup 완벽 가이드

Go 동시성 프로그래밍의 지휘자 sync.WaitGroup 완벽 가이드Go로 동시성 코드를 짜다 보면, 정말 흔하게 마주치는 황당한 상황이 하나 있는데요.바로 메인 함수가 고루틴(goroutine)들이 일을 끝내기도 전에 '저 먼저 퇴근합니다!'하고 끝나버리는 경우죠.분명히 여러 개의 작업을 동시에 시켰는데, 콘솔에는 아무것도 찍히지 않는 허무한 결과를 보게 되더라고요.바로 이럴 때 우아하게 등장하는 해결사가 바로 sync.WaitGroup입니다.마치 오케스트라의 지휘자처럼, 흩어져서 연주하는 여러 고루틴들이 모두 연주를 마칠 때까지 기다렸다가 깔끔하게 공연을 마무리 짓게 해주는 아주 중요한 도구죠.오늘은 이 sync.WaitGroup의 기초부터 실전에서 마주칠 수 있는 함정까지, 완벽하게 파헤쳐 보겠습..

  • format_list_bulleted Go
  • · 2025. 8. 19.
  • textsms
Go (고) 언어 채널, 속 시원히 알려줄게!: 작동 방식부터 활용법까지 완벽 분석

Go (고) 언어 채널, 속 시원히 알려줄게!: 작동 방식부터 활용법까지 완벽 분석

Go (고) 언어 채널, 속 시원히 알려줄게!: 작동 방식부터 활용법까지 완벽 분석1. 고루틴 (Goroutine)과 채널 (Channel), 무슨 관계일까요? 채널 (Channel)은 Go (고) 언어에서 정말 중요한 기능 중 하나인데요.Go (고) 언어의 동시성 모델인 CSP (Communicating Sequential Processes)를 제대로 보여주는 핵심 기능이기도 합니다.쉽게 말해서, 채널 (Channel)을 통하면 고루틴 (Goroutine)끼리 데이터를 주고받으면서 통신할 수 있다는 거죠.마치 고루틴 (Goroutine)들끼리 이야기하는 통로를 만들어주는 것과 같아요.Go (고) 언어에서 채널 (Channel)이 워낙 중요하고 코드에서도 엄청 자주 쓰이다 보니까, 채널 (Channel)..

  • format_list_bulleted Go
  • · 2025. 3. 22.
  • textsms
Go (고) 언어 동시성의 비밀, 고루틴 스케줄링

Go (고) 언어 동시성의 비밀, 고루틴 스케줄링

Go (고) 언어 동시성의 비밀, 고루틴 스케줄링I. 고루틴 (Goroutine) 소개 고루틴 (Goroutine)은 Go (고) 프로그래밍 언어에서 정말 독특하고 중요한 기능인데요.병렬 컴퓨팅을 가능하게 해주는 핵심 기술이라고 할 수 있습니다.고루틴 (Goroutine)을 사용하는 방법은 아주 간단합니다.go 키워드만 붙여주면 되는데요.이렇게 시작된 고루틴 (Goroutine)은 비동기적으로 실행됩니다.즉, 고루틴 (Goroutine)이 끝날 때까지 기다릴 필요 없이 프로그램은 다음 코드를 계속해서 실행할 수 있습니다.go func() // go 키워드를 사용하여 함수를 실행하는 고루틴 (Goroutine) 시작II. 고루틴 (Goroutine) 내부 원리개념 소개동시성 (Concurrency)싱글 C..

  • format_list_bulleted Go
  • · 2025. 3. 22.
  • textsms
Goroutine에서 `os.Chdir()` 사용할 때 발생하는 문제와 해결 방법

Goroutine에서 `os.Chdir()` 사용할 때 발생하는 문제와 해결 방법

Goroutine에서 os.Chdir() 사용할 때 발생하는 문제와 해결 방법안녕하세요, 여러분. 오늘은 Go 언어에서 Goroutine을 사용할 때 주의해야 할 중요한 사항 중 하나인 os.Chdir() 함수에 대해 이야기해보려 합니다. os.Chdir()는 현재 작업 디렉토리를 변경하는 함수인데, 이를 Goroutine과 함께 사용하면 예상치 못한 문제가 발생할 수 있습니다. 이 강의에서는 그 이유와 해결 방법을 알아보겠습니다.  1. Goroutine과 os.Chdir()의 충돌Goroutine은 Go 언어에서 동시성을 처리하는 매우 효과적인 방법인데요, 여러 Goroutine이 동시에 실행되면서 서로 다른 작업을 할 수 있습니다. 그런데 Goroutine에서 os.Chdir()를 호출하면 문제가 ..

  • format_list_bulleted Go
  • · 2024. 10. 6.
  • textsms
Go 언어에서 Fake Time 사용으로 병렬 처리 테스트의 혁신

Go 언어에서 Fake Time 사용으로 병렬 처리 테스트의 혁신

Go 언어에서 Fake Time 사용으로 병렬 처리 테스트의 혁신서론안녕하세요, 개발자 여러분! 오늘은 Go 언어에서 병렬 처리 테스트를 보다 효율적으로 수행할 수 있는 Fake Time 도구에 대해 이야기해보려고 합니다. Go의 Goroutine은 강력한 병렬 처리 기능을 제공하지만, 이를 테스트할 때 겪는 어려움이 많습니다. 이번 포스트에서는 Fake Time을 활용하여 이러한 문제들을 어떻게 해결할 수 있는지 살펴보겠습니다.  Fake Time이란 무엇인가?Fake Time은 테스트 환경에서 시간을 조작할 수 있게 해주는 도구입니다. 이를 통해 시간에 의존적인 코드의 테스트를 빠르고 안정적으로 수행할 수 있습니다. 예를 들어, Timer나 Ticker를 사용하는 코드는 실제 시간을 기다려야 하기 때..

  • format_list_bulleted Go
  • · 2024. 10. 6.
  • textsms
goroutine과 channel로 알아보는 비동기 처리

goroutine과 channel로 알아보는 비동기 처리

서문안녕하세요? 오늘은 go언어에서 channel과 goroutine에 대해 이야기해보려고 합니다.goroutine에 대하여goroutine은 가상 스레드로 처리를 시작하는 기능입니다. 작업자를 늘려서 일을 분담한다는 의미와 비슷합니다. 아래 코드와 같이 go 키워드를 사용하여 함수를 호출하면 goroutine으로 시작됩니다.func main() { go task()}func task() { // 어떤 작업} 여기서 goroutine으로 시작하고 싶은 함수 즉 task 함수에 반환값을 설정하고 싶은 경우가 있는데요. 그냥 쉽게 생각하면 다음과 같은 코드를 작성할 수 있습니다.func main() { // 문법 오류가 발생합니다 // 원래는 반환값을 지정할 수 없지만, 만약 가능하다고..

  • format_list_bulleted Go
  • · 2024. 2. 20.
  • textsms
  • navigate_before
  • 1
  • navigate_next
태그
  • #javascript
  • #자바스크립트
  • #Go
  • #Go 언어
  • #typescript
  • #성능 최적화
  • #프로그래밍
  • #타입스크립트
  • #Golang
  • #Rust
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바