개발자 / 애플리케이션 / 웹서비스

페이스북, C++11 지원하는 디버거 ‘플린트’ 오픈소스로 공개

Joab Jackson | IDG News Service 2014.02.27
페이스북이 일반적으로 ‘린터’(linter)라고 불리는 오픈소스 코드 분석 툴을 자체 개발해 공개했다. C++ 언어 최신 버전인 C++11을 지원하는 것이 가장 큰 특징이다.

페이스북은 내부적으로 개발한 디버거인 ‘플린트'(Flint) https://github.com/facebook/flint 를 26일 발표했다. 업체 측은 “다른 오픈소스 린트(lint) 툴들이 아직 C++11에서 사용할 수 있도록 업그레이드가 되지 않았다”며 “플랜트는 C++11을 지원해 프로그래머에게 큰 도움이 될 것”이라고 밝혔다.

일반적으로 린트 프로그램은 소프트웨어 코드를 분석해 컴파일러가 잡아내지 못하는 문제를 찾아낸다. 이를 '정적 코드 분석'(static code analysis)이라고 부른다. 코드 개발 시 가장 효율적인 구조를 적용하거나, 보안 혹은 성능 문제를 일으킬 수 있는 코드 패턴을 찾아낼 때 매우 편리하다.

플린트를 개발한 주역은 유명 C++ 프로그래머이자 지금은 페이스북 소속인 안드레이 알렉산드레스쿠다. 페이스북은 다양한 C++용 정적 분석 프로그램을 검토했지만, 대부분 너무 느리거나 혹은 업데이트가 안 돼 현재 페이스북이 사용하고 있는 C++11에서는 사용할 수 없었다. 그래서 알렉산드레스쿠를 중심으로 내부 개발해 오픈소스로 공개하기에 이르렀다.

현재 플린트는 페이스북 코드 리뷰 시스템인 ‘파브리케이터’(Phabricator)에 적용돼 코드를 분석하고 잠재적인 문제를 찾아내는 역할을 맡고 있다. 사용기한을 넘긴 라이브러리를 사용하거나 혹은 시스템 내에서 이미 다른 용도로 쓰이는 키워드를 중복해 사용하는지 등의 문제를 알려준다. 부적절한 메모리 요구 등 컴파일러가 놓칠 수 있는 미세한 프로그래밍 오류를 잡아내고, 헤더가 정확하게 규정돼 있는지, 이름공간 충돌 여부도 확인해 준다.

알렉산드레스쿠는 ‘D’라고 불리는 C++와 비슷한 프로그래밍 언어를 이용해 플린트를 개발했다. 이에 따라 플린트의 컴파일 속도는 다른 C++용 프로그램보다 5배 빠르다. 어디서든 프로그램을 실행할 수 있으며 실행 속도 역시 5~25% 더 빠르다고 페이스북 측은 밝혔다.

페이스북은 플린트 외에도 다양한 툴을 내부적으로 개발해 오픈소스로 공개했다. 최근에는 힙홉(HipHop)이라 불리는 프레스토(Presto) 쿼리 엔진과 PHP 가상 머신을 공개하기도 했다. editor@itworld.co.kr 
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.