devon 2011-o-4-textcube 2.0과 codeball 프레임웍

80
TEXTCUBE 2.0코드를 몰라도 되는 codeball 프레임웍 신정규 포스텍 물리학과 Tatter Network Foundation / Needlworks

Upload: daum-dna

Post on 24-May-2015

311 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TEXTCUBE 2.0과코드를 몰라도 되는 codeball 프레임웍

신정규포스텍 물리학과

Tatter Network Foundation / Needlworks

Page 2: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

신정규

비선형 및 복잡계 연구실포스텍 물리학과

“복잡계 시스템에서의 의견 형성 동역학” 연구“웹에서의 커뮤니티 생성/소멸 과정 및 수명” 과 “네트워크 기반의 스패머 추적”에 관심

그리고TNF (Tatter Network Foundation) 로서

웹을 쌓기 위한 벽돌 만들기를 하고 있습니다.

Page 3: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 4: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

• PHP / Apache ⋅ Nginx ⋅IIS / MySQL⋅PostgreSQL⋅ Cubrid⋅ SQLite

• 유연한 스킨 / 플러그인 아키텍처

• RDF / BlogAPI / OpenAPI / Microformats / XFN / FOAF / geolocation (if browser supports) 지원

• 키워드 로그 / 지역 로그 / 댓글 알림 / 모바일 폰 및 이메일 블로깅 / 팟캐스팅 / RSS 리더 / 마이크로 블로깅 기능

Textcube.org

잘 알려진 출판 플랫폼개인 웹로그 부터 블로그 서비스 까지 운영 가능커뮤니티 개발 오픈소스 소프트웨어

Page 5: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

블로그

Page 6: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

키워드 로그와 연동된 태그

Page 7: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

지역 로그와 마이크로 블로깅

Page 8: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

피처폰 블로깅

Page 9: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

여러 보기

Page 10: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

스마트 디바이스 지원

Page 11: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

확장 플러그인 (Twitter)

Page 12: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

위젯 / 오픈소셜 지원

Page 13: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 14: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

플러그인 및 위젯

Page 15: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

XFN

Page 16: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

블로그 / 사용자에 따른 다국어 지원

Page 17: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

패널 스킨

Page 18: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

모바일 디바이스용 관리 패널

Page 19: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

Objectives

Page 20: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF : Tatter Network Foundation

“To keep the diversity of web”

TNF / Needlworks*Objectives

Page 21: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

TNF / Needlworks*Objectives

Page 22: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

• Give the right of creations to creators on web

TNF / Needlworks*Objectives

Page 23: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

• Give the right of creations to creators on web

• Pursue the communication with responsibility, without governmental restriction

TNF / Needlworks*Objectives

Page 24: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

• Give the right of creations to creators on web

• Pursue the communication with responsibility, without governmental restriction

• Reduce the social expenditure from web monopoly

TNF / Needlworks*Objectives

Page 25: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

Developing server sponsored by

Resource server sponsored by

Deploying server sponsored by

Main / Antispam server by

Page 26: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

12 Core Developers

~20 Reporters

~10 i18n Supporters

~45 Code Contributors

TNF / Needlworks

Developing server sponsored by

Resource server sponsored by

Deploying server sponsored by

Main / Antispam server by

Page 27: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF / Needlworks

Needlworks

Page 28: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF / Needlworks

Need | Works

Page 29: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF / Needlworks

Need | WorksTNF 활동을 위한 코어 그룹

Page 30: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

TNF / Needlworks

Need | WorksTNF 활동을 위한 코어 그룹 http://www.needlworks.org

Page 31: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 32: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

활동• Textcube.org 및 다양한 프로젝트 개발

• 더 나은 세상을 위한 프로젝트들을 기술적인 방법으로 지원

• 데이터 및 소통 교환을 위한 표준 제안 ( TTXML, cFeed)

TNF / Needlworks

Page 33: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

http://dev.textcube.org

Page 34: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

http://www.needlworks.org

Page 35: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

http://antispam.textcube.org

Page 36: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

http://antispam.textcube.org

Page 37: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

http://www.opentutorials.org

Page 38: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

http://www.opentutorials.org

Page 39: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 40: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

태터툴즈 프로젝트“Creations without walls”

프로그램 및 서비스간 데이터 호환성

• Textcube.org Publishing(+alpha) Program

• Tistory.com Daum blog service[1]

And many more!

[1] Currently, Tistory.com is ranked as top 1 blog service in Korea (by rankey.com)

Project Tattertools

Page 41: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

역사

태터툴즈 시작

Tattertools GPLized

개인 프로젝트

회사 설립

TNF(Tatter and Friends)

커뮤니티 결성

TNC (Tatter and Company)

Apr. 2004

Sep. 2005

Jun. 2006

Mar. 2006

Page 42: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

회사 기반

Tattertools 1.1

Textcube 1.5

Nov. 2006

Textcube 1.6

Textcube 1.7

Need l works 결성

Aug. 2007

Feb. 2008

Jun. 2008

Apr. 2007

Oct. 2008

Tistory.com런칭

(collaborating TNC and Daum Corp.)

Google의 TNC 인수

Oct. 2009

Daum의Tistory.com 인수

Textcube.com런칭

커뮤니티 기반

Page 43: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

Textcube 1.9Dec. 2011

Textcube.com서비스 중단 Jan. 2011

Feb. 2011 FAS 런칭

Sep. 2010A2 (안티스팸 프로그램/서비스) 개발 시작

Textcube 1.8Nov. 2009

글로벌 서비스 병합 시작 June. 2010

Page 44: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 45: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 46: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 47: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 48: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 49: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 50: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 51: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 52: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

