Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/imzero238/imzero238
https://github.com/imzero238/imzero238
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/imzero238/imzero238
- Owner: imzero238
- Created: 2024-12-12T10:47:18.000Z (22 days ago)
- Default Branch: main
- Last Pushed: 2024-12-12T13:04:58.000Z (22 days ago)
- Last Synced: 2024-12-12T13:41:59.698Z (22 days ago)
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 실패 속에서 본질을 찾아내는 나영입니다 👋
**불확실한 상황**에서 최적의 솔루션을 찾아가는 것을 좋아합니다.
'일단 돌아가는' 이 아닌 '**제대로 돌아가는**' 코드 작성을 좋아합니다.
## 📚 리소스 최적화 리스트, 근데 실패를 곁들인... 😅
[Bloom Filter로 DB I/O 최소화](https://medium.com/@im_zero/bloom-filter%EB%A1%9C-db-%EB%B6%80%ED%95%98-%EA%B0%90%EC%86%8C-%EC%84%B1%EB%8A%A5-61-%EA%B0%9C%EC%84%A0-e46e8ce62d6d)해 성능 61% 개선
- 154.15ms -> 59.17ms로 개선
- Unique 제약 조건을 DB Layer가 아닌 Service Layer에서 확인
[SessionCallback 대신 Lua Script](https://medium.com/@im_zero/%EC%BF%A0%ED%8F%B0-%EB%B0%9C%EA%B8%89%EC%9D%84-%EC%9C%84%ED%95%9C-redis-streams-lua-script-%EC%A0%81%EC%9A%A9%EA%B8%B0-5f3dc4d02b2c)로 Redis 트랜잭션 구현
![](/img/lua_script_session_callback_performance_result.png)- Lua script 사용해 2.73s -> 0.495s 개선
[Kafka Streams 윈도우 집계로 DB I/O 최소화](https://medium.com/@im_zero/kafka-streams%EC%9D%98-window-results-%EC%BB%A8%ED%8A%B8%EB%A1%A4%ED%95%98%EA%B8%B0-3c20c360cf02), 그러나...😅
- 배치 단위로 쓰기 버퍼링 목표 달성! (사용 중인 MySQL, MongoDB 쓰기 버퍼링 기능에서 아이디어 획득)
- 그러나 Drop Event 처리를 위한 **Window + Grace 기간에 따른 버퍼링**이 메모리 문제로 이어져 적용 실패
[Kafka Stremas Join](https://medium.com/@im_zero/kstream-ktable-join-%EC%A0%81%EC%9A%A9-%EC%8B%A4%ED%8C%A8%EA%B8%B0-f7b8bfa11e42)으로 DB I/O 50% 감소 & 처리 속도 83% 개선, 그러나...😅
- 처리 속도 10.2s -> 1.7s 개선
- 그러나 원천 데이터의 빠른 영속화 불가로 적용 실패
[Hibernate Query Plan Cache 활용해 ](https://medium.com/@im_zero/hibernate-query-plan-cache-oom-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-298f3feae93a)OOM 에러 해결
![](/img/in_clause_padding_performance_result.png)
- IN 절 padding 설정으로 최대한 같은 SQL 구문 재사용 유도 (0.0041s -> 0.00385s)
- [@DynamicUpdate 대신 @Version 사용해 cached SQL 구문 사용](https://medium.com/@im_zero/version-vs-dynamicupdate-342d27dc59fd)
더 많은 경험을 [medium](https://medium.com/@im_zero)에서 공유하고 있습니다 💚
## 🛠️ Tech Stack