OpenSync - 모든 휴대장치와 동기화 작업을 할 수 있도록 하는 프레임워크

jachin의 이미지

OpenSync: Synching on the Free Desktop
OpenSync: Free Desktop 에서의 동기화

Posted by Arne Babenhauserheide on Friday 19/May/2006, @11:32
from the synching-any-fruit-on-any-tree dept.

"It's the first time I feel good when thinking about syncing," said Cornelius, one of the OpenSync developers.
"동기화에 관하여 생각할 때 처음으로 좋다고 느낀 것입니다." OpenSync 개발자 중 한 사람인 Cornelius가 말했습니다.
This interview intends to give you some insight into OpenSync, the upcoming free unified synching solution for the free desktop.
이 인터뷰는 여러분에게 Free Desktop에 대한 최신의 자유 통합 동기화 솔루션인 OpenSync의 내부를 알려드리고자 합니다.
Arne interviews the developers from OpenSync and KDE PIM, Cornelius Schumacher, Armin Bauer and Tobias Koenig.
Arne는 OpenSync와 KDE PIM의 개발자들인 Cornelius Schumacher, Armin Bauer 그리고 Tobias Koenig를 인터뷰합니다.

Basics
기본

As you are now getting close to version 1.0 of OpenSync, which is expected to become the new synchronisation framework for KDE and other free desktops, we are quite interested in the merits it can provide for KDE users and for developers, as well as for the Open Source Community as a whole.
다른 자유 데스크탑들과 KDE에 대한 새로운 동기화 프레임워크로 기대되는 OpenSync 1.0 버전을 얻을 수 있게 되면서, KDE 사용자와 개발자들 더 나아가 오픈소스 커뮤니티 전체에 미칠 수 있는 잇점에 대해 관심을 갖게 되었습니다.
So there's one key-question before I move deeper into the details of OpenSync:
따라서 OpenSync의 세세한 부분으로 넘어가기 전에 중요한 질문이 있습니다.

What does OpenSync accomplish, that was not done before?
OpenSync가 성취한 것은 무엇이며, 이전에는 그렇지 못했습니까?

Cornelius: First of all it does its job of synchronizing data like addressbooks and calendars between desktop applications and mobile devices like PDAs and cell phones.
Cornelius: 먼저 OpenSync는 데스크탑 응용프로그램과 PDA나 휴대폰과 같은 이동형 장비간에 주소록이나 일정(달력)과 같은 자료를 동기화 하는 일을 합니다.

But the new thing about OpenSync is that it isn't tied to a particular device or a specific platform.
그러나 OpenSync에 관한 새로운 점은 특정 장치나 플랫폼에 제한되지 않는다는 점입니다.
It provides an extensible and modular framework which is easy to adopt for application developers and people implementing support for syncing with mobile devices.
새로운 OpenSync는 응용프로그램 개발자들과 이동형 장비 동기화 지원을 구현하는 사람들이 적용하기 쉽도록 확장가능하고 모듈화된 프레임워크를 제공합니다.

OpenSync is also independent of the desktop platform.
OpenSync는 또한 데스크탑 플랫폼의 독립입니다.
It will be the common syncing backend for at least KDE and GNOME and other projects are likely to join.
OpenSync는 적어도 KDE와 Gnome에서의 공통 동기화 백엔드가 될 것이며, 다른 프로젝트들도 참가할듯 합니다.
That means that the free desktop will have one common syncing solution.
즉 Free Desktop은 하나의 공통 동기화 솔루션을 갖게 되는 것입니다.
This is something really new.
이것은 실제로 새로운 것입니다.

How do the end-users profit from using synching solutions which interface with OpenSync as their framework?
그들의 프레임워크로서 OpenSync 인터페이스를 동기화 솔루션으로 사용함으로써 어떤 이득을 얻을 수 있나요?