목표‘Blog’ + ‘Media’ + ‘Community’

From blog to media and community with ‘Very unique way.’

0.9 1.X 2.X

Page 53: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

목표‘Blog’ + ‘Media’ + ‘Community’

From blog to media and community with ‘Very unique way.’

0.9 1.X 2.X

Page 54: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

목표‘Blog’ + ‘Media’ + ‘Community’

From blog to media and community with ‘Very unique way.’

0.9 1.X 2.X

Page 55: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

텍스트큐브 2&

Codeball 프레임웍

Page 56: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 57: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

텍스트큐브 1.8

개발자 문서https://docs.google.com/View?id=dgc24tzr_140c9wz6nc5

서버 관리자 / 서비스 운영자 가이드https://docs.google.com/View?id=dgc24tzr_137gr9xpdfb

플러그인 이전 가이드https://docs.google.com/View?id=dgc24tzr_136ckbg4ngn

Page 58: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍
Page 59: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

• Integrates Textcube 1 functionalities (RDF / BlogAPI / OpenAPI / Microformats / XFN / FOAF / geolocation)

• Much more fluid structure + distributed processing

• Mobile-based / Peer-to-peer data storage / synchronization between blogs / SNS-adaptive sharing

텍스트큐브 2

새로 작성된 소스 코드현재 알파 단계 (for 2 years!)

대부분의 기능들은 이미 1.8/1.9 트리 에 반영

Page 60: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

_createTable()_dropTable()_dumpTable()

setField(id, fieldname, value)getField(id, fieldname)findAll(id, [condition])

create(args)delete(id)

update(id, args)save()help()

Data Layer

Lower Higher

MySQL DBAdapter

PostgreSQL

Cubrid

ORACLE

DBAdapter

DBAdapter

DBAdapter

NTFS/FAT

EXT3

HFS

FSAdapter

FSAdapter

FSAdapter

DBModel

_createFile()_createDirectory()

_removeFile()_removeDirectory()

create(args)delete(path)update(args)

save()help()

getFileList()getDirectoryList()

FSModel

DB

FS

Page 61: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

load(id)save(id)

remove(id)purge()

setProperty(args)getProperty(args)

help()

__gc()

contentProperty : mode, expire

Cache Layer

Lower Higher

Memory

Memcache

SQLite

Flatfile

IModel

Query

Static

Skin

Code

ICache

File

CACHE

Page 62: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

Codeball Framework

Page 63: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

Codeball Framework

다양한 Needlworks 프로젝트의 기반이 되는 Framework

FAS (Frypan Anti-spam Service)

NAF (Needlworks Application Framework) 2 기반

텍스트큐브 2 는 codeball의 일부를 이용하고 있으며, codeball 위에서도 돌아갑니다

Page 64: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

Codeball Framework

다양한 Needlworks 프로젝트의 기반이 되는 Framework

FAS (Frypan Anti-spam Service)

NAF (Needlworks Application Framework) 2 기반

텍스트큐브 2 는 codeball의 일부를 이용하고 있으며, codeball 위에서도 돌아갑니다

Page 65: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

디렉토리 구조

/bin/boot/dev/etc/home/lib/media/usr/var

Running codes including nwshStart-up module / codesDevice / storage encapsulationSettings / start-up module definitionsApps / user directoryLibrariesMedia files / storage used by appsState-specific codes / librariesVariable contents

Page 66: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제: “Hello world” 웹앱 만들기

> cd home> mkdir helloworld> cd helloworld> vi index.php

“Hello World!”

1. 어플리케이션 설정

Page 67: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제: “Hello world” 웹앱 만들기

> cd etc> vi urltab

# This file contains storage allocation configuration. # # Note : every term should divide with one empty character. # <URL address> <Mount point> <type> <options> / /home/default /helloworld /home/helloworld

2. 특정 웹주소에 앱 연결하기

Page 68: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제: “Hello world” 웹앱 만들기

http://localhost/helloworld

3. 테스트

Hello World!

Page 69: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

What is ‘static page?’

First app written on codeballMakes simple HTML pagesEasy content writting (TXT format with Markdown syntax)

Page 70: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

> cd home> mkdir testpage> cd testpage> vi index.php

<?php// Add shortcut of your default program here.require_once(ROOT.'/bin/staticpage.php');?>

1. staticpage 앱 설정

Page 71: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

> cd etc> vi urltab

# This file contains storage allocation configuration. # # Note : every term should divide with one empty character. # <URL address> <Mount point> <type> <options> / /home/default /helloworld /home/helloworld /testpage /home/testpage

2. 특정 주소에 앱 연결하기

Page 72: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기Staticpage app requires

pages/contentsActual content written in Markdown syntax

staticpage.iniSettings

template.htmlHTML Template

Page 73: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기

<html><head></head><body> [##_content_##]</body></html>

template.html

Page 74: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기

[global]template = /home/testpage/template.htmlpagepath = /home/testpage/pagescontenttype = html5

staticpage.ini

Page 75: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기

Path corresponds to replacer

Filename corresponds to URL

* This is default page.

pages/content/default.txt

Page 76: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

<html><head></head><body> [##_content_##]</body></html>

http://www.example.com/test * This is test page.

pages/content/test.txt

Here!

Page 77: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

http://localhost/testpage

4. 테스트

This is default page

http://localhost/testpage/test

This is test page

Page 78: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

예제 : staticpage 앱으로 웹페이지 만들기

5. 직접 페이지 만들고 테스트하기

해보세요!매우 쉽습니다!

Page 79: Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

들어주셔서 감사합니다!