버퍼 없는 채널 사용시 쓰기, 읽기가 동시에 일어나지 않으면 블락이 발생할 수 있음select를 통해 비동기로 구현아래 예시는 이번 주제를 설명하기에 적절하지 않을 수 있음 (채널과 고루틴 없이 충분히 구현 가능)하지만 핵심 부분만 간단하기 설명하기 위함실제 참고한 코
go 언어 프로그래밍 연습을 위해, 대기열 시스템을 구현수강신청이나 게임 로그인 대기열 등작업은 멀티쓰레드 환경에서 요청할 수 있다동일한 작업은 처리되기 전까지 다시 요청할 수 없다대신 앞에 남은 대기열을 알려준다 (ex. 수강신청 또는 게임 로그인 대기열)작업이 완료
개요 런타임중 panic이 발생했을 경우, stacktrace가 출력되고 프로그램이 종료됨 panic은 다른 언어의 Exception과 유사 recover 및 추가 작업을 통해 프로그램 종료 없이 stacktrace 출력 구현 recover는 다른 언어의 try
개요 golang은 가비지 콜렉션으로 인한 성능 저하를 최소화 하기 위해 압축과 세대별GC를 사용하지 않음 java, C# 등 가상머신 기반에서는 압축과 세대별GC를 사용함 압축: 가비지 콜렉션 이후 메모리 단편화를 막기 위해 메모리 빈공간 없이 당겨오는 작업
코드 출력 추론 전역 변수와 로컬 변수의 메모리 주소대가 완전히 다름 ex. 0x1023~, 0x140001~ 메모리 영역은 일반 변수, Slice 포인터 변수, 포인터 변수 세 영역으로 나뉨 ex. 0x10239~, 0x102364~, 0x102363~ map,
개요 golang에서 네이티브로 지원하지 않는 자료구조를 구현 다양한 타입 지원을 위해 빈 인터페이스 사용 이후 제네릭과 비교했을 때, 제네릭에 비해 성능이 떨어짐 https://velog.io/@natae/golang-generic-vs-empty-interf