SlideShare a Scribd company logo
1 of 34
IOT(Raspberry Pi3) 기반
"통합관제S/W"
조원
유호선
김동현
신재성
윤지수
목차
1. 프로젝트 개요
2. 프로젝트 개발 일정
3. 프로젝트 개발 인원
4. 프로젝트 개발 시스템 환경
5. 데이터베이스 설계
6. 서버 설계
7. 클라이언트 UI 설계
8. 프로젝트 발표 소감
2
프로젝트 선정 배경
3
개요
자료 : KT 경제경영연구소
국내 IoT 시장의 규모는 2013년 서 부터 빠르게 증가하고 향후 지속적으로 증가하면서 2022년에는
10배 수준으로 확장될 것으로 전망되기에 가장 기본이 되는 홈 시큐리티를 주제로 선정함
4
목표 및 기대효과
개요
영상
데이터
센서
측정값
 웹캠으로 촬영한 영상을 스트리밍으
로 전송하여 웹상에 보여줌,
 한 눈에 영상과 측정값을 확인 가능
 측정 값과 사고, 발생
빈도를 그래프로 시각화
 시각화로 가독성 증가
 센서로 온도, 습도, 화재발
생, 가스누출, 무단침입 여
부 측정
 네트워크 통신으로
웹 서버에 데이터 전송
현장의 영상과 센서 측정값들을 웹에서 실시간으로 확인할 수 있고 현장에서 일어난 사고 이력들을
시간대 별로 그래프로 나타내어 시각적으로 표현하고자 함
수치
시각화
 학교, 물류창고와 같은 안전, 상태변
화 감지가 필요한 분야에 응용
 공장의 Smart Factory 화
 사용자 신뢰성 상승
 홈서비스 보안 강화
