1. 개발환경 및 시스템구성도
* 개발환경
개발언어 : Java, JSP, Javascript, HTML5
Ø
Web 기반 하이브리드 웹앱
웹 프레임 워크 : Spring MVC 3.0
Ø
최신 Restful, Json, Web 기술 사용
데이터베이스 : Oracle XE 10G
Ø
Sql Developer 사용
자바스크립트 Lib : Sencha Touch 2.0, jquery 등
Ø
앱 스타일의 UI구현 및 단말기능 지원
ORM :
I-batis
Ø
동적 쿼리, 트랜잭션 관리, 효율적인 쿼리 관리
* 시스템구성도
2. 기능 설계
3. 기능 상세 명세
번호
|
이름
|
설명
|
1
|
SNS
리스트
뷰
|
게시글 리스트를 그룹별로 표시
|
1-1.
|
열람범위 선택
|
열람범위별(전체,
동아리, 개인)로 게시글 표시
|
1-2.
|
글쓰기(버튼)
|
SNS 글쓰기 폼으로 이동
|
1-3
|
인기 게시글 표시
|
최근 추천을 많이 받은 게시글을 리스트의 최상단에 표시
|
2
|
SNS
글쓰기
폼 뷰
|
SNS 글 등록을 위한 폼 뷰
|
2-1
|
공개범위 선택
|
게시될 공개범위 선택(전체, 동아리, 개인)
|
2-2
|
설문(공감) 선택기능
|
설문이 필요한 게시글에 경우 체크하면 동적으로 설문지 추가(의견 중복 체크 허용 여부 선택가능)
|
2-3
|
글쓰기(버튼)
|
공개범위(그룹)
및 포스팅 타입 정의 후 포스팅
|
3
|
게시글 세부조회 뷰
|
게시글과 댓글리스트 조회
|
3-1
|
댓글 입력 칸& 버튼
|
해당 게시글에 댓글을 입력하는 폼
|
3-2
|
SNS 게시글 추천 버튼
|
작성자 프로필 조회
게시글 추천 – 작성자에게
알림 이벤트 발생
설문이 포함된 게시글일 경우 설문리스트가 보임
|
3-3
|
댓글리스트 조회
|
댓글리스트 표시 - 최상단에 최다추천댓글 표시
|
4
|
SNS 알림기능
|
메인의 알림 표시 버튼(뷰)
|
4-1
|
게시글 추천시 알람
|
게시글이 추천되면 게시자에게 알람
|
4-2
|
댓글 작성시 알람
|
게시글에 댓글이 달리면 게시글 작성자에게 알람
|
4-3
|
댓글 추천시 알람
|
댓글이 추천되면 댓글 작성자에게 알람
|
5
|
프로필 기능
|
프로필 조회/수정/설정/로그아웃 등
|
6
|
동아리 기능
|
동아리 생성/가입/탈퇴/조회 등
|
4. 데이터베이스 명세(ER 다이어그램)
데이터 베이스 (테이블, 뷰, 트리거, 시퀀스) 스키마
* 테이블
-
GROUP_INFO // 그룹 정보 테이블
-
GROUP_MEMBER // 그룹에 소속된 회원정보테이블
-
MEMBER // 회원 정보 테이블
-
MEMBER_AUTH // 회원 권한 테이블
-
MEMBER_DEPT // 회원 소속정보 테이블
-
MEMBER_DUTY // 회원 소속 권한 테이블
-
MEMBER_REVEAL // 회원 정보 공개여부 테이블
- SNS_ARTICLE // 게시글 테이블
- SNS_REPLY // 게시글에 대한 댓글 테이블
- SNS_ARTICLE_OPINION // 게시글에 대한 설문 테이블
- SNS_MEMBER_OPINION //
설문에 대한 회원 테이블(설문에
참여한 회원정보)
- SNS_REACTION // 게시글에 대한 회원의 반응(게시글을 추천한 회원정보)
- EVENT_LOG // 알람 로그 테이블
* 뷰
- V_SNS //
게시글에 대한 조인 뷰(글쓴이, 그룹정보 포함)
- V_REPLY //
게시글 댓글에 대한 조인 뷰
- V_GROUP // 그룹에 대한 조인 뷰
- V_MEMBER // 회원에 대한 조인 뷰
- V_PROFILE // 회원 정보에 대한 조인뷰(공개여부관련)
- V_SYSTIME_MILI // ..분/시간/일
전 등 시간표시를 위한 SYSTIMEMILI 테이블
- V_EVENT // 알람에 대한 조인 뷰
* 시퀀스(대표 3개
시퀀스: 테이블 PK별로 생성)
-
시퀀스 : SNS_ARTICLE_SEQ // 게시글에 대한 시퀀스
- 시퀀스 : SNS_REPLY_SEQ // 댓글에 대한 시퀀스
- 시퀀스 : EVENT_LOG_SEQ // 알람에 대한 시퀀스
* 트리거
- 트리거 : EVENT_SNS_ARTICLE_TGR //
게시글에 추천될경우 EVENT_LOG, SNS_REACTION에insert
- 트리거 : EVENT_SNS_REPLY_TGR //
댓글에 추천될경우 EVENT_LOG, SNS_REACTION에insert
- 트리거 : EVENT_SNS_TGR //
게시글에 댓글이 달릴경우 EVENT_LOG에 insert
5. 코드 명세
Client(Javascript
- Sencha .js파일)
* SNS part
- /noah/WebContent/resources/sky/app/controller/SnsController.js // SNS 이벤트 컨트롤러
- /noah/WebContent/resources/sky/app/controller/SnsInterestController.js // SNS 관심메뉴 컨트롤러
- /noah/WebContent/resources/sky/app/model/SnsListModel.js // 게시글 리스트 모델
- /noah/WebContent/resources/sky/app/model/SnsOpinionModel.js // 설문 모델
- /noah/WebContent/resources/sky/app/model/SnsReplyModel.js // 답글 모델
- /noah/WebContent/resources/sky/app/store/SnsListStore.js // 게시글리스트 스토어
- /noah/WebContent/resources/sky/app/store/SnsMyListStore.js // 내글보기 스토어
- /noah/WebContent/resources/sky/app/store/SnsOpinionStore.js // 설문 스토어
- /noah/WebContent/resources/sky/app/store/SnsReplyStore.js // 답글 스토어
* EVENT part
- /noah/WebContent/resources/sky/app/store/SnsReplyStore.js // 알람 컨트롤러
- /noah/WebContent/resources/sky/app/store/EventModel.js // 알람 모델
- /noah/WebContent/resources/sky/app/store/EventStore.js // 알람 스토어
Server(java,
xml) > 서버단은 알람 파트도 같은 소스에서 구현됨.
- /noah/src/seine/db/vo/SnsVO.java //
SNS뷰 오브젝트
- /noah/src/seine/noah/controller/AbstractSnsController.java // SNS컨트롤러 추상클래스
- /noah/src/seine/noah/service/ImplementSnsActions.java // SNS컨트롤러 구현클래스
- /noah/src/seine/db/dao/SnsDAO.java //
SNS DB접근 모델
- /noah/src/seine/db/sqlmaps/sns.xml //
SNS DB 쿼리 파일들
6. 스크린샷