
들어가며 흔한 경우는 아니지만, 가끔 멀티 쓰레드 환경에서 컬렉션을 사용해야할 수 있다. 예를 들어 우리 서비스에서 외부로 HTTP webhook을 통해 이벤트를 발행해주는 시스템이 있다고 하자. 해당 시스템이 잘 작동하는지는 간단히 모니터링 도구를 통해 확인해보면 되겠지만, 우리 팀원이 아닌 QA팀이나 연계 업체 지원을 위해 테스트용 클라이언트를 개발환경에 띄워보고 싶을 수 있다. 테스트용 이벤트 클라이언트 1. 서비스에서 POST /event 요청을 통해 이벤트를 보내준다. 2. 발행된 이벤트는 따로 가공하지 않고 어딘가에 쌓아둔다. 3. GET /event 요청을 통해 쌓아둔 이벤트를 조회할 수 있는 기능을 제공한다. 아주 간단하고 빠르게 구현해본다면, 단순히 List를 이용해 이벤트를 쌓아볼 수 ..
1. Thread의 구현 Thread는 아래와 같이 두 방법으로 만들 수 있다. Thread 클래스를 상속받은 클래스를 만드는 방법 Runnable 인터페이스를 구현한 클래스의 객체를 Thread 클래스의 생성자에 넘기는 방법 이때 run() 메서드를 반드시 오버라이딩하여 Thread가 수행할 작업을 정한다. // 방법 1 class TestThread extends Thread { @Override public void run() { int count = 10; while(count-- > 0) { System.out.println(toString() + ": " + count); } System.out.println(toString() + ": 카운트다운 끝"); } } // 방법 2 class Te..