65
A : 쿠우쿠우 EZStorage 태그기반 파일관리시스템을 적용한 스토리지 서비스 장윤경 신아름 조성수 (조장) 김태경

태그기반 파일관리시스템을 적용한 스토리지 시스템

Embed Size (px)

Citation preview

Page 1: 태그기반 파일관리시스템을 적용한 스토리지 시스템

A조 : 쿠우쿠우

EZStorage태그기반파일관리시스템을 적용한스토리지서비스

장윤경신아름

조성수(조장)

김태경

Page 2: 태그기반 파일관리시스템을 적용한 스토리지 시스템

목차

1 프로젝트소개

시연

설계및구현

한계점

결론및활용분야

2

3

4

5

Page 3: 태그기반 파일관리시스템을 적용한 스토리지 시스템

11 프로젝트 소개프로젝트 소개

Page 4: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

태그 기반 파일 관리 시스템을 이용한

스토리지 서비스

Page 5: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

쉽게 말해 이것과 비슷한 서비스를 만들었습니다

Page 6: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

독창적인 아이디어는?

Page 7: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

정리는 귀찮다

근데 원하는 파일은 빠르게 찾고 싶다!

Page 8: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

[파일처리]lab06.doc+

과제, 2015, 학교

태그

파일에 부가적인 정보를 더 추가하자

Page 9: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

그래서 뭘 어떻게 하자는건데?

Page 10: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

2015년에 작성한데이터베이스

중간 발표자료를 찾아줘!!

Page 11: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

파일이 아무리 많아도

[파일처리]lab06.doc 운영체제과제.doc 데이터베이스중간발표.ppt 인가탐1.doc 데이터베이스보고서.doc

+실습, 2015, 학교파일처리

+과제, 2014, 학교운영체제

+발표, 2015, 학교데이터베이스,중간

+보고서, 2013, 학교

+보고서, 2015, 학교데이터베이스,중간

Page 12: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

파일이 아무리 많아도

[파일처리]lab06.doc 운영체제과제.doc 데이터베이스중간발표.ppt 인가탐1.doc 데이터베이스보고서.doc

+실습, 2015, 학교파일처리

+과제, 2014, 학교운영체제

+발표, 2015, 학교데이터베이스,중간

+보고서, 2013, 학교

+보고서, 2015, 학교데이터베이스,중간

연관 단어들로만 검색하면 찾을 수 있다.

Page 13: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

연관된 태그를 묶으면 카테고리

1학년 포트폴리오

2011년 과제 보고서 발표자료

Page 14: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

그러니까

Page 15: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

이런 복잡한 폴더구조 만들려고 하지 말고

Page 16: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

그냥 파일만 저장하면 됩니다.태그와 함께..

[파일처리]lab06.doc+

과제, 2015, 학교

태그

Page 17: 태그기반 파일관리시스템을 적용한 스토리지 시스템

1프로젝트 소개

파일을 찾고 싶으면 태그만 입력하세요

과제, 2015, 학교

[파일처리]lab06.doc

Page 18: 태그기반 파일관리시스템을 적용한 스토리지 시스템

22 시연시연

Page 19: 태그기반 파일관리시스템을 적용한 스토리지 시스템

2시연

설계/구현에 대해 알아보기 전 사용해 보세요

http://ezstorage.khuhacker.com

http://goo.gl/4GMTwE

Page 20: 태그기반 파일관리시스템을 적용한 스토리지 시스템

33 설계 및구현설계 및구현

Page 21: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3전체 ERD

Page 22: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 및 태그 관련 테이블

파일정보

관계정보

태그정보

사용자

파일타입

Page 23: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3

왜 N:M 을 직접 연결하지 않았나?

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id File_id name1 1 학교

2 1 과제

3 2 2015

4 2 학교

5 3 파일처리

tags

파일 및 태그 관련 테이블

Page 24: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3

왜 N:M 을 직접 연결하지 않았나?

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id File_id name1 1 학교

2 1 과제

3 2 2015

4 2 학교

5 3 파일처리

tags

같은태그명이중복!

파일 및 태그 관련 테이블

Page 25: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3참조 테이블을 통한 중복 제거

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name1 학교

2 과제

3 2015

4 파일처리

tags

File_id Tag_id1 1

1 2

1 3

2 1

2 4

파일 및 태그 관련 테이블

Page 26: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3참조 테이블을 통한 중복 제거

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name1 학교

2 과제

3 2015

4 파일처리

tags

File_id Tag_id1 1

1 2

1 3

2 1

2 4

파일 및 태그 관련 테이블

