Server/Spring3 [Spring] AI와 함께 한 모의투자 시스템 구축기 (+ 카프카 찍먹) 0. 들어가며두근두근 모의투자 시스템 구축기 안녕하세요 프로미 입니다.최근에 분산 환경에서의 모의투자 시스템 '시큐어 트레이더(시트)'를 만들게 되었어요.(이름만 봤을 땐 노잼이죠) 최근에 주식을 시작하게 되었는데, 증권 시스템의 속도와 일관성이 공존하는 환경이 신기하게 다가왔어요.프로젝트를 하면서 정합성을 위해 비관락을 걸면 응답 속도가 느려지기도 했었거든요, 공존할 수 없는 2개의 특징이 존재하는 시스템이라니 흥미가 생기지 않나요? (최면) 결론적으로 이런 흥미를 바탕으로 증권 시스템을 이해해 보고자 직접 구현을 해보게 되었답니다. 1. 준비하기한국투자증권 API, 스프링, 카프카, 레디스,... 프로젝트를 위해선 주식 거래를 위한 시세 정보 API 가 필요해요.저는 한국투자증권 API를 사용했어요.. 2026. 4. 19. [Spring] Thread: 알림은 내가 보낼게, 배치 처리는 누가할래? 들어가며 안녕하세요. 프로미입니다 :) 오늘은 ‘코코스’ 알림 로그 찍기 개발 중에 생긴 트러블슈팅 과정을 설명드리려고 합니다.세부적으로는 Thread Dump, visualVM, Async, batch 처리에 대해서 다루는 글입니다. Thread의 상태 추적에 흥미가 있는 분들에게 추천합니다. 1. 문제 상황 코코스 프로젝트에서 알림 기능을 개발했었다.실제로 알림이 전송되는 것은 아니고, 로그 같이 사용자의 알림 박스에 쌓이는 방식이다. 커뮤니티 활동 기록(댓글, 좋아요)은 특정 사용자한테만 알링이 간다.코코스 매거진이 올라오면 전체 사용자한테 알림이 간다.1)의 경우 큰 문제가 되지 않지만, 2)의 경우 DB Insert 연산이 사용자 수만큼 발생한다. 2. 기존 코드의 동작Sync 로 동작하는.. 2026. 3. 15. [Java] ConcurrentHashMap은 왜 빠를까? – CAS와 bin-level lock 들어가며HashMap 대신 ConcurrentHashMap을 사용해라 Spring 개발을 해왔다면 흔히 듣는 말이다.왜 이런 말이 나오게 되었는지 ConcurentHashMap의 소스코드를 까(?)보면서 알아보자 HashMap과 SynchronizedHashMap은 싱글 스레드 환경에서 빠르게 동작한다. HashMap은 기본으로 싱글 스레드 환경에서 사용하기 위해 설계되었다. 동시성을 보장하지 않기 때문에 2개 이상의 스레드가 동시에 실행됐을 때 결과값을 예측할 수 없다. 동시성을 보장하기 위해, HashMap과 Synchronized를 함께 사용할 수 있다. 하지만 락의 범위가 크고, 모든 스레드를 직렬화하기 때문에 성능은 좋지 않다. 예시) 문제가 발생하는 코드아래 코드를 실행하면 2000을 기대.. 2026. 1. 15. 이전 1 다음