[Java] 콜백 패턴과 적용
·
JAVA
java에서의 콜백에 대해 알게되면서 동기, 비동기를 차치하고도 작업의 참조를 전달(위임)한다는 부분이 인상적깊었다. 기본적으로 콜백 패턴의 정의와 원리에 대해 알아보자. 콜백은 한마디로 피호출자 (Callee)가 호출자 (Caller)를 다시 호출하는 것을 의미한다.특정 이벤트가 발생하거나 특정 작업이 완료되면 특정 메서드를 실행하는 방법인데,비동기 처리나, 작업완료 시나리오에서 유용하게 사용된다. 간단한 웹 어플리케이션을 예시로 들어보자. 프런트 서버가 작업 서버에 일정 시간이 소요되는 작업을 요청했을 때, 사용자가 그동안 가만히 있을 순 없기 때문에작업 완료 시간을 하염없이 기다리기보단 작업 완료 신호가 오기 전까지 다른 일을 하면서 작업 완료 여부를 알고 싶을 것이다. 그렇다면 프런트 서버가 작업..
[Java] 자바 스레드와 운영체제 스레드의 관계
·
JAVA
최근 교내 대회를 준비하던 중,그저 이론으로만 알던 자바 멀티 스레딩이니 비동기 처리니 하는 방식에 대한 필요성을 실제로 느끼게 되었다. 이 부분에 대해 공부하던중, Java에서의 Parallelism 과 Concurrency(논리적 동시성)에 대해 알아보게 되었고, 자바에서 이를 구현하기 위한 여러 방식들이 있지만,  그 전에 먼저 자바 스레드와 운영체제 스레드의 관계에 대해 서핑해본 내용을 정리해보았다.JVM이 대강 어떤 방식으로 운영체제와 상호작용하고, 스레드들을 스케줄링하는지에 관한 내용이다. 먼저 간단하게 유저 레벨 스레드와 커널 레벨 스레드에 대한 이해가 필요하다. 유저 레벨 스레드는, 사용자 프로그램에서 관리되는 스레드로, 커널은 이를 인식하지 못한다.커널 레벨 스레드는, 운영체제의 커널에서..