목표코루틴에 동작방식을 이해할 수 있다.간단한 파이썬 바이트 코드를 다룰 수 있다.Value Stack, Call Stack, Frame 객체에 대해서 얇고 넓게 배운다.Coroutine이란 무엇인가?환경python 3.10.14다음은 간단한 코루틴 예제가 있습니다. 실행 결과는 어떻게 될까요?# coroutine.pyimport asyncioasync def coroutine1(): print("coroutine1 first entry point") await asyncio.sleep(1) print("coroutine1 second entry point")async def coroutine2(): print("coroutine2 first entry point") await..
저번 포스팅에 이어, 이번에는 influxdb의 UTC의 데이터를 aggregateWindow 함수를 이용해 집계를 내다보니 KST 기준의 데이터와는 차이가 있어 추후에 실수를 방지하기 위해 삽질했던 경험들을 기록하고 해결한 경험을 소개하고자 합니다.테스트 환경이번 테스트를 위한 influxdb 구축은 따로 설명하지 않습니다.python 3.12influxdb v2.7.12 (docker)test dataset: noaa-water-sample-datatime range: 2019-08-17T00:00:00Z ~ 2019-09-17T22:00:00Zmeasurement: [average_temperature, h2o_feet, h2o_pH, h2o_quality, h2o_temperature]locati..
개발환경💡 전체 코드는 Github를 참조해주세요.spring boot 3.3.1JDK 17IntroSpring MVC에서는 MultipartFile 이라는 인터페이스를 통해 파일 업로드 기능을 제공하고 있습니다. ZIP, UnZIP 기능을 제공하는 유틸성 클래스를 함께 개발해보고, MultipartFile을 함께 사용하여 파일 업로드, 그리고 HttpServletResponse를 통해 파일을 클라이언트에게 스트림을 통해 내려줘서 다운로드할 수 있는 API를 개발 및 테스트 하는 방법에 대해서 배워보도록 하겠습니다.먼저 Multipartfile이 뭘까요?보통 파일을 전송할 때, HTTP body를 여러 부분(Multipart Data)으로 나눠서 보내는데 이러한 Multipart Data 즉, Mult..
개요application.yml에 설정한 property값들을 @Value로 가져오기보다는 해당 설정을 다루는 객체를 하나 만들어두고 가져다 쓸 수 없을까? 하는 의문에서 출발하였습니다. 찾아보니 스프링 부트에서는 @ConfigurationProperties를 통해 Property를 객체에 저장할 수 있는 방법을 제공하고 있습니다. @Value 주입 방식보다 훨씬 더 안전하고 강력한 기능을 제공합니다.1. Dependency 추가annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'2. application.ymlmy: service: enabled: false remote-addr..
⚙ 아래는 InfluxDB v2.x 기준으로 설명합니다. v2.x부터 용어 쿼리들이 크게 변경되었기 때문에 v1.x 버전과는 용어적으로 차이가 있을 수 있습니다.influxDB를 알아보기 전 시계열 데이터란?시계열은 일정 기간 동안 수집되고 시간순으로 정렬된 데이터 요소의 모음입니다. 시계열의 주요 특징은 인덱싱되거나 시간 순서대로 나열된다는 것인데 그래서 그래프에 시계열 데이터를 시각화 할 때 중요한 축은 시간이 됩니다.시계열 데이터는 다음과 같은 곳에서 사용될 수 있습니다.기상 예보주식센서 데이터일(월,연)간 구독자서버 자원 모니터링 등등요즘 들어 스마트 팩토리, 빅데이터, 코인, 주식 등이 핫한데 이런 데이터들의 특징은 시간순으로 인덱싱이 중요하고, 대용량 데이터라는 점입니다. 이러한 데이터들을 핸..
Kafka란 무엇일까?카프카는 요즘 MSA에 필수적으로 사용되는 기술입니다. 이 카프카란 뭐고 왜 필요할까요? 카프카는 링크드인이라는 회사에서 하루에 1조 몇천억이 넘는 대량의 메시지들을 처리하기 위해 개발되었습니다. 링크드인이 사용중이라면 대용량 메시지 처리를 할 수 있고 안정성 또한 높을 것이라고 기대가 됩니다.카프카는 Messaging Queue라고도 합니다. 간단하게 말해서 메시지를 보내는 쪽이 있고 그 메시지를 관리하는 주체가 있고, 또 그 메시지를 수신하는 쪽이 있을 겁니다. Messaging Queue는 Pub/Sub Model을 의미하는데 카프카 말고도 여러 MQ들이 있는데 카프카의 차별화된 점은 무엇인지 알아보도록 하겠습니다.Messaging Queue: 카프카를 알아보기 전에Publis..