이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.26 14:35
CPython은 파이썬 프로그래밍 언어의 참조 구현체이자 가장 널리 사용되는 인터프리터이다. 1991년 귀도 반 로섬에 의해 최초로 공개되었으며, 현재는 파이썬 소프트웨어 재단이 주도적으로 개발을 관리하고 있다. 이 구현체는 C 언어로 작성되어 있어 'CPython'이라는 이름이 붙었으며, 파이썬 언어의 공식 표준을 정의하는 역할을 한다.
CPython의 주요 역할은 파이썬으로 작성된 소스 코드를 해석하고 실행하는 것이다. 사용자가 작성한 파이썬 코드는 CPython 인터프리터에 의해 먼저 바이트코드로 변환된 후, 가상 머신에서 실행된다. 이는 컴파일러와 인터프리터의 특성을 모두 갖는 동작 방식이다. CPython은 표준 라이브러리를 포함한 방대한 기능을 제공하여, 소프트웨어 개발부터 스크립팅에 이르기까지 다양한 용도로 활용된다.
CPython은 파이썬 생태계의 중심에 서 있으며, PyPy나 Jython 같은 다른 구현체들의 비교 기준이 된다. 그 자체로도 웹 개발, 데이터 분석, 인공지능, 자동화 등 수많은 애플리케이션 실행의 기반이 되고 있다. 단일 프로세스에서 스레드 실행을 제어하는 GIL의 존재는 CPython 설계의 대표적 특징이자 논의의 대상이 되기도 한다.
CPython의 역사는 파이썬 프로그래밍 언어 자체의 역사와 밀접하게 연결되어 있다. 1980년대 후반, 네덜란드의 프로그래머 귀도 반 로섬이 ABC 프로그래밍 언어의 후속 프로젝트로 취미 삼아 개발을 시작한 것이 그 시초이다. 그는 시스템 관리 작업을 자동화하기 위한 더욱 강력하고 사용하기 쉬운 스크립트 언어를 원했으며, 1991년 2월에 최초의 공개 버전인 파이썬 0.9.0을 발표했다. 이 초기 버전부터 CPython은 파이썬의 공식적이자 표준적인 참조 구현 역할을 해왔다.
초기 개발은 주로 귀도 반 로섬에 의해 주도되었으며, 인터넷의 성장과 함께 오픈 소스 커뮤니티의 기여가 점차 확대되었다. 2000년에는 파이썬 2.0이 릴리스되며 가비지 컬렉션 시스템이 도입되고 유니코드 지원이 강화되는 등 중요한 발전이 이루어졌다. 이후 2008년에는 파이썬 3.0(파이삼)이 출시되어 언어 설계의 근본적인 결함을 해결하는 대규모 호환되지 않는 변경이 단행되었으며, CPython은 이 새로운 언어 명세의 핵심 구현체로서의 역할을 수행하게 되었다.
프로젝트의 관리 구조도 진화했다. 2001년에는 비영리 조직인 파이썬 소프트웨어 재단이 설립되어 파이썬과 CPython의 지적 재산권을 관리하고 발전을 지원하는 역할을 맡게 되었다. 현재 CPython의 개발은 공개된 버전 관리 시스템을 통해 전 세계의 수많은 기여자들이 참여하는 커뮤니티 중심의 협업 모델로 운영되고 있다. 이는 CPython이 단순한 인터프리터를 넘어 생태계의 중심 기둥으로 자리 잡는 데 기여했다.
CPython은 파이썬 프로그래밍 언어의 표준이자 참조 구현체이다. 이 구현체는 이름에서 알 수 있듯이 C 언어로 작성되어 있으며, 파이썬 코드를 실행하는 핵심 엔진 역할을 한다. CPython은 흔히 '인터프리터'라고 불리지만, 실제 동작 방식은 인터프리터와 컴파일러의 하이브리드 형태를 띤다.
파이썬 소스 코드(.py 파일)가 실행되면, CPython은 먼저 이를 바이트코드라는 중간 형태로 컴파일한다. 이 과정은 파싱과 추상 구문 트리 생성을 거쳐 이루어진다. 생성된 바이트코드는 .pyc 확장자를 가진 파일로 캐싱되어, 동일한 모듈을 다시 불러올 때 컴파일 단계를 생략하고 빠르게 로드할 수 있다. 이 바이트코드는 플랫폼에 독립적인 저수준 명령어 집합으로, CPython 가상 머신이 실행할 수 있는 형식이다.
실제 코드 실행은 CPython 가상 머신이 이 바이트코드를 한 줄씩 해석하고 수행하는 인터프리터 방식으로 이루어진다. 따라서 CPython은 JIT 컴파일을 사용하지 않는 순수 인터프리터는 아니며, 소스 코드를 중간 언어로 컴파일한 후 그 중간 언어를 인터프리트하는 방식으로 동작한다. 이 설계는 자바 가상 머신과 유사한 접근법이지만, 머신 코드로의 추가적인 실시간 컴파일 단계는 포함하지 않는다.
이러한 아키텍처는 높은 이식성을 제공하는 동시에, C 확장 모듈을 통해 성능이 중요한 부분을 네이티브 코드로 보강할 수 있는 유연성을 갖추게 한다. CPython의 핵심 인터프리터 루프는 이 바이트코드 명령어들을 순차적으로 디스패치하고 실행하며, 메모리 관리와 객체 모델 같은 언어의 핵심 기능을 관리한다.
CPython의 메모리 관리는 참조 카운팅과 순환 참조 가비지 컬렉션을 결합한 방식으로 이루어진다. 모든 파이썬 객체는 참조 횟수를 추적하는 카운터를 가지고 있으며, 이 카운터가 0이 되면 해당 객체의 메모리가 즉시 해제된다. 이 방식은 메모리 회수를 예측 가능하게 만드는 장점이 있다. 그러나 참조 카운팅만으로는 순환 참조를 해결할 수 없기 때문에, CPython은 주기적으로 순환 참조를 탐지하고 회수하는 가비지 컬렉터를 별도로 구동한다.
CPython의 가장 특징적인 설계 요소 중 하나는 전역 인터프리터 록(GIL)이다. GIL은 하나의 프로세스 내에서 여러 스레드가 실행될 때, 한 번에 오직 하나의 스레드만이 파이썬 바이트코드를 실행할 수 있도록 하는 뮤텍스이다. 이는 CPython의 메모리 관리가 스레드 안전하지 않기 때문에 도입된 장치로, 참조 카운트와 같은 내부 객체 상태의 무결성을 보호하는 역할을 한다.
GIL의 존재는 CPU 바운드 작업을 수행하는 다중 스레드 애플리케이션의 성능을 제한하는 주요 요인으로 지적된다. 여러 스레드가 동시에 실행되더라도 실제로는 교차 실행이 아닌 번갈아 가며 실행되기 때문에, 멀티코어 CPU의 이점을 완전히 활용하지 못하게 된다. 이는 과학 계산이나 데이터 처리와 같은 병렬 처리가 중요한 분야에서 CPython의 단점으로 여겨진다.
GIL의 한계를 우회하기 위한 방법으로는 멀티프로세싱 모듈을 사용하여 여러 프로세스를 생성하는 방법, C 확장 모듈에서 GIL을 해제하는 방법, 또는 GIL이 없는 다른 파이썬 구현체인 Jython이나 IronPython을 사용하는 방법 등이 있다. 또한 비동기 프로그래밍 역시 I/O 바운드 작업에서 동시성을 높이는 효과적인 대안으로 활용된다.
CPython은 파이썬 언어의 참조 구현체로서, 언어의 핵심 기능과 함께 방대한 표준 라이브러리를 포함하고 있다. 이 라이브러리는 파이썬 설치 시 기본적으로 제공되는 모듈과 패키지의 모음으로, 별도의 외부 패키지 관리자를 통해 설치할 필요 없이 바로 사용할 수 있다. 이는 파이썬의 철학 중 하나인 "배터리 포함"을 실현한 것으로, 개발자가 다양한 작업을 시작하는 데 필요한 기본 도구들을 풍부하게 제공한다.
표준 라이브러리는 파일 시스템 접근, 운영 체제 상호작용, 데이터 형식 처리, 인터넷 프로토콜 지원 등 광범위한 영역을 커버한다. 예를 들어, os와 sys 모듈은 시스템 기능을 제어하고, json과 csv 모듈은 데이터 직렬화를 처리하며, urllib와 socket 모듈은 네트워크 프로그래밍을 가능하게 한다. 또한 datetime, math, re(정규 표현식)와 같은 모듈들은 일상적인 프로그래밍 작업에 필수적인 유틸리티를 제공한다.
이 라이브러리의 또 다른 중요한 특징은 높은 품질과 일관된 설계 원칙을 유지한다는 점이다. 모든 모듈은 공식 파이썬 문서에 상세히 기술되어 있으며, CPython 개발 프로세스의 일부로 엄격한 검토와 테스트를 거친다. 이는 타사 라이브러리에 비해 높은 신뢰성과 안정성을 보장하며, 파이썬 생태계의 견고한 기초를 형성한다.
표준 라이브러리의 존재는 파이썬의 학습 곡선을 낮추고 생산성을 높이는 데 기여한다. 초보자는 복잡한 외부 의존성 없이도 강력한 기능을 활용할 수 있으며, 전문가 역시 표준화된 인터페이스를 통해 효율적으로 솔루션을 구축할 수 있다. 이처럼 CPython의 표준 라이브러리는 파이썬이 스크립트 언어부터 대규모 애플리케이션 개발까지 널리 쓰이게 하는 핵심 요소 중 하나이다.
CPython은 파이썬 소스 코드를 직접 실행하지 않고, 중간 단계의 저수준 명령어 집합인 바이트코드로 변환하여 실행한다. 이 과정은 소스 코드를 인터프리터가 실행할 때 자동으로 이루어진다. 파이썬 코드가 처음 실행되면, 파서와 컴파일러가 코드를 분석하여 추상 구문 트리를 생성한 후, 이를 CPython 가상 머신이 이해할 수 있는 바이트코드 명령어로 컴파일한다. 이렇게 생성된 바이트코드는 일반적으로 .pyc 확장자를 가진 파일로 캐시되어, 같은 모듈을 다시 불러올 때 컴파일 과정을 생략하고 빠르게 실행될 수 있도록 한다.
바이트코드는 플랫폼에 독립적인 형태로 설계되었다. 이는 CPython이 설치된 어떤 운영체제(리눅스, 윈도우, macOS)에서도 동일한 파이썬 소스 코드가 동일한 바이트코드로 변환될 수 있음을 의미한다. 하지만 이 바이트코드는 CPython 가상 머신에 특화되어 있어, PyPy나 Jython 같은 다른 파이썬 구현체에서는 직접 실행되지 않는다. 바이트코드의 구체적인 내용은 dis 모듈을 사용하여 사람이 읽을 수 있는 형태로 역어셈블하여 확인할 수 있다.
CPython의 바이트코드 실행 모델은 스택 기반 가상 머신이다. 대부분의 바이트코드 명령어는 값을 스택에 푸시하거나, 스택에서 값을 팝하여 연산을 수행한 후 결과를 다시 스택에 넣는 방식으로 동작한다. 예를 들어, 두 숫자를 더하는 연산은 각 숫자를 스택에 로드하는 명령어와, 스택 상단의 두 값을 더하는 명령어로 구성된다. 이러한 설계는 가상 머신의 구현을 단순하게 유지하는 데 기여한다.
CPython의 C API는 C와 C++로 작성된 확장 모듈을 생성하거나 CPython 인터프리터 자체를 내장(embed)하는 데 사용되는 응용 프로그램 프로그래밍 인터페이스이다. 이 API는 파이썬의 동적 특성과 C 언어의 저수준 성능 및 기존 라이브러리를 연결하는 강력한 다리 역할을 한다. 개발자들은 이를 통해 계산 집약적인 작업을 C로 구현하여 성능을 극대화하거나, 하드웨어 제어나 특정 운영 체제의 기능과 같은 파이썬으로 직접 접근하기 어려운 영역을 활용할 수 있다.
C API는 크게 두 가지 주요 사용 사례를 지원한다. 첫째는 확장 모듈 작성으로, 새로운 파이썬 모듈을 C로 구현하여 import 문으로 불러올 수 있게 한다. 둘째는 내장 인터프리터로, C/C++ 응용 프로그램 내에 CPython 인터프리터를 통합하여 그 안에서 파이썬 코드를 실행할 수 있게 한다. 이 API는 파이썬 객체를 표현하고 조작하는 데 필요한 수많은 함수, 매크로, 변수 타입을 제공하며, 파이썬의 가비지 컬렉션 시스템과 안전하게 상호작용할 수 있는 규칙을 정의한다.
이 API를 사용하는 전형적인 확장 모듈은 모듈을 초기화하는 함수와 하나 이상의 메서드를 구현한 함수로 구성된다. 개발자는 파이썬 객체(예: 정수, 문자열, 리스트)를 C 데이터 타입으로 변환하거나 그 반대의 작업을 수행하기 위해 API 함수를 사용한다. 그러나 C API는 CPython 구현의 세부 사항과 깊게 연결되어 있어 다른 파이썬 인터프리터(예: PyPy, Jython)와는 호환되지 않을 수 있다는 점이 주의할 만한 한계이다.
C API의 존재는 파이썬 생태계의 풍부함에 크게 기여했다. NumPy, SciPy, Pandas와 같은 핵심 과학 계산 라이브러리부터 다양한 데이터베이스 어댑터, GUI 툴킷 바인딩에 이르기까지 수많은 고성능 서드파티 패키지가 이 C API를 기반으로 구축되었다. 이는 파이썬이 단순한 스크립팅 언어를 넘어서 복잡한 시스템 프로그래밍과 고성능 컴퓨팅 분야까지 널리 활용될 수 있는 기반을 마련해 주었다.
CPython은 파이썬 프로그래밍 언어의 참조 구현체이자 가장 널리 사용되는 인터프리터이다. 그러나 파이썬 언어를 실행하는 다른 구현체들도 존재하며, 각각은 특정 목표와 장점을 가지고 CPython과 차별화된다.
주요 대안 구현체로는 Jython과 IronPython이 있다. Jython은 자바 가상 머신 위에서 동작하며, 자바 클래스 라이브러리를 직접 활용할 수 있는 것이 특징이다. IronPython은 닷넷 프레임워크용으로 개발되어 C샤프 등 닷넷 기반 언어와의 상호 운용성을 제공한다. 이들 구현체는 각각의 플랫폼(JVM, CLR)에 특화된 성능 이점과 기존 생태계 통합의 장점을 가지지만, CPython에 비해 표준 라이브러리 지원이 제한적일 수 있고, C 확장 모듈과의 호환성에 제약이 따른다.
성능 최적화에 초점을 맞춘 구현체로는 PyPy가 대표적이다. PyPy는 JIT 컴파일 기술을 사용하여 장기 실행되는 애플리케이션에서 CPython보다 종종 더 빠른 실행 속도를 보인다. 또한 스택리스 모드와 같은 고급 기능을 지원한다. 그러나 모든 C API를 완벽하게 호환하지는 않아 일부 네이티브 확장 모듈 사용에 문제가 발생할 수 있다. 마이크로파이썬은 제한된 자원을 가진 마이크로컨트롤러와 임베디드 시스템에서 실행되도록 설계된 경량 구현체이다.
이러한 다양한 구현체들은 파이썬 생태계의 확장성과 유연성을 증명한다. CPython은 표준의 기준점 역할을 하며 가장 광범위한 호환성과 라이브러리 지원을 제공하는 반면, 다른 구현체들은 특수한 런타임 환경, 성능 요구사항, 또는 하드웨어 제약 조건에 맞는 솔루션을 제시한다. 개발자는 프로젝트의 요구사항에 따라 적절한 구현체를 선택할 수 있다.
CPython의 성능은 전통적으로 인터프리터 언어의 특성상 일부 컴파일 언어에 비해 느리다는 평가를 받아왔다. 이는 소스 코드가 직접 기계어로 컴파일되는 것이 아니라, 바이트코드로 컴파일된 후 가상 머신에서 해석되어 실행되기 때문이다. 또한 전역 인터프리터 락(GIL)의 존재로 인해 단일 프로세스 내에서의 다중 스레드 병렬 실행이 제한되어 CPU 집약적인 멀티스레드 작업의 성능 향상에 한계가 있었다. 이러한 구조적 특성은 CPython이 입출력 대기 시간이 긴 작업에는 효율적일 수 있지만, 순수 계산 작업에서는 상대적인 성능 저하를 일으킬 수 있다.
성능 개선을 위해 CPython 개발 커뮤니티는 지속적인 최적화 노력을 기울여 왔다. 주요 최적화 전략으로는 바이트코드 실행 엔진의 효율화, 내부 데이터 구조의 개선, 그리고 JIT 컴파일러의 도입 검토 등이 있다. 예를 들어, 최근 버전에서는 함수 호출 오버헤드를 줄이기 위한 프레임 최적화, 자주 사용되는 연산에 대한 특수화된 바이트코드 명령어 추가 등의 기법이 적용되었다. 또한 메모리 관리자의 할당 및 해제 알고리즘도 지속적으로 개선되어 메모리 사용 효율과 할당 속도가 향상되었다.
CPython의 성능을 극대화하기 위한 외부적인 접근법도 활발히 사용된다. 계산 집약적인 코드 섹션을 C 언어나 C++로 작성하여 C API를 통해 통합하거나, Cython 컴파일러를 사용하여 정적 타입을 지정하고 C 확장 모듈을 생성하는 방법이 대표적이다. 또한 NumPy나 Pandas와 같은 과학 계산 라이브러리는 내부적으로 고도로 최적화된 C/Fortran 코드를 활용하여 CPython의 성능 한계를 우회하고 있다. 이러한 도구들은 CPython 생태계의 높은 생산성과 C 수준의 성능을 결합하는 핵심 요소로 자리 잡았다.
장기적인 성능 향상을 위한 근본적인 프로젝트도 진행 중이다. 대표적으로 GIL을 제거하려는 여러 시도가 있었으며, 서브인터프리터를 활용한 병렬 실행 모델 등이 연구되고 있다. PyPy는 JIT 컴파일을 통해 CPython보다 종종 더 빠른 실행 속도를 제공하는 대체 구현체로, 성능이 중요한 특정 영역에서 선택지가 되고 있다. CPython 자체도 점진적인 발전을 통해 매 버전마다 마이크로벤치마크 수준에서 지속적인 성능 향상을 이루고 있으며, 사용자 커뮤니티의 다양한 요구 사항에 부응하기 위해 최적화 작업은 핵심 개발 로드맵의 중요한 부분을 차지하고 있다.
CPython의 개발은 파이썬의 창시자인 귀도 반 로섬이 1991년에 최초 버전을 공개하면서 시작되었다. 초기에는 귀도 반 로섬이 주도적으로 개발을 이끌었으며, 파이썬 언어의 설계 철학과 함께 인터프리터의 핵심 구조를 확립했다. 시간이 지나면서 전 세계의 많은 개발자들이 오픈 소스 프로젝트에 기여하기 시작했고, 이는 CPython이 파이썬의 표준이자 가장 널리 사용되는 구현체로 자리 잡는 데 결정적인 역할을 했다.
CPython 프로젝트의 공식적인 관리는 현재 파이썬 소프트웨어 재단(PSF)이 담당하고 있다. 그러나 실제 개발 작업은 대부분 자발적인 기여자들에 의해 이루어진다. 개발 과정은 공개된 저장소에서 투명하게 진행되며, 새로운 기능이나 변경 사항은 파이썬 개선 제안(PEP)이라는 문서를 통해 제안되고 논의된다. 이 제도는 파이썬과 CPython의 발전 방향을 체계적으로 관리하는 데 핵심적이다.
CPython에 기여하는 방법은 다양하다. 가장 직접적인 방법은 C 언어로 작성된 인터프리터 코어나 표준 라이브러리 모듈의 코드를 수정하거나 개선하는 것이다. 또한, 문서화 작업, 버그 리포트 제출 및 검증, 빌드 시스템 또는 테스트 도구 개선 등도 중요한 기여 방식이다. 주요 결정 사항은 핵심 개발자들로 구성된 파이썬 핵심 개발자 팀의 검토와 합의를 거친다.
이러한 공동체 중심의 개발 모델은 CPython이 지속적으로 진화하고 안정성을 유지할 수 있는 기반이 된다. 수많은 기여자들의 노력은 인터프리터의 성능 향상, 새로운 언어 기능의 추가, 보안 취약점 해결 등에 직접적으로 반영되어, 전 세계 수백만 명의 파이썬 사용자에게 혜택을 제공하고 있다.
CPython의 주요 버전은 2.x 시리즈와 3.x 시리즈로 크게 구분된다. 2000년에 출시된 파이썬 2.0은 가비지 컬렉션 시스템과 유니코드 지원을 도입하는 등 중요한 발전을 이루었다. 이후 2008년에 등장한 파이썬 3.0은 언어 설계의 근본적인 결함을 해결하기 위한 비호환적 업데이트로, 문자열 처리와 정수 나눗셈 동작 등에서 큰 변화를 가져왔다. 이로 인해 기존 파이썬 2 코드는 수정 없이 파이썬 3에서 실행되지 않는 경우가 많았다.
파이썬 2와 파이썬 3의 장기간 병행 지원 기간을 거쳐, 파이썬 2.7에 대한 공식 지원은 2020년 1월 1일에 종료되었다. 이는 커뮤니티가 파이썬 3으로의 완전한 전환을 촉구하는 결정적 계기가 되었다. 현재 CPython의 모든 활성 개발은 파이썬 3.x 버전 라인에서 이루어지고 있으며, 새로운 기능과 최적화는 이 라인에만 추가된다.
CPython은 하위 호환성을 유지하는 데 중점을 두고 발전해 왔다. 파이썬 3.0 이후의 마이너 버전 업데이트(예: 3.7에서 3.8으로)는 일반적으로 기존 코드의 호환성을 크게 해치지 않도록 설계된다. 그러나 때때로 새로운 키워드 추가나 더 이상 사용되지 않는 기능의 제거와 같은 변경 사항은 __future__ 임포트나 경고 메시지를 통해 점진적으로 도입된다. 개발자는 python -3이나 python -Werror와 같은 도구를 사용해 코드의 호환성을 미리 점검할 수 있다.
주요 버전 간의 호환성 문제를 해결하기 위해 2to3 같은 변환 도구가 제공되며, six와 같은 호환성 라이브러리는 단일 코드베이스에서 두 버전을 동시에 지원하는 데 활용된다. 또한, 가상 환경을 활용해 프로젝트별로 서로 다른 CPython 버전과 패키지 의존성을 격리하는 것은 현대적인 파이썬 개발 워크플로우의 표준 관행이 되었다.
CPython은 파이썬 프로그래밍 언어의 참조 구현체로서, 가장 널리 사용되는 구현체이다. 이는 파이썬 언어의 표준과 명세를 정의하는 기준 역할을 하며, 파이썬 커뮤니티와 생태계의 사실상의 중심이 된다. 수많은 파이썬 패키지와 프레임워크는 CPython의 C API와 호환성을 우선적으로 고려하여 개발되기 때문에, CPython은 웹 개발, 데이터 과학, 인공지능, 자동화 등 거의 모든 파이썬 응용 분야의 기반을 이루고 있다.
CPython의 영향은 기술적 구현을 넘어 파이썬 언어 자체의 발전과 밀접하게 연관되어 있다. 새로운 언어 기능의 제안과 구현은 대부분 CPython 코드베이스에서 먼저 이루어지며, 파이썬 개선 제안서(PEP) 과정을 거쳐 표준이 된다. 또한 CPython의 메모리 관리 방식과 전역 인터프리터 락(GIL) 같은 설계 선택은 파이썬 프로그래밍의 병렬 처리와 성능에 대한 논의와 대안적 구현체(예: PyPy, Jython)의 개발 동기를 제공하기도 했다.
교육 및 입문 분야에서도 CPython의 영향은 지대하다. 파이썬의 공식 문서, 대부분의 교재, 그리고 온라인 강의 플랫폼의 수업 내용은 CPython의 동작 방식을 기준으로 삼는다. 이는 학습자들이 언어의 핵심 개념을 일관된 환경에서 습득할 수 있게 하여, 파이썬이 초보자에게 친숙한 언어로 자리 잡는 데 기여했다.
더 넓은 오픈 소스 소프트웨어 생태계 내에서 CPython은 성공적인 거버넌스 모델의 사례로 꼽힌다. 초기에는 귀도 반 로섬이 자비로운 종신 독재자(BDFL) 역할을 했으며, 이후에는 파이썬 소프트웨어 재단과 파이썬 지도 위원회를 통해 공식적인 거버넌스 구조로 진화했다. 이 모델은 전 세계 수천 명의 기여자가 안정적으로 프로젝트에 참여할 수 있는 토대를 마련했으며, 다른 많은 오픈 소스 프로젝트에 영향을 미쳤다.