전체 글
-
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()가 다시 계산됨 → 실행 횟수 ↑..
-
query 튜닝 대량 데이터 hash_join 유도후 다시 급격히 느려짐.데이터베이스/postgresql 2025. 8. 29. 10:26
기존 쿼리 속도가 느려서 체크해보니. join들이 index_join을 하고있지만 대량 조인(배치)라 속도가 느려짐. set local enable_mergejoin = false;set local enable_nestloop = false;설정을 하여 hash_join을 유도해 속도를 1초까지 단축시킴 . 하지만 어느순간 갑자기 속도가 10초이상으로 느려짐.. Planning Time: 23.284 msJIT: Functions: 1001 Options: Inlining true, Optimization true, Expressions true, Deforming true Timing: Generation 68.033 ms, Inlining 823.403 ms, Optimization 5257.6..
-
쿠버네티스 서버 CI ,DI 구조까지 완벽 가이드 (with 젠킨스편) 2탄Devops/kubernetes 2025. 8. 27. 14:19
helm을 이용한 jenkins 설치Jenkins Controller: 클러스터 내부 jenkins 네임스페이스에 Helm으로 설치Jenkins Agent: Kubernetes Plugin으로 필요 시마다 파드로 생성(오토스케일)이미지 빌드: Kaniko(도커 데몬 없이 빌드) → 보안/간편배포: Helm(권장) 또는 kubectl apply접근권한: jenkins ServiceAccount + 최소권한(RBAC)으로 대상 네임스페이스만 조작환경 분리: dev / stage / prod 각각 네임스페이스 + 서로 다른 RoleBinding/크리덴셜 1) Helm 값에 JCasC로 멀티 JDK 등록values-multi-jdk.yaml (새 파일)controller: # 리소스/Java 옵션 resou..