기대 효과
5
라즈베리 파이 3
영국 라즈베리 파이(Raspberry Pi) 재단에서 만든
초소형/초저가 PC로 리눅스 운영체제 기반의
RASPBIAN 운영체제를 설치하여 센서 정보를 웹
서버로 전송시키는 역할을 한다
아날로그 DHT11 온습도 센서 모듈
Arduino 전용 온습도 센서로
DHT11센서를 기반으로 온도와
습도를 검출 할 수 있는 센서
초음파 센서
초음파 센서는 가까운 거리에 있
는 물체 혹은 사람의 유,무, 거리
측정, 속도 측정등에 사용 된다
아날로그 가스센서(MQ2)
가스센서로 스모그/메탄/일산화
탄소 여부를 측정
Flame Sensor
760nm ~ 1100nm 불꽃 파장을 감
지항 수 있는 불꽃 센서 모듈
AD/DA Converter PCF8591 Module
아날로그 신호를 디지털로 바꿔
주는 컨버터 모듈
사용 장비
개요
6
프로젝트 개발 범위
Use case diagram
7
프로젝트 개발 일정
개발 일정
일자
11/7 ~
9
11/10 ~
13
11/14 ~
16
11/17 ~
18
11/19 ~
20
11/21 ~
22
11/23 ~
25
11/26 ~
28
11/29 ~
12/4
12/5
주제선정 및 기획회의
(장비 구입 포함)
스토리보드 구성 및 수정
DB 모델링 및 구성
센서 작업 및 데이터 처리
Spring 기본 구조 생성
멤버 작업(로그인 등)
공지사항 게시판
FAQ 게시판
AS 게시판
계약 및 서비스 확인 페이지
웹뷰어 페이지
수정 및 최종테스트
8
프로젝트 개발 인원
개발 인원
김동현
신재성
유호선
윤지수
9
구분 Tool
H/W
RaspberryPI, SensorKit
(온도,습도,가스,화재,초음파,화상카메라)
WAS Apache – Tomcat 8.0
Language Java, Spring, JDBC
DevlopmentTool Eclipse, NetBeans
Database Oracle Database 11g
Etc. HTML5, CSS3, Bootstrap, Json, ajax
프로젝트 개발 환경
개발 환경
10
데이터 베이스 설계
DB 모델링
11
데이터 베이스 설계
테이블 용도
• Member
- 회원의 정보와 계약, 방, 게시판을 묶어주는 요소이다.
컬럼 설명
mid 회원이나 관리자의 고유 id를 담당 (비고: PK)
mpassword 회원이나 관리자의 고유 password를 담당
mname 회원이나 관리자의 이름을 담당
memail 회원이나 관리자의 email를 담당
maddress 회원이나 관리자의 주소를 담당
mtel 회원이나 관리자의 전화번호를 담당
mlevel 회원이나 관리자의 권한을 담당
• Room
- Contract 테이블과 각종 센서들을 묶어주는 요소이다.
컬럼 설명
rid 방의 고유 id를 담당 (비고: Pk)
rname 방의 이름을 담당
rmid Member의 mid와 Room을 연결해주는 담당 (비고: FK - Member의 mid와 연결)
rempty 방이 있는지 없는지를 알려주는 담당
12
• Contract
- 계약의 유무를 회원의 정보와 묶어주는 요소이다.
컬럼 설명
cid 계약의 고유 id를 담당 (비고: PF - Room의 rmid 와 membe의 mid 를 연결)
cfire 화재센서의 신청유무를 담당
cgas 가스센서의 신청유무를 담당
ctemperature 온도,습도의 신청유무를 담당
cvisitor 초음파 거리측정 감지센서의 신청유무를 당당
cview 화상카메라의 신청유무를 담당
• gas, flame, visitor, temperature_humidity
- 룸별로 각종 센서들의 값을 연결해주는 요소이다.
컬럼(중복은 삭제) 설명
id 각종센서의 고유 id를 담당 (비고: PK)
rid 각종센서와 Room 을 연결해주는 담당(비고: FK - Room의 rid와 연결)
date 발생 시간을 알려주는 담당
gas,flame,temperature 각종센서의 수치를 알려주는 담당
state 이벤트 발생의 유무를 담당
데이터 베이스 설계
테이블 용도
13
• BoardNotice, BoardAs, BoardFaq
- 게시판과 회원의 정보를 묶어주는 요소이다.
컬럼(중복은 삭제) 설명
no 게시글의 고유 번호를 담당 (비고: PK)
title 게시글의 제목을 담당
content 게시글의 내용을 담당
writer 게시글의 작성자를 담당(비고: FK - Member의 mid와 연결)
date 게시글의 발생 시간을 알려주는 담당
데이터 베이스 설계
테이블 용도
• IotDevice
- 기계의 작동여부 확인 요소 이다.
컬럼 설명
irid IotDevice의 고유 번호를 담당 (비고: PF - Room의 rid 를 연결)
endofstream Iot 기계의 발생 마지막 시간을 알려주는 담당
• Camera
- 카메라와 라즈베리 파이의 서버를 연결해주는 요소이다.
컬럼 설명
crid Camera의 고유 번호를 담당 (비고: PF - Room의 rid 를 연결)
cconnecturl 카메라와 서버를 연결해주는 URL 주소를 담당
14
서버 설계
Spring 폴더 구조
src/main/resources
src/main/java
com.mycompany.myweb
controller
dao
dto
piserver
piview
service
test
Java 소스 저장
라즈베리파이로부터 받은 데이터 처리를 위한 코드
xml, property 파일 저장
클라이언트 요청 처리
데이터 접근 메소드 정의
계층 간 데이터 교환을 위한 자바 빈즈
비즈니스 로직 중심의 메소드 정의
라즈베리파이로부터 받은 데이터를 DB에 저장
15
서버 설계
Spring 폴더 구조
src/test/java
src/test/resources
JRE System Library
Maven Dependencies
src
target
pom.xml
webapp
resouces
spring
WEB-INF
views
web.xml
main
test
테스트용 java 소스 저장
테스트용 xml, property 파일 저장
웹 어플리케이션 전체 소스 저장
URL로 접근 가능한 image, css, js, 동영상 등 파일 저장
URL로 접근 불가능한 리소스 저장
스프링 설정 파일 저장
JSP 파일 저장
프로젝트 빌드 결과물
Maven 설정 파일
16
서버 설계
UML-Class
controller Service Dao
17
서버 설계
UML-Class
controller Service Dao
MemberController
 관리자의 회원 관리(회원 추가, 삭제, 수정, 조회)를 위한 기능과 회원들의 로그인, 로그
아웃 기능 담당
18
서버 설계
UML-Class
controller Service Dao
BoardAsController
 사용자로부터 AS 문의 작성, 조회, 수정, 삭제 요청을 처리
BoardFaqController
 사용자가 많이 궁금해하는 질문들을 조회할 수 있는 기능 담당
BoardNoticeController
 관리자로부터 사용자들에게 보여질 공지사항을 추가, 조회, 수정, 삭제 요청 처리
ContractController
 라즈베리파이가 서버에 보낸 데이터를 룸, 날짜 별로 DB로부터 받아 계약 사항, 누적된
센서 측정값들을 detail.jsp에서 보여질 그래프에 전달하기 위한 기능 담당
19
서버 설계
UML-Class
controller Service Dao
ServerController
 라즈베리파이에서 네트워크 통신으로 웹 서버에 요청을 보내면 전송받은 측정 데이터값
들을 데이터베이스로 전송하는 기능을 담당
ViewController
 데이터베이스에 저장된 센서 측정값들을 웹뷰어 보기에서 보여주기 위한 기능을 담당