Page 27: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그 수정은 삭제/추가 연산으로

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name1 학교

2 과제

3 2015

4 파일처리

tags

File_id Tag_id1 1

1 2

1 3

2 1

2 4

a.txt 의 학교태그를파일처리로수정하고싶다.

파일 및 태그 관련 테이블

Page 28: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그 수정은 삭제/추가 연산으로

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name1 학교

2 과제

3 2015

4 파일처리

tags

File_id Tag_id1 1

1 2

1 3

2 1

2 4

1 4

File_id : 1 – Tag_id : 1 인 row를 지우고,File_id : 1 – Tag_id : 4 row 를추가

파일 및 태그 관련 테이블

Page 29: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 업로드

파일을 업로드 하는 작업은 2개 작업이 복합되어있다.

과제, 2015, 학교[파일처리]lab06.doc

Page 30: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 업로드

두 작업 중 하나라도 실패시 전체작업이 실패

과제, 2015, 학교[파일처리]lab06.doc

Page 31: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 업로드

하나의 Transaction 으로 작업을 처리

실패 시 Rollback 후 에러반환

Page 32: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 업로드

Page 33: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 업로드

Page 34: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 업로드

insert into eztags (name) values (?) on duplicate key update reference_count=reference_count+1

reference_count : 태그의 참조 횟수

Page 35: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 삭제

파일삭제는 3개의 테이블이 연관되어서 작용

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name count1 학교 2

2 과제 1

3 2015 1

4 파일처리 1

tags

File_id Tag_id1 1

1 2

2 3

2 1

3 4

Page 36: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 삭제

cascade on delete 이용?

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name count1 학교 2

2 과제 1

3 2015 1

4 파일처리 1

tags

File_id Tag_id1 1

1 2

2 3

2 1

3 4

Page 37: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 삭제

파일이 지워지면관계 테이블의 내용은지워진다

하지만 관계 테이블의 cascade 는 감감무소식

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name count1 학교 2

2 과제 1

3 2015 1

4 파일처리 1

tags

File_id Tag_id1 1

1 2

2 3

2 1

3 4

Page 38: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 삭제

Before Delete Trigger를 사용

id name

1 a.txt

2 b.txt

3 c.txt

Storage_file

id name count1 학교 2

2 과제 1

3 2015 1

4 파일처리 1

tags

File_id Tag_id1 1

1 2

2 3

2 1

3 4

Page 39: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 삭제

Page 40: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3파일 삭제

Page 41: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색

2015년에 작성한데이터베이스

중간 발표자료를 찾아줘!!

Page 42: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색

사용자가입력한 태그가 실제 시스템에없을 수 있다.

tag

2015

DB

발표자료

id name

1 2015

2 과제

3 DB

사용자가 입력한 태그 실제 시스템의 태그 테이블

Page 43: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색

검색 절차

1. 사용자가입력한 태그에 해당하는 태그 ID 목록 조회

2. 검색을 요청한사용자 소유의 파일이면서,(1)에서 조회한 태그들을 1개 이상 가진 파일 조회

3. 사용자가입력한 태그 수 대비 (2)의 파일 각각이 가진 태그들의매칭률계산

4. 매칭률로결과를 내림차순 정렬

Page 44: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색

검색 구현 중점 사항

1. 각 단계 별 결과를 어플리케이션까지가져오지 않는다.-> 연결 세션에 한정적인메모리엔진기반임시 테이블 생성

2. 최소의 쿼리를이용하여 검색을 수행하자

3. 결과는 정확해야한다

Page 45: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색 - SQL

절차 1. 사용자가입력한 태그에 해당하는 태그 ID 목록 조회

create TEMPORARY table ttags ENGINE=MEMORY

as (select id from eztags where name in (tags))

Page 46: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색 - SQL

절차 2. 검색을 요청한 사용자소유의 파일이면서, (1)에서 조회한 태그들을1개 이상 가진 파일 조회

create TEMPORARY table files ENGINE=MEMORY

as (select distinct storage_file_id from eztags_has_storage_file

where tags_id in (select id from ttags) and user_id= ?)

Page 47: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색 - SQL

절차 3. 사용자가입력한 태그 수 대비 (2)의 파일 각각이 가진 태그들의매칭률 계산

tag

2015

DB

발표자료

name

2015

과제

DB

사용자가 입력한 태그파일이 가진 태그

차집합name

2015

DB

매칭되는 태그

Page 48: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색 - SQL

절차 3. 사용자가입력한 태그 수 대비 (2)의 파일 각각이 가진 태그들의매칭률 계산

