analyze of tumblr.com
TRANSCRIPT
![Page 1: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/1.jpg)
Micro����������� ������������������ Blog����������� ������������������ Database����������� ������������������ 중앙대학교 컴퓨터공학부 데이터베이스 시스템 1조 Tumblr(텀블러) 사이트에 대한 데이터베이스 응용설계 - 최종제출 장익환(20060957) 이상태(20115695) 조동경(20112104) 이소라(20111316) 박소연(20101524)
![Page 2: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/2.jpg)
2����������� ������������������ INDEX • 응용����������� ������������������ 분야����������� ������������������
• 참조����������� ������������������ 사이트����������� ������������������
• 응용의����������� ������������������ 기능����������� ������������������
• ERD����������� ������������������ &����������� ������������������ Scheme����������� ������������������
• 기능별����������� ������������������ SQL����������� ������������������
• UI설계����������� ������������������
• DATA분석����������� ������������������ ����������� ������������������
• INDEXING����������� ������������������ 설계����������� ������������������
![Page 3: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/3.jpg)
3
응용����������� ������������������ 분야����������� ������������������
![Page 4: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/4.jpg)
4 응용����������� ������������������ 분야����������� ������������������ • 우리팀은����������� ������������������ 웹����������� ������������������ 서비스����������� ������������������ 중����������� ������������������ “블로그”를����������� ������������������ 응용����������� ������������������ 분야의����������� ������������������ 한����������� ������������������ 주제로����������� ������������������ 선정하였다.����������� ������������������
• 네이버����������� ������������������ 블로그,����������� ������������������ 티스토리,����������� ������������������ 이글루스����������� ������������������ 등����������� ������������������ 수����������� ������������������ 많은����������� ������������������ 블로그����������� ������������������ 플랫폼����������� ������������������ 중에����������� ������������������ 이러한����������� ������������������ 방대한����������� ������������������ 기능을����������� ������������������ 배제하고,����������� ������������������
기본적인����������� ������������������ 블로그의����������� ������������������ 기능인����������� ������������������ “포스팅”����������� ������������������ 기능을����������� ������������������ 세분화하여����������� ������������������ 여기에����������� ������������������ 추가적으로����������� ������������������ 소셜����������� ������������������ 네트워크����������� ������������������ 기능(SNS)
을����������� ������������������ 제공하는����������� ������������������ 응용����������� ������������������ 분야를����������� ������������������ 생각하였다.����������� ������������������
• 본����������� ������������������ 응용분야는����������� ������������������ 기본적인����������� ������������������ 사용자����������� ������������������ 처리(회원가입,로그인����������� ������������������ 등)의����������� ������������������ 기능과����������� ������������������ 블로깅(글,����������� ������������������ 그림,����������� ������������������ 오디오,����������� ������������������ 비디오)����������� ������������������
기능,����������� ������������������ 그리고����������� ������������������ 추가적으로����������� ������������������ SNS기능의����������� ������������������ 일부인����������� ������������������ 친구관리����������� ������������������ 및����������� ������������������ 타임라인,����������� ������������������ 채팅등의����������� ������������������ 기능을����������� ������������������ 처리한다.����������� ������������������
• 추가적으로����������� ������������������ 사용자들이����������� ������������������ 자신의����������� ������������������ 블로그를����������� ������������������ 꾸밀����������� ������������������ 수����������� ������������������ 있는����������� ������������������ 기능과����������� ������������������ 스킨을����������� ������������������ 사고팔����������� ������������������ 수����������� ������������������ 있는����������� ������������������ 마켓플레이스를����������� ������������������
처리한다.����������� ������������������
![Page 5: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/5.jpg)
5
참조����������� ������������������ 사이트����������� ������������������
![Page 6: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/6.jpg)
참조����������� ������������������ 사이트����������� ������������������
텀블러(tumblr)는����������� ������������������ 사용자들이����������� ������������������ 문자,����������� ������������������ 그림,����������� ������������������
영상,����������� ������������������ 링크,����������� ������������������ 인용,����������� ������������������ 소리를����������� ������������������ 그들의����������� ������������������ 조그마한����������� ������������������
텀블로그에����������� ������������������ 게재할����������� ������������������ 수����������� ������������������ 있게����������� ������������������ 도와����������� ������������������ 주는����������� ������������������ 마이
크로블로그����������� ������������������ 플랫폼이자����������� ������������������ 웹사이트이다.����������� ������������������ ����������� ������������������
����������� ������������������
����������� ������������������ 사용자들은����������� ������������������ 다른����������� ������������������ 사용자를����������� ������������������ 팔로우(follow)
할����������� ������������������ 수����������� ������������������ 있고,����������� ������������������ 또한����������� ������������������ 블로그를����������� ������������������ 꾸밀����������� ������������������ 수����������� ������������������ 있다.����������� ������������������ 사
용자는����������� ������������������ 또한����������� ������������������ 자신이����������� ������������������ 직접����������� ������������������ 스킨을����������� ������������������ 제작하고����������� ������������������
판매할����������� ������������������ 수����������� ������������������ 있는����������� ������������������ 마켓����������� ������������������ 플레이스를����������� ������������������ 갖추고����������� ������������������ 있
다.����������� ������������������
www.tumblr.com

![Page 7: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/7.jpg)
7
응용의����������� ������������������ 기능����������� ������������������
![Page 8: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/8.jpg)
응용의����������� ������������������ 기능����������� ������������������ • 텀블러����������� ������������������ 응용����������� ������������������ 기능����������� ������������������
텀블러 DB
포스팅
팔로잉
친구 관리
타임 라인 글 쓰기, 수정, 삭제
글/사진/비디오/오디오 …
스킨
스킨 구매
스킨 제작
블로그 회원관리
계정