20
controller Service Dao
서버 설계
UML-Class
21
UI 클라이언트 설계
UI 페이지 흐름
메인화면 웹뷰어 보기 서비스 내역
서비스 내역 공지 사항 A/S 문의
22
UI 클라이언트 설계
FAQ 데모보기, 이용약관 등 관리자 메인
회원관리
UI 페이지 흐름
23
UI 클라이언트 설계
메인화면
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• AJAX
- 로그인 기능 구현
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 로그인을 하지 않으면 공
지사항, 이용약관 등을 제외한 서비스
내역을 확인할 수 없음
• 로그인을 하지않고 이용하고자 하는 서
비스에 해당하는 버튼을 누르면 Modal
창으로 로그인이 필요하다고 알려줌
• 로그인 후에 각종 서비스 버튼을 누르
면 Modal 창 안에서 해당 서비스 페이지
를 불러와 서비스 이용이 가능함
• 로그인이 정상적으로 완료되면 로그인
버튼이 사라지고 로그아웃버튼이 나타
나는 방식
• 로그인을 하면 해당하는 유저이름을 가
져와 안녕하세요 ~~님이라고 나타난다
UI 페이지 흐름
24
UI 클라이언트 설계
웹 뷰어 보기
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상 배치 구현
• JavaScript / jQuery
- Event 처리
• AJAX
- 1초 단위로 통신
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 웹뷰어 보기 클릭시
로그인한 유저의 가입된 방들의 서비스
화면이 전체적으로 출력이 된다
(화면을 넘어가면 스크롤 처리)
• 서비스 화면에 우측 상단에서 각종 센
서의 현재 수치를 확인할 수 있다
• 초음파 센서를 이용하여 특정위치의 출
입여부를 알 수 있고 문이 열리면 빨갛
게 문열림 표시가 나온다
• 여러 방 중에 하나를 클릭하면 해당하
는 방의 화면을 크게 볼 수 있고 전체 룸
상태 확인과 마찬가지로 각종 센서의
정보를 우측 상단에서 확인할 수 있다
• Ajax를 이용해 1초 단위로 정보를 계속
가지고 와서 수치를 갱신해준다
UI 페이지 흐름
25
UI 클라이언트 설계
서비스 내역
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상 구현
• JavaScript / jQuery
- Event 처리
• AJAX
- HTTP 비동기 통신
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 서비스내역 버튼을 클릭
하면 계약정보와 특정날짜 기준으로 누
적된 데이터를 차트로 보여주는 Modal
창이 뜬다
• 현재 계약자인 로그인된 사용자의 정보
와 전체 계약된 룸정보가 SelectBox에
전부 표시되고 첫번째 방의 계약정보가
표현된다
• SelectBox에 나온 전체 룸리스트에서 특
정 룸네임을 클릭하면 해당 룸의 계약
정보로 갱신되어 표현된다
(페이지 갱신방식으로 처리됨)
• 계약정보에서 사용자가 계약한 내용은
녹색배경 상자의 체크아이콘으로 표시
되고 계약하지 않은 내용은 회색배경의
박스로 표현이 된다
UI 페이지 흐름
26
UI 클라이언트 설계
서비스 내역
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• JavaScript / jQuery
- Event 처리
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 서비스내역 버튼을
클릭하면 계약정보와 특정날짜 기
준으로 누적된 데이터를 차트로
보여주는 Modal 창이 뜬다
• 데이터는 시간별 평균 온도, 습도,
화제, 가스, 외부인 출입 감지 횟수
가 데이터로 표현된다.
• 현재날짜 기준으로 데이터를 가져
와 차트가 표현되고 만약에 값이
없으면 차트가 표현되지 않는다
• 날짜를 변경하면 해당하는 날짜의
데이터를 가져와 차트가 표현되고
마찬가지로 값이 없으면 표현되지
않는다
UI 페이지 흐름
27
UI 클라이언트 설계
공지 사항
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 공지사항 버튼 클릭
시 Modal 창에서 공지사항 게시판
이 표현된다
• 검색창에서 검색을 원하는 Text를
입력하면 제목+내용 기반으로 데
이터를 찾아와서 해당 내용만 게
시판에 출력된다
• 게시글이 많을때 미리 설정한 게
시글 row수와 페이지 group 을 기
반으로 페이지숫자가 표현되고 특
정페이지에서 게시글 확인하고 목
록으로 나와도 해당 페이지가 유
지된다
UI 페이지 흐름
28
UI 클라이언트 설계
A/S 문의
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 A/S문의 버튼 클릭
시 Modal 창에 A/S 게시판이 표현
된다
• 글쓰기 버튼을 클릭해서 A/S 게시
판에 새로운 글을 작성할 수 있다
• 게시글이 많을때 미리 설정한 게
시글 row수와 페이지 group 을 기
반으로 페이지숫자가 표현되고 특
정페이지에서 게시글 확인하고 목
록으로 나와도 해당 페이지가 유
지된다
UI 페이지 흐름
29
UI 클라이언트 설계
FAQ
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• JavaScript / jQuery
- Event 처리
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 FAQ버튼 클릭시
Modal창에서 FAQ 테이블에 있는
게시물 전체를 불러와서 보여준다
• FAQ 테이블에 Category 컬럼에 있
는 값을 기준으로 상단 버튼 클릭
시 해당 카테고리 게시물만 따로
보여준다
• 질문인 Q 에 해당하는 제목을 누르
면 해당하는 게시글의 답변을 보
여주고 다시 클릭하면 질문만 보
여준다
UI 페이지 흐름
30
UI 클라이언트 설계
데모 보기 및 이용약관, 개인정보 취급 방침
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 각각의 버튼을 클릭
시 해당하는 내용을 보여준다
• 데모보기 클릭시 유투브에 연결되
어 있는 동영상을 볼 수 있게 해준
다
• 이용약관이나 개인정보취급방침
을 클릭하면 각각의 내용들이 나
오고 스크롤을 내려서 확인할 수
있다
UI 페이지 흐름
31
UI 클라이언트 설계
관리자 메인
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인페이지에서 관리자 계정으로
로그인 할 경우 user 계정만 해당
하는 버튼은 사라지고 관리자에게
해당되는 버튼만 보여지게 된다
• 공지사항 및 A/S문의 FAQ 게시판
등 각각 게시글 쓰기를 통해 게시
글을 추가해줄 수 있다
UI 페이지 흐름
32
UI 클라이언트 설계
회원 관리
• HTML5
- 페이지 구조 결정
• CSS3 / Bootstrap
- 모양 및 색상, 배치 구현
• Spring/JSP/SQL
- MVC 패턴으로 구현
• 메인화면에서 관리자 계정으로 로
그인한뒤 회원관리 버튼을 클릭하
면 회원관리 목록이 보여진다
• 전체 가입한 유저 목록이 보여지
고 계약된 값이 없는 유저는 삭제
버튼으로 삭제할 수 있다
• 회원추가 버튼을 클릭해서 회원을
추가할 수 있고 계약은 별도로 추
가해주어야 한다
UI 페이지 흐름
33
프로젝트 소감
프로젝트 소감
김동현
무엇을 해야할지 한없이 막막한 적도 있었
고 기획부터 마무리까지 우여곡절도 있었
지만 그 하나하나의 과정들 속에서 배우는
것도 많았고 프로젝트를 통해 수업 내용을
자기화 하는 시간들이 좋았습니다.
유호선
프로젝트를 진행하면서 시행착오를 통해
여러가지를 학습할 수 있어서 유익했고, 무
엇보다 크게 얻은 것은 팀 원들과 동고동락
하면서 협업하고 프로젝트를 완성하며 얻
든 값진 경험이라 생각합니다.
신재성
비전공으로 시작한지 벌써 4개월이 지난
지금 프로젝트를 진행해오며
프로젝트 시작 전보다 더 발전 한 모습을
보며 노력하면 안되는 것은 없다는 것을
다시금 느끼게 되었습니다.
윤지수
수업시간에 배우면서 알고 있다고 생각했
던 내용들이 프로젝트를 하면서 새롭게 다
가오는 걸 느꼈습니다. 같은 기술이라도 상
황이나 응용하기에 따라 더 쉽거나 더 어렵
게 사용할 수도 있고 그 몫은 본인이 얼마나
알고있는가에 달려있다는 것을 통감했습
니다.
THANKS

