오늘 저는 Membase의 기여자이자 Enyim의 저자이자 유지 관리자인 Attila Kisko와 함께 시간을 보낼 수 있는 기쁨을 누렸습니다. .NET용 멤베이스 클라이언트 라이브러리. 헝가리 부다페스트에서 샌프란시스코로 휴가를 온 아틸라가 사무실에 들렀습니다. 저는 대화가 즐거웠고, Membase 사용자 커뮤니티에서 가장 인기 있고 널리 배포된 오픈 소스 클라이언트 라이브러리 중 하나를 만든 사람에 대해 알고 싶어하는 다른 분들과 그 이야기를 공유해야겠다고 생각했습니다.

코딩을 어떻게 시작하게 되었나요?
저는 아주 어렸을 때인 7~8살에 Commodore 64로 개발을 시작했습니다. 당시 저는 어셈블리 언어로 코딩을 했고, 대부분의 에너지를 게임 해킹에 쏟았습니다. 또한 TRS-80의 헝가리 버전인 HT-1080.

그 후 저는 IBM-PC 플랫폼으로 전환하여 Turbo Pascal로 코딩하고 Borland Delphi를 사용했습니다. 이 시점에서 저는 비즈니스 소프트웨어 개발을 시작했고, 친구를 위해 완전한 패키지 솔루션을 구축했습니다, 설치 프로그램, CD 패키징 및 매끄러운 사용자 인터페이스를 포함합니다. 비록 친구로부터 작업 대가를 받지는 못했지만 : ), 제 능력을 보여주는 아주 멋진 데모를 남겼습니다.

그 데모를 계기로 저는 헝가리의 개발 아웃소싱 회사인 Fathom Technologies에서 일하게 되었습니다. 저는 첫 번째 직원 중 한 명으로 입사하여 회사가 기하급수적으로 성장하는 동안 7년 동안 회사에 머물렀습니다. 그곳에서 근무하면서 출장을 많이 다녔고 Microsoft, Autodesk, Oracle 등 여러 대형 기술 회사와 함께 일할 수 있는 기회를 얻었습니다. Fathom은 다음에 의해 인수되었습니다. EPAM 시스템. 종종 그렇듯이 회사에서 승진하면서 저는 코더에서 아키텍트, 관리자로 승진했습니다. 코드에서 멀어질수록 제 자신이 행복하지 않다는 것을 알게 되었고, 저는 회사를 떠나서 모든 에너지를 FreeBlog 2003년에 시작한 취미 프로젝트였습니다. 지금은 저의 주된 '본업'이 되었고 정말 좋아하고 있습니다.

Enyim 프로젝트는 어떻게 시작되었나요?
저는 필요에 의해 프로젝트를 시작했습니다. 저는 Freeblog.hu 뒤에 사용할 분산 캐싱 솔루션을 찾고 있었는데, Microsoft에 (나중에 Project Velocity가 되고 지금은 AppFabric Caching이 되는) 기술이 있긴 했지만 Memcached가 훨씬 더 나은 솔루션이었죠. 하지만 그 당시에는 Windows용 클라이언트 라이브러리가 하나밖에 없었고, 그 라이브러리는 Java 라이브러리(Dustin의 Spy 라이브러리 이전 버전)의 포트였습니다. 저는 그 코드를 신뢰하지 않았고 C#로 처음부터 직접 코드를 작성하기로 결심했습니다.

Membase(당시에는 NorthScale이었음)가 초기 Memcached 배포판을 출시했을 때 저는 이 기술의 방향이 정말 마음에 들어서 확장 기능을 지원하는 Enyim 클라이언트의 특별 버전을 만들기로 결심했습니다. 멤베이스는 훨씬 더 흥미진진하며, 저는 빠른 발전에 발맞춰 클라이언트를 수정하고 있습니다. 쿼리 및 데이터 구조 확장 기능이 정말 기대됩니다. 저는 현재 Redis 클라이언트 라이브러리를 개발 중이며, Redis의 기능을 Membase와 결합하면 강력한 솔루션이 될 수 있을 것이라고 생각합니다. Enyim에서 이러한 기능을 지원할 수 있기를 기대합니다.)

