JAVA
프로세스와 쓰레드, 멀티쓰레드의 장단점
프로세스와 쓰레드, 멀티쓰레드의 장단점
2022.05.29프로세스와 쓰레드 (process & thread) 프로세스 : 실행 중인 프로그램, 자원(resources)과 쓰레드로 구성 쓰레드 : 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 프로세스는 공장, 쓰레드는 일꾼이라고 생각할 수 있다. 왼쪽 그림은 일꾼이 1명이다. 이것을 싱글 쓰레드 프로세스 라고 한다. 오른쪽 그림은 일꾼이 여러명이다. 이것을 멀티 쓰레드 프로세스라고 한다. 지금까지 우리가 작성해온 프로그램은 싱글스레드 프로세스였다. 이제는 우리가 멀티 프로세스 프로그램을 작성해보려고 하는 것이다. 멀티 쓰레드로 프로그램을 작성하면, 한 프로세스 내에 일꾼이 여러명이기 때문에, 여러 작업을 나눠서 동시에 수행할 수 있고, 작업을 보다 효율적으로 처리할 수..
애너테이션 타입 정의하기, 애너테이션의 요소
애너테이션 타입 정의하기, 애너테이션의 요소
2022.05.21애너테이션 타입 정의하기 애너테이션을 직접 만들어 쓸 수 있다. 애너테이션을 만드는 방법은 아주 간단하다. interface라는 키워드앞에 @를 붙히면 애너테이션을 만들 수 있다. 예를 들어서 DateTime이라는 애너테이션은 2개의 요소를 가지고 있다. 날짜를 의미하는 요소와, 시간을 의미하는 요소를 가지고 있다. 생긴것은 꼭 추상 메서드같이 생겼다. 애너테이션의 메서드는 추상 메서드이며, 애너테이션을 적용할 때 지정(순서X) 애너테이션의 메서드는 추상 메서드이다. 우리가 인터페이스에 추상 메서드를 가질 수 있는 것 처럼, 애너테이션도 추상 메서드로 선언이 되어있다. 그리고, DateTime testDate(); 처럼, 애너테이션이 또다른 애너테이션을 요소로 정의할 수 있다. TestInfo라는 애너테..
메타 애너테이션
메타 애너테이션
2022.05.11메타 애너테이션 메타 애너테이션은 '애너테이션을 위한 애너테이션' 메타 애너테이션은 java.lang.annotation패키지에 포함 메타 애너테이션은 "애너테이션을 위한 애너테이션"이다. 애너테이션을 만들 때 사용하는 애너테이션이다. 메타 애너테이션은 java.lang.annotation패키지에 포함되어 있다. 위의 표에있는 메타 애너테이션을 하나씩 살펴보자. @Target 애너테이션을 정의할 때, 적용대상 지정에 사용 @Target 메타 애너테이션은 애너테이션을 어디에 붙일 수 있는지를 지정할 때 사용한다. @SuppressWarnings 애너테이션의 실제 소스코드이다. 이 애너테이션을 어디에 붙일 수 있냐면, TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL..
표준 애너테이션
표준 애너테이션
2022.05.11@Override 오버라이딩을 올바르게 했는지 컴파일러가 체크하게 한다. 오버라이딩 할 때 메서드 이름을 잘못적는 실수를 하는 경우가 많다. @Override 애너테이션은 컴파일러 javac.exe 가 사용하는 애너테이션이다. 우리가 오버라이딩 할 때, 메서드 이름을 잘못 적는 실수를 하는 경우가 많다. 예를 들면 Praent클래스에 있는 parentMethod()에서 M 은 대문자인데, 오버라이딩 하려 하다가 실수로 parentmethod()라고 m을 소문자로 썻다. 그러면 이것은 오버라이딩이 아니다. 그냥 새로운 메서드를 만든꼴이 된다. 내가 의도한 것과 다르지만, 컴파일에는 아무 문제가 없다. 그래서 내가 parentMethod()를 호출하려했는데 parentmethod()가 호출되는 일이 발생한다..
애너테이션
애너테이션
2022.05.09애너테이션이란? 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공 애너테이션은, 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공한다. 이것은 자바 소스파일 중에 하나이다. Annotation.java 파일의 앞부분이다. 초록색 부분은 주석이다. /** 로 시작하는 것을 javadoc.exe 주석이라고 한다. 단순히 주석에 포함되면서 프로그램한테 유용한 정보를 제공하는 것이 애너테이션 이다. (@가 포함된 것) 애너테이션의 사용예 @Test 가 바로 애너테이션이다. 애너테이션은 앞에가 @로 시작하고, 첫글자가 대문자이다. JUnit이라는 단위테스트 프로그램이 있는데, 우리가 작성한 메서드를 JUnit이라는 프로그램을 이용해서 테스트 할 수 있다. 그런데 이때, 우리..
열거형에 멤버 추가하기
열거형에 멤버 추가하기
2022.05.09열거형에 멤버 추가하기 불연속적인 열거형 상수의 경우, 원하는 값을 괄호()안에 적는다. 지금까지는 열거형 상수에 값을 주지 않았었다. 순서대로 0, 1, 2, 3, 4.. 로 값이 할당되었는데, 다른값을 주고 싶을 때는 괄호()안에 값을 직접 넣어도 되고, EAST(1, ">") 이런 식으로 여러개도 가능하다. 그런데, 이렇게 하려면 사전에 다른 작업들을 좀 해줘야 한다. 괄호()를 사용하려면, 인스턴스 변수와 생성자를 새로 추가해 줘야 한다. 괄호를 이용해서 값을 저장할 iv를 선언해 줘야 한다. private final 이다. 그리고 생성자도 추가해 줘야 한다. 사실, 괄호()를 이용해서 값을 넣는게 생성자를 호출 하는 것이라서 그렇다. 그래서 괄호()를 이용해서 생성자를 호출해서 값을 넣으려면 값..