본문 바로가기

IT

(25)
25_Java Thread : 스레드 생성하기 00. 스레드 vs 프로세스 프로세스 : 운영체제에서 실행중인 하나의 애플리케이션 - 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당 받아 프로세스를 실행한다. - Chrome 브라우저 두 개를 실행했다면 두 개의 프로세스가 생성된 것 멀티태스킹 : 두 가지 이상의 작업을 동시에 처리하는 것. - 운영체제는 CPU 및 메모리 자원을 프로세스마다 적절히 할당해주고 병렬로 실행시킨다. - 멀티태스킹은 꼭 멀티프로세스를 뜻하지 않는다. 예) 메신저에서 채팅기능을 제공하면서 동시에 파일 전송 기능을 수행하기도 한다. - 하나의 프로세스가 멀티태스킹을 수행하기 위해서는 멀티 스레드가 필요하다. - 스레드는 태스킹 단위마다 생성된다. 멀티프로세스 : 서로 독립적이기 때문에 하나의 프로세스..
24_Java : API - Arrays 클래스 - 배열의 복사, 정렬, 검색 00. Aarrays 클래스 자바의 Arrays 클래스는 배열의 복사, 정렬, 검색 등 배열 조작 기능을 가지고 있다. 그 중 간단하지만 유용한 것 몇 가지를 정리해보았다. 01. 배열 복사 - System.arraycopy(); 단순 복사의 경우 아래와 같이 System.arraycopy() 메소드를 사용할 수 있다. 중요한 점은 destination이 될 배열을 먼저 만들어 놓고(#6) 복사를 실행한다는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class ArrayCopyExample { public static void main(String[] args) { char[] arr1 = { 'J', 'A', 'V', 'A' }; // 방법1 ..
23_자바로 도서 관리 프로그램 만들기 예전에 만들어둔 도서 관리 프로그램이다. 반복문을 사용하여 ArrayList에 도서 정보가 누적되도록 하였지만 JDBC를 사용하지 않았기 때문에 프로그램을 종료할 때 까지만 사용 가능하다. 메인을 최대한 깔끔하게 하는 것이 목표였다. 01. Book 클래스 - 기본구성 - 도서번호, 제목, 지은이, 장르, 대출가능여부 - 형태의 ArrayList에 책의 정보를 누적시킴 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 public class Book { Scanner sc = new Sca..
22_자바로 석차 계산 가능한 성적표 만들기(클래스, ArrayList 활용) 00. 코로나 때문에 꿀같은 주말인데 밖에도 못 나가고 심심해서 옛날에 만들었던 프로그램을 다른 방법으로 만들어봤다. 자바로 석차 계산 가능한 성적 관리 프로그램을 만드는 방법은 다양하다. 예전에는 이차원 배열을 활용해서 만들었지만 이번에는 더 간단하게 클래스를 활용하여 만들었다. 이번 프로그램의 특징은 1. Student 클래스는 학번, 이름, 과목별 성적, 총점, 평균, 등급, 석차를 필드로 가지고 있다. 2. Student 클래스는 사용자로부터 입력 받는 메소드 부터 최종 결과 출력 메소드까지 포함하고 있다. 3. 석차를 제외한 모든 필드는 한꺼번에 입력 및 산출이 가능하다 (예: 1번 학생의 이름을 입력한 후, 과목별 성적을 입력하면 총점과 평균, 등급이 자동으로 계산되어 업데이트 된다. 그 이후..
21_이메일 형식 검사 프로그램(정규표현식, 자바 Pattern 클래스) 00. 정규표현식 - 문자열이 정해져 있는 형식으로 구성되어 있는지 검증해야 할 때 정규표현식(Regular Expression)을 사용할 수 있다. - 정규표현식 작성 방법은 API의 java.util.regex.Pattern 클래스의 Summary of regular-expression constructs 를 참조하면 된다. 01. 자주 사용하는 정규 표현식 기호 예를 들어, 02-123-1234 또는 010-1234-5678 과 같은 전화번호의 정규식은 아래와 같이 나타낼 수 있다. (02|010)-\d{3,4}-\d{4} 02. Pattern 클래스 - java.tuil.regex.Pattern 클래스의 정적메소드 matches() 메소드를 사용하여 정규 표현식으로 문자열을 검증할 수 있다. - ..
20_Java String 클래스 String 클래스와 StringTokenizer 클래스가 가진 유용한 메소드 몇 가지를 정리해보려고 한다. 01. String 클래스 - charAt(index) 메소드 해당 문자열의 index가 나타내는 문자를 찾아준다. 예를 들어 주민등록번호를 숫자로만 입력했을 때, 7번째 자리의 숫자는 성별을 나타낸다. charAt(index) 메소드를 사용하면 해당 주민등록번호를 가진 사람의 성별을 알 수 있다. 주의할 점은, 배열과 마찬가지로 문자열의 인덱스도 0번부터 시작한다는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package ex05_string; import java.util.Scanner; ..
19_비밀번호 생성기 만들기 어느 날 심심해서 비밀번호 생성기를 만들어봤다. 사실 심심해서 만든 건 아니다. 얼마전(.....무려 6개월 전이네) 스팸메일함을 보고 깜짝 놀랐다. 메일 제목이 수년 전에 사용하던 비밀번호로 되어 있었기 때문이다. 이런 메일은 원래 열어보지 않는 것이 제일 좋지만 그래도 호기심을 참지 못하고 클릭해버렸다. 내용은 흔하디 흔한, 비트코인을 보내지 않으면 컴퓨터의 자료를 모두 망가뜨리고 개인정보까지 유출시키겠다는 이야기. 제목에 적혀있는 비밀번호도 어차피 엄청 옛날에 쓰던 것이고 메일 내용 자체도 말도 안 되는 이야기라 바로 삭제했지만 여러 사이트에서 같은 비밀번호를 사용하는 것이 얼마나 위험한지 새삼 느끼게 되었다. 그래서 비밀번호를 나름 나누어 사용하기로 결심했는데... 새로운 비밀번호를 만들어내기가 ..
18_자바 System 클래스 : exit 메소드, 프로그램 실행 소요 시간 구하기 00. System 클래스 -- java.lang.System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있다. -- System 클래스의 모든 필드와 메소드는 static으로 구성되어 있다. 01. exit 메소드 -- 개발을 하다보면 JVM을 강제로 종료시킬 때가 있는데, 이 때 exit 메소드를 사용한다. -- int형 매개값을 지정하도록 되어있는데, 이 값을 종료상태값이라고 부른다. -- 일반적으로 정상 종료일 경우 0으로 지정하고 비정상종료일 경우 다른 값을 지정한다. -- System.exit()이 실행되면 보안관리자(Security Manager)의 checkExit() 메소드가 자동 호출되는데, 이 때 종료상태값을 조사하여 특정 값이 입력되었을 때만 JVM이 종료되도록 할 수 있다..