| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 프로그래머스
- redis
- 이펙티브 자바
- 백엔드
- 계산기
- Til
- 코드카타
- 성능 개선
- 프록시 패턴
- 스케줄러
- lv1
- spring boot
- 템플릿 메서드 패턴
- java
- 토스
- 빌더 패턴
- Effective Java
- 스프링 배치
- 스프링
- 배치
- Spring Batch
- 추상클래스
- 트러블슈팅
- Spring
- 로드밸런서
- DB
- 김영한
- GoF 23
- 자바
- 디자인 패턴
- Today
- Total
목록TIL (17)
김코딩
프로젝트 소개 - FINSightFINsight는 금융 뉴스를 키워드 기반으로 필터링하고 AI로 요약해주는 웹 서비스입니다. 사용자가 관심 있는 키워드(예: 삼성전자, 부동산, AI 등)를 설정하면, 경제/금융/증권/부동산/산업 카테고리의 최신 기사 중 해당 키워드가 포함된 뉴스만 모아서 보여줍니다. 각 기사는 Naver CLOVA Studio AI로 요약되어 빠르게 핵심 내용을 파악할 수 있으며, 마이컬렉션 기능으로 관심 기사를 저장하고 통합 요약본을 제공받을 수 있습니다. 배포 링크: https://finsight-publish.vercel.app/ FINsight내가 관심있어 하는 정보, 나의 자산과 직접적인 관련이 있는 금융 정보들만 놓치지 않고 따끈따끈하게 소화하고 싶지 않으신가요? FINsig..
도입 배경기존에는 사용자가 원하는 포인트, 결제 수단을 Mock 방식을 이용해서 요청 body에 넣어주는 방식으로 포인트 충전을 진행하였다. 하지만 이번에 토스페이먼츠를 도입하면서 결제 요청부터 승인, 그리고 포인트 충전까지의 실제 플로우가 어떻게 동작하는지 살펴보자.왜 토스 페이먼츠를 도입하였는가?PG사 연동을 목표로 개발을 진행하면서 다양한 PG사(토스 페이먼츠, 카카오 페이, 네이버 페이)를 찾아보았다.그중에서도 우리는 왜 토스 페이먼츠를 선택하였는지 살펴보자. 구분 토스페이먼츠카카오페이네이버페이API 문서 품질매우 우수우수보통연동 복잡도낮음높음높음결제 수단카드 / 계좌 / 가상계좌카드 / 계좌카드 / 네이버페이개발 편의성높음낮음낮음기술 지원빠른 응답느림느림테스트 결제지원지원지원 최종 선택 이..
결제 시스템에서 동기식 처리를 비동기식으로 전환했을 때 정말로 장애 격리가 달성되는지 실제 테스트해보려고 합니다.포인트 서비스에 의도적으로 장애를 발생시켜서 직접 확인해보겠습니다. :동기식에서는 어떤 문제가 발생하는지비동기식에서는 어떻게 장애가 격리되는지재시도 메커니즘이 실제로 동작하는지무엇을 테스트할 것인가?가설"비동기 이벤트 처리를 통해 포인트 서비스 장애가 결제 성공에 영향을 주지 않는다"검증 방법포인트 서비스에 6초 지연 발생 (타임아웃 5초보다 길게)동기식과 비동기식 결제 처리 비교재시도 로직의 실제 동작 확인성공 기준결제는 성공하지만 포인트는 실패하는 상황 재현사용자는 결제 성공을 즉시 확인백그라운드에서 포인트 재시도 동작테스트 환경 설정장애 상황 시뮬레이션포인트 서비스 API에 의도적 지연 ..
테스트 대상 API@PostMapping("/payments/confirm")public ResponseEntity> confirmAndChargePoint( @RequestBody PaymentConfirmRequest request, @AuthenticationPrincipal Auth auth) { long startTime = System.currentTimeMillis(); PaymentConfirmResult paymentConfirmResult = paymentFacade.confirmAndChargePoint( auth.getId(), PaymentPresentationMapper.toPaymentConfirmCommand(request) ..
테스트 대상 API 경로 및 메서드: POST /payments/confirm설명:프론트엔드에서 토스 결제가 완료된 후, 결제 승인과 동시에 사용자 포인트를 충전하는 API내부적으로 paymentFacade.confirmAndChargePoint를 호출해 결제 승인 및 포인트 충전 처리 /** * 토스페이 결제 승인 및 포인트 충전 API * @param request 토스페이먼츠에서 제공한 결제 정보 (paymentKey, orderId, amount) * @param auth 인증된 사용자 정보 * @return 결제 승인 결과 (orderId, amount, method, status, approvedAt) */ @PostMapping("/payments/c..
문제 상황이번 일정관리 API 과제를 수행하면서 사용자에게 조금 더 친화적인 예외를 보여주기 위해 커스텀 예외를 만들었습니다.CustomException을 추상 클래스로 만들고, 각 예외마다 getCode(), getStatus()를 구현하게 했으며,@RestControllerAdvice를 활용해 전역 예외 핸들러도 함께 구성했습니다.public abstract class CustomException extends RuntimeException { public CustomException(String message) { super(message); } public abstract String getCode(); // 에러 코드 public abstract HttpStat..