Cornelius: First, the users will be able to actually synchronize all their data.
Cornelius: 먼저 사용자들은 실제로 모든 자료들을 동기화 할 수 있을 것입니다.
By using one common framework there won't be any "missing links", where one application can sync one set of devices and another application a different one.
하나의 공통 프레임워크를 사용함으로써 각 소프트웨어와 하드웨어가 따로 동기화 할 때 생기는 어떤 "연결 실패"도 없을 것입니다.
With OpenSync all applications can sync all devices.
OpenSync로 모든 응용프로그램이 모든 장치와 동기화 할 수 있습니다.

Second, the users will get a consistent and common user interface for syncing across all applications and devices.
두번째로, 사용자들은 모든 응용프로그램과 장비들간의 동기화에 대해 일관되고 공통적인 사용자 인터페이스를 얻을 것입니다.
This will be much simpler to use than the current incoherent collection of syncing programs you need if you have more than the very basic needs.
이것은 (동기화 프로그램이) 아주 기본적으로 필요한 기능보다 더 많은 것을 갖고 있다면, 현재 일관되지 않은 동기화 프로그램보다 더 단순하게 사용할 수 있습니다.

How does OpenSync help developers with coding?
OpenSync가 개발자들이 코딩하는 데에 어떻게 도움을 줍니까?

Cornelius: It's a very flexible and well-designed framework which makes it quite easy for developers to add support for new devices and new types of data.
Cornelius: OpenSync는 개발자가 새로운 장치들과 새로운 자료형에 대한 지원을 추가하기 쉽도록 아주 유연하고 잘 디자인된 프레임워크입니다.
It's also very easy to add support for OpenSync to applications.
또한 OpenSync는 응용프로그램에 대한 지원을 추가할 때도 무척 쉽습니다.

The big achievement of OpenSync is that it hides all the gory details of syncing from the developers who work on applications and device support.
OpenSync의 가장 큰 성취는 응용프로그램들과 장비 지원을 위해 일하는 개발자들에게 거추장스러운 동기화의 세부사항을 숨겼다는 점입니다.
That makes it possible for the developers to concentrate on their area of expertise without having to care what's going on behind the scenes.
그것은 개발자들에게 외적인 부분에 무엇을 해야 할지 신경쓰지 않고 그들의 전문적인 영역에 집중할 수 있게 해줍니다.

I have written quite a lot of synchronization code in the past.
과거에는 아주 많은 동기화 코드를 썼었습니다.
Trust me, it's much better, if someone just takes care of it for you, and that's what OpenSync does.
저를 믿으세요, 엄청 좋아졌습니다. 만약 누군가 여러분들 때문에 관심을 갖는다면 그것이 OpenSync가 하는 일입니다.

Tobias: Another point to mentioned is the python wrapper for OpenSync, so you are not bound to C or C++, but can develop plugins in a high level scripting language.
Tobias: 언급하려는 다른 부분은 OpenSync를 위한 파이썬 랩퍼 입니다. 따라서 여러분이 C나 C++을 거치지 않고 고급 스크립트 언어에서 플러그인을 개발할 수 있습니다.

Why should producers of portable devices get involved with your team?
왜 이동 장치 생산자들은 여러분들의 팀을 수용해야 합니까?

Cornelius: OpenSync will be the one common syncing solution for the free desktop.
Cornelius: OpenSync는 자유 데스크탑에 대한 하나의 공통된 동기화 솔루션이 될 것입니다.
That means there is a single point of contact for device manufacturers who want to add support for their devices.
즉 그들의 장치에 대한 지원을 추가하기 원하는 장치 생산자들에 대한 단일 연결점이 된다는 것입니다.
That's much more feasible than addressing all the different applications and solutions we had before.
그것은 모든 동기화 응용프로그램과 이전에 우리가 가지고 있는 솔루션에 추가하는 것보다 더욱 현실성 있는 것입니다.
With OpenSync it hopefully will become interesting for manufacturers to officially support Linux for their devices.
OpenSync로 그들의 장치가 리눅스에서 공식적으로 지원된다는 것만으로도 관심받게 될 것입니다.

Do you also plan to support applications of OpenSync in proprietary systems like OSX and Windows?
OpenSync 응용프로그램 지원을 OSX나 Windows 같은 (독점적인) 시스템에서도 지원할 계획이 있습니까?