![Page 9: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/9.jpg)
9
ERD����������� ������������������ &����������� ������������������ Scheme����������� ������������������
![Page 10: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/10.jpg)
ERD����������� ������������������ 테이블����������� ������������������  블로그����������� ������������������
사용자����������� ������������������
포스트����������� ������������������
테마����������� ������������������
![Page 11: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/11.jpg)
ERD����������� ������������������ 테이블����������� ������������������  • 사용자����������� ������������������
Table Attributes
TBL_USER 사용자SEQ(PK,AI), 사용자ID, 비밀번호, 이메일, 가입일자,사 용자프로필사진URL,상태(0:탈퇴 1:가입 2:일시정지), 탈퇴일자, 정보수정일자, 사용언어, 사용 포스팅 툴
TBL_FRIENDS 친구목록SEQ(PK,AI), 친구 SEQ(FK), 사용자 SEQ(FK)
TBL_BUY_LIST 구매목록SEQ(PK,AI), 구매한사용자SEQ(FK), 구매한 테마 SEQ(FK), 구매일자, 구매방법
TBL_LIKE_LIST 좋아요목록 SEQ(PK,AI), 좋아요 일자, 좋아요한 포스트 SEQ(FK), 좋아요한 사용자 SEQ(FK)
![Page 12: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/12.jpg)
ERD����������� ������������������ 테이블����������� ������������������  • 블로그����������� ������������������
Table Attributes TBL_BLOG 블로그SEQ(PK,AI), 블로그 제목, 만든이 ID(FK), URL, 블로그 설명, 작성일자, 방문자
TBL_BLOG_OPTION 블로그 옵션 SEQ(PK,AI), 미리보기옵션, 페이지당 포스트갯수, 텀블러 공유 옵션, 모바일 레이아웃 옵션, 새창으로 옵션
TBL_BLOG_VIEW_OPTION 블로그 보기 옵션 SEQ(PK,AI), 작은 레이아웃 옵션, 빨간배경 옵션, 파란배경 옵션, 칼라 상단바 옵션, 날짜숨기기 옵션, 배경숨기기 옵션, 탭 숨기기 옵션, 노트 숨기기 옵션, 동적크기 옵션, 무한스크롤 옵션, 소셜링크버튼 없애기 옵션
TBL_BLOG_SOCIAL 블로그 소셜 SEQ(PK,AI), Github URL, 비핸스 URL, 포스퀘어 URL, 라스트FM URL, 구글분석도구 URL, 트위터 URL, 페이스북 URL, 드리블 URL, 플리커 URL, 스카이프 URL, 데비안아트 URL, 비메오 URL, 디스쿼스 URL
![Page 13: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/13.jpg)
ERD����������� ������������������ 테이블����������� ������������������  • 포스트����������� ������������������
Table Attributes TBL_POSTS
포스팅SEQ(PK,AI), 블로그 SEQ(FK), 포스트 타입(0 : 글 1 : 사진 2 : 인용구 3 : 링크 4 : 채팅 5 : 오디오 6 : 동영상), 작성일, 수정일, 작성자IP, 사용자임의URL, 옵션1, 출처URL, 조회수, 라이크한 수
TBL_TAGS 태그SEQ(PK,AI), 포스트SEQ(fk), 태그이름
TBL_POST_WRITINGS
포스팅 SEQ(PK,FK), 제목, 내용
TBL_POST_IMAGE 포스팅 SEQ(PK,FK), 내용
TBL_POST_IMAGE_LIST 포스팅 SEQ(PK,FK), 내용, URL
TBL_POST_AUDIO 포스팅 SEQ(PK,FK), URL
TBL_POST_VIDEO 포스팅 SEQ(PK,FK), URL, 내용
TBL_POST_CHAT 포스팅 SEQ(PK,FK), 제목, 질문내용
TBL_POST_LINK 포스팅 SEQ(PK,FK), URL, 제목, 내용
TBL_POST_QUOTE 포스팅 SEQ(PK,FK), 격언내용, 출처
![Page 14: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/14.jpg)
ERD����������� ������������������ 테이블����������� ������������������  • 테마����������� ������������������
Table Attributes TBL_THEME 테마SEQ(PK,AI), 제작자 유저 SEQ(FK), 제목, 요약, 내용, 소스코드, 섬네일URL, 유/무료 옵션, 가격, 카테고리 SEQ(FK), 뷰카운트, 판매숫자
TBL_THEME_SCREENSHOT 스크린샷 SEQ(PK,AI), 테마SEQ(FK), 스크린샷 URL
TBL_CATEGORIES 카테고리 SEQ(PK,AI), 카테고리명
![Page 15: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/15.jpg)
15
기능별����������� ������������������ SQL����������� ������������������
![Page 16: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/16.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 사용자����������� ������������������ 테이블����������� ������������������ 생성(TBL_USER)����������� ������������������
CREATE TABLE `TBL_USER` (
`SEQ` INT(11) NOT NULL,
`USER_ID` VARCHAR(20) NOT NULL,
`PASSWORD` VARCHAR(20) NOT NULL,
`EMAIL` VARCHAR(100) NOT NULL,
`USER_STATUS_SEQ` INT(11) NOT NULL,
`USER_NAME` VARCHAR(20) NOT NULL,
`JOIN_DATE` DATETIME NOT NULL,
`USER_PROFILE_URL` VARCHAR(256) NULL DEFAULT NULL,
`STATUS` INT(11) NULL DEFAULT NULL COMMENT '0 : 탈퇴 1 : 가입',
`DROP_DATE` DATE NULL DEFAULT NULL,
`MODIFY_DATE` DATE NULL DEFAULT NULL,
`LANGUAGE` VARCHAR(512) NOT NULL,
`IS_EDIT_TOOL` VARCHAR(512) NOT NULL,
PRIMARY KEY (`SEQ`))

![Page 17: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/17.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 블로그����������� ������������������ 테이블����������� ������������������ 생성(TBL_BLOG)����������� ������������������
CREATE TABLE `TBL_BLOG` (
`SEQ` INT(11) NOT NULL,
`BLOG_TITLE` VARCHAR(512) NOT NULL,
`SEQ_USER` INT(11) NOT NULL,
`URL` VARCHAR(512) NOT NULL,
`BLOG_DETAIL` VARCHAR(2048) NULL DEFAULT NULL,
`CREATE_DATE` DATETIME NOT NULL DEFAULT getdate(),
`HIT_VISITOR` INT(11) NULL,
PRIMARY KEY (`SEQ`),
INDEX `tbl_user_tbl_blog_fk` (`SEQ_USER` ASC),
CONSTRAINT `tbl_user_tbl_blog_fk`
FOREIGN KEY (`SEQ_USER`)
REFERENCES `mydb`.`TBL_USER` (`SEQ`)
ON DELETE CASCADE
ON UPDATE CASCADE)

![Page 18: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/18.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ 테이블����������� ������������������ 생성(TBL_POSTS)����������� ������������������
CREATE TABLE `TBL_POSTS` (
`SEQ` int(11) NOT NULL,
`SEQ_BLOG` int(11) NOT NULL,
`POST_TYPE` int(11) DEFAULT NULL COMMENT '1 : 글 2 : 그림 3 : 오디오 4 : 비디오 5 : 인용구',
`CREATE_DATE` datetime NOT NULL,
`MODIFY_DATE` date DEFAULT NULL,
`WRITER_IP` varchar(128) DEFAULT NULL,
`CUSTOM_URL` varchar(256) DEFAULT NULL,
`OPT1` int(11) DEFAULT NULL COMMENT '1 : 허용 0 : 불가',
`REFERENCE_URL` varchar(256) DEFAULT NULL,
`HIT_VIEWER` int(11) NOT NULL,
`HIT_LIKE` int(11) NOT NULL,
PRIMARY KEY (`SEQ`),
KEY `tbl_blog_tbl_posts_fk` (`SEQ_BLOG`),
CONSTRAINT `tbl_blog_tbl_posts_fk` FOREIGN KEY (`SEQ_BLOG`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE
ASCADE)

![Page 19: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/19.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 테마����������� ������������������ 테이블����������� ������������������ 생성(TBL_THEME)����������� ������������������
CREATE TABLE `TBL_THEME` (
`SEQ` int(11) NOT NULL,
`SEQ_USER` int(11) NOT NULL,
`TITLE` varchar(2048) NOT NULL,
`SUMMARY` varchar(2048) NOT NULL,
`DETAIL` varchar(2048) NOT NULL,
`SOURCE_CODE` varchar(4086) NOT NULL,
`THUMBNAIL_URL` varchar(512) NOT NULL,
`OPT_FREE_OR_PAID` tinyint(1) DEFAULT NULL COMMENT '0 : 무료 1 : 유료',
`PRICE` int(11) NOT NULL DEFAULT '0',
`SEQ_CATEGORY` int(11) NOT NULL,
`HIT_VIEW` int(11) NOT NULL DEFAULT '0',
`HIT_SELL` int(11) NOT NULL,
PRIMARY KEY (`SEQ`),
KEY `tbl_user_tbl_theme_fk` (`SEQ_USER`),
KEY `fk_TBL_THEME_TBL_CATEGORIES1_idx` (`SEQ_CATEGORY`),
CONSTRAINT `tbl_user_tbl_theme_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_TBL_THEME_TBL_CATEGORIES1` FOREIGN KEY (`SEQ_CATEGORY`) REFERENCES `TBL_CATEGORIES` (`SEQ`) ON DELETE NO ACTION
ON UPDATE NO ACTION)

![Page 20: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/20.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 블로그����������� ������������������ 옵션����������� ������������������ 테이블����������� ������������������ 생성(TBL_BLOG_OPTION)����������� ������������������
CREATE TABLE `TBL_BLOG_OPTION` (
`SEQ` int(11) NOT NULL,
`OPT_PRE_VIEW` tinyint(1) NOT NULL DEFAULT '0',
`NO_POST_BY_PAGE` int(11) NOT NULL DEFAULT '20',
`OPT_SHARE_TUMBLR` tinyint(1) NOT NULL,
`OPT_IS_USE_MOBILE_LAYOUT` tinyint(1) NOT NULL DEFAULT '0',
`OPT_NEW_LINK` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`SEQ`),
CONSTRAINT `tbl_blog_tbl_blog_option_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)

![Page 21: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/21.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 블로그����������� ������������������ 옵션����������� ������������������ 테이블����������� ������������������ 생성(TBL_BLOG_OPTION)����������� ������������������
CREATE TABLE `TBL_BLOG_SOCIAL` (
`SEQ` int(11) NOT NULL,
`GITHUB` varchar(256),
`BEHANCE` varchar(256),
`FOURSQUARE` varchar(256),
`LAST_FM` varchar(256),
`GOOGLE_ANALYTICS_ID` varchar(256),
`TWITTER` varchar(256),
`FACEBOOK` varchar(256),
`DRIBBLE` varchar(256),
`FLICKR` varchar(256),
`SKYPE` varchar(256),
`DEVIANART` varchar(256),
`VIMEO` varchar(256),
`DISQUS` varchar(256),
PRIMARY KEY (`SEQ`),
CONSTRAINT `tbl_blog_tbl_blog_social_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE
)

![Page 22: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/22.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 블로그����������� ������������������ 뷰����������� ������������������ 옵션����������� ������������������ 테이블����������� ������������������ 생성(TBL_VIEW_OPTION)����������� ������������������
CREATE TABLE `TBL_BLOG_VIEW_OPT` (
`SEQ` int(11) NOT NULL,
`OPT_SMALLER_NAV_FOR_PAGES` tinyint(1) NOT NULL DEFAULT '0',
`OPT_RED_BACKGROUND` tinyint(1) NOT NULL DEFAULT '0',
`OPT_BLUE_BACKGROUND` tinyint(1) NOT NULL DEFAULT '0',
`OPT_HIDE_COLORED_TOP_BAR` tinyint(1) NOT NULL DEFAULT '0',
`HIDE_DATE` tinyint(1) NOT NULL DEFAULT '0',
`HIDE_BACKGROUND_TEXTURE` tinyint(1) NOT NULL DEFAULT '0',
`HIDE_TABS` tinyint(1) NOT NULL DEFAULT '0',
`HIDE_NOTES` tinyint(1) NOT NULL DEFAULT '0',
`ALIGN_NAVIGATION_WITH_DESCRIPTION` tinyint(1) NOT NULL DEFAULT '0',
`INFINITE_SCROLL` tinyint(1) NOT NULL DEFAULT '0',
`HIDE_SOCIAL_BUTTON` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`SEQ`),
CONSTRAINT `tbl_blog_tbl_blog_view_opt_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)

![Page 23: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/23.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 카테고리����������� ������������������ 테이블����������� ������������������ 생성(TBL_CATEGORIES)����������� ������������������
CREATE TABLE `TBL_CATEGORIES` (
`SEQ` int(11) NOT NULL,
`NAME` varchar(256) NOT NULL,
PRIMARY KEY (`SEQ`)
)

![Page 24: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/24.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 친구목록����������� ������������������ 테이블����������� ������������������ 생성(TBL_FRIENDS)����������� ������������������
CREATE TABLE `TBL_FRIENDS` ( `SEQ` int(11) NOT NULL, `SEQ_FRIEND` int(11) NOT NULL, `SEQ_USER` int(11) NOT NULL, PRIMARY KEY (`SEQ`), KEY `tbl_user_tbl_friends_fk` (`SEQ_USER`), KEY `tbl_user_tbl_friends_fk1` (`SEQ_FRIEND`), CONSTRAINT `tbl_user_tbl_friends_fk1` FOREIGN KEY (`SEQ_FRIEND`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `tbl_user_tbl_friends_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 25: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/25.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ 테이블����������� ������������������ 생성(TBL_POSTS)����������� ������������������
CREATE TABLE `TBL_POSTS` ( `SEQ` int(11) NOT NULL, `SEQ_BLOG` int(11) NOT NULL, `POST_TYPE` int(11) DEFAULT NULL COMMENT '1 : 글 2 : 그림 3 : 오디오 4 : 비디오 5 : 인용구’, `CREATE_DATE` datetime NOT NULL, `MODIFY_DATE` date DEFAULT NULL, `WRITER_IP` varchar(128) DEFAULT NULL, `CUSTOM_URL` varchar(256) DEFAULT NULL, `OPT1` int(11) DEFAULT NULL COMMENT '1 : 허용 0 : 불가’, `REFERENCE_URL` varchar(256) DEFAULT NULL, `HIT_VIEWER` int(11) NOT NULL, `HIT_LIKE` int(11) NOT NULL, PRIMARY KEY (`SEQ`), KEY `tbl_blog_tbl_posts_fk` (`SEQ_BLOG`), CONSTRAINT `tbl_blog_tbl_posts_fk` FOREIGN KEY (`SEQ_BLOG`) REFERENCES `TBL_BLOG` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 26: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/26.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 태그����������� ������������������ 테이블����������� ������������������ 생성(TBL_TAGS)����������� ������������������
CREATE TABLE `TBL_TAGS` ( `SEQ` int(11) NOT NULL, `SEQ_POST` int(11) NOT NULL, `TAG_NAME` varchar(256) NOT NULL, PRIMARY KEY (`SEQ`), KEY `tbl_posts_tbl_tags_fk` (`SEQ_POST`), CONSTRAINT `tbl_posts_tbl_tags_fk` FOREIGN KEY (`SEQ_POST`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 27: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/27.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ –����������� ������������������ 글����������� ������������������ 테이블����������� ������������������ 생성(TBL_POST_WRITINGS)����������� ������������������
CREATE TABLE `TBL_POST_WRITINGS` ( `SEQ_POST` int(11) NOT NULL, `TITLE` varchar(512) NOT NULL, `CONTENT` varchar(2048) NOT NULL, PRIMARY KEY (`SEQ_POST`), CONSTRAINT `tbl_posts_tbl_writings_fk` FOREIGN KEY (`SEQ_POST`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 28: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/28.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ –����������� ������������������ 이미지����������� ������������������ 목록����������� ������������������ 테이블����������� ������������������ 생성(TBL_POST_IMAGE_LIST)����������� ������������������
CREATE TABLE `TBL_POST_IMAGE_LIST` ( `SEQ` int(11) NOT NULL, `SEQ_IMAGE` int(11) NOT NULL, `IMG_URL` varchar(45) NOT NULL, PRIMARY KEY (`SEQ`), KEY `tbl_post_image_tbl_post_image_list_fk` (`SEQ_IMAGE`), CONSTRAINT `tbl_post_image_tbl_post_image_list_fk` FOREIGN KEY (`SEQ_IMAGE`) REFERENCES `TBL_POST_IMAGE` (`SEQ_POST`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 29: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/29.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ –����������� ������������������ 인용구����������� ������������������ 테이블����������� ������������������ 생성(TBL_POST_QUOTE)����������� ������������������
CREATE TABLE `TBL_POST_QUOTE` ( `SEQ` int(11) NOT NULL, `QUOTE` varchar(2048) NOT NULL, `REFERENCE` varchar(2048) NOT NULL, PRIMARY KEY (`SEQ`), CONSTRAINT `tbl_posts_tbl_quote_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 30: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/30.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ –����������� ������������������ 링크����������� ������������������ 테이블����������� ������������������ 생성(TBL_POST_LINK)����������� ������������������
CREATE TABLE `TBL_POST_LINK` ( `SEQ` int(11) NOT NULL, `URL` varchar(512) NOT NULL, `TITLE` varchar(512) NOT NULL, `DETAIL` varchar(2048) NOT NULL, PRIMARY KEY (`SEQ`), CONSTRAINT `tbl_posts_tbl_post_link_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 31: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/31.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ –����������� ������������������ 채팅����������� ������������������ 테이블����������� ������������������ 생성(TBL_POST_CHAT)����������� ������������������
CREATE TABLE `TBL_POST_CHAT` ( `SEQ` int(11) NOT NULL, `TITLE` varchar(256) NOT NULL, `QUESTION` varchar(2048) NOT NULL, PRIMARY KEY (`SEQ`), CONSTRAINT `tbl_posts_tbl_post_chat_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 32: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/32.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ –����������� ������������������ 오디오����������� ������������������ 테이블����������� ������������������ 생성����������� ������������������ (TBL_POST_AUDIO)����������� ������������������
CREATE TABLE `TBL_POST_AUDIO` ( `SEQ` int(11) NOT NULL, `URL` varchar(1024) NOT NULL, PRIMARY KEY (`SEQ`), CONSTRAINT `tbl_posts_tbl_post_audio_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 33: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/33.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 포스팅����������� ������������������ -����������� ������������������ 비디오����������� ������������������ 테이블����������� ������������������ 생성����������� ������������������ (TBL_POST_VIDEO)����������� ������������������
CREATE TABLE `TBL_POST_VIDEO` ( `SEQ` int(11) NOT NULL, `URL` varchar(1024) NOT NULL, `CONTENT` varchar(2048) NOT NULL, PRIMARY KEY (`SEQ`), CONSTRAINT `tbl_posts_tbl_post_video_fk` FOREIGN KEY (`SEQ`) REFERENCES `TBL_POSTS` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE)#

![Page 34: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/34.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 테마����������� ������������������ 테이블����������� ������������������ 생성����������� ������������������ (TBL_THEME)����������� ������������������
CREATE TABLE `TBL_THEME` (# `SEQ` int(11) NOT NULL,# `SEQ_USER` int(11) NOT NULL,# `TITLE` varchar(2048) NOT NULL,# `SUMMARY` varchar(2048) NOT NULL,# `DETAIL` varchar(2048) NOT NULL,# `SOURCE_CODE` varchar(4086) NOT NULL,# `THUMBNAIL_URL` varchar(512) NOT NULL,# `OPT_FREE_OR_PAID` tinyint(1) DEFAULT NULL COMMENT '0 : 무료 1 : 유료',# `PRICE` int(11) NOT NULL DEFAULT '0',# `SEQ_CATEGORY` int(11) NOT NULL,# `HIT_VIEW` int(11) NOT NULL DEFAULT '0',# `HIT_SELL` int(11) NOT NULL,# PRIMARY KEY (`SEQ`),# KEY `tbl_user_tbl_theme_fk` (`SEQ_USER`),# KEY `fk_TBL_THEME_TBL_CATEGORIES1_idx` (`SEQ_CATEGORY`),# CONSTRAINT `tbl_user_tbl_theme_fk` FOREIGN KEY (`SEQ_USER`) REFERENCES `TBL_USER` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE,# CONSTRAINT `fk_TBL_THEME_TBL_CATEGORIES1` FOREIGN KEY (`SEQ_CATEGORY`) REFERENCES `TBL_CATEGORIES` (`SEQ`) ON DELETE NO ACTION ON UPDATE NO ACTION#)#

![Page 35: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/35.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 테마����������� ������������������ 스크린샷����������� ������������������ 테이블����������� ������������������ 생성����������� ������������������ (TBL_THEME_SCREENSHOT)����������� ������������������
CREATE TABLE `TBL_THEME_SCREENSHOT` (# `SEQ` int(11) NOT NULL,# `SEQ_THEME` int(11) NOT NULL,# `SCREENSHOT_URL` varchar(512) NOT NULL,# PRIMARY KEY (`SEQ`),# KEY `tbl_theme_tbl_theme_screenshot_fk` (`SEQ_THEME`),# CONSTRAINT `tbl_theme_tbl_theme_screenshot_fk` FOREIGN KEY (`SEQ_THEME`) REFERENCES `TBL_THEME` (`SEQ`) ON DELETE CASCADE ON UPDATE CASCADE#)#

![Page 36: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/36.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 새����������� ������������������ 사용자����������� ������������������ 추가����������� ������������������
INSERT INTO `tbl_user` (`SEQ`, `USER_ID`, `PASSWORD`, `EMAIL`, `USER_NAME`, `JOIN_DATE`, `USER_PROFILE_URL`, `STATUS`, `DROP_DATE`, `MODIFY_DATE`, `LANGUAGE`, `IS_EDIT_TOOL`, `TBL_LIKE_LIST_SEQ`)#VALUES#
#(4, 'lee', '1231', '[email protected]', '이정훈', now(), 'www.haha.com/het.png', 1, NULL, NULL, 'KOR', '2', 0);#

![Page 37: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/37.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 회원����������� ������������������ 정지처리����������� ������������������ &����������� ������������������ 탈퇴����������� ������������������
update TBL_USER set state = 2 where user_id = ‘lee’ ‘ 회원정지##update TBL_USER set state = 0 where user_id = ‘lee' ‘ 탈퇴#

* 사용자의 경우 state 1이 회원가입 상태, 0이 탈퇴상태, 2가 회원정지 상태
![Page 38: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/38.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 친구����������� ������������������ 추가����������� ������������������
INSERT INTO `tbl_friends` (`SEQ`,`SEQ_FRIEND`,`SEQ_USER`)VALUES (0, #(select SEQ from tbl_user where user_name=‘장익환’ limit 1), #(select SEQ from tbl_user where user_name=‘강수현’ limit 1)),#(0, #(select SEQ from tbl_user where user_name=‘장익환’ limit 1), #(select SEQ from tbl_user where user_name=‘황정윤’ limit 1));#

* 위의 경우는 이름이 장익환인 회원에게 이름이 강수현, 황정윤 인 친구를 추가하는 질의
![Page 39: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/39.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 블로그����������� ������������������ 만들기(기본옵션)����������� ������������������
INSERT INTO `tbl_blog` (`SEQ`, `BLOG_TITLE`, `SEQ_USER`, `URL`, `BLOG_DETAIL`, `CREATE_DATE`, `HIT_VISITOR`)#VALUES##(3, '강\'s blog', 3, 'kang.soo', '깡수의 블로그', '2013-12-02 00:00:00', 12423424);#

![Page 40: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/40.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 새����������� ������������������ 포스트����������� ������������������ 등록(글)����������� ������������������
INSERT INTO `tbl_posts` (`SEQ`, `SEQ_BLOG`, `POST_TYPE`, `CREATE_DATE`, `MODIFY_DATE`, `WRITER_IP`, `CUSTOM_URL`, `OPT1`, `REFERENCE_URL`, `HIT_VIEWER`, `HIT_LIKE`)#VALUES#
#(0, 0, 0, '2013-03-02 00:00:00', NULL, '211.238.145.12', NULL, NULL, NULL, 1234, 123);##INSERT INTO `tbl_post_writings` (`SEQ_POST`, `TITLE`, `CONTENT`)#VALUES#
#(0, '오늘 일기', '오늘 나는 뭐하고 놀까 싶었다.<br /> 그러다 보니 어느덧 시간은 다되고...<br/> 허허허허...');#

![Page 41: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/41.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 모든����������� ������������������ 회원의����������� ������������������ 등록된����������� ������������������ 글을����������� ������������������ DESC순서로����������� ������������������ 가져오는����������� ������������������ 질의����������� ������������������
select## A.SEQ,A.POST_TYPE ,(case A.POST_TYPE ## #when 0 then (select title from TBL_POST_WRITINGS where SEQ = A.SEQ)## #when 1 then (select content from TBL_POST_IMAGE where SEQ = A.SEQ)## #when 2 then (select quote from TBL_POST_QUOTE where SEQ = A.SEQ)## #when 3 then (select title from TBL_POST_LINK where SEQ = A.SEQ)## #when 4 then (select title from TBL_POST_CHAT where SEQ = A.SEQ)## #when 5 then (select url from TBL_POST_AUDIO where SEQ = A.SEQ)## #when 6 then (select content from TBL_POST_VIDEO where SEQ = A.SEQ)##end) AS TITLE,A.CREATE_DATE,C.USER_NAME,A.HIT_VIEWER#
from##TBL_POSTS A,##TBL_BLOG B,##TBL_USER C#
where##A.SEQ_BLOG = B.SEQ##and B.SEQ_USER = C.SEQ#
order by A.HIT_VIEWER desc#

![Page 42: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/42.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 내����������� ������������������ 친구가����������� ������������������ 등록한����������� ������������������ 글����������� ������������������ 목록����������� ������������������
select ##(select user_name from tbl_user where seq = B.seq_user) AS USER_NAME,#A.CREATE_DATE,##A.HIT_VIEWER,##A.HIT_LIKE
from ##tbl_posts A,##tbl_blog B#
where ##A.`SEQ_BLOG` = B.`SEQ` ##and B.`SEQ_USER` in ## #(select SEQ_FRIEND from tbl_friends ## #where SEQ_USER = ## # #(select user_name from tbl_user where email='[email protected]’)## #)#

![Page 43: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/43.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 내����������� ������������������ 친구가����������� ������������������ 등록한����������� ������������������ 글����������� ������������������ 중����������� ������������������ 가장����������� ������������������ Like가����������� ������������������ 많은����������� ������������������ 글����������� ������������������
select ##(select user_name from tbl_user where seq = B.seq_user) AS USER_NAME,#A.CREATE_DATE,##A.HIT_VIEWER,##A.HIT_LIKE
from ##tbl_posts A,##tbl_blog B#
where ##A.`SEQ_BLOG` = B.`SEQ` ##and B.`SEQ_USER` in ## #(select SEQ_FRIEND from tbl_friends ## #where SEQ_USER = ## # #(select user_name from tbl_user where email='[email protected]’)## #)#
order by A.HIT_LIKE DESC LIMIT 1#

![Page 44: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/44.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 날짜별����������� ������������������ 등록된����������� ������������������ 포스트����������� ������������������ 갯수����������� ������������������
select##C.CREATE_DATE,##(SELECT COUNT(*) FROM tbl_posts where create_date = C.CREATE_DATE) AS
NUM_WRITING_POST#from#
#tbl_user A,##tbl_blog B,##tbl_posts C#
where##A.SEQ = B.SEQ_USER##and B.SEQ = C.SEQ_BLOG#
group by C.CREATE_DATE#

![Page 45: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/45.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 일자별����������� ������������������ 가입자����������� ������������������ 숫자����������� ������������������
select##A.JOIN_DATE,##(SELECT COUNT(*) FROM tbl_user where join_date = A.JOIN_DATE) AS NUM_JOIN_USER#
from##tbl_user A#
group by A.JOIN_DATE#

![Page 46: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/46.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 사용자별����������� ������������������ 방문자����������� ������������������ 순위����������� ������������������
select##A.user_name,##B.BLOG_TITLE,##B.HIT_VISITOR#
from##tbl_user A,##tbl_blog B#
where##A.SEQ = B.SEQ_USER#
order by B.`HIT_VISITOR` desc#

![Page 47: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/47.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 방문자가����������� ������������������ 1000명����������� ������������������ 이상인����������� ������������������ 사용자의����������� ������������������ 블로그����������� ������������������
select##A.user_name,##B.BLOG_TITLE,##B.HIT_VISITOR#
from##tbl_user A,##tbl_blog B#
where##A.SEQ = B.SEQ_USER##and B.HIT_VISITOR > 1000#

![Page 48: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/48.jpg)
기능별����������� ������������������ SQL����������� ������������������ • 카테고리가����������� ������������������ ‘벤처����������� ������������������ 기업’����������� ������������������ 인����������� ������������������ 테마����������� ������������������ 목록����������� ������������������
select##*#
from##tbl_theme A,##tbl_user B,##tbl_categories C#
where##A.SEQ_CATEGORY = C.SEQ##and A.SEQ_USER = B.SEQ##and C.name = '벤처 기업'#

![Page 49: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/49.jpg)
49
UI����������� ������������������ 설계����������� ������������������
![Page 50: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/50.jpg)
메뉴 구조도  Tumblr����������� ������������������
회원가입����������� ������������������
Dashboard����������� ������������������ (로그인후)����������� ������������������
타임라인����������� ������������������ Posts����������� ������������������
글작성����������� ������������������
Follower����������� ������������������
친구목록����������� ������������������
친구추가/삭제����������� ������������������
활동����������� ������������������ 블로그����������� ������������������ 꾸미기����������� ������������������
테마선택����������� ������������������
테마옵션����������� ������������������
새����������� ������������������ 블로그����������� ������������������ 만들기����������� ������������������
설정����������� ������������������
계정설정����������� ������������������
테마����������� ������������������
카테고리����������� ������������������ 별����������� ������������������ 보기����������� ������������������
인기테마����������� ������������������
테마����������� ������������������ 등록����������� ������������������
![Page 51: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/51.jpg)
화면 설계 • 회원����������� ������������������ 가입����������� ������������������
 회원가입
이메일 주소
비밀번호
다른 사람이 나를 검색할 수 있도록 허용
비밀번호 확인
포스팅 편집도구 리치 텍스트 편집기 일반 텍스트/HTML 마크다운
언어 한국어
회원 가입 취소
![Page 52: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/52.jpg)
화면 설계 • Dashboard����������� ������������������
 Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
포스팅����������� ������������������ 등록����������� ������������������ 글����������� ������������������ 사진����������� ������������������ 인용구����������� ������������������ 링크����������� ������������������ 오디오����������� ������������������ 비디오����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
장익환([email protected])����������� ������������������ 님이����������� ������������������ 2014-05-08����������� ������������������ 등록한����������� ������������������ 사진����������� ������������������
����������� ������������������
오늘은����������� ������������������ 기분이����������� ������������������ 좀����������� ������������������ 좋군.����������� ������������������ Tags����������� ������������������ :����������� ������������������ 일상,기분,플젝,언제다하지,밤새기싫긔����������� ������������������
. . .
Timeline����������� ������������������
![Page 53: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/53.jpg)
화면 설계 • Posts����������� ������������������ -����������� ������������������ 글����������� ������������������ 작성����������� ������������������
 Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
포스팅����������� ������������������ 등록����������� ������������������ 글 사진����������� ������������������ 인용구����������� ������������������ 링크����������� ������������������ 오디오����������� ������������������ 비디오����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
제목
등록 취소
사용자 지정 URL
출처
![Page 54: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/54.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
포스팅����������� ������������������ 등록����������� ������������������ 글 사진����������� ������������������ 인용구����������� ������������������ 링크����������� ������������������ 오디오����������� ������������������ 비디오����������� ������������������ 타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
제목
등록 취소
사진설명
태그등록
![Page 55: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/55.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
인용구
등록 취소
출처
태그등록
포스팅����������� ������������������ 등록����������� ������������������ 글����������� ������������������ 사진����������� ������������������ 인용구����������� ������������������ 링크����������� ������������������ 오디오����������� ������������������ 비디오����������� ������������������
![Page 56: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/56.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
URL
등록 취소
설명
태그등록
포스팅����������� ������������������ 등록����������� ������������������ 글����������� ������������������ 사진����������� ������������������ 인용구����������� ������������������ 링크����������� ������������������ 오디오����������� ������������������ 비디오����������� ������������������
제목
![Page 57: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/57.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
업로드
등록 취소
설명
태그등록
포스팅����������� ������������������ 등록����������� ������������������ 글����������� ������������������ 사진����������� ������������������ 인용구����������� ������������������ 링크����������� ������������������ 오디오����������� ������������������ 비디오����������� ������������������
외부 URL
![Page 58: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/58.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
업로드
등록 취소
설명
태그등록
외부 URL
포스팅����������� ������������������ 등록����������� ������������������ 글����������� ������������������ 사진����������� ������������������ 인용구����������� ������������������ 링크����������� ������������������ 오디오����������� ������������������ 비디오����������� ������������������
![Page 59: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/59.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
친구����������� ������������������ 목록����������� ������������������
친구����������� ������������������ 등록����������� ������������������ 등록 이메일 입력 친구찾기
![Page 60: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/60.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
활동����������� ������������������
친구����������� ������������������ 등록����������� ������������������ 등록 이메일 입력 친구찾기
Like : 2개 총 팔로워 : 22명
05/10 토요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”
05/09 금요일 uponateasd님이 나를 팔로우 합니다. [팔로우 하기]
05/08 목요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”
05/10 토요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”
05/10 토요일 uponateasd님이 사진을 좋아합니다. “러쉬 냄새나는 콘서트에 오다..”
![Page 61: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/61.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
Matthew TIMES
제목
블로그����������� ������������������ 꾸미기����������� ������������������
Hi I'm Matthew from Seoul, South Korea.<br/><br/> I'm a Software Engineer, studying Data Mining and Distributed Computing, enjoying electronic sounds.
설명
새창에서 링크 열기
모바일 전용 레이아웃 사용
새창에서 링크 열기
내포스트 | 샘플포스트 Preview
페이지당 포스트 수 15
Red Background
Blue Background
Small Nav For Pages
Hide Colored Top Bar
Hide Background Texture
Hide Date
Hide Tags
Hide Notes
Align Navigation w/Description
Infinite Scroll
Hide Social Button
화면 표시 옵션
수정
![Page 62: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/62.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
Google Analytics ID
블로그����������� ������������������ 꾸미기����������� ������������������
Disqus ID
Twitter ID
Facebook ID
Dribble ID
Flickr ID
Youtube ID
Skype ID
Deviantart ID
Vimeo ID
Behance ID
Foursquare ID
LastFM ID
Github ID
소셜 설정
수정
![Page 63: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/63.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
타임라인����������� ������������������
Posts����������� ������������������
Followers����������� ������������������
활동����������� ������������������
블로그����������� ������������������ 꾸미기����������� ������������������
새블로그����������� ������������������
새����������� ������������������ 블로그����������� ������������������ 만들기����������� ������������������
제목
URL .tumblr.com
이 블로그는 여러 작성자가 관리할 수 있고 비공개로 설정할 수도 있습니다. 참고: 포스트의 좋아요를 클릭하거나 다른 회원을 팔로우할 때 이 블로그 이름이 나타게 하려면 로그아웃한 다음 별도의 계정을 만들어야 합니다.
블로그 만들기
![Page 64: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/64.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
카테고리����������� ������������������
인기����������� ������������������ 테마����������� ������������������
테마����������� ������������������ 등록����������� ������������������
테마����������� ������������������ :����������� ������������������ 카테고리����������� ������������������
카테고리 : 1단
카테고리 : 2단
. . .
![Page 65: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/65.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
카테고리����������� ������������������
인기����������� ������������������ 테마����������� ������������������
테마����������� ������������������ 등록����������� ������������������
테마����������� ������������������ :����������� ������������������ 인기����������� ������������������
유료 인기테마
무료 인기테마
![Page 66: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/66.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
카테고리����������� ������������������
인기����������� ������������������ 테마����������� ������������������
테마����������� ������������������ 등록����������� ������������������
테마����������� ������������������ 등록����������� ������������������ (1page)����������� ������������������
제목
태그
섬네일 등록
스크린샷 등록
설명
![Page 67: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/67.jpg)
화면 설계  Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
카테고리����������� ������������������
인기����������� ������������������ 테마����������� ������������������
테마����������� ������������������ 등록����������� ������������������
테마����������� ������������������ 등록����������� ������������������ (2page)����������� ������������������
Demo 데모 블로그 URL
지원요청 테마 지원 이메일 주소
소스코드
유/무료 무료 유료 가격입력
테마 등록 1단 | 2단 | 그리드 카테고리
![Page 68: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/68.jpg)
화면 설계 
Tumblr Dashboard����������� ������������������ |����������� ������������������ 테마����������� ������������������ |����������� ������������������ 설정����������� ������������������
계정����������� ������������������ 설정����������� ������������������ 계정����������� ������������������ 설정����������� ������������������
수정
사용자 이름 changmatthew
댓글 내 팔로잉의 댓글 허용
2주 이상된 내 팔로워의 댓글 허용
질문하기 질문 허용
포스트 허용 다른 사람들의 포스트 허용 내가 승인해야만 포스팅되도록 하려면 포스트를 /submit(으)로 보내세요.
한국어 | 영어 언어
![Page 69: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/69.jpg)
69
DATA����������� ������������������ 분석����������� ������������������
![Page 70: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/70.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ INT(11) PK UNIQUE PK로 UNIQUE 100,000 5
BLOG_TITLE VARCHAR(512) NN 대략 UNIQUE - Mattew의 블로그
SEQ_USER INT(11) FK NN UNIQUE 100,000 3
URL VARCHAR(512) NN UNIQUE 100,000 Blog.mattew.tumblr.com
BLOG_DETAIL VARCHAR(2048) 대략 UNIQUE - 어서오이소
CREATE_DATE DATETIME NN 2013년 1월1일 이후 - 2014.2.3
HIT_VISITOR INT(11) 0 이상 - 100
TML_BLOG����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ����������� ������������������ 는 블로그 PK이므로 UNIQUE하고 BLOG_TITLE은 똑같은 것이 있을 수 ����������� ������������������ ����������� ������������������ ����������� ������������������ 있으므로 대략 UNIQUE.����������� ������������������ ����������� ������������������ ����������� ������������������ SEQ_USER는 USER����������� ������������������ TABLE의 외래키로,����������� ������������������ USER����������� ������������������ 하나당 하나의 ����������� ������������������ ����������� ������������������ ����������� ������������������ BLOG를 갖고 하나의 BLOG는 유일한 URL을 가져야 하므로 두 값은 UNIQUE.����������� ������������������ ����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ ����������� ������������������ SEQ,URL,SEQ_USER은 모두 UNIQUE하므로 100,000가지 값이 존재.����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 100,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 321.2����������� ������������������ MB����������� ������������������ ����������� ������������������
![Page 71: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/71.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������ TML_BLOG_OPTION����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ는 FK이자 PK로 UNIQUE하고,����������� ������������������ ����������� ������������������ NO_POST_BY_PAGE는 4가지 값을 가짐.����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 나머지 속성들은 2가지 TOGLE����������� ������������������ 값을 가짐.����������� ������������������
����������� ������������������ • Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ ����������� ������������������ NO_POST_BY_PAGE����������� ������������������ 4가지로 구분되고,����������� ������������������ SEQ를 제외한 나머지 속성들은 2가지 ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 값으로 구분.����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 100,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 2.6����������� ������������������ MB����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ INT(11) PK/FK PK로 UNIQUE UNIQUE 100,000 3
OPT_PRE_VIEW TINYINT(1) NN / DEFAULT 0 0 OR 1 2 0
NO_POST_BY_PAGE INT(11) NN / DEFAULT 20 5,10,20,100 4 20
OPT_SHARE_TUMBLR TINYINT(1) NN 0 OR 1 2 0
OPT_IS_USE_MOBILE_LAYOUT TINYINT(1) NN / DEFAULT 0 0 OR 1 2 0
OPT_NEW_LINK TINYINT(1) NN / DEFAULT 0 0 OR 1 2 0
![Page 72: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/72.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������ TML_BLOG_VIEW_OPT����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ ����������� ������������������ SEQ는 BLOG����������� ������������������ TABLE의 FK이자 PK로 UNIQUE하며 나머지 속성들은 TOGLE값 ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 으로 2가지 씩 가짐.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ SEQ를 제외한 나머지 속성들은 2가지 값으로 구분.����������� ������������������ ����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 100,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 2.2����������� ������������������ MB����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ INT(11) PK/FK PK로 UNIQUE UNIQUE 100,000 5
OPT_SMALLER_NAV_FOR_PAGES TINYINT(1) NN 0 OR 1 2 가지 0
OPT_RED_BLACKGROUND TINYINT(1) NN 0 OR 1 2 가지 0
OPT_BLUE_BLACKGROUND TINYINT(1) NN 0 OR 1 2 가지 0
OPT_HIDE_COLORED_TOP_BAR TINYINT(1) NN 0 OR 1 2 가지 0
OPT_DATE TINYINT(1) NN 0 OR 1 2 가지 0
OPT_BACKGROUND_TEXTURE TINYINT(1) NN 0 OR 1 2 가지 0
OPT_TABS TINYINT(1) NN 0 OR 1 2 가지 0
OPT_NOTES TINYINT(1) NN 0 OR 1 2 가지 0
ALIGN_NAVIGATION_WITH_DESCRIPTION TINYINT(1) NN 0 OR 1 2 가지 0
INFINITE_SCROLL TINYINT(1) NN 0 OR 1 2 가지 0
HIDE_SOCIAL_BUTTON TINYINT(1) NN 0 OR 1 2 가지 0
![Page 73: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/73.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������ TML_BLOG_SOCIAL����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ는 BLOG����������� ������������������ TABLE의 FK이자 PK로 UNIQUE하며 나머지 속성들은 주소 값으로 같은 주소를 등록해도 무방하지만 각자 개인마다 다른 계정을 갖고 있을 것으로 대략 UNIQUE.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ ����������� ������������������ SEQ를 제외한 모든 속성값들은 각자 다를 것으로 예상되어 약 100,000가지로 구분.����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 100,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 282.7����������� ������������������ MB����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ INT(11) PK/FK PK로 UNIQUE UNIQUE 100,000 7
GITHUB VARCHAR(256) 대략 UNIQUE [email protected]
BEHANCE VARCHAR(256) 대략 UNIQUE [email protected]
FOURSQUARE VARCHAR(256) 대략 UNIQUE [email protected]
LAST_FM VARCHAR(256) 대략 UNIQUE [email protected]
GOOGLE_ANALYTICS_ID VARCHAR(256) 대략 UNIQUE [email protected]
TWITTER VARCHAR(256) 대략 UNIQUE [email protected]
FACEBOOK VARCHAR(256) 대략 UNIQUE [email protected]
DRIBBLE VARCHAR(256) 대략 UNIQUE [email protected]
FLICKR VARCHAR(256) 대략 UNIQUE [email protected]
SKYPE VARCHAR(256) 대략 UNIQUE [email protected]
DEVIANARTY VARCHAR(256) 대략 UNIQUE [email protected]
![Page 74: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/74.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������ Attribute Type PK/FK Constraint
Value Distribution
Distinct Value
Example
SEQ Int(11) PK UNIQUE PK로 UNIQUE 2000000 2
SEQ_BLOG Int(11) FK NN 대략 UNIQUE 1
POST_TYPE Int(11) 1:글 2:그림 3:오디오 4:비디오 5:인용
구 5 5
CREATE_DATE Datetime NN 2013년 1월1일 이후
2014-05-14 00:00:00
MODIFY_DATE Date 2013년 1월1일 이후
2014-05-14 00:00:00
WRITER_IP Varchar(128) 대략 UNIQUE 211.238.145.12
CUSTOM_URL Varchar(256) 대략 UNIQUE
OPT1 Int(11) 1:허용 0:불가 2
REFERENCE_URL Varchar(256) UNIQUE www.naver.com
HIT_VIEWER Int(11) NN 0이상의 값 1234
HIT_LIKE Int(11) NN 0이상의 값 54
TBL_POSTS����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 각 포스트는 고유한 SEQ를 가지고 있음(UNIQUE).����������� ������������������ ����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 회원이 100000명이라 가정.����������� ������������������ 한 사람당 20개의 포스트를 올린다고 가정.����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 포스트 타입(1:글,����������� ������������������ 2:그림,����������� ������������������ 3:오디오,����������� ������������������ 4:비디오,����������� ������������������ 5:인용구)로 5가지로 구분.����������� ������������������ ����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 2,000,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 1.84GB����������� ������������������ ����������� ������������������
![Page 75: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/75.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ_POST Int(11) PK/FK UNIQUE,NN PK로 UNIQUE 400,000 5
TITLE Varchar(512) NN 대략 UNIQUE 오늘의 일기
CONTENT Varchar(2048) NN 대략 UNIQUE 날씨가 너무 좋았다. 근데 나는 팀플을 하고 있었다ㅠㅠ
TBL_POST_WRITINGS����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ_POST는 포스트의 5개 분류 중 글 부분을 식별하는 기본키이다.����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 또한,����������� ������������������ SEQ_POST는 TBL_POSTS의 기본키(SEQ) 참조하는 외래키이다.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 100000명의 회원이 있다고 가정.����������� ������������������ 한 사람당 포스트를 평균 20개씩 올릴 수 있다고 가정.����������� ������������������ 포스트는 5가지의 종류를 가지는데,����������� ������������������ 각각의 종류가 균등분포로 4개씩 올린다고 가정.����������� ������������������ 따라서,����������� ������������������ SEQ_POST는 400000개.����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 400,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 1.05GB����������� ������������������
![Page 76: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/76.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ Int(11) PK/FK UNIQUE,NN PK로 UNIQUE 400,000 2
QUOTE Varchar(2048) NN 대략 UNIQUE 람스테인은 ich
will이라는 뮤비를 남겼다.
REFERENCE Varchar(2048) NN 대략 UNIQUE Rammstein.co.ge
TBL_POST_QUOTE����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ는 포스트의 5개 분류 중 인용구 부분을 식별하는 기본키이다.����������� ������������������ ����������� ������������������ 또한,����������� ������������������ SEQ는 TBL_POSTS의 기본키(SEQ) 참조하는 외래키이다.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 100000명의 회원이 있다고 가정.����������� ������������������ 한 사람당 포스트를 평균 20개씩 올릴 수 있다고 가정.����������� ������������������ 포스트는 5가지의 종류를 가지는데,����������� ������������������ 각각의 종류가 균등분포로 4개씩 올린다고 가정.����������� ������������������ 따라서,����������� ������������������ SEQ는 400000개.
데이터 규모����������� ������������������ :����������� ������������������ 400,000����������� ������������������ 개,����������� ������������������ 데이터 용량 :����������� ������������������ 1.66GB����������� ������������������
![Page 77: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/77.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ Int(11) PK/FK UNIQUE,NN PK로 UNIQUE 5
URL Varchar(1024) NN 대략 UNIQUE ./test.mp3
TBL_POST_AUDIO����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ는 포스트의 5개 분류 중 오디오 부분을 식별하는 기본키이다.����������� ������������������ ����������� ������������������ 또한,����������� ������������������ SEQ는 TBL_POSTS의 기본키(SEQ) 참조하는 외래키이다.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 100000명의 회원이 있다고 가정.����������� ������������������ 한 사람당 포스트를 평균 20개씩 올릴 수 있다고 가정.����������� ������������������ 포스트는 5가지의 종류를 가지는데,����������� ������������������ 각각의 종류가 균등분포로 4개씩 올린다고 가정.����������� ������������������ 따라서,����������� ������������������ SEQ는 400000개.
데이터 규모����������� ������������������ :����������� ������������������ 400,000����������� ������������������ 개,����������� ������������������ 데이터 용량 :����������� ������������������ 0.43GB����������� ������������������ ����������� ������������������
![Page 78: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/78.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ Int(11) PK/FK UNIQUE,NN PK로 UNIQUE 5
URL Varchar(1024) NN 대략 UNIQUE .www.youtube.com/asdfsd
CONTENT Varchar(2048) NN 대략 UNIQUE 람스테인 뮤비
TBL_POST_VIDEO����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ는 포스트의 5개 분류 중 비디오 부분을 식별하는 기본키이다.����������� ������������������ ����������� ������������������ 또한,����������� ������������������ SEQ는 TBL_POSTS의 기본키(SEQ) 참조하는 외래키이다.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 100000명의 회원이 있다고 가정.����������� ������������������ 한 사람당 포스트를 평균 20개씩 올릴 수 있다고 가정.����������� ������������������ 포스트는 5가지의 종류를 가지는데,����������� ������������������ 각각의 종류가 균등분포로 4개씩 올린다고 가정.����������� ������������������ 따라서,����������� ������������������ SEQ는 400000개.
데이터 규모����������� ������������������ :����������� ������������������ 400,000����������� ������������������ 개,����������� ������������������ 데이터 용량 :����������� ������������������ 1.25GB����������� ������������������ ����������� ������������������
![Page 79: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/79.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ Int(11) PK UNIQUE,NN PK로 UNIQUE 400,000 5
SEQ_IMAGE Int(11) FK NN 1
IMG_URL Varchar(45) NN 대략 UNIQUE www.izectlab.com/test4.png
TBL_POST_IMAGE_LIST����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ SEQ는 포스트의 5개 분류 중 이미지 부분을 식별하는 기본키이다.����������� ������������������ ����������� ������������������ SEQ_IMAGE는 TBL_POSTS의 기본키(SEQ) 참조하는 외래키이다.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 100000명의 회원이 있다고 가정.����������� ������������������ 한 사람당 포스트를 평균 20개씩 올릴 수 있다고 가정.����������� ������������������ 포스트는 5가지의 종류를 가지는데,����������� ������������������ 각각의 종류가 균등분포로 4개씩 올린다고 가정.����������� ������������������ 따라서,����������� ������������������ SEQ는 400000개.
데이터 규모����������� ������������������ :����������� ������������������ 400,000����������� ������������������ 개,����������� ������������������ 데이터 용량 :����������� ������������������ 53.1MB����������� ������������������ ����������� ������������������
![Page 80: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/80.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������ Attribute Type PK/FK Constraint
Value distribution
Distinct value
Example
SEQ INT(11) PK UNIQUE PK로 UNIQUE 100,000 0
USER_ID VARCHAR(20) UNIQUE UNIQUE 100,000 izie
PASSWORD VARCHAR(20) NN 대략 UNIQUE - 1231
EMAIL VARCHAR(100) NN UNIQUE 100,000 [email protected]
USER_NAME VARCHAR(20) NN 대략 UNIQUE - 장익환
JOIN_DATE DATETIME NN 2013.1.1 이후 - 2013-09-13
USER_PROFILE_URL VARCHAR(256) NN UNIQUE 100,000 www.test.com/profile.png
STATUS INT(11) 0:탈퇴 1:가입 2 1
DROP_DATE DATE 대략 UNIQUE - NULL
MODIFY_DATE DATE 대략 UNIQUE - NULL
LANGUAGE VARCHAR(512) NN 약 130개로 분포 130 KOR
IS_EDIT_TOOL VARCHAR(512) NN 대략 5개로 분포 5 1
TBL_LIKE_LIST_SEQ INT(11) UNIQUE 100,000 0
TBL_USER����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 사용자는 대략 100,000명 있다고 가정����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 사용자 개개인의 ID,����������� ������������������ EMAIL은 다르므로 UNIQUE(100,000개)����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 각 사용자 별로 PASSWORD는 중복되는 값이 있을 수도 있으므로 대략 UNIQUE����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 100,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 약 160MB����������� ������������������
![Page 81: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/81.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ INT(11) PK UNIQUE PK로 UNIQUE 300,000 1
SEQ_USER INT(11) FK NN 100,000개로 분포 100,000 253
TBL_THEME_SEQ INT(11) FK UNIQUE UNIQUE - 76
BUY_DATE DATETIME NN 2013.1.1 이후 - 2013-01-21
BUY_METHOD ENUM(…) NN 대략 5개로 분포 5 0
TBL_BUY_LIST����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 한 명의 사용자가 테마 대략 3개 구입한다고 가정����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 따라서 대략 300,000개의 구입 SEQ가 있음.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 총 사용자가 100,000명으로 가정했으므로 SEQ_USER의 값 분포는 100,000개����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 300,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 약 43MB����������� ������������������ ����������� ������������������
![Page 82: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/82.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct Value
Example
SEQ INT(11) UNIQUE UNIQUE 100,000,000 3645
LIKE_DATE DATETIME NN 2013.1.1 이후 - 2014-05-06
SEQ_POST INT(11) FK NN 대략 UNIQUE - 2154
SEQ_USER INT(11) FK NN 100,000개로 분포 100,000 157
TBL_LIKE_LIST����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 한 명의 사용자가 좋아요 하는 글 약 1000개로 가정����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 따라서 대략 100,000,000개의 LIKE����������� ������������������ LIST����������� ������������������ SEQ가 있음.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 총 사용자가 100,000명으로 가정했으므로 SEQ_USER의 값 분포는 100,000개
데이터 규모����������� ������������������ :����������� ������������������ 100,000,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 약 14GB����������� ������������������
![Page 83: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/83.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ INT(11) PK UNIQUE PK로 UNIQUE 50,000,000 255
SEQ_FRIEND INT(11) FK NN 100,000개로 분포 100,000 127
SEQ_USER INT(11) FK NN 100,000개로 분포 100,000 65
TBL_FRIENDS����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 한 명의 사용자 당 친구의 수 500명으로 가정����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 따라서 대략 50,000,000개의 FRIEND����������� ������������������ SEQ가 있음.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 총 사용자가 100,000명으로 가정했으므로 SEQ_USER의 값 분포는 100,000개����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 마찬가지로 총 사용자가 100,000명으로 가정했으므로 SEQ_FRIEND의 값 분포는 100,000개
데이터 규모����������� ������������������ :����������� ������������������ 50,000,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 약 6.6GB����������� ������������������
![Page 84: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/84.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������ Attribute Type PK/FK Constraint
Value distribution
Distinct value
Example
SEQ INT(11) PK UNIQUE PK로 UNIQUE 10,000 0
SEQ_USER INT(11) NN 100,000개로 분포 100,000 0
TITLE VARCHAR(2048) NN 대략 UNIQUE - 장익환이 직접 만든 테마
SUMMARY VARCHAR(2048) NN 대략 UNIQUE - 장익환스 테마입니다.
DETAIL VARCHAR(2048) NN 대략 UNIQUE - 이것은 jQuery 1.9이상에서만 동작합니다.
SOURCE_CODE VARCHAR(4096) NN 대략 UNIQUE - Global $themename,
$shortname, $options_saved, $menu_locations;
THUMBNAIL VARCHAR(512) NN 대략 UNIQUE - www.izectlab.com/test.png
OPT_FREE_OR_PAID TINYINT(1) 0:무료 1:유료 2 1
PRICE INT(11) NN 대략 UNIQUE - 123412
SEQ_CATEGORY INT(11) NN 대략 20개로 분포 20 3
HIT_VIEW INT(11) NN - - 30
HIT_SELL INT(11) NN - - 20
TBL_THEME����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 현재 등록되어있는 테마 개수가 10,000개로 가정����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ 각 테마를 나타내는 SEQ,����������� ������������������ 테마의 이름/설명/코드 등은 겹치지 않을 가능성이 크기 때문에 대략 UNIQUE,����������� ������������������ 카테고리는 20개로 가정했으므로 20개의 distribution����������� ������������������ value가 있을 것으로 보임.����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 10,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 약 110MB����������� ������������������ ����������� ������������������
![Page 85: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/85.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct value
Example
SEQ INT(11) PK UNIQUE PK로 UNIQUE 100,000 525
SEQ_THEME INT(11) NN 10,000개로 분포 10,000 42
SCREENSHOT_URL VARCHAR(512) NN UNIQUE - www.izectlab.com/test.png
TBL_THEME_SCREENSHOT����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 한 테마당 screenshot����������� ������������������ 개수 10개로 가정����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 따라서 테마 10,000개 당 screenshot����������� ������������������ 개수 10개로,����������� ������������������ 대략 100,000개의 레코드가 있음.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ ����������� ������������������ 각 screenshot이 가지는 SEQ는 서로 다르므로 100,000개의 distinct����������� ������������������ value����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 테마 레코드 10,000개로 가정했으므로 SEQ_THEME는 10,000개의 distinct����������� ������������������ value가짐.����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 100,000개,����������� ������������������ 데이터 용량 :����������� ������������������ 약 60MB����������� ������������������ ����������� ������������������
![Page 86: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/86.jpg)
데이터 분석����������� ������������������ ����������� ������������������ ����������� ������������������
Attribute Type PK/FK Constraint Value
distribution Distinct Value
Example
SEQ INT(11) PK UNIQUE PK로 UNIQUE 20 12
NAME VARCHAR(256) NN 대략 UNIQUE - 이카니카테고리
TBL_CATEGORIES����������� ������������������
• Value����������� ������������������ distribution����������� ������������������ :����������� ������������������ 카테고리 20개로 가정,����������� ������������������ CATEGORIES����������� ������������������ table에는 20개의 레코드가 있음.����������� ������������������
• Distinct����������� ������������������ value����������� ������������������ :����������� ������������������ table내의 각 카테고리를 구분하는 SEQ는 UNIQUE해야 하므로����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 모두 20개의 distinct����������� ������������������ value����������� ������������������ 가질 수 있음.����������� ������������������
데이터 규모����������� ������������������ :����������� ������������������ 20개,����������� ������������������ 데이터 용량 :����������� ������������������ 약 6KB����������� ������������������
![Page 87: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/87.jpg)
87
INDEXING����������� ������������������ 설계����������� ������������������
![Page 88: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/88.jpg)
인덱싱 설계 전략  사용자 쿼리 특성
l 응용 특성상 USER의 POST를 읽어오는 부분에서 삽입/삭제 뿐만 아니라
SELECT����������� ������������������ 연산이 매우 많이 일어난다.����������� ������������������ ����������� ������������������
성능비교 및 원칙
l 대표적인 POST를 읽어오는 QUERY를 이용하여 인덱싱 전후의 성능 비교를 진
행한다.����������� ������������������
l 인덱싱을 하지 않은 TABLE은 순차화일로 순차접근을 원칙으로 한다.����������� ������������������
인덱싱
조건 설정
l 인덱스의 구조는 B+����������� ������������������ tree����������� ������������������ -->1000차 B+tree����������� ������������������
l BF(블록킹 팩터) : 1000
����������� ������������������
![Page 89: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/89.jpg)
사용자 타임라인 쿼리  select����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ A.SEQ,A.POST_TYPE����������� ������������������ ,(case����������� ������������������ A.POST_TYPE����������� ������������������ ����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ when����������� ������������������ 0����������� ������������������ then����������� ������������������ (select����������� ������������������ title����������� ������������������ from����������� ������������������ TBL_POST_WRITINGS����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ A.SEQ)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ when����������� ������������������ 1����������� ������������������ then����������� ������������������ (select����������� ������������������ content����������� ������������������ from����������� ������������������ TBL_POST_IMAGE����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ A.SEQ)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ when����������� ������������������ 2����������� ������������������ then����������� ������������������ (select����������� ������������������ quote����������� ������������������ from����������� ������������������ TBL_POST_QUOTE����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ A.SEQ)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ when����������� ������������������ 3����������� ������������������ then����������� ������������������ (select����������� ������������������ title����������� ������������������ from����������� ������������������ TBL_POST_LINK����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ A.SEQ)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ when����������� ������������������ 4����������� ������������������ then����������� ������������������ (select����������� ������������������ title����������� ������������������ from����������� ������������������ TBL_POST_CHAT����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ A.SEQ)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ when����������� ������������������ 5����������� ������������������ then����������� ������������������ (select����������� ������������������ url����������� ������������������ from����������� ������������������ TBL_POST_AUDIO����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ A.SEQ)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ when����������� ������������������ 6����������� ������������������ then����������� ������������������ (select����������� ������������������ content����������� ������������������ from����������� ������������������ TBL_POST_VIDEO����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ A.SEQ)����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ end)����������� ������������������ AS����������� ������������������ TITLE,A.CREATE_DATE,C.USER_NAME,A.HIT_VIEWER����������� ������������������
from����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ TBL_POSTS����������� ������������������ A,����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ TBL_BLOG����������� ������������������ B,����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ TBL_USER����������� ������������������ C����������� ������������������
where����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ A.SEQ_BLOG����������� ������������������ =����������� ������������������ B.SEQ����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ and����������� ������������������ B.SEQ_USER����������� ������������������ =����������� ������������������ C.SEQ����������� ������������������
����������� ������������������ ����������� ������������������ ����������� ������������������ and����������� ������������������ C.SEQ����������� ������������������ in����������� ������������������ in����������� ������������������ (select����������� ������������������ seq����������� ������������������ from����������� ������������������ tbl_friends����������� ������������������ where����������� ������������������ seq_user����������� ������������������ =����������� ������������������ (select����������� ������������������ seq����������� ������������������ from����������� ������������������ tbl_users����������� ������������������ where����������� ������������������ user_id='izie'))����������� ������������������
order����������� ������������������ by����������� ������������������ A.HIT_VIEWER����������� ������������������ desc����������� ������������������
![Page 90: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/90.jpg)
인덱싱 설계 
INDEX 전 INDEX 후 성능향상
BEST 1 1(리프) + 2(트리 높이)
200 / 3 = 66.666배 성능향상
WORST 400,000 / 1,000 = 400 1(리프) + 2(트리 높이)
AVERAGE (400,000 / 1,000) / 2 = 200 1(리프) + 2(트리 높이)
TBL_POSTS_*����������� ������������������
select����������� ������������������ title����������� ������������������ ����������� ������������������ from����������� ������������������ TBL_POST_WRITINGS����������� ������������������ where����������� ������������������ SEQ����������� ������������������ =����������� ������������������ 123����������� ������������������ ����������� ������������������ (단, 모든 종류의 POST들은 동일하다고 가정)
l SEQ는����������� ������������������ MYSQL에서����������� ������������������ 자동으로����������� ������������������ 부여하는����������� ������������������ SEQUENCE����������� ������������������ NUMBER로����������� ������������������ 오름차순으로����������� ������������������ 부여하여����������� ������������������ 자동����������� ������������������ 오름차순정렬이����������� ������������������ 되어있다.����������� ������������������
l SEQ를����������� ������������������ 기준으로����������� ������������������ 희소인덱스를����������� ������������������ 구성하면����������� ������������������ 보다����������� ������������������ 적은����������� ������������������ 탐색으로����������� ������������������ 해당����������� ������������������ 값을����������� ������������������ 찾을����������� ������������������ 수����������� ������������������ 있다.����������� ������������������
![Page 91: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/91.jpg)
인덱싱 설계  TBL_USER����������� ������������������
select����������� ������������������ seq����������� ������������������ ����������� ������������������ from����������� ������������������ tbl_users����������� ������������������ ����������� ������������������ where����������� ������������������ user_id='izie'����������� ������������������
l 거의����������� ������������������ 모든����������� ������������������ 쿼리문의����������� ������������������ 시작은����������� ������������������ USER����������� ������������������ table에서����������� ������������������ USER_ID를����������� ������������������ 이용하여����������� ������������������ SEQ를����������� ������������������ 알아한다. 따라서����������� ������������������ 많은����������� ������������������ 탐색이����������� ������������������ 필요하므로����������� ������������������ USER_ID를����������� ������������������ 기본����������� ������������������ 인덱스로하여����������� ������������������ 이를����������� ������������������ b+트리의����������� ������������������ 구조로����������� ������������������ 사용하여����������� ������������������ 보다����������� ������������������ 빠른����������� ������������������ 탐색을����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있도록����������� ������������������ 한다.����������� ������������������ ����������� ������������������
INDEX 전 INDEX 후 성능향상
BEST 1 1(리프) + 2(트리 높이)
50 / 3 = 16.66배 성능향상
WORST 100,000 / 1,000 = 100 1(리프) + 2(트리 높이)
AVERAGE (100,000 / 1,000) / 2 = 50 1(리프) + 2(트리 높이)
![Page 92: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/92.jpg)
인덱싱 설계 
INDEX 전 INDEX 후 성능향상
BEST 50,000,000 / 1,000 = 50,000 2 + 500 = 502
50,000 / 502 = 99.6배 성능향상
WORST 50,000,000 / 1,000 = 50,000 2 + 500 = 502
AVERAGE 50,000,000 / 1,000 = 50,000 2 + 500 = 502
TBL_FRIENDS����������� ������������������
select����������� ������������������ seq����������� ������������������ ����������� ������������������ from����������� ������������������ tbl_friends����������� ������������������ ����������� ������������������ where����������� ������������������ seq_user����������� ������������������ =����������� ������������������ 123����������� ������������������ ����������� ������������������
l 데이터규모가����������� ������������������ 매우����������� ������������������ 크므로����������� ������������������ 인덱스를����������� ������������������ 생성하는����������� ������������������ 것이����������� ������������������ 효율적임����������� ������������������
l SEQ_USER����������� ������������������ 로����������� ������������������ 집중인덱스����������� ������������������ 구성하는����������� ������������������ 것이����������� ������������������ 효율적임����������� ������������������ 주로사용하는����������� ������������������ 쿼리는����������� ������������������ 사용자의����������� ������������������ 친구들의����������� ������������������ 목록이����������� ������������������ 필요하므로����������� ������������������ SEQ_USER로����������� ������������������ 탐색한다.����������� ������������������
l 이때����������� ������������������ SEQ_USER값으로����������� ������������������ cluster를����������� ������������������ 이루고����������� ������������������ 있으면����������� ������������������ I/O횟수가����������� ������������������ 줄어든다.����������� ������������������ ����������� ������������������
![Page 93: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/93.jpg)
인덱싱 설계 
INDEX 전 (블록 단위)
INDEX 전 (투플 단위)
INDEX 후
BEST (100,000 / 1,000) + (100,000 / 1,000) * (100,000 / 1,000)
= 10100
(100,000 / 1,000) + 100,000 * (100,000 / 1,000)
= 10,000,100
(100,000 / 1,000) + 100,000 * (2 + 1)
= 300,100 WORST
AVERAGE
TBL_POSTS����������� ������������������ (JOIN����������� ������������������ 1)����������� ������������������
l JOIN����������� ������������������ (TLB_USER����������� ������������������ table,����������� ������������������ TLB_BLOG����������� ������������������ table)����������� ������������������
l INDEX����������� ������������������ 전은 중첩루프, INDEX����������� ������������������ 후는 인덱스 검사 수행 (JOIN����������� ������������������ TABLE����������� ������������������ 결과 테이블 이름은 RESULT로 가정)
![Page 94: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/94.jpg)
인덱싱 설계 
INDEX 전 (블록 단위)
INDEX 전 (투플 단위)
INDEX 후
BEST (100,000 / 1,000) + (100,000 / 1,000) * (2,000,000 / 1,000)
= 200,100
(100,000 / 1,000) + 100,000 * (2,000,000 / 1,000)
= 200,000,100
(100,000 / 1,000) + 100,000 * (3 + 1)
= 400,100 WORST
AVERAGE
TBL_POSTS����������� ������������������ (JOIN����������� ������������������ 2)����������� ������������������
l JOIN����������� ������������������ (RESULT����������� ������������������ table,����������� ������������������ TLB_POST����������� ������������������ table)����������� ������������������
l INDEX����������� ������������������ 전은 중첩루프, INDEX����������� ������������������ 후는 인덱스 검사 수행
![Page 95: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/95.jpg)
인덱싱 설계 
INDEX 전 (블록 단위)
INDEX 전 (투플 단위)
INDEX 후
BEST (400,000 / 1,000) + (40,000 / 1,000) *
(2,000,000 / 1,000) = 80,400
(400,000 / 1,000) + 40,000 *
(2,000,000 / 1,000) = 80,000,400
(400,000 / 1,000) + 400,000 * (3 + 1)
= 1,600,400 WORST
AVERAGE
TBL_POSTS����������� ������������������
select����������� ������������������ title����������� ������������������ from����������� ������������������ post_writing����������� ������������������ PW,����������� ������������������ post����������� ������������������ P����������� ������������������ where����������� ������������������ PW.seq����������� ������������������ =����������� ������������������ P.seq����������� ������������������
l 이����������� ������������������ table에����������� ������������������ 많은����������� ������������������ 부하가����������� ������������������ 걸리고����������� ������������������ 데이터����������� ������������������ 규모가����������� ������������������ 크므로����������� ������������������ 인덱스����������� ������������������ 설계가����������� ������������������ 필요하다.����������� ������������������
l SEQ_BLOG로����������� ������������������ 집중����������� ������������������ 인덱스를����������� ������������������ 구성하여����������� ������������������ cluster를����������� ������������������ 이루어야����������� ������������������ I/O횟수가����������� ������������������ 줄어든다.����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������
조인을����������� ������������������ 수행하는����������� ������������������ 경우,����������� ������������������ 인덱싱을����������� ������������������ 하지����������� ������������������ 않은����������� ������������������ 경우����������� ������������������ 중첩루프를����������� ������������������ 사용하여����������� ������������������ 조인하는데,����������� ������������������ 이때����������� ������������������ 블록단위로����������� ������������������ 하는����������� ������������������ 것이����������� ������������������ 가장����������� ������������������ I/O수가����������� ������������������ 적었다.����������� ������������������ 가장����������� ������������������ 큰����������� ������������������ 경우는����������� ������������������ 투플단위로����������� ������������������ 중첩루프를����������� ������������������ 사용하는����������� ������������������ 경우였고����������� ������������������ 그����������� ������������������ 다음으로����������� ������������������ 인덱스����������� ������������������ 검사����������� ������������������ 방법이����������� ������������������ 크다.����������� ������������������
![Page 96: Analyze of Tumblr.com](https://reader035.vdocuments.site/reader035/viewer/2022062304/55a6ad7e1a28ab40418b4591/html5/thumbnails/96.jpg)
thanks!
www.matthewlab.com
감사합니다.