본문 바로가기

Task/backend

(3)
[Task] LocalDateTime과 Docker ISSUE 배포한 이후 기존에 돌던 Batch 서비스가 정상 동작하지 않음 로그를 확인하였지만, 배치는 정상적으로 실행되고 있었다. (로그를 확인했을 때 시간을 보고 알아차려야했었다..) Approach 1. 배포 시 기존과 달라진 점 기존에는 ec2 서버에 직접 접근하여 스크립트를 수동으로 실행시켜 배포를 하였으나, CI/CD를 구축하고 docker를 사용하였다. 2. Batch 로직 확인 배치 프로세스 중 LocalDateTime.now() 메서드를 통해 현재 시간을 나타내는 로직이 있었다. Resolve docker exec ${container-name} date로 확인 결과 UTC+0 시간을 확인하였다. Docker container의 default Timzone은 UTC+0이다. Retrosp..
[Task] Sse With Local Cache ▪️ TODO 그룹화된 Subcriber의 Flux를 관리하기 위한 캐싱 전략 인스턴스 다중화에 대한 미지수, 요구사항 충족을 위해 로컬 캐시로 개발 로컬 캐시 중 Eviction 기능을 지원하는 캐시 선별 ▪️ Approach (process) 1. Connect endPoint 연결 시 Sinks.Many (여러 Subcribers를 관리) [cache] 1개의 networkId(key)로 관리 getOrCreate해서 subscribe connect 했을 때 [cache] networkId, lastEventId로 missing events 찾아서 뿌려주기 lastEventId로 관리하면서 보관 lastEventId보다 큰 데이터 cache 조회 ❗Emit해도 missingEvent, initial..
[Task] 데이터 S3에 적재 (SpringBoot + AWS SDK) TODO Webhook으로 수집되는 센서의 데이터를 S3에 적재 ISSUE AWS SDK amazonS3Client.putObject(PutObjectRequest putObjectRequest) PutObjectRequest.class 생성자의 3종류의 signature String bucketName, String key, File file String bucketName, String key, String redirectLocation String bucketName, String key, InputStream input, ObjectMetadata metadata Approach 객체를 json(String)으로 convert S3에 파일 업로드 1번 생성자 File을 넘기기 위해서는 file.c..