Cornelius: OpenSync is designed to be cross-platform, so it is able to run on other systems like Windows.
Cornelius: OpenSync는 크로스 플랫폼을 위해 디자인되었습니다. 따라서 윈도우즈와 같은 다른 시스템에서도 실행할 수 있습니다.
How well this works is always a question of people actually using and developing for this system.
얼마나 잘 동작할지는 항상 이 시스템을 실제 사용하고 개발하는 사람들의 질문입니다.
As far as I know there isn't a real Windows community around OpenSync yet.
제가 알고 있는 것과는 달리 실제 윈도우즈 커뮤니티가 OpenSync에는 아직 없습니다.
But the technical foundation is there, so if there is somebody interested in working on a unified syncing solution on Windows, everybody is welcome to join the project.
그러나 기술적 기반은 있으며 누군가 윈도우즈에서의 통합된 동기화 솔루션에서 작업하는 것에 관심을 가진다면 모두들 프로젝트에 참가하는 것을 반길것입니다.

What does your synchronisation framework do for KDE and for KitchenSync in particular?
여러분의 동기화 프레임 워크는 특별하게 KDE와 KitchenSync에 대해 무엇을 합니까?

Cornelius: OpenSync replaces the KDE-specific synchronization frameworks we had before.
Cornelius: OpenSync는 이전에 사용했던 KDE 지정 동기화 프레임워크를 대체합니다.
Even in KDE we had several separate syncing implementations and with OpenSync we can get replace them with a common framework.
또한 KDE에서 우리는 몇몇 분리된 동기화 구현물들을 가지고 있으며 OpenSync로 공통 프레임워크로서 그것을 대체할 수 있습니다.
We had a more generic syncing solution in KDE under development.
우리는 KDE에서 개발중인 더 많은 일반적인 동기화 솔루션을 가지고 있었습니다.
This was quite similar from a design point of view to OpenSync, but it never got to the level of maturity we would have needed, because of lack of resources.
이것은 OpenSync의 디자인 관점과 아주 흡사합니다만 우리가 필요로 했던 성숙함의 레벨을 갖고 있지 않았습니다. 리소스의 누수 때문이었습니다.
As OpenSync fills this gap we are happy to be able to remove our old code and now concentrate on our core business.
OpenSync는 이러한 차이를 매꿔주기 때문에 오래된 코드를 제거할 수 있어서 좋았고 지금은 우리의 핵심 작업에 집중하고 있습니다.

Who, How and Why?
누가, 어떻게 그리고 왜?

What was your personal reason for getting involved with OpenSync?
어떤 이유에서 OpenSync 에 참여하게 되었습니까?


Cornelius: I wrote a lot of synchronization code in the past, which mainly came from the time where I was maintaining KOrganizer and working on KAddressBook.
Cornelius: 저는 과거에 많은 동기화 코드를 작성했었습니다. 그것들은 주로 K오거나이저와 K주소록을 관리하는 시간에 나온것들이고요.
But this always was driven by necessity and not passion.
그러나 이것은 항상 정열이 아닌 필요에 의해 움직이는 것이었습니다.
I wanted to have all my calendar and contact data in one place, but my main objective was to work on the applications and user interfaces handling the data and not on the underlying code synchronizing the data.
저는 저의 달력과 연락처 데이타를 한곳에 모아두기 원했으나 저의 주요 목표가 응용프로그램과 사용자 인터페이스 제어 데이터에 대해 일하는 것이었고 데이타 동기화의 배경 코드에 대해서는 일한적이 없었습니다.
So when the OpenSync project was created I was very interested.
그래서 OpenSync 프로젝트가 생성되었을 때 저는 아주 관심이 많았습니다.
At GUADEC in Stuttgart I met with Armin, the maintainer of OpenSync, and we talked about integrating OpenSync with KDE.
Stuttgart GUADEC에서 OpenSync의 관리자인 Armin을 만났고 KDE로 OpenSync를 통합하자는 얘기를 했었습니다.
Everything seemed to fit together quite well, so at Linuxtag the same year we had another meeting with some more KDE people.
모든것이 잘 맞았다고 보였고, 같은 해 LinuxTag 에서 몇몇 더 많은 KDE 사람들과 다른 모임을 갖았었습니다.
In the end we agreed to go with OpenSync and a couple of weeks later we met again in Nuernberg for three days of hacking and created the KDE frontend for OpenSync.
마지막에 우리는 OpenSync로 전향하기로 동의했고 2주후에 우리는 Nuernberg 에서 다시 만나 3일동안 OpenSync 에 대한 KDE 프론트앤드를 해킹하고 생성했습니다.
In retrospect it was a very pleasant and straightforward process to get where we are now.
회고해보면 그것은 아주 기뻤고 우리가 지금 여기까지 바로 처리되었습니다.


