context.Context작업을 취소하고, 타임아웃을 설정하며, 값들을 전달하는 기능을 제공하는 표준 인터페이스고루틴 간의 작업을 관리하고 조정하는 데 사용된다주요 기능취소 신호 전파:작업을 취소할 수 있는 기능을 제공하여, 하나의 작업이 취소되면 관련된 모든 작업이 취소될 수 있다.타임아웃 설정:작업의 최대 실행 시간을 지정하여, 지정된 시간이 초과되면 자동으로 작업을 종료한다값 저장 및 전달:컨텍스트를 통해 값들을 저장하고, 이를 다른 함수나 고루틴에서 사용할 수 있다주요 메서드Done(): 컨텍스트가 취소될 때 닫히는 채널을 반환한다Err(): 컨텍스트가 취소된 이유를 반환한다Deadline(): 컨텍스트가 작업을 완료해야 하는 시한을 반환한다Value(key interface{}): 컨텍스트에 ..
언어/GO
고루틴(goroutine)Go 언어에서 제공하는 경량 스레드동시성과 병행성을 쉽게 구현할 수 있도록 설계된 기능으로, Go 언어의 주요 특징 중 하나운영 체제의 스레드보다 훨씬 가볍고, 더 적은 메모리로 많은 고루틴을 실행할 수 있다.고루틴의 초기 스택 크기작은 초기 스택 크기: Go 1.4 이후의 고루틴은 약 2KB의 초기 스택 크기를 가지고 시작한다.스택 크기 조절: 고루틴이 더 많은 스택 공간을 필요로 하면 자동으로 스택이 확장되며, 필요하지 않으면 축소한다.사용자 수준 스케줄링M스케줄링 모델 : Go 런타임은 많은 수의 고루틴을 소수의 운영 체제 스레드에 매핑하는 M스케줄링 모델을 사용한다경량 컨텍스트 스위칭: 고루틴 간의 컨텍스트 스위칭은 운영 체제의 스레드 간 컨텍스트 스위칭보다 훨씬 가볍다...
Java와의 차이점Java의 참조 타입과 값 타입Java에는 원시 타입(primitive type)과 참조 타입(reference type) 존재모든 객체는 참조 타입이며, 메서드 호출 시 객체를 참조로 전달한다Java의 객체는 명시적으로 포인터를 사용할 필요가 없다. 모든 객체 변수는 자동으로 참조 타입으로 동작한다Go값 타입과 포인터 타입값 타입은 변수의 값을 직접 저장하고, 포인터 타입은 변수의 주소를 저장한다포인터 타입은 메모리의 특정 위치를 가리키며, 이를 통해 원본 데이터를 수정할 수 있다Go에서 포인터 타입의 사용 예원본 데이터 수정포인터를 사용하면 함수나 메서드에서 원본 데이터를 수정할 수 있다값 타입을 사용하면 데이터의 복사본을 전달하므로 원본 데이터는 수정되지 않는다메모리 사용 효율큰 ..