매칭되는 태그 갯수

X 100 = 매칭률전체입력태그갯수

Page 49: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색 - SQL

절차 3. 사용자가입력한 태그 수 대비 (2)의 파일 각각이 가진 태그들의매칭률 계산

select tmp.storage_file_id, ef.name, ft.value from

(select storage_file_id from ttags left join eztags_has_storage_file f on id = f.tags_id where f.storage_file_id=?) as tmp join ezstorage_file as ef

on tmp.storage_file_id = ef.id join ezfile_type as ft on ef.type_id = ft.id

Page 50: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3태그를 이용한 검색 - SQL

절차 3. 사용자가입력한 태그 수 대비 (2)의 파일 각각이 가진 태그들의매칭률 계산

select tmp.storage_file_id, ef.name, ft.value from

(select storage_file_id from ttags left join eztags_has_storage_file f on id = f.tags_id where f.storage_file_id=?) as tmp join ezstorage_file as ef

on tmp.storage_file_id = ef.id join ezfile_type as ft on ef.type_id = ft.id

3중 조인....

Page 51: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3카테고리를 이용한 검색

1학년 포트폴리오

2011년 과제 보고서 발표자료

카테고리의태그가 실제 시스템에없을 수 있다.

하지만 실제 존재하는태그에 대해서는파일이 모두 가지고 있어야한다.

Page 52: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3카테고리를 이용한 검색

검색 절차

1. 카테고리가가진 태그 중, 실제 존재하는 태그이면서사용자가보유한파일들에 포함되는 태그 ID 목록 조회

2. (1)에서 조회한 태그들을 1개 이상 가진 파일 조회

3. 사용자가입력한 태그 수 대비 (2)의 파일 각각이 가진 태그들의매칭률계산

4. 매칭률이 100%인 파일을 필터링

Page 53: 태그기반 파일관리시스템을 적용한 스토리지 시스템

3카테고리를 이용한 검색

절차 1. 카테고리가가진 태그 중, 실제 존재하는태그이면서 사용자가보유한 파일들에포함되는 태그 ID 목록 조회

create TEMPORARY table ttags ENGINE=MEMORY

as (select distinct ec.tags_id as id from eztags_has_categories ec join eztags_has_storage_file ef on (ec.tags_id = ef.tags_id)

where ec.categories_id = ? and ef.user_id = ?)

Page 54: 태그기반 파일관리시스템을 적용한 스토리지 시스템

4 API 명세

Page 55: 태그기반 파일관리시스템을 적용한 스토리지 시스템

44 한계점

Page 56: 태그기반 파일관리시스템을 적용한 스토리지 시스템

4한계점

(1)쿼리 성능 평가 미진행-> 생각보다 join이많이 발생하였다.-> (시간상)대량의 데이터에대한 성능 평가를진행하지 못함

(2) 검색의 결과에대한 Paging 을 고려하지 않음-> 매칭률을 계산하기위해서는전체를 상대로 검색해야한다-> 전체를 검색하되 Paging 을 어떻게 지원할까?

Page 57: 태그기반 파일관리시스템을 적용한 스토리지 시스템

55 결론및활용분야

Page 58: 태그기반 파일관리시스템을 적용한 스토리지 시스템

5결론

스토리지시스템을 직접 손으로 구축해보았다

복잡한 조건이 걸린 검색 기능을 구현해보았다

곰곰히 생각해보니엄청난 기능이다

Page 59: 태그기반 파일관리시스템을 적용한 스토리지 시스템

5활용분야

Page 60: 태그기반 파일관리시스템을 적용한 스토리지 시스템

5활용분야

출처 : http://m.post.naver.com/viewer/postView.nhn?volumeNo=1669760&memberNo=11575417&vType=VERTICAL

Page 61: 태그기반 파일관리시스템을 적용한 스토리지 시스템

5활용분야

출처 : http://m.post.naver.com/viewer/postView.nhn?volumeNo=1669760&memberNo=11575417&vType=VERTICAL

Page 62: 태그기반 파일관리시스템을 적용한 스토리지 시스템

5활용분야

사용자가태그를 입력하는 것을 기계가대신한다면?

스토리지에나의 자료를 저장하는것이 일기가 되고삶의 기록이 될 수 있겠다.

Page 63: 태그기반 파일관리시스템을 적용한 스토리지 시스템

66 Reference

Page 64: 태그기반 파일관리시스템을 적용한 스토리지 시스템

6특허

Page 65: 태그기반 파일관리시스템을 적용한 스토리지 시스템

감사합니다감사합니다