Armin: My reason to get involved (or better to start) OpenSync was my involvement with its predecessor Multisync.
Armin: OpenSync를 (시작하고) 참여하게 된 이유는 이전 프로그램인 Multisync의 참여였습니다.
I am working as a system administrator for a small consulting company and so I saw some problems when trying to find a synchronization solution for Linux.
저는 작은 컨설팅 회사의 시스템 관리자로 일하는 중이며 리눅스에 대한 동기화 솔루션을 찾고 있었을 때 몇몇 문제를 봤었습니다.
At that point I joined the Multisync project to implement some plugins that I thought would be nice to have.
그 시점에서 저는 Multisync 프로젝트에 제가 생각하는 멋진 것을 갖기 위해 몇몇 플러그인을 구현하려고 참여했습니다.
After some time I became the maintainer of the project.
얼마 지나서 저는 프로젝트의 관리자가 되었습니다.
But I was unhappy with some technical aspects of the project, especially the tight coupling between the syncing logic and the GUI, its dependencies on GNOME libraries and its lack of flexibility.
그러나 몇몇 프로젝트의 기술적 관점 특별히 동기화 논리와 GUI간의 빈틈없는 연결, 그놈 라이브러리의 의존성과 유연성의 결여 등으로 인해 기쁘지 않았습니다.


Tobias: Well, I have been a KDE PIM developer for several years now, so there was no way around getting in touch with synchronization and KitchenSync.
Tobias: 글쎄요, 저는 몇년동안 KDE PIM 개발자였습니다. 그래서 동기화와 KitchenSync를 경험할 기회가 주변에 없었지요.
Although I liked the idea of KitchenSync, I hated the code and the user interface [...]. So when we discussed to switch to OpenSync and reimplementing the user interface, I volunteered immediately.
비록 KitchenSync의 아이디어를 좋아하지만, 코드와 인터페이스를 싫어합니다. [...]. 그래서 OpenSync로 전환하는 것에 대해 토론했을 때 사용자 인터페이스 재구현을 주장했고, 즉시 참여했습니다.

Can you tell us a bit about your further plans and ideas?
여러분의 더 많은 계획이나 아이디어에 관하여 조금 말해줄 수 있습니까?[/b]

Cornelius: The next thing will be the 1.0 release of OpenSync. We will release KitchenSync as the frontend in parallel.
Cornelius: 다음은 OpenSync의 1.0 릴리즈가 될 것입니다. 우리는 동시에 프론트앤드로써 KitchenSync를 정식배포할 것입니다.

Armin: There are of course a lot of things on my todo and my wishlist for OpenSync.
Armin: OpenSync에 대한 우리의 할 일과 목표에 대한 것들이 너무 많이 있습니다.
For the near future the most important step is the 1.0 release, of course, where we still have some missing features in OpenSync as well as in the plugins.
근시일 후에는 물론 OpenSync 1.0 배포전이라는 중요한 단계가 있습니다만, 아직 플러그인 같은 곳에서 몇몇 놓친 요소가 있습니다.
One thing I would really like to see is a Thunderbird plugin for OpenSync. I use Thunderbird personally and would really like to keep my contacts up to date with my cellular, but I was not yet able to find the time to implement it.
정말 제가 보기 원하는 것은 OpenSync에 대한 선더버드 플러그인입니다. 저는 개인적으로 선더버드를 사용하고 제 휴대폰에 연락처들을 업데이트하길 원합니다만 그렇게 할 만한 시간을 아직 찾지 못했습니다.

