분류 전체보기
-
스트라이프 api 구독 관련 정리카테고리 없음 2025. 10. 1. 17:13
라이프사이클(핵심 이벤트) draft: 초안(아직 확정 전)open / finalized: 확정됨(청구 금액이 고정). 자동 결제 모드면 이 시점에 결제 시도 착수.paid: 결제 완료(= 돈 받음) → 이때를 기준으로 크레딧 지급 같은 비즈니스 트리거를 거는 게 안전.payment_failed: 결제 실패(재시도/고객 안내 필요)voided: 송장 무효 처리(이 송장으로는 더 이상 결제하지 않음 → 지급했던 혜택 회수 고려)uncollectible: 회수 불가 처리(대손상각 성격)
-
대용량 트래픽 기술 공부Spring 2025. 9. 30. 13:51
1) 서버 런타임/스택 선택: Spring MVC vs WebFlux개념:Spring MVC (Tomcat/Undertow/Jetty): 스레드당 요청 1개(블로킹 I/O). 전통적, 디버깅 쉬움.Spring WebFlux (Netty): 논블로킹/리액티브 모델. 같은 자원에서 동시성↑.언제:외부 I/O가 많고(REST/gRPC/DB/캐시) 지연을 잘 흡수해야 → WebFlux.비즈니스 로직이 무겁거나 라이브러리 대부분이 블로킹 → MVC가 안전.어떻게 (부트): // build.gradle implementation 'org.springframework.boot:spring-boot-starter-webflux' // 또는 web # Netty native transport(리눅스) & 커넥션 튜닝 ..
-
spring security oauth2 (vscode,web) 로그인 환경 구축카테고리 없음 2025. 9. 10. 07:31
1. oauth2 로그인 전체 플로우 [브라우저] │ 1. GET /oauth2/authorization/{registrationId} ← 로그인 버튼/링크 ▼[Spring Security Filter Chain] │ │ (A) OAuth2AuthorizationRequestRedirectFilter │ - 여기서 ▶ OAuth2AuthorizationRequestResolver.resolve(req) │ - scope, state, nonce(oidc), 추가 파라미터 세팅 │ - AuthorizationRequestRepository.save(...) │ - 302 Redirect → Authorization Server (AS) /aut..
-
스트라이프 api를 이용해 결제시스템 로그 쌓기 (with spring boot,mongodb)카테고리 없음 2025. 9. 8. 15:45
왜 MongoDB에 따로 저장하나? 이벤트/웹훅은 JSON 구조가 가변적 → 문서형 DB가 유리.쓰기 폭주 + 읽기 드묾: 결제 피크에 이벤트가 쏟아짐 → TTL로 자동 정리(저장비 절감).장애 분석/정합성 검증(리컨실리에이션): “Stripe에선 성공인데 우리 DB는 실패?” 같은 상황에서 원본 페이로드가 생명줄.멱등/재시도/비동기 처리: Outbox/Idempotency 레저(원장)로 중복 방지와 안전한 재처리. MongoDB에 담으면 좋은 것 (무엇 & 왜) 원본 웹훅 이벤트(raw) + 서명/헤더왜: 장애 시 재현/분석, Stripe 재전송 대비, 중복 차단(이벤트 ID unique).TTL: 30~180일.Idempotency 레저(우리 서버가 Stripe에 보낸 요청 이력)왜: 결제/환불 ..
-
네이티브 머신 코드,HotSpot JVM , jvm 메모리구조자바웹프로그래밍/JAVA 2025. 9. 5. 10:20
네이티브 머신 코드 jvm 성능 공부 및 postgresql에서 쿼리 최적화를 하기 위해서 공부를 하고있는데 성능이 좋아지기위해 자주 사용 하는 코드를 네이티브 머신코드로 변경하다는 말을 자주 본다. 해당 네이티브 머신코드는 cpu가 직접 이해할수있는 이진 코드이며 (11111111 10101010) 같은 코드라고 보면된다. HotSpot JVMHotSpot JVM은 단순히 통계만 모으는 게 아니라 → 그 통계를 바탕으로 “어떤 코드를 JIT 컴파일할지, 어떤 최적화를 적용할지”까지 결정하는 엔진 2. HotSpot JVM의 실행 과정처음 실행 시 (Interpreter)자바 바이트코드(.class)는 바로 CPU에서 실행할 수 없으니, 처음에는 인터프리터가 한 줄 한 줄 해석하면서 실행합니다.이 단..
-
JVM , GC 꼬리물기 질문 대비 정리카테고리 없음 2025. 9. 4. 18:30
좋아요. 요청대로 더 깊고 길게 정리해 드릴게요. 면접에서 바로 써먹을 설명 각본 + 원리 + 운영/튜닝 실전 포인트까지 한 번에 잡을 수 있게 구성했어요.(섹션: 의도 → JVM 큰그림 → 메모리/객체 → GC 원리 → 수집기별 특징 → 튜닝/운영 → 컨테이너·스프링 실무 → 3분 답변 스크립트 → 꼬리질문 대비)1) 면접관 의도(왜 이 질문인가)구조화 능력: 큰 그림→핵심→디테일로 깔끔히 설명하는지.실무 연결: 용어 나열이 아니라 지연시간/처리량/메모리 같은 운영 지표와 연결하는지.현대 JVM 업데이트 이해: G1 기본, CMS 제거, ZGC/Generational ZGC 같은 변화 맥락을 아는지.트러블슈팅 사고력: GC 로그 해석→가설→튜닝의 문제 해결 절차를 말할 수 있는지.2) JVM 큰그림(컴..
-
상관 서브쿼리(Correlated subquery) 와 비상관 서브쿼리(Uncorrelated) 조인에 대해 성능 평데이터베이스/postgresql 2025. 9. 3. 16:38
1. 상관 서브쿼리 (Correlated Subquery)서브쿼리가 바깥 쿼리의 컬럼을 직접 참조합니다.즉, 바깥 쿼리의 각 행(row)마다 서브쿼리가 실행됩니다 → 반복 실행 때문에 성능 부담이 커질 수 있습니다. -- 각 사원의 급여가 해당 부서의 평균보다 높은 사원 찾기SELECT e.emp_id, e.name, e.salaryFROM employees eWHERE e.salary > ( SELECT AVG(e2.salary) FROM employees e2 WHERE e2.department_id = e.department_id); 여기서 e.department_id는 바깥 쿼리 컬럼을 참조합니다.각 사원의 department_id마다 AVG()가 다시 계산됨 → 실행 횟수 ↑..