More Related Content

What's hot

임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?흥배 최
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전Sukwoo Lee
 
황규영 포트폴리오
황규영 포트폴리오황규영 포트폴리오
황규영 포트폴리오Q_0
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁KWANGIL KIM
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
김종욱 포트폴리오
김종욱 포트폴리오김종욱 포트폴리오
김종욱 포트폴리오Jonguk Kim
 
정혜인 포트폴리오
정혜인 포트폴리오정혜인 포트폴리오
정혜인 포트폴리오henni31
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxTonyCms
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012Esun Kim
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자TonyCms
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬KyeongWon Koo
 
웹 프로그래밍 팀프로젝트 최종발표
웹 프로그래밍 팀프로젝트 최종발표웹 프로그래밍 팀프로젝트 최종발표
웹 프로그래밍 팀프로젝트 최종발표Seong Heum Park
 
진민완 포트폴리오
진민완 포트폴리오진민완 포트폴리오
진민완 포트폴리오민완 진
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyunjaeyunjeong1
 
Unreal python
Unreal pythonUnreal python
Unreal pythonTonyCms
 

What's hot (20)

임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
황규영 포트폴리오
황규영 포트폴리오황규영 포트폴리오
황규영 포트폴리오
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
김종욱 포트폴리오
김종욱 포트폴리오김종욱 포트폴리오
김종욱 포트폴리오
 
정혜인 포트폴리오
정혜인 포트폴리오정혜인 포트폴리오
정혜인 포트폴리오
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
 
GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자GameInstance에 대해서 알아보자
GameInstance에 대해서 알아보자
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
 
웹 프로그래밍 팀프로젝트 최종발표
웹 프로그래밍 팀프로젝트 최종발표웹 프로그래밍 팀프로젝트 최종발표
웹 프로그래밍 팀프로젝트 최종발표
 
진민완 포트폴리오
진민완 포트폴리오진민완 포트폴리오
진민완 포트폴리오
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyun
 
Unreal python
Unreal pythonUnreal python
Unreal python
 

Similar to 2조 프로젝트 보고서 김동현

프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용중선 곽
 