Tobias: One thing that would really rock in future versions of OpenSync is an automatic hardware detection mechanism, so when you plugin your Palm or switch on your bluetooth device, OpenSync will create a synchronization group automatically and ask the user to start syncing.
실제로 OpenSync의 다음 버전에서 구현할 것은 자동 하드웨어 감지 메카니즘입니다. 그래서 여러분의 팜을 꼳거나 여러분의 블루투스 장치가 전원이 들어왔을 때 OpenSync가 동기화 그룹을 자동적으로 생성할 것이며 사용자에게 동기화할지의 여부를 물어볼것입니다.
To bring OpenSync to the level of The Syncing Solution [tm] we must reduce the necessary configuration to a minimum.
OpenSync를 동기화 솔루션 레벨로 올리기 위해 우리는 최소한의 필요한 설정을 재생성해야만 합니다.

What was the most dire problem you had to face when creating OpenSync and how did you face it?
OpenSync를 제작중일 때 만났던 가장 지독한 문제는 무었이었고 지금은 어떻게 보고 있습니까?

Cornelius: Fortunately the problems which I personally would consider to be dire are solved by the implementation of OpenSync which is well hidden from the outside world and [they are] an area I didn't work on ;-)
Cornelius: 운좋게도 제가 개인적으로 지독하다고 생각하는 문제는 OpenSync 구현으로 인해 해결되었습니다. 그 문제는 바깥 세계로부터 잘 숨어있고 제가 할 수 있는 부분이 아니었습니다.

Armin: I guess that I am the right person to answer this question then :)
Armin: 제 생각엔 제가 이 질문에 맞는 사람이라고 생각합니다. :)
The most complicated part of OpenSync is definitely the format conversion which is responsible for converting the format of one device to the format that another device understands.
OpenSync의 가장 복잡했던 부분은 단연 서로 다른 장치마다 갖는 데이터 형식을 변환하는것과 관련한 형식 변환이라고 생각합니다.

There are a lot of subsystems in this format conversion which makes it so complex, like conversion path searching, comparing items, detection of mime types and last but not least the conversion itself.
이 형식 변환에 대한 많은 하위 시스템이 있습니다. 형식변환은 변환 경로 검색, 항목 비교, MIME 형식의 감지, 마지막으로 그러나 최소가 아닌 OpenSync 자체의 변환등으로 인해 OpenSync를 복잡하게 만듭니다.
So this was a hard piece of work.
그래서 이 부분이 어렵습니다.

What was the greatest moment for you?
여러분에게 가중 훌륭했던 순간은 무엇입니까?

Cornelius: I think the greatest moment was when, after three days of concentrated hacking, we had a first working version of the KDE frontend for OpenSync.
Cornelius: 저는 훌륭했던 순간이 해킹에 집중했던 3일 이후 우리가 처음으로 OpenSync에 대한 KDE 프론트앤드 버전에 대한 첫 작업을 갖았을 때라고 생각합니다.
This was at a meeting at the SUSE offices in Nuernberg and we were able to successfully do a small presentation and demo to a group of interested SUSE people.
이것은 Nuernberg에 있는 SUSE 사무실에서 있었던 모임이었으며 관심을 갖았던 SUSE 사람들 그룹에게 성공적으로 작은 프리젠테이션을 할 수 있었고, 데모를 할 수 있었습니다.

Armin: I don't remember a distinct "greatest moment".
Armin: 저는 "훌륭했던 순간"을 구별해서 기억하지 못합니다.
But what is a really great feeling is to see that a project catches on, that other people get involved, use the code you have written and improve it in ways that you haven't thought of initially.
그러나 여러분이 작성했던 코드를 사용하고 초기에 생각지 못했던 방법으로 개선하는, 다른 사람들이 수용하는 이 프로젝트를 봤을 때 정말 좋은 기분이 들었습니다.

