목차

1. 바람의 스페인어
2. 바다위키의 위키 엔진
2.1. 개요
2.2. 오픈나무 기반
2.3. 자체 개발

1. 바람의 스페인어

viento. 비엔토라고 읽는다.

2. 바다위키의 위키 엔진

2.1. 개요

깃허브

바다위키에서 개발, 사용 중인 위키 엔진. openNAMU를 개조한 버전과 위 깃허브 링크에서 확인할 수 있듯이 자체 개발 중인 버전이 존재한다.

2.2. 오픈나무 기반

본래 바다위키는 오픈나무 3.1.4 엔진 기반이였으며, 이를 개조해 VientoEngine으로 이름붙였다. 다만 이때는 대부분의 인터페이스가 the seed와 유사했으며, 오픈나무와 큰 차이가 없었기에 개발 단계에서만 사용하던 이름이였으며, 문서나 토론 등에서는 그냥 오픈나무를 사용한다고 밝혔다.

그 이후 코드를 계속 고치다 보니 여러 가지 버그와 서버 불안정 현상이 지속되자, 엔진을 오픈나무 3.1.6 기반으로 업데이트 하고 다시 오픈나무에 맞게 개조하였다. 이때부터 자체적인 인터페이스와 기능들을 추가하기 시작하였으며, 라이선스 페이지에 "VientoEngine"을 표기했다.

하지만 이 엔진 역시도 오픈나무 기반이였기에, 라이선스 페이지에만 VientoEngine 이라고 명시만 하고 다른 곳에서는 여전히 오픈나무를 사용한다고 밝혔다.

2.3. 자체 개발

이전부터 바다위키는 알 수 없는 렉과 서버 중단 현상이 발생했다. 초반에는 프로그래밍 지식이 전무하여 DDoS로 판단했었으나, 곧 파서 문제라는 오판을 하게 된다. 그렇게 되어 몇 개월 동안 파서를 수정하는 등 노력을 했으나, 문제는 지속되었으며, 결국 엔진을 3.1.6으로 업데이트 하여 해결되었다.

하지만 여전히 이유 없는 렉이 발생하였는데, 바로 오픈나무가 비동기가 아닌 동기 방식이기 때문이다. 동기 방식은 한 작업을 처리할 때 까지 다른 작업이 대기하는 방식이여서, 한 사용자가 DB에서 문서를 요청하면 요청하는 시간 동안 다른 사용자는 계속 로딩이 뜨게 되는 것이며, 시간이 오래 걸리면 타임아웃이 뜨는 것이다.

예를 들어 한 문서를 요청하는데 5초가 걸리고, 20명이 동시에 접속했다면 마지막 사용자는 무려 100초를 기다려야 한다.

소형 위키에서는 괜찮지만 대형 위키에서는 치명적인 문제점이기 때문에, 기존에 배웠던 지식을 활용하여 자체 엔진 개발을 시작하였다. 기존에 사용하던 Flask와 sqlite 라이브러리 대신 유사하지만 비동기인 Sanic > AIOHTTP와 aiosqlite를 사용한다.

현재는 깃허브에 코드를 커밋하지는 않고 개인적으로 개발을 진행 중이나, 베타 이후에는 다시 깃허브에도 업로드 할 예정이다.



위키 내 모든 일반 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외)
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.

바다위키에서 오픈소스로 배포하지 않은 직접 개발한 UI, 디자인 및 기능에는 저작권이 존재합니다.
오픈소스로 배포하지 않은 저작물을 무단으로 사용하는 것은 저작권 위반이며 적발 시 법적 대응 등의 조치를 취할 수 있습니다.
최근 변경
                   
최근 토론