diff --git a/src/src/util/FileSystem.java b/src/src/util/FileSystem.java index ffcb713..42ffbe6 100644 --- a/src/src/util/FileSystem.java +++ b/src/src/util/FileSystem.java @@ -10,6 +10,7 @@ public class FileSystem { private static Map filenameMap; private static Map isNotSavedMap; private static Map mapCache; + static { isNotSavedMap = new HashMap<>(); isNotSavedMap.put(ServiceType.LECTURE, false); @@ -34,9 +35,9 @@ public class FileSystem { } catch (IOException e) { throw new RuntimeException(e); } - mapCache = new HashMap<>(); } + public static void makeFile(ServiceType serviceType) throws IOException { String filename = filenameMap.get(serviceType); File file = new File(filename); @@ -50,12 +51,11 @@ public static Map loadObjectMap(ServiceType serviceType) throws IOException { Map objectMap = null; String filename = filenameMap.get(serviceType); - - try{ + try { File file = new File(filename); - if(file.length() == 0) { - if( !isNotSavedMap.get(serviceType)) { + if (file.length() == 0) { + if (!isNotSavedMap.get(serviceType)) { objectMap = new HashMap(); isNotSavedMap.put(serviceType, true); mapCache.put(serviceType, objectMap); @@ -68,28 +68,24 @@ public static Map loadObjectMap(ServiceType serviceType) throws IOException { fis = new FileInputStream(file); bis = new BufferedInputStream(fis); ois = new ObjectInputStream(bis); - if(isNotSavedMap.get(serviceType)) { + if (isNotSavedMap.get(serviceType)) { objectMap = mapCache.get(serviceType); - } - else { - //System.out.println(1111); + } else { objectMap = (Map) ois.readObject(); isNotSavedMap.put(serviceType, true); - mapCache.put(serviceType, objectMap); } - } catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } finally { - try{ - if(ois != null) { + try { + if (ois != null) { ois.close(); } - }catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } } - return objectMap; } @@ -99,15 +95,12 @@ public static void saveObjectMap(ServiceType serviceType, Map objectMap) throws ObjectOutputStream oos = null; String filename = filenameMap.get(serviceType); - - try{ + try { fos = new FileOutputStream(filename); bos = new BufferedOutputStream(fos); oos = new ObjectOutputStream(bos); - oos.writeObject(objectMap); - //isNotSavedMap.put(serviceType, false); - } catch(Exception e) { + } catch (Exception e) { e.printStackTrace(); } finally { oos.close(); diff --git a/src/src/util/ValidationSystem.java b/src/src/util/ValidationSystem.java index dce498a..c47dd61 100644 --- a/src/src/util/ValidationSystem.java +++ b/src/src/util/ValidationSystem.java @@ -9,69 +9,34 @@ import java.util.regex.Pattern; public class ValidationSystem { - public static boolean isValidPassword (String input) { - /* - [비밀번호 형식] - 1. 소문자 최소하나 - 2. 대문자 최소하나 - 3. 숫자 최소하나 - 4. 특수문자 최소하나 - 5. 최소 8자리 이상 - */ + public static boolean isValidPassword(String input) { String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$"; boolean isValid = Pattern.matches(regex, input); - if(!isValid) return false; + if (!isValid) return false; return true; } - public static boolean isValidId (String input) { + public static boolean isValidId(String input) { String regex = "^[a-zA-Z]{1}[a-zA-Z0-9_]{4,11}$"; - // 예) 시작은 영문으로만, '_'를 제외한 특수문자 안되며 영문, 숫자, '_'으로만 이루어진 5 ~ 12자 이하 boolean isValid = Pattern.matches(regex, input); - if(!isValid) return false; + if (!isValid) return false; return true; } - public static boolean isValidEmail (String input) { - /* - ^: 문자열의 시작을 나타냅니다. - [a-zA-Z0-9]+: 최소 한 개 이상의 알파벳(소문자 또는 대문자) 또는 숫자를 의미합니다. 이 부분은 이메일의 사용자 이름 부분에 해당합니다. - @: 리터럴 '@' 문자가 반드시 있어야 합니다. 이메일 주소에서 사용자 이름과 도메인을 구분하는 데 사용됩니다. - [a-zA-Z0-9]+: '@' 기호 뒤에 오는 도메인 이름 부분으로, 최소 한 개 이상의 알파벳(소문자 또는 대문자) 또는 숫자를 포함해야 합니다. - \\.: 리터럴 '.'(점) 문자입니다. 이메일 주소에서 도메인 이름과 최상위 도메인을 구분하는 데 사용됩니다. 자바에서는 백슬래시(\)를 이스케이프 문자로 사용하기 때문에 점을 나타내기 위해 \\.를 사용합니다. - [a-z]+: 도메인 이름 뒤에 오는 최상위 도메인 부분으로, 최소 한 개 이상의 소문자 알파벳을 포함해야 합니다. - $: 문자열의 끝을 나타냅니다. - */ + public static boolean isValidEmail(String input) { String regex = "^[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-z]+$"; - boolean isValid = Pattern.matches(regex, input); - if(!isValid) return false; + if (!isValid) return false; return true; } - public static boolean isValidPhoneNumber (String input) { + public static boolean isValidPhoneNumber(String input) { String regex = "^\\d{2,3}-\\d{3,4}-\\d{4}$"; boolean isValid = Pattern.matches(regex, input); - if(!isValid) return false; + if (!isValid) return false; return true; } -// public static boolean isValidBirthDay (String input) { -// String regex = "^(19[0-9][0-9]|20[0-1][0-9]|202[0-4])-?(0[1-9]|1[0-2])-?(0[1-9]|[1-2][0-9]|3[0-1])$"; -// // 주의] 월별 일자는 체크 못함 -// boolean isValid = Pattern.matches(regex, input); -// if(!isValid) return false; -// -// try{ -// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); -// dateFormat.setLenient(false); -// dateFormat.parse(input); -// return true; -// }catch (ParseException e){ -// return false; -// } -// } - public static boolean isValidDate(String inputDate) { // 년-월-일 형식 확인을 위한 정규 표현식 String datePattern = "^(19\\d{2}|20\\d{2})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$"; @@ -110,35 +75,28 @@ private static boolean isLeapYear(int year) { return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); } - public static boolean isValidaccountNumber (String input) { - /* - 첫 번째 부분은 3자리에서 6자리 사이의 숫자입니다. - 두 번째 부분은 2자리에서 6자리 사이의 숫자입니다. - 세 번째 부분은 1자리 이상의 숫자입니다. - 각 부분은 하이픈(-)으로 구분됩니다. - */ + public static boolean isValidaccountNumber(String input) { String regex = "^\\d{3,6}-\\d{2,6}-\\d+$"; boolean isValid = Pattern.matches(regex, input); - if(!isValid) return false; + if (!isValid) return false; return true; } - public static boolean isValidName (String input) { + public static boolean isValidName(String input) { String regex = "^[ㄱ-ㅎ가-힣]+$"; - boolean isValid = Pattern.matches(regex, input); - if(!isValid) return false; + if (!isValid) return false; return true; } - public static boolean isValidaccountPassword (String input) { + public static boolean isValidaccountPassword(String input) { String regex = "^\\d{4}$"; boolean isValid = Pattern.matches(regex, input); - if(!isValid) return false; + if (!isValid) return false; return true; } - public static boolean isValidGender(String input){ - return input.equalsIgnoreCase("Female") ||input.equalsIgnoreCase("Male"); - } + public static boolean isValidGender(String input) { + return input.equalsIgnoreCase("Female") || input.equalsIgnoreCase("Male"); + } }