2. -1-
A. 프로젝트 목표
기존 학사관리시스템보다 웹 접근성을 높인 스프링 프레임워크를 활용한 자바 어플리케이션
오픈소스를 적극 활용 생산성과 SW품질을 보증한다
Git을 통해 효율적으로 프로젝트 일정과 소스코드를 관리한다
B. 프로젝트 구성요소와 도구
1. 사용된 프로그램
서버 Tomcat 7(Servlet Container)
DBMS(In Guest Machine) Oracle 11gR2 Enterprise
IDE STS
DB tool SQL Developer, SQL Data Modeler
Guest Machine VMware Player Oracle Linux 6.5 x64
Java Compiler Oracle JDK 1.7 SE
SCM(소스 코드 관리) Git(Bitbuck)
Front-end Design tool Chrome 개발자 도구
Buildtool Gradle(의존성관리 및 유닛 테스트)
2. 테스트환경
서버 Tomcat 7 In STS(Embeded) x64
DBMS(In Guest Machine) Oracle 11gR2 Enterprise x64
Host OS Window 8.1 Pro K x64
Guest Machine VMware Player Oracle Linux 6.5 x64
JRE Oracle 1.7 SE x64
3. 배포환경
Host OS Windows Server 2008 R2 x86
서버 Tomcat 7 x86
DBMS(In Guest Machine) Oracle 11gR2 Enterprise x64
Guest Machine VMware Player Oracle Linux 6.5 x64
JRE Oracle 1.6 SE x86
3. -2-
4. Front-end Library
Bootstrap 3.1 CSS3 미디어쿼리 활용한 반응형 웹 및 콤포넌트
Jquery 1.11.1 자바스크립트 로우 레벨 필수 라이브러리
jquery-timepicker 시간 입력 콤포넌트
Kalendae 달력UI를 통해 날짜 선택 콤포넌트
bootstrap-calendar 스케줄링 서비스를 위한 달력 콤포넌트
Font Awesome 아이콘 CDN 서비스
Summernote 반응형 웹 에디터
5. Back-end Library
Spring Context IoC, DI 스프링 핵심 코어
Spring Web MVC Web MVC 패턴 구현을 위한 라이브러리
Mybatis 기존 JDBC보다 편하고 진보된 라이브러리
Spring Security 권한, 세션 등의 강력한 보안기능
JSOUP JAVA용 HTML DOM파싱 라이브러리(XSS 방어용)
Jackson JAVA용 JSON 라이브러리
Log4j & Slf4j 로깅프레임워크
Ojdbc6 11g Oracle 용 JDBC
commons-fileupload Apache 공통 파일업로드 라이브러리
mybatis-spring Spring과 Mybatis간 연동
C. UI(Front-end)
HTML5 + CSS3를 활용 웹 접근성을 향상 디바이스별 서비스 제약이 없다.
다양한 컴포넌트를 활용 생산성향상
가로 772px 이하면 모바일 UI로 바뀐다
6. -5-
D. Server(Back-end)
부하를 줄이려면 JVM GC(쓰레기 객체)를 줄여야한다. 때문에 new 키워드를 통해 매번 인스턴스를 생성
하지않고 DB에 넣기전 임시로 쓰는 Collection 같은경우 스프링 빈에 등록하여 사용한다.
같은 계정이 로그인하면 기존 세션은 파괴된다.
http세션은 부하가 심하기 때문에 아이디, 권한, 닉네임만 저장한다.
로그인에러, 권한에러 같은 특수한 페이지를 제외하고 모든 URL과 웹페이지는 권한별로 접근 제한된다.
부하 감소를 위해 문자열, 날짜, 시간 간의 파싱 작업은 모두 DBMS에 일임한다.
7. -6-
E. DB Schema
인덱스를 활용 조회속도를 높인다 또한 인덱스만 저장하는 테이블 스페이스를 할당한다
어플리케이션용 계정을 만들고 테이블스페이스를 개별할당한다
DB부하를 대비 제약조건은 최대한 자제하고 http세션을 활용 어플리케이션 계층에서 자바코드로 해
결한다
1. ERD