Notice
Recent Posts
Recent Comments
Link
투케이2K
44. (TWOK/UTIL) [Spring/Intelij] C_Util - string, 날짜, 형 변환, 정규식 수행 등 유틸 파일 클래스 본문
투케이2K 유틸파일
44. (TWOK/UTIL) [Spring/Intelij] C_Util - string, 날짜, 형 변환, 정규식 수행 등 유틸 파일 클래스
투케이2K 2022. 5. 16. 16:04[설 명]
프로그램 : Spring / Intelij
설 명 : C_Util - string, 날짜, 형 변환, 정규식 수행 등 유틸 파일 클래스
[소스 코드]
import org.json.JSONArray;
import org.json.JSONObject;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.sql.Blob;
import java.text.SimpleDateFormat;
import java.util.*;
import org.apache.commons.codec.binary.Base64;
public class C_Util {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 프로그램 상 필요한 유틸 파일 모음 클래스
* // -----------------------------------------
* 2. getNowDateTime24 : 24 시간 형태 현재 날짜 확인 : 2022.03.21 14:34:20 월요일
* // -----------------------------------------
* 3. getNowDateTime24Number : 24 시간 형태 현재 날짜 확인 : 20220321143420
* // -----------------------------------------
* 4. convert_HexString_To_Byte : 헥사 문자열 데이터를 바이트 배열로 반환 실시 : byte array
* // -----------------------------------------
* 5. convert_ByteArray_To_HexString : 바이트 배열 데이터를 헥사 문자열로 반환 실시 : 01 02 AB
* // -----------------------------------------
* 6. matchString : 정규식 수행 메소드 : 공백 및 특수 문자 제거 문자열
* // -----------------------------------------
* 7. HexUtil_To_ByteArray : 헥사 문자열 데이터를 바이트 배열로 반환 실시 : byte array
* // -----------------------------------------
* 8. getDateMinus : 두 날짜 차이 계산 수행 : 분, 초 int 형 반환
* // -----------------------------------------
* 9. getTimeStamp_To_Date : 타임 스탬프에서 Date 24시간 날짜 형식으로 변환 실시 : 20220321143420
* // -----------------------------------------
* 10. stringNotNull : String 문자열 데이터 널 판단 실시 : true / false
* // -----------------------------------------
* 11. stringMultiContains : String 문자열 다중 contains 문자 포함 확인 실시 : true / false
* // -----------------------------------------
* 12. stringJsonObjectEnable : String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 : true / false
* // -----------------------------------------
* 13. stringToByte : string 문자열 데이터를 byte 배열 값으로 반환 수행
* // -----------------------------------------
* 14. byteToString : byte 배열 값을 string 문자열 데이터로 반환
* // -----------------------------------------
* 15. stringCount : string 문자열 데이터에서 특정 문자 개수 카운트 반환
* // -----------------------------------------
* 16. removeArrayOverlap : ArrayList 배열 중복 데이터 제거 실시
* // -----------------------------------------
* 17. stringIsNumber : string 문자열 데이터 모두 정수 구성 여부 확인
* // -----------------------------------------
* 18. doubleCutLength : Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시 [반올림 없음]
* // -----------------------------------------
* 19. arraySubList : subList 사용해 array list 가변 배열 데이터 부분 데이터 반환 실시
* // -----------------------------------------
* 20. arrayIntersect : ArrayList 배열 데이터 교집합 수행 실시
* // -----------------------------------------
* 21. mySqlMsgCursorJsonFormat : Mysql 전용 프로시저 호출 리턴 메시지 + 리턴 테이블 데이터 형식 JSON 포맷 실시
* // -----------------------------------------
* 22. procMsgJsonFormat : 프로시저 호출 리턴 메시지 JSON 형식 포맷 실시
* // -----------------------------------------
* 23. selectJsonFormat : 테이블 select 다중 결과 리턴 JSON 형식 포맷 실시
* // -----------------------------------------
* 24. InsertUpdateDeleteMsgJsonFormat : insert , update , delete 수행 리턴 메시지 JSON 형식 포맷 실시
* // -----------------------------------------
* 25. mapToJsonObject : map 데이터를 jsonObject 로 반환 실시
* // -----------------------------------------
* 26. listMapToJsonArray : List Map 데이터를 JsonArray 로 반환 실시
* // -----------------------------------------
* 27. listListMapToJsonArray : List List Map 데이터를 JsonArray 로 반환 실시
* // -----------------------------------------
* 28. stringToBase64AndUrlEncodeString : 원본 string > base64 인코딩 > URL 인코딩 문자열
* // -----------------------------------------
* 29. stringToUrlAndBase64DecodeString : url 인코딩 + base64 로 된 문자열 > Url 디코딩 > base64 디코딩 >원본 string 반환
* // -----------------------------------------
* 30. urlAndBase64Tobase64String : url 인코딩 + base64 로 된 문자열 > base64 문자열로 반환 실시
* // -----------------------------------------
* 31. stringToAes128AndUrlEncodeString : 원본 string > Aes128 암호화 > base64 > URL 인코딩 문자열
* // -----------------------------------------
* 32. aes128AndUrlToDecodeString : aes128 + URL 인코딩 문자열 > url 디코딩 > aes128 디코딩 > 원본 문자열
* // -----------------------------------------
* 33. mapNotNull : HashMap 객체 널 판단 실시 : true / false
* // -----------------------------------------
* 34. listMapNotNull : List Map 객체 널 판단 실시 : true / false
* // -----------------------------------------
* 35. listListMapNotNull : List List Map 객체 널 판단 실시 : true / false
* // -----------------------------------------
* 36. procMsgAndDataFormat : JSON 형식 메시지, 데이터 포맷 수행 실시
* // -----------------------------------------
* 37. base64StringToUrlEncodeString : base64 문자열 > URL 인코딩 문자열
* // -----------------------------------------
* 38. mySqlMsgBlobAndImageReturn : Mysql 전용 프로시저 호출 리턴 메시지 + 리턴 BLOB 이미지 형식을 Blob 이미지로 리턴 실시
* // -----------------------------------------
* 39. mapToUrlEncodeQueryString : Map 데이터를 http 요청 쿼리 스트링 형태 문자열로 리턴 실시
* // -----------------------------------------
* 40. queryStringUrlEncode : http get, post 쿼리 파람 데이터 요청 포맷 String 리턴 실시
* // -----------------------------------------
* 41. stringIsUrlParsing : String 문자열 데이터가 URL 형식으로 파싱 가능 한지 체크 실시
* // -----------------------------------------
* */
// TODO [전역 변수 선언 실시]
private static final String CLASS_NAME = "C_Util";
// TODO [24 시간 형태 현재 날짜 확인]
public static String getNowDateTime24(){
/**
* // -----------------------------------------
* [getNowDateTime24 메소드 설명]
* // -----------------------------------------
* 1. 24 시간 형태 현재 날짜 확인 수행 메소드
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getNowDateTime24();
* // -----------------------------------------
* 3. 리턴 데이터 : 2022.03.21 14:34:20 월요일
* // -----------------------------------------
* */
// [날짜 데이터 확인 실시]
long time = System.currentTimeMillis();
SimpleDateFormat dayTime = new SimpleDateFormat("yyyy.MM.dd kk:mm:ss E요일");
String str = dayTime.format(new Date(time));
// [로그 출력]
//*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getNowDateTime24"));
System.out.println("[RETURN] : "+String.valueOf(str));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return str;
}
// TODO [24 시간 형태 현재 날짜 확인]
public static String getNowDateTime24Number(){
/**
* // -----------------------------------------
* [getNowDateTime24Number 메소드 설명]
* // -----------------------------------------
* 1. 24 시간 형태 현재 날짜 확인 수행 메소드
* // -----------------------------------------
* 2. 호출 방법 : C_Util.getNowDateTime24Number();
* // -----------------------------------------
* 3. 리턴 데이터 : 20220321143420
* // -----------------------------------------
* */
// [날짜 데이터 확인 실시]
long time = System.currentTimeMillis();
SimpleDateFormat dayTime = new SimpleDateFormat("yyyyMMddkkmmss");
String str = dayTime.format(new Date(time));
// [로그 출력]
//*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getNowDateTime24Number"));
System.out.println("[RETURN] : "+String.valueOf(str));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return str;
}
// TODO [헥사 문자열 값을 바이트 배열로 변환 수행 메소드 : Hex String convert byte array]
public static byte[] convert_HexString_To_Byte(String data) {
/**
* // -----------------------------------------
* [convert_HexString_To_Byte 메소드 설명]
* // -----------------------------------------
* 1. 헥사 문자열 값을 바이트 배열로 변환 수행 메소드
* // -----------------------------------------
* 2. 호출 방법 : C_Util.convert_HexString_To_Byte("0123456789abcdef0123456789abcdef");
* // -----------------------------------------
* 3. 리턴 데이터 : byte array 배열
* // -----------------------------------------
* */
String hex = data.replaceAll("0x", ""); //0x문자 제거
String hex2 = hex.replaceAll("0X", ""); //0x문자 제거
String Trim = hex2.replaceAll(" ", ""); //공백문자 제거
byte arr[] = new byte[Trim.length()/2]; // (전체 문자열 길이 / 2) 만큼 배열 생성
int before = 0;
int after = 2;
for(int i=0; i<arr.length; i++) {
String value = Trim.substring(before, after); // 2글자씩 잘라서 데이터 출력
arr[i] = new java.math.BigInteger(value, 16).byteValue(); // BigInteger사용해 hexString > byte 변환
// [다음 2글자씩 또 변환하기 위함]
before += 2;
after += 2;
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("convert_HexString_To_Byte"));
System.out.println("[INPUT] : "+String.valueOf(data));
System.out.println("[RETURN] : "+Arrays.toString(arr));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환]
return arr;
}
// TODO [바이트 배열 값을 헥사 문자열 값으로 변환 : byte array convert Hex String]
public static String convert_ByteArray_To_HexString(byte buf[]) {
/**
* // -----------------------------------------
* [convert_ByteArray_To_HexString 메소드 설명]
* // -----------------------------------------
* 1. 바이트 배열 값을 헥사 문자열 값으로 변환 수행 메소드
* // -----------------------------------------
* 2. 호출 방법 : C_Util.convert_ByteArray_To_HexString(new byte[] {1, 35, 69, 103, -119, -85, -51, -17, 1, 35, 69, 103, -119, -85, -51, -17} );
* // -----------------------------------------
* 3. 리턴 데이터 : 헥사 문자열 데이터
* // -----------------------------------------
* */
String Hex_Value = "";
for(int i=0; i<buf.length; i++) {
//Hex_Value += String.format("0x%02x ", buf[i]); // [0xfg]
//Hex_Value += String.format("%02x ", buf[i]); // [fg]
//Hex_Value += String.format("0X%02X ", buf[i]); // [0XFG]
Hex_Value += String.format("%02X ", buf[i]); // [FG]
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("convert_ByteArray_To_HexString"));
System.out.println("[INPUT] : "+Arrays.toString(buf));
System.out.println("[RETURN] : "+String.valueOf(Hex_Value));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 반환]
return Hex_Value;
}
// TODO [정규식 수행 메소드]
public static String matchString(String value) {
/**
* // -----------------------------------------
* [matchString 메소드 설명]
* // -----------------------------------------
* 1. 정규식 수행 메소드 [공백 및 특수문자 제거]
* // -----------------------------------------
* 2. 호출 방법 : C_Util.matchString("hello@@TwoK");
* // -----------------------------------------
* 3. 리턴 데이터 : 공백 및 특수문자 제거 데이터 반환
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* [요약 설명]
* // -----------------------------------------
* 1. 정규식 패턴 ^[a-z] : 영어 소문자 허용
* // -----------------------------------------
* 2. 정규식 패턴 ^[A-Z] : 영어 대문자 허용
* // -----------------------------------------
* 3. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 한글 허용
* // -----------------------------------------
* 4. 정규식 패턴 ^[ㄱ-ㅎㅏ-ㅣ가-힣] : 숫자 허용
* // -----------------------------------------
* 5. 정규식 패턴 ^[ ] or ^[\\s] : 공백 허용
* // -----------------------------------------
*/
// [결과를 반환할 변수 선언 실시]
String result = "";
// [정규식 패턴 형식 정의]
String pattern = "^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]"; // 정규식 : 한글, 영어, 숫자만 허용 (공백, 특수문자 제거)
//String pattern = "^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9\\s]"; // 정규식 : 한글, 영어, 숫자, 공백만 허용 (특수문자 제거)
if (value != null && value.length() > 0 && value.trim().equals("") == false) { // 문자열 길이가 1개 이상인 경우
// for 반복문을 선언해서 문자 한글자씩 확인 실시
for(int i=0; i<value.length(); i++) {
if (String.valueOf(value.charAt(i)).matches(pattern)) { // 정규식 패턴을 만족하는 경우
result += value.charAt(i); // 문자열 추가
}
else { // 정규식 패턴이 아닌 경우
continue;
}
}
}
else { // 문자열 길이가 0개인 경우
result = String.valueOf(value); // 인풋값 그대로 반환
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("matchString"));
System.out.println("[INPUT] : "+String.valueOf(value));
System.out.println("[RETURN] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// 결과 반환 실시
return result;
}
// TODO [헥사 문자열 값을 바이트 배열로 반환 메소드 : Hex String convert byte array]
public static byte[] HexUtil_To_ByteArray(String data) {
/**
* // -----------------------------------------
* [HexUtil_To_ByteArray 메소드 설명]
* // -----------------------------------------
* 1. 헥사 문자열 값을 바이트 배열로 반환 메소드
* // -----------------------------------------
* 2. 호출 방법 : C_Util.HexUtil_To_ByteArray("0123456789abcdef0123456789abcdef");
* // -----------------------------------------
* 3. 리턴 데이터 : 바이트 배열 반환 실시
* // -----------------------------------------
* */
byte[] temp = new byte[data.length() / 2];
for(int i = 0; i < data.length() / 2; ++i) {
temp[i] = toByte(data.substring(i * 2, i * 2 + 2));
}
return temp;
}
public static byte toByte(String hexStr) {
byte result = 0;
String hex = hexStr.toUpperCase();
for(int i = 0; i < hex.length(); ++i) {
char c = hex.charAt(hex.length() - i - 1);
byte b = toByte(c);
result = (byte)(result | (b & 15) << i * 4);
}
return result;
}
private static byte toByte(char c) {
switch(c) {
case '0':
return 0;
case '1':
return 1;
case '2':
return 2;
case '3':
return 3;
case '4':
return 4;
case '5':
return 5;
case '6':
return 6;
case '7':
return 7;
case '8':
return 8;
case '9':
return 9;
case ':':
case ';':
case '<':
case '=':
case '>':
case '?':
case '@':
default:
return 0;
case 'A':
return 10;
case 'B':
return 11;
case 'C':
return 12;
case 'D':
return 13;
case 'E':
return 14;
case 'F':
return 15;
}
}
// TODO [두 날짜 차이 계산 수행 실시]
public static int getDateMinus(String bigDate, String smallDate) {
/**
* // -----------------------------------------
* // [getDateMinus 메소드 설명]
* // -----------------------------------------
* 1. 날짜 형식 : yyyyMMddkkmmss 24시간 형태로 구성
* // -----------------------------------------
* 2. bigDate 큰 날짜 - smallDate 작은 날짜 연산 수행
* // -----------------------------------------
* 3. 리턴 형식 : 초 , 분 , 시간 , 일자 단위 선택 (int 형 반환)
* // -----------------------------------------
* 4. 인풋 예시 :
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 18 30 15"); // 동일
*
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 18 30 10"); // 초 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 18 25 15"); // 분 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 10 17 30 15"); // 시간 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 02 09 18 30 15"); // 일자 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2022 01 10 18 30 15"); // 월 [다름]
* - C_Util.getDateMinus("2022 02 10 18 30 15", "2021 02 10 18 30 15"); // 연도 [다름]
* // -----------------------------------------
* */
// [초기 리턴 데이터 선언]
int returnData = 0;
// [인풋으로 들어온 값에 공백이 있는 경우 제거 실시]
bigDate = bigDate.replaceAll(" ", "");
smallDate = smallDate.replaceAll(" ", "");
// [인풋으로 들어온 값 널 데이터 검증 실시]
try {
if (bigDate != null && bigDate.length()>0 && !bigDate.equals("") && !bigDate.trim().equals("null")
&& smallDate != null && smallDate.length()>0 && !smallDate.equals("") && !smallDate.trim().equals("null")){ // [정상 데이터 인 경우]
// [인풋으로 들어온 데이터가 int 형 인지 검증 수행]
boolean bigDate_NotNumber = false;
boolean smallDate_NotNumber = false;
for(int i=0; i<bigDate.length(); i++) {
if(Character.isDigit(bigDate.charAt(i)) == false) { // 숫자가 아닌 경우
bigDate_NotNumber = true;
}
}
for(int j=0; j<smallDate.length(); j++) {
if(Character.isDigit(smallDate.charAt(j)) == false) { // 숫자가 아닌 경우
smallDate_NotNumber = true;
}
}
if (bigDate_NotNumber == true || smallDate_NotNumber == true){ // 문자가 포함된 데이터 인 경우
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getDateMinus"));
System.out.println("[INPUT] [bigDate] : "+String.valueOf(bigDate));
System.out.println("[INPUT] [smallDate] : "+String.valueOf(smallDate));
System.out.println("[ERROR] : "+String.valueOf("문자에러 - 비정상 데이터"));
System.out.println("================================================");
System.out.println("\n");
// */
return returnData;
}
// [로직 처리 수행 실시]
Date bigFormat = new SimpleDateFormat("yyyyMMddkkmmss").parse(bigDate);
Date smallFormat = new SimpleDateFormat("yyyyMMddkkmmss").parse(smallDate);
// [초, 분, 시간, 일자 차이 계산 실시 >> long 타입]
long minusSec = (bigFormat.getTime() - smallFormat.getTime()) / 1000; // [초]
long minusMin = (bigFormat.getTime() - smallFormat.getTime()) / 60000; // [분]
long minusHour = (bigFormat.getTime() - smallFormat.getTime()) / 3600000; // [시간]
long minusDay = minusSec / (24*60*60); // [일자]
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getDateMinus"));
System.out.println("[INPUT] [bigDate] : "+String.valueOf(bigDate));
System.out.println("[INPUT] [smallDate] : "+String.valueOf(smallDate));
System.out.println("[minusSec] [초] [차이] : "+String.valueOf(minusSec));
System.out.println("[minusMin] [분] [차이] : "+String.valueOf(minusMin));
System.out.println("[minusHour] [시간] [차이] : "+String.valueOf(minusHour));
System.out.println("[minusDay] [날짜] [차이] : "+String.valueOf(minusDay));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴하려는 값을 선택 후 결과 반환]
returnData = (int) minusMin; // [분]
//returnData = (int) minusSec; // [초]
}
else { // [비정상 데이터 인 경우]
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getDateMinus"));
System.out.println("[INPUT] [bigDate] : "+String.valueOf(bigDate));
System.out.println("[INPUT] [smallDate] : "+String.valueOf(smallDate));
System.out.println("[ERROR] : "+String.valueOf("널 값 - 비정상 데이터"));
System.out.println("================================================");
System.out.println("\n");
// */
}
}
catch (Exception e){
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getDateMinus"));
System.out.println("[INPUT] [bigDate] : "+String.valueOf(bigDate));
System.out.println("[INPUT] [smallDate] : "+String.valueOf(smallDate));
System.out.println("[CATCH] : "+String.valueOf(e.getMessage()));
System.out.println("================================================");
System.out.println("\n");
// */
}
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [타임 스탬프 값을 날짜 형식으로 변환 실시]
public static String getTimeStamp_To_Date(String timeStamp){
/**
* // -----------------------------------------
* [getTimeStamp_To_Date 메소드 설명]
* // -----------------------------------------
* 1. Timestamp 값은 현재 시간을 milliseconds 단위로 변환하여 보여줍니다
* // -----------------------------------------
* 2. 인풋 타임 스탬프 형식 : 1646295046677
* // -----------------------------------------
* 3. 리턴 데이터 : 20220321134530 (24 시간 날짜 형식)
* // -----------------------------------------
* 4. 타임 스탬프 (밀리세컨드 만드는 형식)
* - Timestamp timestamp = new Timestamp(System.currentTimeMillis()); // 현재 날짜
* - timestamp.getTime(); // 타임 스탬프 밀리 세컨드
* // -----------------------------------------
* */
// [초기 리턴 결과 반환 변수 선언 실시]
String returnDate = "";
try {
// [인풋 데이터 널 체크 수행 실시]
if (timeStamp != null && timeStamp.length()>0 && !timeStamp.trim().equals("") && !timeStamp.trim().equals("null")){
// [타임 스탬프 값 (1646295046677) 을 Date 로 변경]
Date date = new Date(Long.parseLong(timeStamp));
// [타임 스탬프 값을 포맷 Date 형식으로 변경]
SimpleDateFormat sdf = new SimpleDateFormat ("yyyyMMddkkmmss");
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getTimeStamp_To_Date"));
System.out.println("[타임 스탬프] : "+String.valueOf(timeStamp));
System.out.println("[날 짜] : "+String.valueOf(sdf.format(date)));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터에 날짜 삽입 실시]
returnDate = String.valueOf(sdf.format(date));
}
else {
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getTimeStamp_To_Date"));
System.out.println("[타임 스탬프] : "+String.valueOf(timeStamp));
System.out.println("[ERROR] : "+String.valueOf("NULL 에러"));
System.out.println("================================================");
System.out.println("\n");
// */
}
}
catch (Exception e){
//e.printStackTrace();
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("getTimeStamp_To_Date"));
System.out.println("[CATCH] : "+String.valueOf(e.getMessage()));
System.out.println("================================================");
System.out.println("\n");
// */
}
// [리턴 결과 반환 수행 실시]
return returnDate;
}
// TODO [String 문자열 데이터 널 판단 실시]
public static Boolean stringNotNull(String data){
/**
* // -----------------------------------------
* [stringNotNull 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 데이터 널 판단 실시
* // -----------------------------------------
* 2. 호출 방식 : C_Util.stringNotNull("twok");
* // -----------------------------------------
* 3. 리턴 데이터 : 문자열 데이터가 널이 아닌 경우 true / 널인 경우 false
* // -----------------------------------------
* */
// [문자열 데이터 널 판단 수행 실시]
try {
if (data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [리턴 결과 반환 수행 실시]
return true;
}
else { // [널인 경우]
// [리턴 결과 반환 수행 실시]
return false;
}
}
catch (Exception e){
e.printStackTrace();
// [리턴 결과 반환 수행 실시]
return false;
}
}
// TODO [String 문자열 데이터 다중 contains 포함 여부 확인 실시]
public static Boolean stringMultiContains(String data, String [] containsArray){
/**
* // -----------------------------------------
* [stringMultiContains 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 데이터 다중 contains 포함 여부 확인 실시
* // -----------------------------------------
* 2. 호출 방식 : C_Util.stringMultiContains("twok,투케이,반갑습니다", new String[] {"twok", "투케이"});
* // -----------------------------------------
* 3. 리턴 데이터 : 특정 배열 값을 모두 포함하는 경우 true / 아닌 경우 false
* // -----------------------------------------
* */
// [문자열 데이터 및 배열 데이터 널 판단 수행 실시]
try {
if (data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false
&& containsArray != null
&& containsArray.length>0){ // [널이 아닌 경우]
// [for 문을 수행하면서 데이터 포함 체크 수행 실시]
boolean checkContains = true;
for (int i=0; i<containsArray.length; i++){
if (data.contains(containsArray[i]) == true){
}
else {
// [하나라도 값을 포함하지 않는 경우 false 지정]
checkContains = false;
}
}
// [리턴 결과 반환 수행 실시]
return checkContains;
}
else { // [널인 경우]
// [리턴 결과 반환 수행 실시]
return false;
}
}
catch (Exception e){
e.printStackTrace();
// [리턴 결과 반환 수행 실시]
return false;
}
}
// TODO [String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시]
public static Boolean stringJsonObjectEnable(String data){
/**
* // -----------------------------------------
* [stringJsonObjectEnable 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 데이터를 Json Object 형식으로 변경 가능한지 확인 실시
* // -----------------------------------------
* 2. 호출 방식 : C_Util.stringJsonObjectEnable(json 형식 문자열 데이터);
* // -----------------------------------------
* 3. 리턴 데이터 : Json 형식으로 변경 가능한 경우 true / 아닌 경우 false
* // -----------------------------------------
* 4. 참고 : 일반 자바 main 에서 수행 시 안드로이드 JSONObject 찾지 못함 [안드로이드 용으로 사용]
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
boolean result = false;
// [문자열 데이터 널 판단 수행 실시]
if (data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [Json Object 형식으로 변경 가능한지 확인 실시]
try {
JSONObject checkJson = new JSONObject(String.valueOf(data));
// [리턴 데이터 삽입 실시]
result = true;
}
catch (Exception e){
// [Json Object 변환 에러 발생]
e.printStackTrace();
// [리턴 데이터 삽입 실시]
result = false;
}
}
else { // [널인 경우]
// [리턴 데이터 삽입 실시]
result = false;
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringJsonObjectEnable"));
System.out.println("[INPUT] : "+String.valueOf(data));
System.out.println("[RETURN] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [string 문자열 데이터를 byte 배열 값으로 반환]
public static byte[] stringToByte(String data){
/**
* // -----------------------------------------
* [stringToByte 메소드 설명]
* // -----------------------------------------
* 1. string 문자열 데이터를 byte 배열 값으로 반환 수행
* // -----------------------------------------
* 2. 호출 방식 : C_Util.stringToByte("hello");
* // -----------------------------------------
* 3. 리턴 데이터 : byte array 바이트 배열 데이터
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
byte result[] = null;
// [문자열 데이터 널 판단 수행 실시]
if (data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){ // [널이 아닌 경우]
try {
result = data.getBytes("UTF-8");
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringToByte"));
System.out.println("[INPUT] : "+String.valueOf(data));
System.out.println("[RETURN] : "+String.valueOf(Arrays.toString(result)));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [byte 배열 값을 string 문자열 데이터로 반환]
public static String byteToString(byte[] data){
/**
* // -----------------------------------------
* [byteToString 메소드 설명]
* // -----------------------------------------
* 1. byte 배열 값을 string 문자열 데이터로 반환
* // -----------------------------------------
* 2. 호출 방식 : C_Util.byteToString(new byte[] {104, 101, 108, 108, 111});
* // -----------------------------------------
* 3. 리턴 데이터 : string 문자열 데이터
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
String result = "";
// [데이터 널 판단 수행 실시]
if (data != null
&& data.length>0){ // [널이 아닌 경우]
try {
result = new String(data, "UTF-8");
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("byteToString"));
System.out.println("[INPUT] : "+String.valueOf(Arrays.toString(data)));
System.out.println("[RETURN] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [string 문자열 데이터에서 특정 문자 개수 카운트 반환]
public static int stringCount(String stringData, String charData){
/**
* // -----------------------------------------
* [stringCount 메소드 설명]
* // -----------------------------------------
* 1. string 문자열 데이터에서 특정 문자 개수 카운트 반환
* // -----------------------------------------
* 2. 호출 방식 : C_Util.stringCount("hello,TWOK,투케이", ",");
* // -----------------------------------------
* 3. 리턴 데이터 : 특정 문자 개수 카운트 반환 실시
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
int result = 0;
// [인풋 데이터 널 판단 수행 실시]
if (stringData != null
&& stringData.length()>0
&& stringData.trim().equals("") == false
&& stringData.trim().equals("null") == false
&& stringData.trim().equals("undefined") == false
&& charData != null
&& charData.length() == 1
&& charData.trim().equals("") == false
&& charData.trim().equals("null") == false
&& charData.trim().equals("undefined") == false ){ // [널이 아닌 경우]
try {
// [인풋으로 들어온 문자열 데이터 배열에 삽입 실시]
String array[] = stringData.split("");
// [for 문을 돌면서 특정 문자 포함 확인]
for (int i=0; i<array.length; i++){
if (String.valueOf(array[i]).equals(charData)){
result = result + 1;
}
}
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringCount"));
System.out.println("[INPUT] [STRING] : "+String.valueOf(stringData));
System.out.println("[INPUT] [CHAR] : "+String.valueOf(charData));
System.out.println("[RETURN] [COUNT] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [ArrayList 배열 중복 데이터 제거 실시]
public static ArrayList removeArrayOverlap(ArrayList list){
/**
* // -----------------------------------------
* [removeArrayOverlap 메소드 설명]
* // -----------------------------------------
* 1. 배열 중복 데이터 제거 메소드
* // -----------------------------------------
* 2. 호출 방식 :
* ArrayList list = new ArrayList();
* list.add("하나");
* list.add("둘");
* list.add("하나");
*
* C_Util.removeArrayOverlap(list);
* // -----------------------------------------
* 3. 리턴 데이터 : 중복 제거된 배열 데이터 반환 실시
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
ArrayList returnArray = new ArrayList();
// [인풋 데이터 널 판단 수행 실시]
if (list != null
&& list.size()>0
&& list.isEmpty() == false){ // [널이 아닌 경우]
try {
// [HashSet 을 사용해 ArrayList 배열 데이터 중복 제거 실시]
HashSet hashSet = new HashSet<>(list);
// [HashSet to ArrayList 변환 실시]
returnArray = new ArrayList(hashSet);
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("removeArrayOverlap"));
System.out.println("[INPUT] : "+String.valueOf(list.toString()));
System.out.println("[RETURN] : "+String.valueOf(returnArray.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnArray;
}
// TODO [String 문자열 데이터가 모두 정수 값으로 구성되어 있는지 확인 실시]
public static Boolean stringIsNumber(String data){
/**
* // -----------------------------------------
* [stringIsNumber 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 데이터가 모두 정수 값으로 구성되어 있는지 확인 실시
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.stringIsNumber("12345");
* C_Util.stringIsNumber("-12345");
* C_Util.stringIsNumber("123hello");
* // -----------------------------------------
* 3. 리턴 데이터 : string 문자열 데이터가 모두 정수값으로 된 경우 true / 아니면 false
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
boolean result = true;
// [문자열 데이터 널 판단 수행 실시]
if (data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [Character.isDigit 사용해 정수값 체크 실시]
try {
for (int i=0; i<data.length(); i++){
if (Character.isDigit(data.charAt(i)) == true){ // [숫자]
}
else { // [문자]
if (i == 0 && data.charAt(i) == '-' || data.charAt(i) == '+') { // [처음 문자가 - , + 인 경우는 통과 실시]
}
else {
// [리턴 데이터 삽입 실시]
result = false;
}
}
}
}
catch (Exception e){
// [Json Object 변환 에러 발생]
// e.printStackTrace();
// [리턴 데이터 삽입 실시]
result = false;
}
}
else { // [널인 경우]
// [리턴 데이터 삽입 실시]
result = false;
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringIsNumber"));
System.out.println("[INPUT] : "+String.valueOf(data));
System.out.println("[RETURN] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시]
public static String doubleCutLength(double doubleData, int length){
/**
* // -----------------------------------------
* [doubleCutLength 메소드 설명]
* // -----------------------------------------
* 1. Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시 [반올림 없음]
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.doubleCutLength(123.4567, 2);
* C_Util.doubleCutLength(-123.4567, 2);
* // -----------------------------------------
* 3. 리턴 데이터 : 123.45 : 소수점 특정 자릿수 기준 제한 문자열 데이터
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
String result = "";
// [인풋 데이터 체크 수행 실시]
if (length >= 0){ // [0 자릿수 이상 들어온 경우]
try {
// [필요 변수 선언 실시]
int dotCount = 0; // 점 개수
int dotLocation = 0; // 점 위치
int dotLength = 0; // 소수점 이하 자릿수 기준
// [for 문을 돌면서 데이터 확인 실시]
String strData = String.valueOf(doubleData);
for (int i=0; i<strData.length(); i++){
if (strData.charAt(i) == '.'){ // 문자열 특정 자릿수가 점 (.) 인 경우
dotCount = dotCount + 1; // 카운트 증가
dotLocation = i; // 위치 지정
String subString = strData.substring((dotLocation + 1), strData.length());
dotLength = subString.length(); // 소수점 이하 자릿수 확인
}
}
// [정상적으로 소수점이 포함된 경우]
if (dotCount == 1){
if (length > dotLength){ // [원본 데이터 보다 인풋값이 큰 경우 >> 0 값으로 채움]
result = strData.substring(0, strData.length());
int zeroCount = length - dotLength;
for (int j=0; j<zeroCount; j++){
result = result + "0";
}
}
else {
if (length == 0){
result = strData.substring(0, (dotLocation + length));
}
else {
result = strData.substring(0, (dotLocation + length + 1));
}
}
}
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("doubleCutLength"));
System.out.println("[INPUT] [DOUBLE] : "+String.valueOf(doubleData));
System.out.println("[INPUT] [LENGTH] : "+String.valueOf(length));
System.out.println("[RETURN] [STRING] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [인풋으로 들어온 배열 데이터 중 부분 배열 데이터 반환 실시]
public static ArrayList arraySubList(ArrayList list, int startIdx, int endIdx){
/**
* // -----------------------------------------
* [arraySubList 메소드 설명]
* // -----------------------------------------
* 1. 인풋으로 들어온 배열 데이터 중 부분 배열 데이터 반환 실시
* // -----------------------------------------
* 2. 호출 방식 :
* ArrayList list = new ArrayList();
* list.add("하나");
* list.add("둘");
* list.add("셋");
* list.add("넷");
* list.add("다섯");
*
* C_Util.arraySubList(list, 0, list.size()-1); // [배열 전체 데이터]
* C_Util.arraySubList(list, 1, 3); // [배열 부분 데이터 : 1, 2, 3 인덱스 데이터 출력]
* // -----------------------------------------
* 3. 리턴 데이터 : [하나, 둘, 셋, 넷, 다섯] / [둘, 셋, 넷]
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
ArrayList result = new ArrayList();
// [인풋 데이터 체크 수행 실시]
if (list != null && list.size()>0
&& startIdx >= 0 && startIdx <= endIdx
&& endIdx >= 0 && endIdx >= startIdx){
try {
// [subList 를 사용해 배열 자르기 수행 실시]
result = new ArrayList(list.subList(startIdx, (endIdx+1)));
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("arraySubList"));
System.out.println("[INPUT] [LIST] : "+String.valueOf(list.toString()));
System.out.println("[INPUT] [START] : "+String.valueOf(startIdx));
System.out.println("[INPUT] [END] : "+String.valueOf(endIdx));
System.out.println("[RETURN] [LENGTH] : "+String.valueOf(result.size()));
System.out.println("[RETURN] [LIST] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [ArrayList 배열 데이터 교집합 수행 실시]
public static ArrayList arrayIntersect(ArrayList array_1, ArrayList array_2){
/**
* // -----------------------------------------
* [arrayIntersect 메소드 설명]
* // -----------------------------------------
* 1. ArrayList 배열 데이터 교집합 수행 실시
* // -----------------------------------------
* 2. 호출 방식 :
* ArrayList list_1 = new ArrayList();
* list_1.add("하나");
* list_1.add("둘");
* list_1.add("셋");
*
* ArrayList list_2 = new ArrayList();
* list_2.add("둘");
* list_2.add("셋");
* list_2.add("넷");
*
* C_Util.arrayIntersect(list_1, list_2);
* // -----------------------------------------
* 3. 리턴 데이터 : [둘, 셋]
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
ArrayList result = new ArrayList();
// [원본 데이터 저장]
ArrayList original = new ArrayList();
// [인풋 데이터 체크 수행 실시]
if (array_1 != null && array_1.size()>0 && array_1.isEmpty() == false
&& array_2 != null && array_2.size()>0 && array_2.isEmpty() == false){
try {
// [원본 데이터 저장 실시]
original = new ArrayList(array_1);
// [retainAll 사용해 배열 데이터 교집합 실시]
array_1.retainAll(array_2);
result = new ArrayList(array_1);
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("arrayIntersect"));
System.out.println("[INPUT] [array_1] : "+String.valueOf(original));
System.out.println("[INPUT] [array_2] : "+String.valueOf(array_2));
System.out.println("[RETURN] : "+String.valueOf(result));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return result;
}
// TODO [Mysql 전용 프로시저 호출 리턴 메시지 + 리턴 테이블 데이터 형식 JSON 포맷 실시]
public static JSONObject mySqlMsgCursorJsonFormat (List<List<Map<String, Object>>> totalData, String O_MSG_NAME, String O_CUR_NAME) {
/**
* // -----------------------------------------
* [mySqlMsgCursorJsonFormat 메소드 설명]
* // -----------------------------------------
* 1. Mysql 전용 프로시저 호출 리턴 메시지 + 리턴 테이블 데이터 형식 JSON 포맷 실시
* // -----------------------------------------
* 2. Mysql 프로시저 호출 리턴 메시지, 테이블 조회 데이터는 개별 List Map 형식으로 받습니다
* // -----------------------------------------
* 3. Mybatis 참고 코드 :
* <resultMap id="PRO_SEL_TEST_USER_RESULT_O_MSG" type="hashmap" />
* <resultMap id="PRO_SEL_TEST_USER_RESULT_O_CURSOR" type="hashmap" />
* <select id="PRO_SEL_TEST_USER" parameterType="hashmap" resultMap="PRO_SEL_TEST_USER_RESULT_O_MSG, PRO_SEL_TEST_USER_RESULT_O_CURSOR" statementType="CALLABLE">
* <![CDATA[
* { call PRO_SEL_TEST_USER(
* #{I_DEPT_NAME, mode=IN, jdbcType=VARCHAR, javaType=string},
*
* #{O_MSG}
* )}
* ]]>
* </select>
* // -----------------------------------------
* 4. 호출 방식 :
*
* // [service 호출 수행]
* List<List<Map<String, Object>>> serviceData = db_maria_api_service.PRO_SEL_TEST_USER("백제");
*
* // [리턴 받은 결과 JSON 포맷 실시 : 메시지, 테이블]
* JSONObject returnData = new JSONObject();
* returnData = C_Util.mySqlMsgCursorJsonFormat(serviceData, "O_MSG", "O_CUR");
* // -----------------------------------------
* 5. 리턴 데이터 :
* {"O_MSG":"Y : SUCCESS : M_DEGUB : [2]","O_CUR":[{"T_NAME":"의자왕","T_DEPT":"백제","T_PHONE":"010-1234-5684"}]}
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONObject returnJson = new JSONObject();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (O_MSG_NAME != null
&& O_MSG_NAME.length()>0
&& O_MSG_NAME.trim().equals("") == false
&& O_MSG_NAME.trim().equals("null") == false
&& O_MSG_NAME.trim().equals("undefined") == false
&& O_CUR_NAME != null
&& O_CUR_NAME.length()>0
&& O_CUR_NAME.trim().equals("") == false
&& O_CUR_NAME.trim().equals("null") == false
&& O_CUR_NAME.trim().equals("undefined") == false
&& totalData != null
&& totalData.size()>1){ // [널이 아닌 경우]
// [리턴 데이터 반환 실시]
int curIdx = 0;
for(int i=0; i<totalData.size(); i++){
JSONArray parseArray = new JSONArray(totalData.get(i));
if (parseArray.length() == 1){
JSONObject msgObj = new JSONObject(String.valueOf(parseArray.get(0)));
if (msgObj.has(String.valueOf(O_MSG_NAME))){ // [메시지인 경우]
returnJson.put(String.valueOf(O_MSG_NAME), String.valueOf(msgObj.get(O_MSG_NAME)));
}
else { // [커서 데이터인 경우]
curIdx = i;
}
}
else { // [커서 데이터인 경우]
curIdx = i;
}
}
// [리턴 테이블 반환]
returnJson.put(String.valueOf(O_CUR_NAME), new JSONArray(totalData.get(curIdx)));
}
else {
// [에러 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("mySqlMsgCursorJsonFormat"));
System.out.println("[ERROR] : "+String.valueOf("Json Total Data Size Error"));
System.out.println("================================================");
System.out.println("\n");
// */
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("mySqlMsgCursorJsonFormat"));
System.out.println("[INPUT] : [totalData] : "+String.valueOf(totalData.toString()));
System.out.println("[INPUT] : [O_MSG_NAME] : "+String.valueOf(O_MSG_NAME));
System.out.println("[INPUT] : [O_CUR_NAME] : "+String.valueOf(O_CUR_NAME));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [프로시저 호출 리턴 메시지 JSON 형식 포맷 실시]
public static JSONObject procMsgJsonFormat (String O_MSG_NAME, String O_MSG_DATA) {
/**
* // -----------------------------------------
* [procMsgJsonFormat 메소드 설명]
* // -----------------------------------------
* 1. 프로시저 호출 리턴 메시지 JSON 형식 포맷 실시
* // -----------------------------------------
* 2. Mybatis 참고 코드 :
* <select id="PRO_SEL_TEST_USER" parameterType="hashmap" resultType="String" statementType="CALLABLE">
* <![CDATA[
* { call PRO_SEL_TEST_USER(
* #{I_DEPT_NAME, mode=IN, jdbcType=VARCHAR, javaType=string},
*
* #{O_MSG}
* )}
* ]]>
* </select>
* // -----------------------------------------
* 3. 호출 방식 :
*
* // [service 호출 수행]
* String serviceData = db_maria_api_service.PRO_SEL_TEST_USER("백제");
*
* // [리턴 받은 결과 JSON 포맷 실시 : 메시지, 테이블]
* JSONObject returnData = new JSONObject();
* returnData = C_Util.procMsgJsonFormat("O_MSG", serviceData);
* // -----------------------------------------
* 4. 리턴 데이터 :
* {"O_MSG":"Y : SUCCESS : M_DEGUB : [2]"}
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONObject returnJson = new JSONObject();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (O_MSG_NAME != null
&& O_MSG_NAME.length()>0
&& O_MSG_NAME.trim().equals("") == false
&& O_MSG_NAME.trim().equals("null") == false
&& O_MSG_NAME.trim().equals("undefined") == false
&& O_MSG_DATA != null
&& O_MSG_DATA.length()>0
&& O_MSG_DATA.trim().equals("") == false
&& O_MSG_DATA.trim().equals("null") == false
&& O_MSG_DATA.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [JSON 데이터 삽입 실시]
returnJson.put(String.valueOf(O_MSG_NAME), String.valueOf(O_MSG_DATA));
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("procMsgJsonFormat"));
System.out.println("[INPUT] : [O_MSG_NAME] : "+String.valueOf(O_MSG_NAME));
System.out.println("[INPUT] : [O_MSG_DATA] : "+String.valueOf(O_MSG_DATA));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [테이블 select 다중 결과 리턴 JSON 형식 포맷 실시]
public static JSONObject selectJsonFormat (String O_CUR_NAME, List<Map<String, Object>> O_CUR_DATA) {
/**
* // -----------------------------------------
* [selectJsonFormat 메소드 설명]
* // -----------------------------------------
* 1. 테이블 select 다중 결과 리턴 JSON 형식 포맷 실시
* // -----------------------------------------
* 2. 테이블 조회 데이터는 개별 List Map 형식으로 받습니다
* // -----------------------------------------
* 3. Mybatis 참고 코드 :
* <select id="TEST_SELECT" parameterType="hashmap" resultType="hashmap">
* <![CDATA[
* select *
* from TEST_USER
* where T_DEPT = #{I_DEPT}
* ]]>
* </select>
* // -----------------------------------------
* 4. 호출 방식 :
*
* // [service 호출 수행]
* List<Map<String, Object>> serviceData = db_maria_api_service.TEST_SELECT("백제");
*
* // [리턴 받은 결과 JSON 포맷 실시 : 메시지, 테이블]
* JSONObject returnData = new JSONObject();
* returnData = C_Util.selectJsonFormat(serviceData, "O_CUR", serviceData);
* // -----------------------------------------
* 5. 리턴 데이터 :
* {"O_CUR":[{"T_NAME":"의자왕","T_DEPT":"백제","T_PHONE":"010-1234-5684"}]}
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONObject returnJson = new JSONObject();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (O_CUR_NAME != null
&& O_CUR_NAME.length()>0
&& O_CUR_NAME.trim().equals("") == false
&& O_CUR_NAME.trim().equals("null") == false
&& O_CUR_NAME.trim().equals("undefined") == false
&& O_CUR_DATA != null){
// [JSON 데이터 삽입 실시]
returnJson.put(String.valueOf(O_CUR_NAME), new JSONArray(O_CUR_DATA));
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("selectJsonFormat"));
System.out.println("[INPUT] : [O_CUR_NAME] : "+String.valueOf(O_CUR_NAME));
System.out.println("[INPUT] : [O_CUR_DATA] : "+String.valueOf(O_CUR_DATA.toString()));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [insert , update , delete 수행 리턴 메시지 JSON 형식 포맷 실시]
public static JSONObject InsertUpdateDeleteMsgJsonFormat (String O_MSG_NAME, String O_MSG_DATA) {
/**
* // -----------------------------------------
* [InsertUpdateDeleteMsgJsonFormat 메소드 설명]
* // -----------------------------------------
* 1. insert , update , delete 수행 리턴 메시지 JSON 형식 포맷 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* // [service 호출 수행]
* int serviceData = db_maria_api_service.TEST_INSERT(input);
*
* // [리턴 받은 결과 JSON 포맷 실시 : 메시지, 테이블]
* if (serviceData > 0){
* JSONObject returnData = new JSONObject();
* returnData = C_Util.InsertUpdateDeleteMsgJsonFormat("O_MSG", serviceData);
* }
* // -----------------------------------------
* 3. 리턴 데이터 :
* {"O_MSG":"Y : SUCCESS"}
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONObject returnJson = new JSONObject();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (O_MSG_NAME != null
&& O_MSG_NAME.length()>0
&& O_MSG_NAME.trim().equals("") == false
&& O_MSG_NAME.trim().equals("null") == false
&& O_MSG_NAME.trim().equals("undefined") == false
&& O_MSG_DATA != null
&& O_MSG_DATA.length()>0
&& O_MSG_DATA.trim().equals("") == false
&& O_MSG_DATA.trim().equals("null") == false
&& O_MSG_DATA.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [JSON 데이터 삽입 실시]
returnJson.put(String.valueOf(O_MSG_NAME), String.valueOf(O_MSG_DATA));
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("InsertUpdateDeleteMsgJsonFormat"));
System.out.println("[INPUT] : [O_MSG_NAME] : "+String.valueOf(O_MSG_NAME));
System.out.println("[INPUT] : [O_MSG_DATA] : "+String.valueOf(O_MSG_DATA));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [map 데이터를 jsonObject 로 반환 실시]
public static JSONObject mapToJsonObject (Map<String, Object> inputMap) {
/**
* // -----------------------------------------
* [mapToJsonObject 메소드 설명]
* // -----------------------------------------
* 1. map 데이터를 jsonObject 로 반환 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* Map map = new HashMap();
* map.put("name", "투케이");
*
* JSONObject returnData = C_Util.mapToJsonObject(map);
* // -----------------------------------------
* 3. 리턴 데이터 : {"name":"투케이"}
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONObject returnJson = new JSONObject();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputMap != null && inputMap.size()>0 && inputMap.keySet().isEmpty() == false){
// [JSON 데이터 삽입 실시]
returnJson = new JSONObject(inputMap);
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("mapToJsonObject"));
System.out.println("[INPUT] : [inputMap] : "+String.valueOf(inputMap.toString()));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [List Map 데이터를 JsonArray 로 반환 실시]
public static JSONArray listMapToJsonArray (List<Map<String, Object>> inputData) {
/**
* // -----------------------------------------
* [listMapToJsonArray 메소드 설명]
* // -----------------------------------------
* 1. List Map 데이터를 JsonArray 로 반환 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* List<Map<String, Object>> listMapInsert = new ArrayList<Map<String, Object>>();
*
* // [for 반복문을 순회하면서 데이터 삽입 실시]
* for(int i=1; i<=3; i++) {
* // [Map 객체 생성 및 데이터 생성]
* Map<String, Object> map = new HashMap<String, Object>();
* map.put(String.valueOf(i), i+"value");
*
* // [List Map 에 배열에 데이터 삽입 실시]
* listMapInsert.add(map);
* }
*
* JSONArray returnData = C_Util.listMapToJsonArray(listMapInsert);
* // -----------------------------------------
* 3. 리턴 데이터 : [{"1":"1value"},{"2":"2value"},{"3":"3value"}]
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONArray returnJson = new JSONArray();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null && inputData.size()>0 && inputData.isEmpty() == false){
// [JSON 데이터 삽입 실시]
returnJson = new JSONArray(inputData);
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("listMapToJsonArray"));
System.out.println("[INPUT] : [inputData] : "+String.valueOf(inputData.toString()));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [List List Map 데이터를 JsonArray 로 반환 실시]
public static JSONArray listListMapToJsonArray (List<List<Map<String, Object>>> inputData) {
/**
* // -----------------------------------------
* [listListMapToJsonArray 메소드 설명]
* // -----------------------------------------
* 1. List List Map 데이터를 JsonArray 로 반환 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* List<List<Map<String, Object>>> listMapInsert = new ArrayList();
*
* List<Map<String, Object>> oneList = new ArrayList();
* Map<String, Object> oneMap = new HashMap<String, Object>();
* oneMap.put("name", "twok");
* oneList.add(oneMap);
*
* List<Map<String, Object>> twoList = new ArrayList();
* Map<String, Object> twoMap = new HashMap<String, Object>();
* twoMap.put("name", "투케이");
* twoList.add(twoMap);
*
* listMapInsert.add(oneList);
* listMapInsert.add(twoList);
*
* JSONArray returnData = C_Util.listListMapToJsonArray(listMapInsert);
* // -----------------------------------------
* 3. 리턴 데이터 : [[{"name":"twok"}],[{"name":"투케이"}]]
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONArray returnJson = new JSONArray();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null && inputData.size()>0 && inputData.isEmpty() == false){
// [JSON 데이터 삽입 실시]
returnJson = new JSONArray(inputData);
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("listListMapToJsonArray"));
System.out.println("[INPUT] : [inputData] : "+String.valueOf(inputData.toString()));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [원본 string > base64 인코딩 > URL 인코딩 문자열 변환 실시]
public static String stringToBase64AndUrlEncodeString (String inputData) {
/**
* // -----------------------------------------
* [stringToBase64AndUrlEncodeString 메소드 설명]
* // -----------------------------------------
* 1. 원본 string > base64 인코딩 > URL 인코딩 문자열 변환 실시
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.stringToBase64AndUrlEncodeString("안녕@#hello");
* // -----------------------------------------
* 3. 리턴 데이터 :
* 7JWI64WVQCNoZWxsbw%3D%3D
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String base64Encode = "";
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.length()>0
&& inputData.trim().equals("") == false
&& inputData.trim().equals("null") == false
&& inputData.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [base64 변환 수행 실시]
base64Encode = String.valueOf(new String(Base64.encodeBase64(inputData.getBytes("UTF-8"))));
// [URL 인코딩 변환 수행 실시]
String urlEncode = URLEncoder.encode(base64Encode, "UTF-8");
// [리턴 변수에 삽입]
returnData = String.valueOf(urlEncode);
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringToBase64AndUrlEncodeString"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[FORMAT] : [BASE64] : "+String.valueOf(inputData));
System.out.println("[RETURN] : [URL] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [url 인코딩 + base64 로 된 문자열 > Url 디코딩 > base64 디코딩 >원본 string 반환 실시]
public static String stringToUrlAndBase64DecodeString (String inputData) {
/**
* // -----------------------------------------
* [stringToUrlAndBase64DecodeString 메소드 설명]
* // -----------------------------------------
* 1. url 인코딩 + base64 로 된 문자열 > Url 디코딩 > base64 디코딩 >원본 string 반환 실시
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.stringToUrlAndBase64DecodeString("7JWI64WVQCNoZWxsbw%3D%3D");
* // -----------------------------------------
* 3. 리턴 데이터 :
* 안녕@#hello
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String base64String = "";
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.length()>0
&& inputData.trim().equals("") == false
&& inputData.trim().equals("null") == false
&& inputData.trim().equals("undefined") == false){ // [널이 아닌 경우]
if (inputData.contains("%") == true){ // [URL 인코딩 된 base64 문자열 인 경우]
base64String = URLDecoder.decode(inputData, "UTF-8");
}
else { // [base64 문자열로만 구성된 경우]
base64String = inputData;
}
// [base64 디코딩 수행 실시]
byte textBytes[] = Base64.decodeBase64(base64String);
// [리턴 변수에 삽입]
returnData = new String(textBytes, "UTF-8");
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringToUrlAndBase64DecodeString"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[FORMAT] : [BASE64] : "+String.valueOf(base64String));
System.out.println("[RETURN] : [STRING] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [url 인코딩 + base64 로 된 문자열 > base64 문자열로 반환 실시]
public static String urlAndBase64Tobase64String (String inputData) {
/**
* // -----------------------------------------
* [urlAndBase64Tobase64String 메소드 설명]
* // -----------------------------------------
* 1. url 인코딩 + base64 로 된 문자열 > base64 문자열로 반환 실시
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.urlAndBase64Tobase64String("7JWI64WVQCNoZWxsbw%3D%3D");
* // -----------------------------------------
* 3. 리턴 데이터 :
* 7JWI64WVQCNoZWxsbw==
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String base64String = "";
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.length()>0
&& inputData.trim().equals("") == false
&& inputData.trim().equals("null") == false
&& inputData.trim().equals("undefined") == false){ // [널이 아닌 경우]
if (inputData.contains("%") == true){ // [URL 인코딩 된 base64 문자열 인 경우]
base64String = URLDecoder.decode(inputData, "UTF-8");
}
else { // [base64 문자열로만 구성된 경우]
base64String = inputData;
}
// [리턴 변수에 삽입]
returnData = String.valueOf(base64String);
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("urlAndBase64Tobase64String"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [원본 string > base64 인코딩 > URL 인코딩 문자열 변환 실시]
public static String stringToAes128AndUrlEncodeString (String aes128SecretKey, byte[] aes128ivBytes, String data) {
/**
* // -----------------------------------------
* [stringToBase64AndUrlEncodeString 메소드 설명]
* // -----------------------------------------
* 1. 원본 string > base64 인코딩 > URL 인코딩 문자열 변환 실시
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.stringToAes128AndUrlEncodeString("0123456789abcdef", new byte[16], "hello@@안녕");
* C_Util.stringToAes128AndUrlEncodeString("0123456789abcdef", "0123456789abcdef".getBytes("UTF-8"), "hello@@안녕");
* // -----------------------------------------
* 3. 리턴 데이터 :
* a9KPLoYb6DOiq7KNoyLmlQ%3D%3D
* t9fQzooP8YOkDsUl0Lt1%2BA%3D%3D
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String aes128Encode = "";
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (aes128SecretKey != null
&& aes128SecretKey.length()>0
&& aes128SecretKey.trim().equals("") == false
&& aes128SecretKey.trim().equals("null") == false
&& aes128SecretKey.trim().equals("undefined") == false
&& aes128ivBytes != null
&& data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [AES 128 암호화 수행 실시]
aes128Encode = String.valueOf(
C_Encryption.getAES128EncodeString(aes128SecretKey, aes128ivBytes, data)
);
// [URL 인코딩 변환 수행 실시]
String urlEncode = URLEncoder.encode(aes128Encode, "UTF-8");
// [리턴 변수에 삽입]
returnData = String.valueOf(urlEncode);
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringToAes128AndUrlEncodeString"));
System.out.println("[INPUT] : [KEY] : "+String.valueOf(aes128SecretKey));
System.out.println("[INPUT] : [IV] : "+String.valueOf(Arrays.toString(aes128ivBytes)));
System.out.println("[INPUT] : [DATA] : "+String.valueOf(data));
System.out.println("[FORMAT] : [AES128] : "+String.valueOf(aes128Encode));
System.out.println("[RETURN] : [URL] "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [aes128 + URL 인코딩 문자열 > url 디코딩 > aes128 디코딩 > 원본 문자열 변환 실시]
public static String aes128AndUrlToDecodeString (String aes128SecretKey, byte[] aes128ivBytes, String data) {
/**
* // -----------------------------------------
* [stringToBase64AndUrlEncodeString 메소드 설명]
* // -----------------------------------------
* 1. aes128 + URL 인코딩 문자열 > url 디코딩 > aes128 디코딩 > 원본 문자열 변환 실시
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.aes128AndUrlToDecodeString("0123456789abcdef", new byte[16], "a9KPLoYb6DOiq7KNoyLmlQ%3D%3D");
* C_Util.aes128AndUrlToDecodeString("0123456789abcdef", "0123456789abcdef".getBytes("UTF-8"), "t9fQzooP8YOkDsUl0Lt1%2BA%3D%3D");
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* hello@@안녕
* hello@@안녕
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String base64String = "";
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (aes128SecretKey != null
&& aes128SecretKey.length()>0
&& aes128SecretKey.trim().equals("") == false
&& aes128SecretKey.trim().equals("null") == false
&& aes128SecretKey.trim().equals("undefined") == false
&& aes128ivBytes != null
&& data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){ // [널이 아닌 경우]
if (data.contains("%") == true){ // [URL 인코딩 된 base64 문자열 인 경우]
base64String = URLDecoder.decode(data, "UTF-8");
}
else { // [base64 문자열로만 구성된 경우]
base64String = data;
}
// [AES 128 복호화 수행 실시]
String aes128Decode = String.valueOf(
C_Encryption.getAES128DecodeString(aes128SecretKey, aes128ivBytes, base64String)
);
// [리턴 변수에 삽입]
returnData = String.valueOf(aes128Decode);
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("aes128AndUrlToDecodeString"));
System.out.println("[INPUT] : [KEY] : "+String.valueOf(aes128SecretKey));
System.out.println("[INPUT] : [IV] : "+String.valueOf(Arrays.toString(aes128ivBytes)));
System.out.println("[INPUT] : [DATA] : "+String.valueOf(data));
System.out.println("[FORMAT] : [AES128] : "+String.valueOf(base64String));
System.out.println("[RETURN] : [STRING] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [HashMap 객체 널 판단 실시 : true / false]
public static boolean mapNotNull (Map inputData) {
/**
* // -----------------------------------------
* [mapNotNull 메소드 설명]
* // -----------------------------------------
* 1. HashMap 객체 널 판단 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_Util.mapNotNull(null);
*
* C_Util.mapNotNull(new HashMap());
*
* Map map = new HashMap();
* map.put("name", "TWOK");
* C_Util.mapNotNull(map);
* // -----------------------------------------
* 3. 리턴 데이터 : HashMap 객체가 널이 아닌 경우 true / 널인 경우 false
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
boolean returnData = false;
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.isEmpty() == false
&& inputData.size() > 0
&& inputData.keySet().size() > 0){ // [널이 아닌 경우]
// [리턴 변수에 삽입]
returnData = true;
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("mapNotNull"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [List Map 객체 널 판단 실시 : true / false]
public static boolean listMapNotNull (List<Map<String, Object>> inputData) {
/**
* // -----------------------------------------
* [listMapNotNull 메소드 설명]
* // -----------------------------------------
* 1. List Map 객체 널 판단 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_Util.listMapNotNull(null);
*
* List<Map<String, Object>> listMap_1 = new ArrayList<>();
* C_Util.listMapNotNull(listMap_1);
*
* List<Map<String, Object>> listMap_2 = new ArrayList<>();
* Map map = new HashMap();
* map.put("name", "TWOK");
* listMap_2.add(map);
* C_Util.listMapNotNull(listMap_2);
* // -----------------------------------------
* 3. 리턴 데이터 : List Map 객체가 널이 아닌 경우 true / 널인 경우 false
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
boolean returnData = false;
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.isEmpty() == false
&& inputData.size() > 0){ // [널이 아닌 경우]
// [리턴 변수에 삽입]
returnData = true;
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("listMapNotNull"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [List List Map 객체 널 판단 실시 : true / false]
public static boolean listListMapNotNull (List<List<Map<String, Object>>> inputData) {
/**
* // -----------------------------------------
* [listListMapNotNull 메소드 설명]
* // -----------------------------------------
* 1. List Map 객체 널 판단 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_Util.listListMapNotNull(null);
*
* List<List<Map<String, Object>>> listMap_1 = new ArrayList<>();
* List<Map<String, Object>> listMap_2 = new ArrayList<>();
* Map map = new HashMap();
* map.put("name", "TWOK");
* listMap_2.add(map);
* listMap_1.add(listMap_2);
*
* C_Util.listListMapNotNull(listMap_1);
* // -----------------------------------------
* 3. 리턴 데이터 : List List Map 객체가 널이 아닌 경우 true / 널인 경우 false
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
boolean returnData = false;
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.isEmpty() == false
&& inputData.size() > 0){ // [널이 아닌 경우]
// [리턴 변수에 삽입]
returnData = true;
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("listListMapNotNull"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [프로시저 호출 리턴 메시지 JSON 형식 포맷 실시]
public static JSONObject procMsgAndDataFormat (String O_MSG_NAME, String O_MSG_VALUE, String O_DATA_NAME, String O_DATA_VALUE) {
/**
* // -----------------------------------------
* [procMsgAndDataFormat 메소드 설명]
* // -----------------------------------------
* 1. JSON 형식 메시지, 데이터 포맷 수행 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
*
* // -----------------------------------------
* 4. 리턴 데이터 :
* {"O_MSG":"Y : SUCCESS", "O_DATA":"안녕하세요"}
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
JSONObject returnJson = new JSONObject();
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (O_MSG_NAME != null
&& O_MSG_NAME.length()>0
&& O_MSG_NAME.trim().equals("") == false
&& O_MSG_NAME.trim().equals("null") == false
&& O_MSG_NAME.trim().equals("undefined") == false
&& O_DATA_NAME != null
&& O_DATA_NAME.length()>0
&& O_DATA_NAME.trim().equals("") == false
&& O_DATA_NAME.trim().equals("null") == false
&& O_DATA_NAME.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [JSON 데이터 삽입 실시]
returnJson.put(String.valueOf(O_MSG_NAME), String.valueOf(O_MSG_VALUE));
returnJson.put(String.valueOf(O_DATA_NAME), String.valueOf(O_DATA_VALUE));
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
/*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("procMsgAndDataFormat"));
System.out.println("[INPUT] : [O_MSG_NAME] : "+String.valueOf(O_MSG_NAME));
System.out.println("[INPUT] : [O_MSG_VALUE] : "+String.valueOf(O_MSG_VALUE));
System.out.println("[INPUT] : [O_DATA_NAME] : "+String.valueOf(O_DATA_NAME));
System.out.println("[INPUT] : [O_DATA_VALUE] : "+String.valueOf(O_DATA_VALUE));
System.out.println("[RETURN] : [JSON] : "+String.valueOf(returnJson.toString()));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnJson;
}
// TODO [base64 문자열 > URL 인코딩 문자열 변환 실시]
public static String base64StringToUrlEncodeString (String inputData) {
/**
* // -----------------------------------------
* [base64StringToUrlEncodeString 메소드 설명]
* // -----------------------------------------
* 1. base64 문자열 > URL 인코딩 문자열 변환 실시
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.base64StringToUrlEncodeString("4RVOKXvm5JBqFxfUqt2OT3Qzi8HacCFXC4CtvvdxHGLfMmIDOXa5VQPgPTJpbTxCMYO6DKUiXQctFioE+qXdUdrB1ORw+5savncSzJifr24=");
* // -----------------------------------------
* 3. 리턴 데이터 :
* 4RVOKXvm5JBqFxfUqt2OT3Qzi8HacCFXC4CtvvdxHGLfMmIDOXa5VQPgPTJpbTxCMYO6DKUiXQctFioE%2BqXdUdrB1ORw%2B5savncSzJifr24%3D
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.length()>0
&& inputData.trim().equals("") == false
&& inputData.trim().equals("null") == false
&& inputData.trim().equals("undefined") == false){ // [널이 아닌 경우]
// [이미 URL 인코딩 된 문자 인지 확인 실시]
if (inputData.contains("%")){
// [리턴 변수에 삽입]
returnData = inputData;
}
else {
// [URL 인코딩 변환 수행 실시]
String urlEncode = URLEncoder.encode(inputData, "UTF-8");
// [리턴 변수에 삽입]
returnData = String.valueOf(urlEncode);
}
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("base64StringToUrlEncodeString"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [Mysql 전용 프로시저 호출 리턴 메시지 + 리턴 BLOB 이미지 형식을 Blob 이미지로 리턴 실시]
public static Blob mySqlMsgBlobAndImageReturn (List<List<Map<String, Object>>> totalData, String O_MSG_NAME, String O_MSG_CHECK) {
/**
* // -----------------------------------------
* [mySqlMsgBlobAndImageReturn 메소드 설명]
* // -----------------------------------------
* 1. Mysql 전용 프로시저 호출 리턴 메시지 + 리턴 BLOB 이미지 형식을 Blob 이미지로 리턴 실시
* // -----------------------------------------
* 2. Mysql 프로시저 호출 리턴 메시지, 테이블 조회 데이터는 개별 List Map 형식으로 받습니다
* // -----------------------------------------
* 3. Mybatis 참고 코드 :
* <resultMap id="PRO_SEL_PHTO_O_MSG" type="hashmap" />
* <resultMap id="PRO_SEL_PHTO_O_CURSOR" type="hashmap" />
* <select id="PRO_SEL_PHTO" parameterType="hashmap" resultMap="PRO_SEL_PHTO_O_MSG, PRO_SEL_PHTO_O_CURSOR" statementType="CALLABLE">
* <![CDATA[
* { call PRO_SEL_PHTO(
* #{IDNO, mode=IN, jdbcType=VARCHAR, javaType=string},
*
* #{O_MSG}
* )}
* ]]>
* </select>
* // -----------------------------------------
* 4. 호출 방식 :
*
* // [service 호출 수행]
* List<List<Map<String, Object>>> serviceData = db_maria_api_service.PRO_SEL_PHTO(map);
*
* // [이미지 리턴 실시]
* Blob returnData = C_Util.mySqlMsgBlobAndImageReturn(serviceData, "O_MSG", "O_CUR");
* // -----------------------------------------
* 5. 리턴 데이터 :
*
* Blob 이미지 리턴
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
Blob returnBlob = null;
// [메시지 데이터 삽입 변수 선언]
String msgData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (O_MSG_NAME != null
&& O_MSG_NAME.length()>0
&& O_MSG_NAME.trim().equals("") == false
&& O_MSG_NAME.trim().equals("null") == false
&& O_MSG_NAME.trim().equals("undefined") == false
&& O_MSG_CHECK != null
&& O_MSG_CHECK.length()>0
&& O_MSG_CHECK.trim().equals("") == false
&& O_MSG_CHECK.trim().equals("null") == false
&& O_MSG_CHECK.trim().equals("undefined") == false
&& totalData != null
&& totalData.size()>1){ // [널이 아닌 경우]
// [리턴 데이터 반환 실시]
int curIdx = 0;
for(int i=0; i<totalData.size(); i++){
JSONArray parseArray = new JSONArray(totalData.get(i));
if (parseArray.length() == 1){
JSONObject msgObj = new JSONObject(String.valueOf(parseArray.get(0)));
if (msgObj.has(String.valueOf(O_MSG_NAME))){ // [메시지인 경우]
// [메시지 삽입]
msgData = String.valueOf(msgObj.get(O_MSG_NAME));
}
else { // [커서 데이터인 경우]
curIdx = i;
}
}
else { // [커서 데이터인 경우]
curIdx = i;
}
}
// [메시지 판단 실시]
if (msgData.trim().startsWith(O_MSG_CHECK.toUpperCase()) == true
|| msgData.trim().startsWith(O_MSG_CHECK.toLowerCase()) == true){ // [Y 시작 판단]
// [배열에 데이터 삽입 : [{T_BLOB=org.mariadb.jdbc.MariaDbBlob@a4eb84be}]]
List<Map<String, Object>> blobArray = totalData.get(curIdx);
// [데이터 파싱 수행 실시]
if (blobArray != null && blobArray.isEmpty() == false && blobArray.size()>0){
// [맵으로 데이터 받음 : {T_BLOB=org.mariadb.jdbc.MariaDbBlob@a4eb84be}]
Map blobMap = blobArray.get(0);
// [맵에 포함된 KEY 확인]
Set set = blobMap.keySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()){
String key = (String) iterator.next(); // [KEY]
// [리턴 변수에 삽입 실시]
returnBlob = (Blob) blobMap.get(key);
}
}
}
}
else {
// [에러 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("mySqlMsgBlobAndImageReturn"));
System.out.println("[ERROR] : "+String.valueOf("Total Data Size Error"));
System.out.println("================================================");
System.out.println("\n");
// */
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("mySqlMsgBlobAndImageReturn"));
System.out.println("[INPUT] : [totalData] : "+String.valueOf(totalData.toString()));
System.out.println("[INPUT] : [O_MSG_NAME] : "+String.valueOf(O_MSG_NAME));
System.out.println("[INPUT] : [O_MSG_CHECK] : "+String.valueOf(O_MSG_CHECK));
System.out.println("[RETURN] : [BLOB] : "+String.valueOf(returnBlob));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnBlob;
}
// TODO [Map 데이터를 http 요청 쿼리 스트링 형태 문자열로 리턴 실시]
public static String mapToUrlEncodeQueryString (Map<String, Object> inputData) {
/**
* // -----------------------------------------
* [mapToUrlEncodeQueryString 메소드 설명]
* // -----------------------------------------
* 1. Map 데이터를 http 요청 쿼리 스트링 형태 문자열로 리턴 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* Map<String, Object> map = new HashMap<>();
* map.put("name", "투케이");
* map.put("age", 29);
*
* C_Util.mapToUrlEncodeQueryString(map);
* // -----------------------------------------
* 3. 리턴 데이터 :
* name=%ED%88%AC%EC%BC%80%EC%9D%B4&age=29
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (inputData != null
&& inputData.isEmpty() == false
&& inputData.size()>0){ // [널이 아닌 경우]
// [map 데이터 key, value 확인]
Set set = inputData.keySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()){
if (returnData.length()>0){
returnData += "&";
}
String key = (String) iterator.next();
String value = String.valueOf(inputData.get(key));
// [리턴 변수에 순차적으로 삽입 실시]
returnData += URLEncoder.encode(key, "UTF-8");
returnData += "=";
returnData += URLEncoder.encode(value, "UTF-8");
}
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("mapToUrlEncodeQueryString"));
System.out.println("[INPUT] : "+String.valueOf(inputData));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [http get, post 쿼리 파람 데이터 요청 포맷 String 리턴 실시]
public static String queryStringUrlEncode (String url, Map<String, Object> params) {
/**
* // -----------------------------------------
* [queryStringUrlEncode 메소드 설명]
* // -----------------------------------------
* 1. http get, post 쿼리 파람 데이터 요청 포맷 String 리턴 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* String url = "http://jsonplaceholder.typicode.com/posts";
*
* Map<String, Object> map = new HashMap<>();
* map.put("userId", 1);
* map.put("id", 1);
*
* C_Util.queryStringUrlEncode(url, map);
* // -----------------------------------------
* 3. 리턴 데이터 :
* http://jsonplaceholder.typicode.com/posts?id=1&userId=1
* // -----------------------------------------
* */
// [리턴 데이터 선언 실시]
String returnData = "";
// [로직 처리 수행 실시]
try {
// [사전 인풋 데이터 널 체크 실시]
if (url != null
&& url.isEmpty() == false
&& url.length()>0
&& url.trim().equals("") == false
&& url.trim().equals("undefined") == false
&& url.trim().equals("null") == false
&& params != null
&& params.isEmpty() == false
&& params.size()>0){ // [널이 아닌 경우]
// [쿼리 파라미터 형식 주소 설정 실시]
returnData = url.trim();
if(returnData.endsWith("?") == true){
}
else{
returnData = returnData + "?";
}
// [파라미터 map 데이터 key, value 확인]
String paramData = "";
Set set = params.keySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()){
if (paramData.length()>0){
paramData += "&";
}
String key = (String) iterator.next();
String value = String.valueOf(params.get(key));
// [리턴 변수에 순차적으로 삽입 실시]
paramData += URLEncoder.encode(key, "UTF-8");
paramData += "=";
paramData += URLEncoder.encode(value, "UTF-8");
}
// [최종 리턴 데이터 삽입]
returnData = returnData + paramData;
}
}
catch (Exception e){
e.printStackTrace();
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("queryStringUrlEncode"));
System.out.println("[INPUT] : [URL] : "+String.valueOf(url));
System.out.println("[INPUT] : [param] : "+String.valueOf(params));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
// TODO [String 문자열 데이터가 URL 형식으로 파싱 가능 한지 체크 실시]
public static boolean stringIsUrlParsing(String url){
/**
* // -----------------------------------------
* [stringIsUrlParsing 메소드 설명]
* // -----------------------------------------
* 1. String 문자열 데이터가 URL 형식으로 파싱 가능 한지 체크 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_Util.stringIsUrlParsing("https://www.naver.com");
* C_Util.stringIsUrlParsing("test.co.kr");
* // -----------------------------------------
* 3. 리턴 데이터 : true / false
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
boolean returnData = false;
// [인풋 데이터 널 체크 수행 실시]
if (url != null && url.length()>0 && url.equals("") == false
&& url.trim().equals("null") == false && url.trim().equals("undefined") == false
&& url.startsWith("http") == true){
try {
// [URL 형식으로 파싱 가능 한지 확인 실시]
URL checkUrl = new URL(url);
// [리턴 변수 삽입 실시]
returnData = true;
}
catch (Exception e){
//e.printStackTrace();
}
}
// [로그 출력]
///*
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("stringIsUrlParsing"));
System.out.println("[INPUT] : "+String.valueOf(url));
System.out.println("[RETURN] : "+String.valueOf(returnData));
System.out.println("================================================");
System.out.println("\n");
// */
// [리턴 데이터 반환 실시]
return returnData;
}
} // TODO [클래스 종료]
반응형
'투케이2K 유틸파일' 카테고리의 다른 글
Comments