Win32에서 관리되지 않는 네이티브 C++로 Enyim을 작성하는 것과 .NET으로 작성하는 것을 고려해 보셨나요?
그렇지 않습니다. 현재 Windows에서 개발하는 거의 모든 사람이 관리되는 코드를 개발하고 있습니다. 그리고 관리되는 코드에서 관리되지 않는 라이브러리를 호출하는 것은 매우 미미한 성능 향상(기껏해야 10% 정도)을 위해 고통스러운 일입니다. 약간의 추가 메모리 또는 약간의 CPU 업그레이드로 성능 격차를 좁히면 이러한 고통을 피할 수 있습니다.

또한 C# 코드를 유지 관리하기가 훨씬 쉽습니다. 언어와 환경이 매우 매력적입니다.

Java를 제대로 사용하셨나요?
당연하죠. 그리고 이 언어는 현재 Java보다 훨씬 더 빠르게 발전하고 있습니다. 매년 매우 유용한 언어가 추가되고 있습니다. Java는 현재로서는 훨씬 더 느리게 움직이는 프로젝트입니다.

Enyim의 방향성은 무엇인가요? 어떤 기능을 추가할 계획인가요?
사람들에게는 꽤 잘 작동하는 것 같습니다. 개선 요청이 엄청나게 많지는 않았습니다. 제가 고려하고 있는 한 가지는 Spy Java 클라이언트에 있는 파이프라이닝을 구현하는 것입니다. 사람들에게 얼마나 의미가 있을지는 모르겠지만 고려하고 있는 기능입니다. 그리고 앞서 말씀드린 것처럼 저는 Membase의 기능 확장을 기대하고 있으며, 앞으로도 클라이언트를 이러한 기능 추가에 발맞춰 계속 발전시켜 나갈 것입니다.

멤베이스 클라이언트를 작성하는 것이 얼마나 쉬웠나요, 어려웠나요? 다른 클라이언트 작성자를 위한 팁이 있나요?
사실 꽤 쉬웠습니다. 가장 큰 문제는 문서화 관련 문제였습니다. 하지만 이는 클라이언트를 구축하는 동시에 서버가 구축되고 있었기 때문에 예상할 수 있는 일이었습니다. 현재 제공되는 문서는 매우 훌륭합니다. 그리고 페리는 질문에 대한 답을 얻는 데 큰 도움을 주었습니다.

전체 "NoSQL" 운동에 대해 어떻게 생각하시나요?
일반적으로 저는 NoSQL을 '노락킹'을 위한 코드라고 생각하며, 가장 중요한 특징은 서버 간에 데이터 세트를 자동으로 샤딩하는 것을 지원한다는 점이라고 생각합니다. 저는 컴퓨팅의 미래가 클라우드에 있다고 굳게 믿고 있으며, 클라우드 모델은 스케일 아웃입니다. 관계형 데이터 모델로는 이 작업을 수행하기가 너무 어려우며, 이에 대한 대응책이 바로 NoSQL입니다.

다른 NoSQL 기술에 대한 직접적인 경험이 있으신가요?
예. 저는 Redis와 MongoDB를 모두 사용해 보았습니다. Membase는 멋진 기술이지만, 많은 경우 데이터베이스에서 데이터와 더 직접적으로 상호 작용할 수 있어야 합니다. 저는 Redis의 해시 및 카운터 데이터 구조를 사용하여 freeblog.hu의 여러 기능을 구현합니다. 그런 기능이 있었다면 아마 Membase로 전환했을 것입니다.

작성자

게시자 제임스 필립스

제임스 필립스는 카우치베이스의 공동 창립자이자 CEO, CSO입니다. 제임스 필립스는 20년 이상의 소프트웨어 업계 경력을 보유하고 있습니다. James는 Apple II 및 TRS-80 마이크로컴퓨터 플랫폼용 소프트웨어를 작성하면서 경력을 시작했습니다.

댓글 남기기