IT, 프로그래밍
-
Junit 으로 세션 테스트시 발생하는 오류 해결IT, 프로그래밍/Spring 2019. 2. 12. 16:45
java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig Junit으로 테스트 케이스를 만들어 세션에 어떤 작업을 할 때, MockHttpSession 객체를 생성하게 되는데, 서블릿 버전 3.1 이하에서는 SessionCookieConfig 클래스를 찾지 못하는 오류가 발생한다. 서블릿 jar 파일을 3.1 버전으로 업데이트 해 주면 해결된다. 1234567 javax.servlet javax.servlet-api 3.1.0 provided Colored by Color Scriptercs
-
인텔리제이에서 JDK 버전이 안 맞을때 해결방법IT, 프로그래밍/Java 2019. 2. 12. 10:10
인텔리제이에서 자바 기반의 프로젝트를 진행하다보면, 프로젝트에 분명 JDK 경로를 잡아주었는데도 불구하고, 다른 버전이 설정되어 있을 때가 있다. 나 같은 경우에는 JDK 1.8을 설정했음에도 불구하고, JDK 1.5를 계속 찾아서 API를 사용하기가 힘들었다. 그럴경우, 아래와 같이 설정 해 주면 된다. 1.제일 상단 바에 가서 FIle - > Project Structure -> Module -> (프로젝트 더블클릭) -> Sources -> Language level -> JDK 버전 설정 2. Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Target bytecode version -> 설정할 버전
-
[JAVA/WEB] Properties 파일로 중요 정보 관리하기IT, 프로그래밍/Java 2019. 1. 28. 09:37
어플리케이션을 만들다 보면 중요한 정보를 사용해야 할 때가 있다. 그런데 이걸 소스내에 하드코딩해서 관리하기엔 아래와 같은 문제가 있다. 1. 런타임 중에 변경할 수 없다. 즉 정보가 하나라도 변경되면 서버를 껐다가 켜야한다. 2. 유지보수가 힘들다. ENUM이나 상수로 정의해서 사용해도 되지만, 결국은 소스코드를 뒤져야 하며, 유지보수에 악영향을 미친다. 3.보안 처리가 힘들다 소스코드 자체는 암호화 하기가 힘들다. 파일로 따로 빼서 관리하면 IO 과정에서 암/복호화 할 수 있으므로 보안에 유리하다. 1234db.driverName=com.mysql.jdbc.Driverdb.url=jdbc:mysql://localhost:3306/mydbdb.id=myiddb.pwd=mypwdcs JDBC 접속 정보를..
-
[PL/SQL] 동적 SQL(Dynamic SQL) - NDS 방식IT, 프로그래밍/Database (Oracle) 2019. 1. 25. 10:42
SQL문 사용 시에 동적으로 계속 바뀌는 경우가 있다.예를 들어 학생 테이블에서 검색하는 경우,조건에 따라 학생의 번호만으로 찾을 수도 있고 혹은 이름으로 찾을 수도 있는데이것을 정적으로 사용하면 같은 SQL문을 중복해서 사용해야 한다.이럴때 SQL문을 문자열로 저장 해 놓고 자주 변하는 조건만 바꿔주면 재사용성도 높아지고 유지보수도 편해진다. 동적 SQL을 사용하는 방법은 원시동적 SQL을 사용하는 방식과 DBMS_SQL이란 시스템 패키지를 사용하는 방식이 있는데 SQL문을 문자열 형태로 만들어 실행한다는것은 같지만 구조와 사용법은 약간 다르다. NDS (Native Dynamic SQL) EXECUTE IMMEDIATE문 EXECUTE IMMEDIATE SQL문_문자열[ INTO OUT변수, OUT변..
-
[PL/SQL] 패키지(Package)IT, 프로그래밍/Database (Oracle) 2019. 1. 25. 09:00
패키지 (Package) : 논리적 연관성이 있는 PL/SQL 타입, 변수, 상수, 서브 프로그램, 커서, 예외 등의 항목을 묶어 놓은 객체.컴파일 과정을 거쳐 DB에 저장되고, 다른 프로그램 (타 패키지, 프로시저, 외부 프로그램 등)에서 패키지의 항목을 참조, 공유, 실행할 수 있다. PL/SQL의 패키지는 자바의 Class 개념과 유사한데, 논리적 연관성이 있는 프로시저와 함수, 변수와 상수등을 정의한 부분에서 그러하다. 다만 자바에서 지원하는 상속의 개념은 없다. 패키지의 장점을 정리하면 아래와 같다. 1. 모듈화 기능2. 프로그램 설계의 용이성3. 캡슐화4. 성능 최적화 (메모리에 패키지 전체가 올라가 있으므로 안에 있는 부 프로그램 호출시 빠른 처리 가능) 패키지 구조 PL/SQL은 선언부와 ..
-
[JAVA] Servlet Build Path 설정IT, 프로그래밍/Java 2019. 1. 24. 15:54
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 처음 서블릿 프로젝트를 만들었을 때, 이라는 에러가 뜨는 경우가 있다. 말 그대로 현재 상속받는 서블릿 코드를 지금 설정해놓은 Build Path에서 못 찾았다는 뜻이다. 이럴 때는 서블릿을 구동 시킬 수 있는 환경을 설정해 주면 해결된다. 만약 톰캣을 안깔았으면 먼저 톰캣을 설치하고 환경설정 까지 끝내주자. Project 파일의 제일 상단에서 우클릭 -> Build Path -> Configure Build Path.. Add Library.. 클릭 Server Runtime 클릭 class path에 잡혀있는 서버 목록이 뜬다. 해당 환경을 선택하고 ..
-
[PL/SQL] 컬렉션의 다양한 사용IT, 프로그래밍/Database (Oracle) 2019. 1. 24. 13:41
1. 사용자 정의 데이터 컬럼 자주 사용하는 컬렉션 타입을 미리 정의해 놓고 마치 VARCHAR2, NUMBER 같은 빌트인(Built-in)타입 처럼 사용할 수 있게 해주는 기능. 컬렉션에서는 VARRAY와 중첩 테이블이 사용이 가능하다.사용자가 정의한 컬렉션을 Global 하게 사용할 수 있다는 개념으로 생각하면 될 듯 하다. 객체(OBJECT) 타입은 컬렉션은 아니지만 객체 지향 프로그래밍의 클래스 개념과 유사하며, 상속도 가능하다. VARRAY : CREATE OR REPLACE TYPE 타입명 IS VARRAY (최대 크기) OF 데이터 타입; 중첩 테이블 : CREATE OR REPLACE TYPE 타입명 IS TABLE OF 데이터 타입; OBJECT : CREATE OR REPLACE 타입..
-
[PL/SQL] 컬렉션(Collection) - 메소드IT, 프로그래밍/Database (Oracle) 2019. 1. 23. 16:20
메소드명 메소드 타입 설명 DELETE Procedure 컬렉션 요소 삭제 TRIM Procedure VARRAY나 중첩 테이블의 끝에서 요소 삭제 EXTEND Procedure VARRAY나 중첩 테이블의 끝에서 요소 추가 EXISTS Function VARRAY나 중첩 테이블에 특정 요소가 존재하면 TRUE를 반환 FIRST Function 컬렉션의 첫 번째 인덱스를 반환 LAST Function 컬렉션의 마지막 인덱스를 반환 COUNT Function 컬렉션 요소의 총 수를 반환 LIMIT Function 컬렉션이 가질 수 있는 최대 요소의 수를 반환 PRIOR Function 특정 인덱스 직전의 인덱스를 반환 ( 어떤 요소의 바로 전에 있는) NEXT Function 특정 인덱스 직후의 인덱스를 ..