WEB Application

20/09/14 웹 프로그래밍 (db properties 연결, DBCP)

Tech Signal 2020. 9. 14. 17:25

<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을 줄이는 게 중요함.

2.7.0 다운받아쥽니다


redirect는 클라이언트가 사용하므로 앞에 contextpath 붙여줘야함