일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- LV.02
- 연습문제
- Kafka
- JPA
- LV02
- GIT
- mysql
- LV01
- Redis
- 디자인 패턴
- 코테
- LV0
- docker
- 일정관리프로젝트
- LV03
- Java
- CoffiesVol.02
- 포트폴리오
- 일정관리 프로젝트
- 프로그래머스
- S3
- LV1
- spring boot
- 이것이 자바다
- 데이터 베이스
- Join
- CI/CD
- 알고리즘
- Lv.0
- SQL
- Today
- Total
목록분류 전체보기 (204)
코드 저장소.

목차1. 도입 배경2. EOS(Exactly Once Semantics) 접근 방식3. 설계 및 구현 방법4. 성능 측정5. 후기 1. 도입 배경현재 서비스는 Outbox + DLQ + Retry 구조로 이벤트 발행 및 복원력을 확보하고 있습니다. 이 방식은 at-least-once 전달 보장을 만족하여 메시지 유실은 방지할 수 있습니다. Outbox로 DB 트랜잭션과 메시지 발행의 원자성을 맞췄고, DLQ/Retry를 통해 장애 상황에서도 재처리가 가능하기 때문에 안정적으로 이벤트를 보낼 수 있습니다. 하지만 여전히 한 가지 문제가 남아 있습니다. 메시지의 중복 처리입니다. 문제의 소지는 동일한 Outbox 이벤트가 재발행되었을 때 Retry 스케줄러가 같은 이벤트를 재전송했을 때 Consumer가 재..

목차1.GraalVM?2.기존의 JVM과의 작동 차이점 1.GraalVM?GraalVM은 사전 네이티브 이미지 컴파일 기능을 갖춘 고급 JDK입니다. 그리고 단순히 새로운 JVM이 아니라, 여러 언어(Java, JavaScript, Python 등)를 실행할 수 있는 멀티랭귀지 실행 환경이기도 합니다. GraalVM의 주요 이점은 공식 사이트에서 아래와 같이 적혀 있습니다. 낮은 리소스 사용량 : GraalVM에서 사전 컴파일된 Java 애플리케이션은 실행에 필요한 메모리와 CPU 사용량이 적습니다. JIT(Just-In-Time) 컴파일에는 메모리와 CPU 사이클이 소모되지 않습니다. 결과적으로 애플리케이션 실행에 필요한 리소스가 줄어들고 대규모 운영 비용도 절감됩니다. 빠른 시작 : GraalVM..
문제 상황Lightsail 인스턴스를 생성할 때 등록된 SSH 키(schedulemanagement-monitoring)와, 내가 사용하려는 다른 키(monitoring-key.pem)가 서버에 등록되지 않아서 접속 실패하는 상황으로 아래와 같은 문구가 나와서 접속이 안되는 상황.No supported authentication methods available (server sent: publickey) 복구 절차 요약1. monitoring-key.pem → 공개키 추출Git Bash를 .pem이 있는 폴더에서 실행ssh-keygen -y -f monitoring-key.pem > monitoring-key.pub monitoring-key.pub 파일이 생성됨메모장으로 열고 ssh-rsa ... ..

목차1.OpenFeign 에서 WebClient로 바꾸게 된 이유2. 일정추천의 고도화 작업 3. 적용 결과4.후기 1.OpenFeign 에서 WebClient로 바꾸게 된 이유처음 일정 추천 기능을 OpenAI API와 연동할 때는 OpenFeign을 사용했다. 단순하게 동작했고 구현 난이도도 낮았지만, 실제 운영 환경에서는 여러 제약이 드러났다. 1-1. GraalVM을 도입을 하기 위해서 현재 배포된 프로젝트의 서버의 용량이 2GB인 점에서 서버를 띄우게 되면 서버의 메모리가 500MB밖에 남지 않았다는 점으로 graalvm을 적용을 하게 되면 서버 메모리의 양을 줄일 수 있다는 장점이 있기 때문인데. 하지만 GraalVM 적용 시 OpenFeign은 다음과 같은 기술적 문제점이 있습니다. Op..

목차1.도입 배경2.문제 분석3.캐시 적용4.느낀점 1.도입 배경CI/CD 파이프라인을 GitHub Actions로 구성한 이후, 커밋이나 PR마다 평균 2~3분의 빌드 시간이 소요되는 문제가 있었습니다.현재 프로젝트는 멀티모듈 Gradle 기반으로 구성되어 있으며, 외부 의존성도 많아 빌드 성능의 손실이 반복되고 있었습니다.단순한 변경 사항이나 테스트 커밋임에도 매번 전체 빌드를 새로 수행해야 했고, 이로 인해 개발 흐름이 끊기거나 PR 리뷰 속도가 느려지는 병목이 발생했습니다.운영 환경 배포를 자동화하기 위해 CI를 구성했지만, 오히려 개발 속도를 방해하는 상황이 생긴 것입니다.2.문제 분석GitHub Actions는 매 빌드마다 새로운 VM 환경에서 실행되기 때문에, 기존에 다운로드된 의존성 파일(..

목차1. 도입 배경 2. 고도화 구현 사항3. 성능 비교: 기존 S3 직접 업로드 vs Presigned URL 방식 4. 회고 및 향후 개선점 1. 도입 배경현재 Presigned URL 기반 구조를 도입하였지만, 다음과 같은 이슈들이 남아있었습니다. MIME 타입 우회 가능성클라이언트에서 확장자만 검사하고 서버에서 MIME 검사를 하지 않으면, 악성 파일을 .jpg 등으로 위장하여 업로드할 수 있다는 점이 있습니다. 이는 보안적인 리스크로 이어질 수 있습니다. (예: XSS, 다운로드 시 실행 파일 위장 등)고아 객체 문제클라이언트가 Presigned URL로 S3에 파일은 업로드했지만, 최종적으로 등록 API를 호출하지 않고 종료할 경우, S3에는 미사용 파일이 남게 됨.누적되면 저장 공간 낭비 및..