Skip to content

Commit

Permalink
#48 [refactor] util 리팩토링
Browse files Browse the repository at this point in the history
  • Loading branch information
hamings committed Mar 27, 2024
1 parent d09a43f commit a2da4b1
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 79 deletions.
33 changes: 13 additions & 20 deletions src/src/util/FileSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class FileSystem {
private static Map<ServiceType, String> filenameMap;
private static Map<ServiceType, Boolean> isNotSavedMap;
private static Map<ServiceType, Map> mapCache;

static {
isNotSavedMap = new HashMap<>();
isNotSavedMap.put(ServiceType.LECTURE, false);
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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;
}

Expand All @@ -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();
Expand Down
76 changes: 17 additions & 59 deletions src/src/util/ValidationSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -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])$";
Expand Down Expand Up @@ -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");
}
}

0 comments on commit a2da4b1

Please sign in to comment.