Open Source
Frequently Asked Questions
- 오픈 소스의 정의가 궁금합니다. 무료로 소스 코드를 얻을 수 있으면 모두 오픈 소스인가요?
- 오픈 소스를 사용하여 개발된 어플리케이션은 보안에 취약하지 않나요?
- 오픈 소스는 테스트가 되지 않고, 문제 발생시 대처가 불가능하지 않나요?
- 오픈 소스의 활용은 상업 제품에 비해 활용과 신기술 반영이 매우 저조하지 않나요?
- 오픈 소스는 로드맵이 없고 이전 버전과 호환성을 보장하지 않고 자주 변경되지 않나요?
- 오픈 소스를 비즈니스 어플리케이션 개발에 사용하여도 문제가 없나요?
Answers
1.오픈 소스의 정의가 궁금합니다. 무료로 소스 코드를 얻을 수 있으면 모두 오픈 소스인가요?
오픈 소스는 단순히 소스 코드의 접근만을 의미하지는 않습니다. 오픈 소스의 육성과 보호를 위해 설립된 비영리 단체인 OSI(Open Source Initative)는 오픈 소스에 대한 명확한 기준을 10개의 조항으로 구성하여 정의하고 있습니다. 여기에서는 소스의 자유로운 배포, 특정 단체나 사람에 대한 차별화 금지 등과 같은 오프 소스로 갖추어야 할 기본 조건이 있습니다.
2.오픈 소스를 사용하여 개발된 어플리케이션은 보안에 취약하지 않나요?
보안 관련된 문제는 모든 오픈 소스에 적용되지는 않습니다. 예를 들면, DB에 접근하여 데이터를 CRUD하는 Hibernate 제품은 표준 JDBC위에서 DBMS와 완전히 격리되어 동작하고 있습니다. 그러나 Tomcat과 같은 웹서버 기능을 하는 제품은 서버와 브라우저간의 송수신 데이터를 암호화하기 위해 SSL(Secure Socket Layer) 인증서 설치가 요구될 수 있습니다. SSL에 대한 암호화 프로토콜은 국제 표준으로 존재하고 있으며 이에 대한 오픈 소스의 구현체로 OpenSSL이 존재합니다. SSL에 대한 구현체를 상업용 제품을 사용하여 연계할 수도 있습니다. 이와 같이 보안과 관련된 영역에 대해서는 별도로 전문 벤더의 제품이나 검증된 오픈 소스를 상황에 따라 적합하게 선택하여 사용함으로써 대처할 수 있습니다.
3.오픈 소스는 테스트가 되지 않고, 문제 발생시 대처가 불가능하지 않나요?
대부분의 오픈 소스 프로젝트는 많은 수의 자발적 개발자, 인터넷 메일링 리스트, 문서 저장소, 지원 데이터베이스 등을 갖고 있으므로 지속적으로 많은 개발자들의 테스트를 거쳐 문제가 해결되고 오픈 소스 사용자들은 패치 버전을 받을 수 있습니다. 그리고 몇몇 오픈 소스 프로젝트에서는 별도의 기술 지원 계약에 의해 원개발자들로부터 직접 기술 지원 서비스를 받을 수 있습니다. 예를 들면, JBoss는 JBoss 그룹이 지원하는데, JBoss 그룹에는 그 오픈 소스를 개발한 10명의 핵심 개발자가 있어서 계약서의 내용에 따라, 사용자는 빠르면 2시간의 응답시간을 통해 24시간 연중무휴로 전문가의 지원을 받을 수 있다고 JBoss 그룹의 사장 마크 플루어리는 말하고 있습니다.
4.오픈 소스의 활용은 상업 제품에 비해 활용과 신기술 반영이 매우 저조하지 않나요?
현재 많은 IT 제품과 시스템 서비스의 핵심 영역에 오픈 소스가 광범위하게 활용되고 있습니다. 또한 많은 오픈 소스 프로젝트에는 자발적으로 개발에 참여하는 많은 개발자들이 있고 전 세계적으로 주요 오픈 소스 단체나 프로젝트에서 개최하는 컨퍼런스를 통해 신기술을 서로 소개하고 공유하며 진보시키고 있습니다. 이러한 자발적인 참여 및 공유를 통해 오픈 소스 진영에서는 상업 제품에 비해 신기술 반영 시기가 더욱 빠르게 진행되고 있습니다.
5.오픈 소스는 로드맵이 없고 이전 버전과 호환성을 보장하지 않고 자주 변경되지 않나요?
오픈 소스 프로젝트에 따라 정기적인 릴리즈 계획 및 로드맵이 있는 프로젝트와 없는 프로젝트가 있습니다. 현재 Anyframe에서 선정한 오픈 소스의 경우 이전 버전과의 호환성을 보장하며 안정화되어 있습니다. 또한 전 세계에 많이 사용되고 많은 개발자가 참여하는 오픈 소스 프로젝트의 경우 버그와 취약점에 대한 패치가 빠르게 수행되고 있으므로 Minor 버전이 변경될 수 있습니다. 변경사항이 발생될 때 마다 오픈 소스를 사용하는 곳에서 반영하기보다는 일정한 주기를 가지고 반영하는 것이 안정된 시스템 운영을 위해 좋습니다.
6.오픈 소스를 비즈니스 어플리케이션 개발에 사용하여도 문제가 없나요?
기업이 오픈 소스를 도입함에 있어서 걸림돌이 되는 것 중에 한가지는 오픈 소스 관련 라이센스입니다. 오픈 소스 라이센스는 카피레프트(Copyleft)의 성향에 따라 종류가 나뉩니다. 카피레프트는 저작권(Copyright)의 반대말로 저작권을 어느 정도 인정하느냐를 의미합니다. 라이센스의 종류에는 여러 가지가 있고 각 라이센스마다 제약조건이 다르므로 비즈니스 어플리케이션의 특성에 따라 고려해야 합니다.
그리고 트랜잭션, 보안, 유지보수 기능이 매우 중요한 비즈니스 어플리케이션에서 오픈 소스를 사용하여 개발할 때 안정성이 검증된 오픈 소스들을 연계(Integration)하여 구현한다면 문제가 발생하지 않습니다. 오히려 안정성, 기능성, 확장성 면에서 더욱 효과를 기대해볼 수 있습니다.

