반응형

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_REACTIONinsert

- 트리거  :             EVENT_SNS_REPLY_TGR      // 댓글에 추천될경우 EVENT_LOG, SNS_REACTIONinsert

- 트리거  :             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. 스크린샷




반응형
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,