openNAMU/역사

최근 수정 시각 : 2021-09-17 06:32:12
=== 개요 === 오픈나무 역사에 대해 주저리 주저리 써 놓은 곳임다. === Node.js === * [[https://github.com/openNAMU/Discard-openNAMU-Legacy|깃허브]] ==== JSON 시절 ==== * [[https://github.com/openNAMU/Discard-openNAMU-Legacy/commit/fb5f110895ddc8d63f0d47d1306980f2cd58cb69|영광의 첫 커밋 (2016-04-23)]] JSON을 파일 저장 방식으로 쓰던 시절이다. 사실상 극초창기답게 매우 불안정 했으며 JSON은 실시간 파일 저장용으로 쓸만하지 않다는 결론을 내렸다. ==== TXT 시절 ==== 모니위키나 도쿠위키처럼 TXT 파일을 저장 방식으로 쓰던 시절이다. 속도는 꽤나 빨랐으나 음... 사실상 DB 알고리즘을 직접 짜야한다등의 문제가 많았다. 특히 서치를 구현할 방법이 도통 생각나지 않아서 포기하고 DB를 사용하는 방식으로 바꾸기로 다짐했다. ==== MySQL 시절 ==== [[basix|원래 개발자]]가 개발하던 [[deesle]]이라는 위키 엔진이 망해서 오픈나무에 MySQL을 사용해서 위키 엔진을 만들어보기로 했으나 처음으로 콜백 지옥이라는 것을 경험하고 도저히 답이 없는 것 같아서 때려치고 다른 언어나 배우기로 마음을 먹는다. === PHP === 중간에 자바스크립트 대안 언어로 개발해보았으나... 때려쳤다. 후에 이건 [[큐위키]] 프로젝트로 정신적 계승된다. --문제는 저것도 만들어질 기미가 없다-- === 파이썬 === ==== MySQL 시절 ==== 파이썬을 배우기 시작했고 다시 MySQL을 이용해서 오픈나무를 만들기 시작했다. 그러나 음... MySQL은 이상하게 커넥션이 24시간 안에 누가 들어오지 않으면 커넥션이 끊어지는 사실을 발견했고 그걸 극복하지 못해서 망했다.[* 소규모 위키 엔진은 아무도 안 들어올 가능성이 있으니까][* 나중에 SQLite 시절이 되서야 리퀘스트 날리면 커넥션이 안 끊어진다는 걸 발견했다... 이런][* --사실 그냥 근원적인 것은 필요할 때만 DB에 연결하고 커넥션 끊는 게 제일 안전하다--] ==== SQLite 시절 ==== * [[https://github.com/2du/openNAMU/blob/646c471b3b3d7b73c7e9838249799bc2e42f5c1d/version-ko.md|v3.0 이전 오픈나무 업데이트 내역]] * [[https://github.com/2du/openNAMU/releases|오픈나무 업데이트 내역]] ===== Flask 시즌 1 ===== 맨 처음에는 플라스크를 사용해서 개발했으나 동작하는 속도가 영 맘에 들지 않아서[* 나중에 내부 엔진은 다른 걸로 바꿀 수 있다는 걸 발견했다... 이런] 나중에 bottle이란 것으로 갈아탄다. ===== Bottle ===== 속도는 빨라서 좋았으나 영 기능이... 그냥 꾸역꾸역 쓰다가 나중에 내부 엔진을 바꿀 수 있다는 사실을 알게 되었고 Flask + Tornado라는 지금도 쓰는 조합으로 갈아탔다. ===== Flask 시즌 2 ===== 지금 보고 있는 이 상태이다. v2.0부터 [[나무마크]]를 어느정도 꾸역꾸역 지원했으며 v3.0부터 거의 완성형이 되었다.[* 참고로 v3.0 이전에는 개발할 때마다 버전을 0.0.1씩 올렸다.] ==== DB 2개 지원 시대 ==== 언젠가부터 은근슬쩍 MySQL을 다시 지원을 시작했다. 아주 느리긴 한데 그래도 뭔가 발전이 있다... --퇴화일지도-- 언젠간 포스그레도 지원할 것이다. 예정은 다음 세기 정도에 === 기타 === 사실 벌써 개발한지도 2년 반인데 크게 기능적 향상이 있는 것 같지가 않다. 솔직히 위키가 어느정도 기능만 만들면 그 이상으로 뭔가 기능을 추가하긴 아주 힘들다[* 아주 주관적인 말이다. 근데 사실 미디어위키나 도쿠위키만 봐도 어느정도 기능이 추가된 이후로 변화가 크게 없다] --노드 시절까지 합치면 벌써 5년째다. 징하게 우려먹은 것 같다.--
이 위키의 내용은 오픈나무와 동일한 라이선스로 배포됩니다.

The contents of this wiki are distributed in the same way as the license of openNAMU.