public static String toOnlyNumStr(String str){ return str.replaceAll("[^0-9]",""); } 출처: https://lovon.tistory.com/118?category=862726 [Java 개발 블로그]
/** * email 형식 검사 * @param email : 이메일 * @return boolean : 이메일 형식 여부 * */ public static boolean isEmail(String email){ boolean validation = false; if(StringUtils.isEmpty(email)){ return false; } String regex = "^[_a-z0-9-]+(.[_a-z0-9-]+)*@(?:\\w+\\.)+\\w+$"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(email); if(m.matches()) { validation = true; } return validation; } 출처: https://l..
/** * 전화번호(핸드폰번호)에 구분자를 추가 * @param phoneNumber : 전화번호 * @param str : 구분자 * */ public String convertPhoneNumber(String phoneNumber, String str) { try{ if (phoneNumber == null) { return ""; } if (phoneNumber.length() == 8) { return phoneNumber.replaceFirst("^([0-9]{4})([0-9]{4})$", "$1" + str + "$2"); } else if (phoneNumber.length() == 12) { return phoneNumber.replaceFirst("(^[0-9]{4})([0-9]{4})(..
HashMap을 반복문을 통해 조회하는 방법을 확인한다. 대부분 keySet을 사용하여 조회하지만, Map에서 Key에 해당하는 값을 조회하는 비용이 추가로 발생하므로, 왠만하면 entrySet 사용을 추천한다. HashMap map = new HashMap(); map.put("a", 1); map.put("b", 2); map.put("c", 3); // keySet을 사용한 조회 (키에 해당하는 값을 Map에서 재조회하는 비용이 추가로 소모된다) for (String s : map.keySet()) { System.out.println(s + "/" + map.get(s)); } System.out.println("-----"); // entrySet을 사용한 조회 (Map 재조회에 대한 비용 소모..
플렉션(Reflection) 로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩(Dynamic Loading)하여 사용하는것. Class.forName("클래스이름").newInstance 인터프리터(interpreter) 자바 컴파일러에 의해 변환된 자바 바이트 코드(.class)를 읽고 해석하는 역할 클래스 로더(Class Loader) 동적으로 클래스를 로딩해주는 역할 JIT 컴파일러(Just-In-time compiler) 프로그램이 실행중인 런타임에 실제 기계어로 변환해주는 컴파일러 동적 번역(Dynamic Translation)이라고도 불리며, 프로그램 실행 속도를 향상시키기 위해 개발됨 자바 컴파일러가 생성한 자바 바이트 코드를 런타임에 기계어로 변환하는데 사용 JVM 실행 과정 OS로..
1. Apache Jmeter 설치 http://jmeter.apache.org/ 위 사이트에 접속하여 사이트 왼쪽의 Download Releases 버튼을 클릭한 후 Binaries 에서 다운로드를 합니다 ( 윈도우의 경우 zip 파일을 다운로드 받습니다 ) 2. Apache Jmeter 실행 압축을 풀고 bin 폴더의 jmeter.bat 을 클릭합니다.cmd 창과 함께 Apache Jmeter 창이 뜨면 실행이 된것 입니다. ( 이때, cmd 창 종료시 Jmeter 또한 같이 종료 됨을 주의합니다 ) 3. Apache Jmeter 사용방법 왼쪽 상단의 testPlan 을 우클릭 한 후 Add > Threads (Users) > Thread Group 을 클릭하여 생성합니다 Number of Threa..
안녕하세요, 이번에 정리할 포스팅은 인텔리제이 IDE에서 VisualVM을 설치하고 연동해보도록 하겠습니다. VisualVM의 공식 홈페이지에서는 VisualVM을 다음과 같이 설명하고 있습니다. VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. Designed for both development and production time use. -> VisualVM은 커맨드라인 JDK 도구와 경량의 프로파일링 기능을 통합하는 시각적 도구입니다. -> 개발 및 생산 시간의 사용을 위해 디자인이 되었습니다 VIsualVM을 사용하면 아래 사진처럼 JVM의 CPU 메모리, Heap, ..
원형큐 (Circular Queue) 원형 큐는 선형 큐의 문제점을 보완하기 위한 자료구조입니다. 앞선 포스팅에서 선형큐의 문제점은 rear이 가르키는 포인터가 배열의 마지막 인덱스를 가르키고 있을 때 앞쪽에서 Dequeue로 발생한 배열의 빈 공간을 활용 할 수가 없었습니다. 원형큐에서는 포인터 증가 방식이 (rear+1)%arraysize 형식으로 변환하기 때문에 배열의 첫 인덱스부터 다시 데이터의 삽입이 가능해집니다. ■ Enqueue rear의 포인터를 1증가 시키고 그 위치에 데이터 삽입이 이루어집니다. 만약 rear+1이 배열의 끝이고 포화상태가 아니라면 배열의 첫 번째 인덱스에 데이터를 삽입합니다. → 배열의 포화상태 여부를 판단하기 위하여 배열의 1칸은 비워둡니다. (rear+1)%arra..
선형 큐 (Linear Queue) 큐는 가장 먼저 들어온 데이터가 가장 먼저 내보내지는 (FIFO : First In First Out) 구조를 가집니다. 선형 큐는 데이터를 집어넣는 Enqueue 기능과 데이터를 내보내는 Dequeue 기능을 제공합니다. ■Enqueue 기능 Enqueue는 큐 자료구조에 데이터를 집어 넣는 기능을 수행합니다. 영화 매표소에 사람들이 줄을 선다고 생각해봅니다. 이때 매표소 가장 앞사람을 가르키는 것을 front라 하고 마지막에 서있는 사람을 가르키는 것을 rear이라고 부릅니다. 1번이 Enqueue 되어진 상태입니다. 첫 번째로 줄을 선 사람이므로 front와 rear이 둘다 1번을 가르키고 있습니다. 다음으로 2번이 Enqueue 기능을 수행 한 상태입니다. Fr..
스택 (Stack) 스택(Stack)은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO- Last In First Out)으로 되어있습니다. 자료를 넣는 것을 PUSH라고 하고 넣어둔 자료를 꺼내는 것을 POP이라고 합니다. ■ 스택 입/출력 방식 실제로 스택이 어떤 식으로 자료가 입/출력 되는지 살펴 보겠습니다. 상자안에 책을 쌓는다고 생각을 하면 됩니다. 즉 가장 먼저 넣은 책은 가장 나중에 꺼낼 수 있으며, 가장 최근에 넣은 책을 가장 먼저 뺄수 있습니다. 가장 먼저 5를 PUSH 합니다. 스택 자료 구조에 가장 아래에 위치하게 됩니다. 차례대로 PUSH 4, PUSH 3을 한 결과입니다. POP 2회를 실시하게 되면 출력 결과는 3,4가 됩니다. 즉 3은 가장 나중에 입력 되었지만 ..