맨위로가기

표준 라이브러리

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

표준 라이브러리는 일반적으로 알고리즘, 자료 구조, 입출력 매커니즘을 위한 정의를 포함하며, 호스트 언어의 구성에 따라 함수, 매크로, 전역 변수, 클래스, 템플릿 등을 포함할 수 있다. C++는 필수적인 요소만 포함하는 간결한 표준 라이브러리를 지향하는 반면, 파이썬은 "배터리 포함" 철학에 따라 XML 처리, 이메일 처리 등 더 포괄적인 기능을 제공한다. 주요 표준 라이브러리로는 C 표준 라이브러리, C++ 표준 라이브러리, 자바 클래스 라이브러리, .NET 프레임워크의 기본 클래스 라이브러리 등이 있다.

2. 구성 요소

표준 라이브러리는 핵심 언어에서 사용 가능한 구성 요소에 따라 다음과 같은 요소들을 포함할 수 있다.



일반적으로 제공되는 기능은 다음과 같다.

2. 1. 핵심 기능

표준 라이브러리는 일반적으로 공통으로 사용되는 알고리즘, 데이터 구조, 입출력을 위한 메커니즘을 위한 정의들을 포함하고 있다. 호스트 언어에서 사용 가능한 구성 요소에 따라 표준 라이브러리는 다음을 포함할 수 있다.

대부분의 표준 라이브러리는 적어도 공통으로 쓰이는 다음의 기능들을 위한 정의들을 포함한다.

2. 2. 일반 기능

표준 라이브러리는 일반적으로 공통으로 사용되는 알고리즘, 자료 구조, 입출력을 위한 메커니즘을 위한 정의들을 포함하고 있다. 호스트 언어에서 사용 가능한 구성체에 따라 표준 라이브러리는 다음을 포함할 수 있다.

대부분의 표준 라이브러리는 적어도 공통으로 쓰이는 다음의 기능들을 위한 정의들을 포함한다.

3. 설계 철학

표준 라이브러리 설계 철학은 매우 다양하다.

C++의 설계자인 비야네 스트롭스트룹은 표준 라이브러리가 모든 프로그래머가 신뢰할 수 있는 필수적인 요소만 포함해야 한다고 보았다.[1] 이는 CC++ 표준 라이브러리가 비교적 작은 규모를 유지하는 이유이다.

반면, 파이썬의 설계자인 귀도 반 로섬은 "배터리 포함" 철학을 통해 더 많은 기능을 표준 라이브러리에 포함하는 방식을 택했다.[2] XML, XML-RPC, 이메일 메시지 처리, 지역화 등 C++ 표준 라이브러리에서는 찾아볼 수 없는 기능들이 파이썬 표준 라이브러리에는 포함되어 있다.

이러한 차이는 스크립트 언어(파이썬, 루비)나 가상 머신을 사용하는 언어(자바, .NET 프레임워크)에서 더 포괄적인 표준 라이브러리를 제공하는 경향으로 이어진다. C++에서는 부스트와 같은 외부 라이브러리가 이러한 기능을 제공한다.

3. 1. C/C++: 간결성과 효율성

CC++ 표준 라이브러리는 비교적 작은 규모를 지향한다. 이는 "모든 프로그래머"가 대규모 소프트웨어 컬렉션을 구축할 때 필요로 할 수 있는 구성 요소만을 포함하는 것을 목표로 한다.[1][3]

C++의 설계자인 비야네 스트롭스트룹은 표준 C++ 라이브러리에 대해 다음과 같이 언급했다.

: "표준 C++ 라이브러리에는 무엇이 있어야 하는가? 프로그래머의 한 가지 이상은 관심 있고, 중요하고, 합리적인 모든 일반적인 클래스, 함수, 템플릿, 기타를 단일 라이브러리에서 얻는 것이다. 그러나 여기서의 의문은 '어떤 라이브러리에 무엇이 있어야 하는가?'가 아니라 '표준 라이브러리에 무엇이 있어야 하는가?'이다. '모든 것!'이라는 답은 전자의 질문에 대한 합리적인 가장 가까운 답이 될 수 있지만, 후자에 대한 답은 아니다. 표준 라이브러리란 모든 구현자가 제공해야 하는 무언가이며, 모든 프로그래머가 그것에 의존하는 것이다."

이는 CC++ 표준 라이브러리의 철학을 보여준다.

3. 2. 파이썬: "배터리 포함" 철학

파이썬의 설계자인 귀도 반 로섬은 표준 라이브러리에 대해 더 포괄적인 비전을 가지고 있었다. 파이썬 튜토리얼에서 그는 다음과 같이 적고 있다.[2]

: 파이썬은 "배터리 포함" 철학을 가지고 있다. 이는 더 큰 패키지의 정교하고 강력한 기능을 통해 가장 잘 드러난다.

반 로섬은 이어서 XML, XML-RPC, 이메일 메시지, 그리고 지역화 처리를 위한 라이브러리를 나열하는데, 이는 CC++ 표준 라이브러리에서는 생략된 기능들이다. 이러한 철학은 스크립트 언어 (예: 파이썬 또는 루비) 또는 가상 머신을 사용하는 언어(예: 자바 또는 .NET 프레임워크)에서 자주 발견된다.

3. 3. 스크립트 언어 및 가상 머신 기반 언어

CC++ 표준 라이브러리는 비교적 작은 규모로, "모든 프로그래머"가 필요로 하는 기본적인 구조만을 포함하는 철학을 가지고 있다. 반면 파이썬, 루비 같은 스크립트 언어자바, .NET 프레임워크 같은 가상 머신을 사용하는 언어는 더 포괄적인 기능을 표준 라이브러리에 포함하는 경향이 있다.[1][2]

파이썬 설계자 귀도 반 로섬은 "배터리 포함" 철학을 통해 XML, XML-RPC, 이메일 메시지, 지역화 처리 등 다양한 기능을 표준 라이브러리에 포함했다.[2] 반면 C++에서는 이러한 기능이 표준 라이브러리 대신 부스트 같은 다른 라이브러리에 포함되어 있다.[1]

4. 주요 표준 라이브러리


  • C 표준 라이브러리
  • C++ 표준 라이브러리
  • 표준 템플릿 라이브러리 (STL) - C++ 표준 라이브러리의 일부분이다.
  • 자바 클래스 라이브러리 (JCL) - 자바 프로그래밍 언어, 자바 플랫폼
  • 베이스 클래스 라이브러리 (BCL) - 닷넷 프레임워크
  • PHP 표준 라이브러리 (SPL) - [http://php.net/manual/kr/intro.spl.php PHP]
  • Factor 표준 라이브러리 - [http://docs.factorcode.org/content/article-handbook-library-reference.html Factor]
  • 루비 표준 라이브러리 - [http://www.ruby-doc.org/stdlib-2.0.0/ Ruby]
  • 파이썬 표준 라이브러리 - [https://docs.python.org/3/library/ Python]
  • 공통 언어 인프라 (CLI) 표준 라이브러리

참조

[1] 서적 The C++ Programming Language Addison-Wesley 1997
[2] 문서 batteries-included https://docs.python.[...]
[3] 서적 The C++ Programming Language アジソン・ウェスレイ社 1997
[4] 문서 Pythonチュートリアル http://docs.python.o[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com