Tobias: Hmm, also hacking on OpenSync/KitcheSync is much fun in general, the greatest moment was when the new KitchenSync frontend synced two directories via OpenSync the first time.
Tobias: 흠, 또한 OpenSync/KitcheSync를 해킹할 당시가 일반적으로 더 재밌었고, 가장 좋았던 순간은 새 KitchenSync 프론트앤드가 OpenSync를 통해 두 디렉터리간에 처음으로 동기화 되었을 때였습니다.
But it was also cool when we managed to get the IrMC plugin working again after porting it to OpenSync.
그러나 우리가 IrMC 플러그인을 얻기 위해 관리하고 OpenSync에 대해 포팅을 한 후 다시 작업했을 때가 또 좋았습니다.

As we now know the worst problem you faced and your greatest moment, the only one missing is: what was your weirdest experience while working on OpenSync?
우리가 지금 여러분이 대면했던 가장 나쁜 문제점과 여러분의 최고의 순간을 알게되었습니다만 하나가 빠졌습니다. OpenSync에서 일하는 동안 가장 이상한 경험은 무엇이었습니까?

Cornelius: Not directly related to OpenSync, but pretty weird was meeting a co-worker at the Amsterdam airport when returning from the last OpenSync meeting.
Cornelius: 직접적으로 OpenSync와 연관된 것은 아닙니다만, 아주 이상한 것은 마지막 OpenSync 회의에서 돌아왔을 때 암스테르담 공항에서 있었던 협업자와의 만남이었습니다.
I don't know how high the chance is to meet somebody you know on a big random airport not related at all to the places where you or the other person live, but it was quite surprising.
저는 누군가와 만날 기회가 얼마나 높은지 모릅니다만, 알다시피 큰 공항에서 당신과 다른 사람들이 있는 공간의 모든곳과 관련이 있는것은 아니지 않습니까? 하지만 엄청 놀랬습니다.
Tobias: Since my favorite language is C++, I was always confused how people can use plain C for such a project, half the time your are busy with writing code for allocating/freeing memory areas.
Tobias: 제가 주로 사용하는 언어가 C++ 인 이후로 저는 항상 사람들이 어떻게 순수 C를 프로젝트에 사용하는지 혼란스러웠습니다, 여러분의 시간 절반을 메모리 영역 할당과 제거에 대해 코드를 쓰느라 바쁘다는 점이요.
Nevertheless Armin did a great job and he is always a help for solving strange C problems :)
그럼에도 불구하고 Armin은 엄청 잘 했으며 그는 항상 이상한 C 문제를 푸는데 도움이 되요. :)

Devices and Programs
장치들과 프로그램들

Now I'd like to move on to some more specific questions about current and planned abilities of OpenSync.
이제 현재와 앞으로 계획된 OpenSync의 기능에 대해 조금 더 세세한 질문으로 이동하겠습니다.
As first, I've got a personal one: I have an old iPod sitting around here. Can I or will I be able to use a program utilizing OpenSync to synchronize my calendars, contacts and music to it?
처음 질문으로 개인적인것 하나 물어보겠습니다. 저는 오래된 iPod 가 주변에 그냥 방치되어 있습니다. 제가 지금, 혹은 앞으로 제 달력과 연락처, 음악등을 동기화할 수 있게 프로그램을 OpenSync를 이용하여 프로그램을 사용할 수 있겠습니까?
Cornelius: I'm not aware of any iPod support for OpenSync up to now, but if it doesn't exist yet, why not write it?
Cornelius: OpenSync 에서 어떤 iPod 에 대한 지원도 생각해보지 못했습니다. 그러나 (동기화 프로그램이) 존재하지 않는다면 만들지 못할 이유는 없죠?
OpenSync makes this easy.
OpenSync는 이러한 점을 쉽게 만듭니다.
This is a chance for everybody with the personal desire to sync one device or another to get involved.
이것은 하나의 장치 혹은 다른 장치를 수용하기 위해 동기화하려는 개인적인 요구를 갖고 있는 모든 사람들에게 기회입니다.

