목록JAVA (3)
Illie
서론자바에서 외부 자원(파일 읽기, 쓰기 등)을 사용하게 되는 경우가 있는데,사용한 후에는 무조건 close() 메서드를 호출해주어야 한다 왜냐하면,첫번째로, 외부 자원에 대한 부분은 가비지 컬렉터가 처리해주지 않고두번째로, 다른 코드에서 같은 resource에 접근하려 하다가 꼬일 수 있기 때문이다 하지만, close() 할 때에도 Exception이 날 수 있어서close에도 try - catch를 적용해야 한다 꽤나 코드가 복잡해지는데, 이를 해결해주는 게 try-with-resources이다 본론간단하다try 블록이 끝나게 된다면, 괄호안에 있던 자원들이 자동으로 반납된다그리고 괄호 내에서 자원을 여러 개를 등록할 수 있다 try (BufferedWriter bw = new BufferedWrit..
서론Executor는 스레드를 효율적으로 사용할 수 있도록 도와준다 기본적으로 설정해놓은 스레드 수 만큼을 활성화해놓고 있다가, 활성화되어있는 스레드가 모두 사용중이라면 1. Queue에 넣어 대기 시키고 차례를 기다리던가2. 스레드를 초과해서 생성해서 작업을 진행하던가3. Rejection을 하던가선택할 수 있다. 서비스의 목적에 맞게 맞는 전략을 세우면 되는데, 대표적으로 어떤 전략이 있는지 알아보고자 한다 본론1단일 스레드 풀 전략스레드 풀에 기본 스레드 1개만 사용한다즉, 추가적으로 들어오는 요청은 모두 대기 상태가 된다new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue()) 고정 풀 전략단일 스레드 풀 전..
서론클래스 인스턴스가 딱 하나만 생성되는 것을 보장하는 디자인 패턴 요청이 올 때마다 객체를 생성하게 된다면, 메모리 낭비가 매우 클 것이기 때문에이를 방지하기 위해 객체를 미리 생성해두고 이를 참조한다 본론싱글톤 패턴을 적용한 코드는 다음과 같다.public class SingletonService { // static 영역에 객체를 딱 하나만 생성 private static final SingletonService instance = new SingletonService(); // 객체 인스턴스가 필요하다면 static 메서드를 통해서만 조회하도록 허용 public static SingletonService getInstance() { return instan..