Spring 2

[Spring MVC] 로깅(Logging)

자바에서는 로깅을 slf4j를 사용한다.Logger를 쓰는 이유로깅을 쓰는 이유는 간단하다. 당장 아래 예시의 결과만 봐도 Logger를 활용한다면 알 수 있는 것이 훨씬 많다.@RequestMapping("/log-test") public String logTest() { String name = "Spring"; System.out.println("name = " + name); log.info("info log={}", name); return "ok"; } 또한 application.properties를 통해서 Debug 레벨을 선택할 수 있다. 이것이 로깅의 또다른 장점이기도 하다!trace, debug, info(로컬에서는 trace..

Backend/Spring 2024.04.01

Kotlin+Spring Kinesis 비동기 처리 EFO(Coroutine)

요구사항 이번 게시물의 배경이 되는 Context를 설명하도록 하겠다. Kinesis로 모바일 유저들에 위치/속도 등 여러가지 데이터가 실시간으로 1명당 10초에 1번 꼴로 수집되는 상황이다. 약 10000명 이상의 유저가 있으며 스트림 데이터로서 관리하여야 한다. Kinesis + Lambda를 통해서 비동기적으로 데이터가 들어올 때마다 API Gateway를 거쳐서 websocket으로 전송되던 구조에서, Spring 백엔드 서버로 Kinesis에 수집되는 데이터를 비동기적으로 수집하고 이를 또다시 비동기적으로 구독한 Client에게 실시간으로 데이터를 전송하여야 하는 상황이다. 도입 이번 게시물은 Kotlin언어 + Spring 프레임워크에서 Amazon Kinesis에서 코틀린의 코루틴과 EFO(..

Backend 2024.03.20