[경북] I'mcloud openlight
[경북] I'mcloud openlight[경북] I'mcloud openlight
[경북] I'mcloud openlightstartupkorea
 
Web develop UI/UX Tool 'SBUx'
Web develop UI/UX Tool 'SBUx'Web develop UI/UX Tool 'SBUx'
Web develop UI/UX Tool 'SBUx'ssuser4e0be8
 
웹사이트기획 및 관리
웹사이트기획 및 관리웹사이트기획 및 관리
웹사이트기획 및 관리봉조 김
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)Sang Don Kim
 
이벤트: 마이크로서비스 도입, 이렇게 한다
이벤트: 마이크로서비스 도입, 이렇게 한다이벤트: 마이크로서비스 도입, 이렇게 한다
이벤트: 마이크로서비스 도입, 이렇게 한다Jay Park
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게Sungju Jin
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장sung ki choi
 
중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고embian
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Inho Kwon
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵중선 곽
 
과정 커리큘럼
과정 커리큘럼과정 커리큘럼
과정 커리큘럼John Seo
 
Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Sukjoon Kim
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.효근 박
 

Similar to 2조 프로젝트 보고서 김동현 (20)

프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
[경북] I'mcloud openlight
[경북] I'mcloud openlight[경북] I'mcloud openlight
[경북] I'mcloud openlight
 
Web develop UI/UX Tool 'SBUx'
Web develop UI/UX Tool 'SBUx'Web develop UI/UX Tool 'SBUx'
Web develop UI/UX Tool 'SBUx'
 
웹사이트기획 및 관리
웹사이트기획 및 관리웹사이트기획 및 관리
웹사이트기획 및 관리
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
 
이벤트: 마이크로서비스 도입, 이렇게 한다
이벤트: 마이크로서비스 도입, 이렇게 한다이벤트: 마이크로서비스 도입, 이렇게 한다
이벤트: 마이크로서비스 도입, 이렇게 한다
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
Portfolio
PortfolioPortfolio
Portfolio
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵
 
Html5
Html5 Html5
Html5
 
과정 커리큘럼
과정 커리큘럼과정 커리큘럼
과정 커리큘럼
 
Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 