Armin: I dont think that there is iPod support yet for OpenSync.
Armin: OpenSync에 대해 iPod 지원은 아직 생각하지 않았습니다.
But it would definitely be possible to use OpenSync for this task.
그러나 이러한 작업에 대해서 OpenSync를 사용하는 것이 당연히 가능할 것입니다.
So if someone would like to implement an iPod plugin, I would be glad to help :)
그래서 어떤 사람이 iPod 플러그인을 구현하기 원한다면, 저는 기쁘게 도움을 줄 것입니다. :)

Which other devices do you already support?
어떤 다른 장치들을 이미 지원하고 있습니까?

Cornelius: At this time, OpenSync supports Palms, SyncML and IrMC capable devices.
Cornelius: 지금 OpenSync는 Palms, SyncML 과 IrMC 가 가능한 장치를 지원합니다.
Which programs already implement OpenSync and where can we check back to find new additions?
어떤 프로그램이 이미 OpenSync로 구현되었는지, 새로운 추가 사항은 어디에서 확인할 수 있습니까?

Cornelius: On the application side there is support for Evolution [GNOME] and Kontact with KitchenSync [KDE] on the frontend side and the backend side and some more.
Cornelius: 응용프로그램 측면에서 Evolution [Gnome], KitchenSync를 사용하는 Kontact [KDE]등이 프론트앤드와 백앤드 측면에서 지원되며 더 많은 것이 가능합니다.
I expect that further applications will adopt OpenSync once the 1.0 version is released.
저는 1.0 버전이 배포되면서 OpenSync가 적용되는 응용프로그램이 더 많아지길 기대합니다.

Armin: Besides Kitchensync there already is a command line tool and a port of the multisync GUI.
Armin: Kitchensync와 같이 이미 명령어 행 도구와 multisync GUI의 포트가 있습니다.
Aside from the GUIs, I would really like to see OpenSync being used in other applications as well.
GUI로부터의 측면에서 저는 정말로 OpenSync가 다른 응용프로그램에서 잘 사용되는 것을 보고 싶습니다.
One possibility for example would to integrate OpenSync into Evolution to give users the possibility to synchronize their devices directly from this application.
예제로 한가지 가능한 것은 사용자에게 이 응용프로그램으로부터 장치를 직접적으로 동기화 하기 위해 OpenSync를 Evolution에 통합하는 것입니다.
News can generally be found on the OpenSync website.
뉴스는 일반적으로 OpenSync 웹사이트에서 찾을 수 있습니다.

Technical Dive
기술적 탐구

So far for questions for users.
사용자들과는 거리가 먼 질문입니다.
I think it is time to give the developers something to devour, too.
저 또한 개발자들에게 무엇인가 탐구할 것을 전달하는 시간이 되리라 생각합니다.
I'll keep this as a short twice-fold technical dive before coming to the takeoff question, even though I'm sure there's information for a double-volume book on technical subleties.
저는 질문을 하기 전에 이것을 짧은 2가지 기술적 탐구로 나누어 유지할 것입니다. 심지어 기술적 전수에 두배 되는 책에 대한 정보가 있다고 확신합니다.

As first dive: how did you integrate OpenSync in KitchenSync, viewed from the coding side?
첫번째 탐구로서 어떻게 OpenSync를 KitchenSync에 통합했습니까? 코딩 측면에서 봤을 때요.

