코루틴 빌더와 Job
코루틴 빌더와 Job runBlocking() 새로운 코루틴을 만들고, 루틴 세계와 코루틴 세계를 이어준다. runBlocking으로 인해 만들어진 코루틴과 그 안의 모든 코루틴이 완료될 때 까지 스레드를 blocking한다. fun main() = runBlocking { } launch() 반환값이 없는 코드를 실행 ...
코루틴 빌더와 Job runBlocking() 새로운 코루틴을 만들고, 루틴 세계와 코루틴 세계를 이어준다. runBlocking으로 인해 만들어진 코루틴과 그 안의 모든 코루틴이 완료될 때 까지 스레드를 blocking한다. fun main() = runBlocking { } launch() 반환값이 없는 코드를 실행 ...
부모 자식 & 루트 코루틴 부모 자식 코루틴 아래의 코드를 다이어그램으로 나타내면… fun main(): Unit = runBlocking { val job1 = launch { delay(1_000L) printWithThread("Job 1") } val job2 = launch { delay(1_000...
루틴과 코루틴 루틴과 코루틴의 차이 루틴 : 시작되면 끝날 때 까지 멈추지 않는다. 한 번 끝나면 루틴 내의 정보가 사라진다. 코루틴 : 중단되었다가 재개될 수 있다. 중단되더라도 루틴 내의 정보가 사라지지 않는다. 메모리 관점에서는 새로운 루틴이 호출된 후 완전히 종료되기 전, 해당 루틴에서 사용했던 정보들을 보관하고 있어야 함 ...
3장. 카프카 프로듀서: 카프카에 메시지 쓰기 시작하기 카프카를 큐로 사용하든, 메시지 버스로 사용하든, 데이터 저장 플랫폼으로 사용하든 간에 카프카에 데이터를 쓸 때는 프로듀서, 읽어올 때는 컨슈머를 사용한다. 이 장에서는 이하의 내용을 다룬다. 프로듀서의 디자인과 주요 구성 요소의 전체적인 모습을 확인 KafkaProducer 와 ...
1xx (Informational) 요청이 수신되어 처리 중 사실 상 무의미하므로 생략 2xx (Successful) 클라이언트의 요청을 성공적으로 처리 200 OK 요청 성공 201 Created 요청 성공해서 새로운 리소스가 생성됨 생성된 리소스는 응답의 Location 헤더 필드에 포함되어야 한다...
인프런 스프링캠프 2023 장소 및 시간 : 2023.04.22, 서울 중구 을지로 65 (SK텔레콤빌딩) 4층 수펙스홀 URL : https://springcamp.ksug.org/2023/ 요약 스프링 부트 3.0에 관한 내용이 주를 이룸 Spring AOT, 레거시 서비스 전환 등 흥미로운 내용이 있었음 프로그램 1. 어느 #월급쟁이...
요약 Redis 가 DB락보다 성능이 좋음 pub-sub 방식인 Redisson 라이브러리를 자주 사용하는 추세임 단, Redis 운영비용이 따로 발생되는 단점이 있음 동시성 이슈를 해결하는 방법 소스코드 syncronized 명령어 데이터베이스 Pessimistic Lock(비관적 락) Opti...
JDK Dynamic Proxy VS CGLIB - 재원 IoC 컨테이너와 AOP Proxy의 관계 Spring AOP는 Proxy의 메커니즘을 기반으로 AOP Proxy를 제공하고 있다. 다음 그림처럼 Spring AOP는 사용자의 특정 호출 시점에 IoC 컨테이너에 의해 AOP를 할 수 있는 Proxy Bean을 생성한다. 동적으로 생성...
Spring Bean Lifecycle 설정 스프링 컨테이너 내에서 Bean의 생명주기를 설정하는 방법은 3가지가 있다. 스프링에서 제공하는 인터페이스 (InitializingBean, DisposableBean) 설정 정보에서 초기화 메서드, 종료 메서드 지정하는 방법 @PostConstruct, @PreDestroy 어노테이션 ...
BeanPostProcessor란 BeanPostProcessor는 스프링이 빈 저장소에 등록할 목적으로 생성한 객체를 빈 저장소에 등록하기 직전에 조작하고 싶을 때 사용하는 기능이다. BeanPostProcessor는 객체를 조작할 수도 있고, 완전히 다른 객체로 교체하는 것도 가능하다. BeanPostProcessor 과정 BeanPos...