2조 프로젝트 보고서 김동현

  • 2. 목차 1. 프로젝트 개요 2. 프로젝트 개발 일정 3. 프로젝트 개발 인원 4. 프로젝트 개발 시스템 환경 5. 데이터베이스 설계 6. 서버 설계 7. 클라이언트 UI 설계 8. 프로젝트 발표 소감 2
  • 3. 프로젝트 선정 배경 3 개요 자료 : KT 경제경영연구소 국내 IoT 시장의 규모는 2013년 서 부터 빠르게 증가하고 향후 지속적으로 증가하면서 2022년에는 10배 수준으로 확장될 것으로 전망되기에 가장 기본이 되는 홈 시큐리티를 주제로 선정함
  • 4. 4 목표 및 기대효과 개요 영상 데이터 센서 측정값  웹캠으로 촬영한 영상을 스트리밍으 로 전송하여 웹상에 보여줌,  한 눈에 영상과 측정값을 확인 가능  측정 값과 사고, 발생 빈도를 그래프로 시각화  시각화로 가독성 증가  센서로 온도, 습도, 화재발 생, 가스누출, 무단침입 여 부 측정  네트워크 통신으로 웹 서버에 데이터 전송 현장의 영상과 센서 측정값들을 웹에서 실시간으로 확인할 수 있고 현장에서 일어난 사고 이력들을 시간대 별로 그래프로 나타내어 시각적으로 표현하고자 함 수치 시각화  학교, 물류창고와 같은 안전, 상태변 화 감지가 필요한 분야에 응용  공장의 Smart Factory 화  사용자 신뢰성 상승  홈서비스 보안 강화 기대 효과
  • 5. 5 라즈베리 파이 3 영국 라즈베리 파이(Raspberry Pi) 재단에서 만든 초소형/초저가 PC로 리눅스 운영체제 기반의 RASPBIAN 운영체제를 설치하여 센서 정보를 웹 서버로 전송시키는 역할을 한다 아날로그 DHT11 온습도 센서 모듈 Arduino 전용 온습도 센서로 DHT11센서를 기반으로 온도와 습도를 검출 할 수 있는 센서 초음파 센서 초음파 센서는 가까운 거리에 있 는 물체 혹은 사람의 유,무, 거리 측정, 속도 측정등에 사용 된다 아날로그 가스센서(MQ2) 가스센서로 스모그/메탄/일산화 탄소 여부를 측정 Flame Sensor 760nm ~ 1100nm 불꽃 파장을 감 지항 수 있는 불꽃 센서 모듈 AD/DA Converter PCF8591 Module 아날로그 신호를 디지털로 바꿔 주는 컨버터 모듈 사용 장비 개요
  • 7. 7 프로젝트 개발 일정 개발 일정 일자 11/7 ~ 9 11/10 ~ 13 11/14 ~ 16 11/17 ~ 18 11/19 ~ 20 11/21 ~ 22 11/23 ~ 25 11/26 ~ 28 11/29 ~ 12/4 12/5 주제선정 및 기획회의 (장비 구입 포함) 스토리보드 구성 및 수정 DB 모델링 및 구성 센서 작업 및 데이터 처리 Spring 기본 구조 생성 멤버 작업(로그인 등) 공지사항 게시판 FAQ 게시판 AS 게시판 계약 및 서비스 확인 페이지 웹뷰어 페이지 수정 및 최종테스트
  • 8. 8 프로젝트 개발 인원 개발 인원 김동현 신재성 유호선 윤지수
  • 9. 9 구분 Tool H/W RaspberryPI, SensorKit (온도,습도,가스,화재,초음파,화상카메라) WAS Apache – Tomcat 8.0 Language Java, Spring, JDBC DevlopmentTool Eclipse, NetBeans Database Oracle Database 11g Etc. HTML5, CSS3, Bootstrap, Json, ajax 프로젝트 개발 환경 개발 환경
  • 11. 11 데이터 베이스 설계 테이블 용도 • Member - 회원의 정보와 계약, 방, 게시판을 묶어주는 요소이다. 컬럼 설명 mid 회원이나 관리자의 고유 id를 담당 (비고: PK) mpassword 회원이나 관리자의 고유 password를 담당 mname 회원이나 관리자의 이름을 담당 memail 회원이나 관리자의 email를 담당 maddress 회원이나 관리자의 주소를 담당 mtel 회원이나 관리자의 전화번호를 담당 mlevel 회원이나 관리자의 권한을 담당 • Room - Contract 테이블과 각종 센서들을 묶어주는 요소이다. 컬럼 설명 rid 방의 고유 id를 담당 (비고: Pk) rname 방의 이름을 담당 rmid Member의 mid와 Room을 연결해주는 담당 (비고: FK - Member의 mid와 연결) rempty 방이 있는지 없는지를 알려주는 담당
  • 12. 12 • Contract - 계약의 유무를 회원의 정보와 묶어주는 요소이다. 컬럼 설명 cid 계약의 고유 id를 담당 (비고: PF - Room의 rmid 와 membe의 mid 를 연결) cfire 화재센서의 신청유무를 담당 cgas 가스센서의 신청유무를 담당 ctemperature 온도,습도의 신청유무를 담당 cvisitor 초음파 거리측정 감지센서의 신청유무를 당당 cview 화상카메라의 신청유무를 담당 • gas, flame, visitor, temperature_humidity - 룸별로 각종 센서들의 값을 연결해주는 요소이다. 컬럼(중복은 삭제) 설명 id 각종센서의 고유 id를 담당 (비고: PK) rid 각종센서와 Room 을 연결해주는 담당(비고: FK - Room의 rid와 연결) date 발생 시간을 알려주는 담당 gas,flame,temperature 각종센서의 수치를 알려주는 담당 state 이벤트 발생의 유무를 담당 데이터 베이스 설계 테이블 용도
  • 13. 13 • BoardNotice, BoardAs, BoardFaq - 게시판과 회원의 정보를 묶어주는 요소이다. 컬럼(중복은 삭제) 설명 no 게시글의 고유 번호를 담당 (비고: PK) title 게시글의 제목을 담당 content 게시글의 내용을 담당 writer 게시글의 작성자를 담당(비고: FK - Member의 mid와 연결) date 게시글의 발생 시간을 알려주는 담당 데이터 베이스 설계 테이블 용도 • IotDevice - 기계의 작동여부 확인 요소 이다. 컬럼 설명 irid IotDevice의 고유 번호를 담당 (비고: PF - Room의 rid 를 연결) endofstream Iot 기계의 발생 마지막 시간을 알려주는 담당 • Camera - 카메라와 라즈베리 파이의 서버를 연결해주는 요소이다. 컬럼 설명 crid Camera의 고유 번호를 담당 (비고: PF - Room의 rid 를 연결) cconnecturl 카메라와 서버를 연결해주는 URL 주소를 담당
  • 14. 14 서버 설계 Spring 폴더 구조 src/main/resources src/main/java com.mycompany.myweb controller dao dto piserver piview service test Java 소스 저장 라즈베리파이로부터 받은 데이터 처리를 위한 코드 xml, property 파일 저장 클라이언트 요청 처리 데이터 접근 메소드 정의 계층 간 데이터 교환을 위한 자바 빈즈 비즈니스 로직 중심의 메소드 정의 라즈베리파이로부터 받은 데이터를 DB에 저장
  • 15. 15 서버 설계 Spring 폴더 구조 src/test/java src/test/resources JRE System Library Maven Dependencies src target pom.xml webapp resouces spring WEB-INF views web.xml main test 테스트용 java 소스 저장 테스트용 xml, property 파일 저장 웹 어플리케이션 전체 소스 저장 URL로 접근 가능한 image, css, js, 동영상 등 파일 저장 URL로 접근 불가능한 리소스 저장 스프링 설정 파일 저장 JSP 파일 저장 프로젝트 빌드 결과물 Maven 설정 파일
  • 17. 17 서버 설계 UML-Class controller Service Dao MemberController  관리자의 회원 관리(회원 추가, 삭제, 수정, 조회)를 위한 기능과 회원들의 로그인, 로그 아웃 기능 담당
  • 18. 18 서버 설계 UML-Class controller Service Dao BoardAsController  사용자로부터 AS 문의 작성, 조회, 수정, 삭제 요청을 처리 BoardFaqController  사용자가 많이 궁금해하는 질문들을 조회할 수 있는 기능 담당 BoardNoticeController  관리자로부터 사용자들에게 보여질 공지사항을 추가, 조회, 수정, 삭제 요청 처리
  • 19. ContractController  라즈베리파이가 서버에 보낸 데이터를 룸, 날짜 별로 DB로부터 받아 계약 사항, 누적된 센서 측정값들을 detail.jsp에서 보여질 그래프에 전달하기 위한 기능 담당 19 서버 설계 UML-Class controller Service Dao
  • 20. ServerController  라즈베리파이에서 네트워크 통신으로 웹 서버에 요청을 보내면 전송받은 측정 데이터값 들을 데이터베이스로 전송하는 기능을 담당 ViewController  데이터베이스에 저장된 센서 측정값들을 웹뷰어 보기에서 보여주기 위한 기능을 담당 20 controller Service Dao 서버 설계 UML-Class
  • 21. 21 UI 클라이언트 설계 UI 페이지 흐름 메인화면 웹뷰어 보기 서비스 내역 서비스 내역 공지 사항 A/S 문의
  • 22. 22 UI 클라이언트 설계 FAQ 데모보기, 이용약관 등 관리자 메인 회원관리 UI 페이지 흐름
  • 23. 23 UI 클라이언트 설계 메인화면 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • AJAX - 로그인 기능 구현 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 로그인을 하지 않으면 공 지사항, 이용약관 등을 제외한 서비스 내역을 확인할 수 없음 • 로그인을 하지않고 이용하고자 하는 서 비스에 해당하는 버튼을 누르면 Modal 창으로 로그인이 필요하다고 알려줌 • 로그인 후에 각종 서비스 버튼을 누르 면 Modal 창 안에서 해당 서비스 페이지 를 불러와 서비스 이용이 가능함 • 로그인이 정상적으로 완료되면 로그인 버튼이 사라지고 로그아웃버튼이 나타 나는 방식 • 로그인을 하면 해당하는 유저이름을 가 져와 안녕하세요 ~~님이라고 나타난다 UI 페이지 흐름
  • 24. 24 UI 클라이언트 설계 웹 뷰어 보기 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상 배치 구현 • JavaScript / jQuery - Event 처리 • AJAX - 1초 단위로 통신 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 웹뷰어 보기 클릭시 로그인한 유저의 가입된 방들의 서비스 화면이 전체적으로 출력이 된다 (화면을 넘어가면 스크롤 처리) • 서비스 화면에 우측 상단에서 각종 센 서의 현재 수치를 확인할 수 있다 • 초음파 센서를 이용하여 특정위치의 출 입여부를 알 수 있고 문이 열리면 빨갛 게 문열림 표시가 나온다 • 여러 방 중에 하나를 클릭하면 해당하 는 방의 화면을 크게 볼 수 있고 전체 룸 상태 확인과 마찬가지로 각종 센서의 정보를 우측 상단에서 확인할 수 있다 • Ajax를 이용해 1초 단위로 정보를 계속 가지고 와서 수치를 갱신해준다 UI 페이지 흐름
  • 25. 25 UI 클라이언트 설계 서비스 내역 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상 구현 • JavaScript / jQuery - Event 처리 • AJAX - HTTP 비동기 통신 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 서비스내역 버튼을 클릭 하면 계약정보와 특정날짜 기준으로 누 적된 데이터를 차트로 보여주는 Modal 창이 뜬다 • 현재 계약자인 로그인된 사용자의 정보 와 전체 계약된 룸정보가 SelectBox에 전부 표시되고 첫번째 방의 계약정보가 표현된다 • SelectBox에 나온 전체 룸리스트에서 특 정 룸네임을 클릭하면 해당 룸의 계약 정보로 갱신되어 표현된다 (페이지 갱신방식으로 처리됨) • 계약정보에서 사용자가 계약한 내용은 녹색배경 상자의 체크아이콘으로 표시 되고 계약하지 않은 내용은 회색배경의 박스로 표현이 된다 UI 페이지 흐름
  • 26. 26 UI 클라이언트 설계 서비스 내역 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • JavaScript / jQuery - Event 처리 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 서비스내역 버튼을 클릭하면 계약정보와 특정날짜 기 준으로 누적된 데이터를 차트로 보여주는 Modal 창이 뜬다 • 데이터는 시간별 평균 온도, 습도, 화제, 가스, 외부인 출입 감지 횟수 가 데이터로 표현된다. • 현재날짜 기준으로 데이터를 가져 와 차트가 표현되고 만약에 값이 없으면 차트가 표현되지 않는다 • 날짜를 변경하면 해당하는 날짜의 데이터를 가져와 차트가 표현되고 마찬가지로 값이 없으면 표현되지 않는다 UI 페이지 흐름
  • 27. 27 UI 클라이언트 설계 공지 사항 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 공지사항 버튼 클릭 시 Modal 창에서 공지사항 게시판 이 표현된다 • 검색창에서 검색을 원하는 Text를 입력하면 제목+내용 기반으로 데 이터를 찾아와서 해당 내용만 게 시판에 출력된다 • 게시글이 많을때 미리 설정한 게 시글 row수와 페이지 group 을 기 반으로 페이지숫자가 표현되고 특 정페이지에서 게시글 확인하고 목 록으로 나와도 해당 페이지가 유 지된다 UI 페이지 흐름
  • 28. 28 UI 클라이언트 설계 A/S 문의 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 A/S문의 버튼 클릭 시 Modal 창에 A/S 게시판이 표현 된다 • 글쓰기 버튼을 클릭해서 A/S 게시 판에 새로운 글을 작성할 수 있다 • 게시글이 많을때 미리 설정한 게 시글 row수와 페이지 group 을 기 반으로 페이지숫자가 표현되고 특 정페이지에서 게시글 확인하고 목 록으로 나와도 해당 페이지가 유 지된다 UI 페이지 흐름
  • 29. 29 UI 클라이언트 설계 FAQ • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • JavaScript / jQuery - Event 처리 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 FAQ버튼 클릭시 Modal창에서 FAQ 테이블에 있는 게시물 전체를 불러와서 보여준다 • FAQ 테이블에 Category 컬럼에 있 는 값을 기준으로 상단 버튼 클릭 시 해당 카테고리 게시물만 따로 보여준다 • 질문인 Q 에 해당하는 제목을 누르 면 해당하는 게시글의 답변을 보 여주고 다시 클릭하면 질문만 보 여준다 UI 페이지 흐름
  • 30. 30 UI 클라이언트 설계 데모 보기 및 이용약관, 개인정보 취급 방침 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 각각의 버튼을 클릭 시 해당하는 내용을 보여준다 • 데모보기 클릭시 유투브에 연결되 어 있는 동영상을 볼 수 있게 해준 다 • 이용약관이나 개인정보취급방침 을 클릭하면 각각의 내용들이 나 오고 스크롤을 내려서 확인할 수 있다 UI 페이지 흐름
  • 31. 31 UI 클라이언트 설계 관리자 메인 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인페이지에서 관리자 계정으로 로그인 할 경우 user 계정만 해당 하는 버튼은 사라지고 관리자에게 해당되는 버튼만 보여지게 된다 • 공지사항 및 A/S문의 FAQ 게시판 등 각각 게시글 쓰기를 통해 게시 글을 추가해줄 수 있다 UI 페이지 흐름
  • 32. 32 UI 클라이언트 설계 회원 관리 • HTML5 - 페이지 구조 결정 • CSS3 / Bootstrap - 모양 및 색상, 배치 구현 • Spring/JSP/SQL - MVC 패턴으로 구현 • 메인화면에서 관리자 계정으로 로 그인한뒤 회원관리 버튼을 클릭하 면 회원관리 목록이 보여진다 • 전체 가입한 유저 목록이 보여지 고 계약된 값이 없는 유저는 삭제 버튼으로 삭제할 수 있다 • 회원추가 버튼을 클릭해서 회원을 추가할 수 있고 계약은 별도로 추 가해주어야 한다 UI 페이지 흐름
  • 33. 33 프로젝트 소감 프로젝트 소감 김동현 무엇을 해야할지 한없이 막막한 적도 있었 고 기획부터 마무리까지 우여곡절도 있었 지만 그 하나하나의 과정들 속에서 배우는 것도 많았고 프로젝트를 통해 수업 내용을 자기화 하는 시간들이 좋았습니다. 유호선 프로젝트를 진행하면서 시행착오를 통해 여러가지를 학습할 수 있어서 유익했고, 무 엇보다 크게 얻은 것은 팀 원들과 동고동락 하면서 협업하고 프로젝트를 완성하며 얻 든 값진 경험이라 생각합니다. 신재성 비전공으로 시작한지 벌써 4개월이 지난 지금 프로젝트를 진행해오며 프로젝트 시작 전보다 더 발전 한 모습을 보며 노력하면 안되는 것은 없다는 것을 다시금 느끼게 되었습니다. 윤지수 수업시간에 배우면서 알고 있다고 생각했 던 내용들이 프로젝트를 하면서 새롭게 다 가오는 걸 느꼈습니다. 같은 기술이라도 상 황이나 응용하기에 따라 더 쉽거나 더 어렵 게 사용할 수도 있고 그 몫은 본인이 얼마나 알고있는가에 달려있다는 것을 통감했습 니다.