Skip to content

Go 표준 라이브러리 소개

이 문서를 작성할 당시 Go 배포판은 이미 1.21 버전이며, 이 사이트가 설립된 지 1 년이 조금 넘었습니다.

Go 언어의 표준 라이브러리는 매우 풍부하며 (데이터 구조 제외) 기능도 매우 강력합니다. API 는 개발자에게 매우 친숙하며, 표준 라이브러리를 능숙하게 사용하면 일상적인 개발에 매우 큰 도움이 될 것입니다. 예를 들어 외부 의존성 없이 net/http, html/template, database/sql 이 세 개의 라이브러리만으로도 독립적이고 완전한 웹 프로젝트를 개발할 수 있습니다.

표준 라이브러리 내용이 계속 업데이트되지 않은 이유는 표준 라이브러리 내용이 실제로 너무 많기 때문입니다. 따라서 아래에서는 일반적으로 사용되는 표준 라이브러리의 역할을 간단히 요약하여 자신이 관심 있는 부분을 선택하여 이해할 수 있도록 하겠습니다. 각 표준 라이브러리의 패키지 레벨 주석에서 해당 패키지의 용도를 자세히 설명합니다.

  • fmt, 형식화된 입력 출력을 처리하는 패키지
  • html, html 템플릿 조작 패키지
  • net, 일련의 네트워크 조작을 제공하는 패키지, 매우 강력함
  • flag, 명령줄 매개변수 해석 패키지
  • reflect, 리플렉션 조작 패키지
  • log, 기본 제공 로그 패키지
  • sort, 정렬 조작 패키지
  • regex, 정규 표현식 패키지
  • image, 이미지 조작 패키지
  • time, 시간 조작 패키지
  • unicode, unicode 문자 집합 조작 패키지
  • unsafe, 타입 제한이 없는 포인터 조작 제공
  • syscall, 운영체제가 제공하는 시스템 호출 패키지
  • testing, 테스트 패키지, 주로 테스트 작성 시 사용
  • sync, 동시성 조작 패키지
  • context, 컨텍스트 패키지
  • strconv, 문자열 변환 패키지
  • strings, 문자열 조작 패키지
  • bytes, 바이트 슬라이스 조작 패키지
  • maps, map 조작 패키지
  • slices, 슬라이스 조작 패키지
  • io, Closer, Writer 등 기본적인 IO 인터페이스와 기본적인 IO 조작 함수 정의
  • io/fs, 파일 시스템 인터페이스 정의, 파일 시스템에 대한 추상화
  • os, 운영체제와 상호작용하는 패키지, 구체적인 함수 제공, 위 두 패키지의 구체적인 구현으로 이해할 수 있음
  • os/signal, 운영체제 신호 패키지, 운영체제 신호 수신용, 주로 프로그램의 우아한 종료 구현
  • os/exec, 운영체제 명령 패키지, 운영체제 명령 실행용
  • os/user, 운영체제 사용자 패키지, 운영체제 사용자 정보 획득용
  • bufio, 버퍼가 있는 IO 읽기 쓰기 패키지
  • path, 슬래시 구분 경로 처리 패키지, 예: url 등
  • path/filepath, 파일 경로 처리 패키지
  • math, 수학 조작 패키지
  • math/bits, 비트 연산 조작 패키지
  • math/cmplx, 복소수 조작 패키지, 삼각 함수 도구 함수도 제공
  • math/rand, 의사 난수 패키지
  • math/big, 대수 고정밀 계산 패키지
  • container/heap, 최소 힙 구현
  • container/list, 이중 연결 리스트 구현
  • container/ring, 링 구현
  • archive/zip, zip 압축 아카이브 패키지
  • archive/tar, tar 아카이브 파일 패키지
  • compress, 압축 알고리즘 구현 패키지, 예: gzip, flate 등
  • database/sql, 데이터베이스와 상호작용하는 패키지
  • encoding, 인코딩 처리 패키지, 하위에 많은 서브 패키지 포함, 예: json, xml, base64
  • crypto, 암호화 처리 패키지, 하위에 많은 서브 패키지 포함, 예: sha1, rsa 등
  • go/ast, Go 소스 코드 추상 구문 트리 매핑 패키지
  • go/parser, Go 소스 코드를 추상 구문 트리로 해석하는 패키지
  • go/importer, 임포터에 대한 액세스 제공
  • go/format, Go 언어 포맷 패키지
  • arena, 수동 메모리 할당 및 해제 기능 제공, 실험 단계
  • runtime, 런타임 조작 패키지, Go 에서 많은 조작이 이 패키지로 구현됨

Golang by www.golangdev.cn edit