20/09/14 웹 프로그래밍 (db properties 연결, DBCP)
<lombok 이용해 JAVA Bean 규약에 맞는 VO 만들기>
수정사항에 유연한 대처가능
의존객체 생성 과정을 캡슐화(숨김) 가능
롬복: 플러그인 형태로 jar 설치해주는 것 중요! (관리자 버전으로 cmd쓰고,,, ..)
<Statement 사용하면 SQL Injection에 취약하므로 PreparedStatement를 쓰자>
www.kisa.or.kr/public/laws/laws3_View.jsp?cPage=6&mode=view&p_No=259&b_No=259&d_No=55&ST=T&SV=
기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원
기술안내서 가이드 기술안내서 가이드 상세보기 제목 JAVA 시큐어코딩 가이드 담당자 전자정부보호팀 박양환 전화 061-820-1652 이메일 등록일 2016-03-18 조회수 60706 첨부파일 코딩가이드(Java)_V1.2
www.kisa.or.kr
SQL Injection:
'3333' or '1'='1
<DBCP(DataBase Connection Pooling)>
JDBC 드라이버 설정할 때 driverManager 쓰면 oracle, MySql 등 벤더가 바뀔때마다 바꿔야하기때문에 대신 dataSource + 커넥션 풀링을 이용하는게 좋다
BasicDataSource <commons.apache.org/proper/commons-dbcp/>
Basic implementation of javax.sql.DataSource that is configured via JavaBeans properties. This is not the only way to combine the commons-dbcp2 and commons-pool2 packages, but provides a "one stop shopping" solution for basic requirements.
풀링 시스템 : 커넥션들이 미리 만들어져있고 그걸 나눠주는 형태.
like Object Pooling(객체를 각각 만드는게 아니라 미리 일정 갯수의 객체를 만들어두고 서비스하는 형태)
장점 : DB 서버에 부하가 일정하게 걸림, 속도가 빨라짐
성능 (Performance): memory + response time
e.g. String은 상수로 형성이 돼 가비지 컬렉션이 안되므로. StringBuffer는 힙 메모리에 형성되므로 가비지 컬렉션이 됨 (=> 메모리 공간 절약 가능)
Response time = Process time (내 pc 안에서 )+ Latency time (서버와의 연결)
Process time은 내 pc만 관련돼있어 내 성능만 좋으면 됨 <-> latency time은 db를 연결하는거라 다른 pc성능도 중요
Latency time을 줄이는 게 중요함.
redirect는 클라이언트가 사용하므로 앞에 contextpath 붙여줘야함