Go 언어에서 정기 작업 스케줄링 구현

1. 의존성 설치 go get github.com/robfig/cron/v3@v3.0.0 2. 기본 정기 작업 예제 package main import ( "fmt" "github.com/robfig/cron/v3" "time" ) func main() { // 초 단위까지 정밀하게 동작하는 스케줄러 생성 scheduler := cron.New(cron.WithSeconds()) // 실행할 작업 정의 operation := func() { fmt.Println("안녕하세요, 현재 시간:", time.N ...

7월 2일 23:17에 게시됨

Swift 동시성과 Alamofire를 활용한 REST API 통신 구현

테스트용 REST API 소개 JSONPlaceholder (https://jsonplaceholder.typicode.com)는 클라이언트 개발 시 사용 가능한 무료 온라인 REST API 서비스입니다. 이 문서에서는 Swift의 동시성(concurrency) 기능과 Alamofire 라이브러리를 조합하여 다음과 같은 HTTP 요청을 수행하는 방법을 설명합니다: GET /posts/1 – 단일 게시물 조회 ...

6월 10일 17:28에 게시됨

스레드 풀 사용 시 주의사항과 모범 사례

스레드 풀 올바르게 선언하기 스레드 풀은 반드시 `ThreadPoolExecutor` 생성자를 통해 수동으로 선언해야 하며, `Executors` 클래스를 사용하여 생성하면 OOM(메모리 부족) 위험이 있습니다. `Executors`가 반환하는 스레드 풀에는 다음과 같은 문제점이 있습니다: `FixedThreadPool`과 `SingleThreadExecutor`: 무제한 `LinkedBlockingQueue`를 사용하며, 큐 크기가 `In ...

6월 1일 18:42에 게시됨

클래식한 동시성 문제 해결 기법

기본 개념 정리 상호 배제 (Mutual Exclusion): 공유 자원에 접근할 수 있는 스레드는 단 하나뿐이다. 임계 영역은 동시에 여러 스레드가 접근하지 못하도록 보장한다. 동기화 (Synchronization): 두 개 이상의 프로세스나 스레드 간의 실행 순서를 조절하는 메커니즘. 한 작업이 다른 작업의 완료를 기다려야 할 때 사용된다. 비동기 처리 (Asynchronous Execution): 특 ...

5월 29일 09:16에 게시됨

Go 언어에서 고루틴과 채널을 활용한 동시성 및 병렬 처리

프로세스, 스레드, 병렬성, 동시성 프로세스는 운영체제에서 실행 중인 프로그램 인스턴스로, 자원 할당의 기본 단위입니다. 5가지 상태(초기, 실행, 대기, 준비, 종료)를 가지며 동적 실행 환경을 제공합니다. 스레드는 프로세스 내 실행 단위로, 독립적으로 실행 가능한 최소 작업 단위입니다. 한 프로세스는 여러 스레드를 생성할 수 있습니다. 동시성은 단일 CPU에서 ...

5월 20일 06:59에 게시됨