Cornelius: OpenSync provides a C interface.
Cornelius: OpenSync는 C 인터페이스를 제공합니다.
We wrapped this with a small C++ library and put KitchenSync on top.
우리는 이것을 작은 C++ 라이브러리로 둘러싸고 KtichenSync에 최상위로 둡니다.
Due to the object oriented nature of the OpenSync interfaces this was quite easy.
OpenSync 인터페이스의 객체 지향 특성 때문에 이것은 아주 쉽습니다.
Recently I also started to write a D-Bus frontend for OpenSync.
최근 저는 또한 OpenSync에 대해 D-Bus 프론트앤드를 작성하기 시작했습니다.
This also is a nice way to integrate OpenSync which provides a wide variety of options regarding programming languages and system configurations.
이것 또한 OpenSync를 통합하기 위한 좋은 방법입니다. OpenSync는 프로그램 언어와 시스템 설정을 인식하는 다양한 옵션의 가능성을 제공합니다.

And for the second, deeper dive: Can you give us a quick outline of those inner workings of OpenSync, from the developers view, which make OpenSync especially viable for application in several different desktop environments?
두번째로 더 깊은 탐구.: 몇몇 다른 데스크탑 환경에서 응용프로그램에 대해 실행가능한 OpenSync를 만드는 개발자의 관점으로 OpenSync 의 내부 동작에 대한 대강의 설명을 해주실 수 있나요?

Cornelius: That's really a question for Armin. For those who are interested I would recommend to have a look at the OpenSync website.
Cornelius: 그 질문은 Armin에게 맞는 질문이군요. 관심있는 사람들을 위해 OpenSync 웹 사이트를 찾아보길 추천합니다.
There is a nice white paper about the internal structure and functionality of OpenSync.
그곳에는 내부 구조와 OpenSync의 기능에 대한 보고서가 있습니다.

Armin: OpenSync consists of several parts:
Armin: OpenSync는 몇몇 부분으로 구성되어 있습니다.

First there is the plugin API which defines what functions a plugin has to implement so that OpenSync can dlopen() it. There are 2 types of plugins:
첫번째 플러그인 API 가 있습니다. 그것은 플러그인을 구현하는 어떤 함수를 정의하여서 OpenSync가 dlopen() 할 수 있도록 합니다. 플러그인에는 2가지 타입이 있습니다.

A sync plugin which can synchronize a certain device or application and which provides functions for the initialization, handling the connection to a device and reading and writing items.
특정 장치나 응용프로그램을 동기화 할 수 있고 초기화와 장치에 대한 연결 그리고 항목을 읽고 쓰는 것에 대한 함수를 제공하는 sync 플러그인이 있습니다.
Then there is a format plugin which defines a format and how to convert, compare and detect it.
그리고 형식 플러그인이 있습니다. 이것은 데이타 형식을 정의하고 어떻게 변환, 비교, 그리고 감지할 것인지 정의합니다.

The next part is a set of helper functions which are provided to ease to programming of synchronization plugins.
그 다음 부분은 도우미 함수의 집합입니다. 이것은 동기화 플러그인의 프로그래밍을 쉽게하도록 제공됩니다.
These helper functions include things like handling plugin config files, HashTables which can be used to detect changes in sets of items, functions to detect when a resync of devices is necessary etc.
이 도우미 함수는 플러그인 설정파일 제어, 항목의 집합에서 변경점을 감지하는데 사용될 수 있는 해쉬테이블, 장치의 재동기화가 필요할 때 감지하기 위한 함수 등을 포함합니다.

The syncing logic itself resides in the sync engine, which is a separate part.
동기화 논리는 그 자체로 분리되어 동기화 엔진에 있습니다.
The sync engine is responsible for deciding when to call the connect function of a plugin, when to read or write from it.
동기엔진은 플러그인의 연결 함수를 호출할 때와 장치로부터 읽거나 쓸 때를 결정하는데 응답합니다.
The engine also takes care of invoking the format conversion functions so that each plugin gets the items in its required format.
엔진은 또한 형식 변환 함수를 호출하는 것을 감시합니다. 그리하여 각 플러그인이 요구되는 형식에서 항목을 얻도록 합니다.

If you want more information and details about the inner workings of OpenSync, you should really visit the opensync.org website or ask its developers.
OpenSync의 내부 동작에 관하여 더 많은 정보와 세부사항을 원한다면, 여러분은 opensync.org 웹 사이트를 방문하거나 개발자에게 울어보십시오.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.