Different From Microcloudchip(Old)

이미 멸망한 구버전과 다른 점

로고 비교

왼쪽: 구버전, 오른쪽: 현재

비교

기울임: 개발 예정

기울임+굵게: 개발 중

Item

Microcloudchip

Microcloudchip-NATURAL

Framework(Backend)

DJango

DJango(with gunicorn)

Framework(Frontend)

JQuery

ReactJS(Javascript)

Available Database

Sqlite3

Sqlite3, MySQL, MariaDB

User Auth

Session

자체 구현된 Token:UserID, JWT(전환)

Platform(Server)

Linux(Debian)

Linux(Debian), Windows

Platform(Client)

PC

PC, Android, CLI

설치 방식

Docker

Docker, Linux Service

개발 전략

X

TDD

RESTful

X

O

External Storage Support

X

O

세부 사항

Frontend

  • Old: 하나의 서버가 Frontend, Backend를 담당해야 했기 때문에 JQuery를 사용했습니다. 그렇기 때문에 웹 URL만 있어, 플랫폼(Client)의 범위를 PC에서 Mobile 같은 다른 플랫폼으로 확장하기가 어렵습니다.

  • New: ReactJS를 사용하여 build된 Web Client용 URL과 Backend API가 분리되어 있습니다. 따라서 다른 플랫폼으로 확장 하더라도 Backend API 와 통신만 하면 되기 때문에 확장이 쉽습니다.

Microcloudchip-NATURAL 은 React Code를 Build하여 DJango의 template와 static directory 에 부해서 서비스 하는 방식으로 운영되고 있습니다.

Available Database

  • Old: 내부 저장소인 sqlite3 만 사용합니다. 자체 백업 기능이 있다면 복구를 할 수도 있겠지만 얘는 복구 기능이 없습니다.

  • New: MySQL 같은 외부 데이터 저장소를 사용할 수 있습니다. 불가피 하게 어플리케이션이 손상 되어서 다시 복구를 할 때 복구 기능을 사용하여 사용자 정보 등을 복구 할 수 있습니다. (복구 기능은 아직 개발이 안되어 있는 상태입니다.)

User Auth

  • Natural은 사용자 정보를 저장하지 않는다. 라는 RESTful의 특징 중 하나 인 Serverless에 맞게 Old Version 처럼 Session을 사용하지 않습니다.

  • Key[token]:Value[userID] 으로 서버에 임시로 저장되며 클라이언트와 서버는 token으로 설정합니다. token은 client가 일정 시간 통신을 하지 않으면 자동으로 소멸됩니다.

  • 그러나 token과 userID가 암호화가 되지 않은 상태로 보관되는 것은 보안의 위험성이 있고 Serverless에 아직 취지에 맞지 않기 때문에 JWT(Json Web Token) 방식으로 전환을 시도하고 있습니다. 0.1.0 부터 업데이트 될 예정입니다.

Platform(Server)

  • Old: 한때 CentOS 까지 설치할 수 있게 구현을 하려고 했으나 개발 중단으로 Debian 계열만 지원합니다.

  • New: Debian 뿐만이 아닌, Windows에서도 작동이 되는 것을 목표로 개발하고 있습니다. 단 Windows용은 Server Testing 용도로만 구현될 예정입니다.

Platform(Client)

  • Frontend 에서도 언급된 부분이지만, Frontend URL과 Backend API의 구별을 둠으로써 다른 플랫폼에서도 확장을 할 수 있습니다.

설치 방식

  • old: Docker만 지원합니다. Docker가 아닌 본 서버 내에서도 실행할 수 있지만 Service 형태로 실행을 할 수 없습니다.

  • new: Docker 뿐만이 아니라 Perl 기반의 스크립트를 사용하여 Service file을 생성하고 Service 단위로 실행할 수 있게 해줍니다. (현재 개발중에 있고 0.1.0에 릴리즈 될 예정입니다.)

개발 전략

  • Microcloudchip 부터 시작해서 여러 개의 프로젝트들이 계속 무산되었는데 가장 큰 원인 중 하나가 잦은 에러와 날코딩으로 인한 코드의 복잡성 이었습니다. 이를 해결하기 위해 TDD를 도입하게 되었고 그 결과 실수와 에러가 크게 줄어들었습니다.

External Storage Support (In docker container)

  • old: Docker 외의 스토리지를 마운팅 해서 사용할 수 없기 때문에 docker container에 치명적 오류가 발생해서 삭제를 해야 하는 상황이 와도 복구할 수 없습니다.

  • new: 외부 스토리지를 마운팅해서 사용할 수 있기 때문에 docker container가 망가져도 데이터가 그대로 유지가 됩니다.

Last updated