오늘은 박재성님의 Next Step 스터디를 진행 중에 겪었던 문제인 Java의 InputStreamReader가 UTF-8로 decode를 해도 한글로 볼 수 없는 이유에 대해서 알아보고자 합니다.
문제 : Spring으로 로그인을 구현(Contoller 계층에서)하던 중 session에 User 객체를 setAttribute 해주려고 했더니, 이런 문구로 밑줄이 떴다. Non-serializable objects should not be stored in ...
모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다. notify(), wait() 등은 쓰레드와 관련된 메서드이다.(여기서는 다루지 않음)
static import를 사용하는 이유 JUnit5를 이용한 단위 테스트 코드를 작성하던 중, assertj에 대해 import가 아닌 import static으로 패키지를 받아서 이용한다는 사실을 알게 되었다.
자바에서 비동기(Asynchronous) 프로그래밍을 가능하게 하는 인터페이스이다. 기존의 Future를 사용해서도 어느정도 가능했으나, 제약이 많았다.
High-Level Concurrency 프로그래밍을 하기위해서는? 스레드를 만들고, 관리하는 작업을 애플리케이션에서 분리해야 한다.Java 8부터는 그런 기능을 Executors에게 위임할 수 있게 됐다.
연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음 키워드 throw를 이용해서 예외를 발생시킨다.
멀티 쓰레드 프로세스에서는 다른 쓰레드의 작업에 영향을 미칠 수 있다.진행중인 작업이 다른 쓰레드에게 간섭받지 않게 하려면, '동기화'가 필요하다.쓰레드의 동기화 : 한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 막는 것동기화하려면, 간섭받지 않아야 하는
쓰레드의 실행을 제어할 수 있는 메서드가 제공된다.아래의 메서드를 활용해서 보다 효율적인 프로그램의 작성이 가능하다.
main 쓰레드,싱글 쓰레드와 멀티 쓰레드,쓰레드의 I/O 블락킹(blocking)에 대해 알아보자