목록전체 글 (490)
공부한것들을 정리하는 블로그 입니다.
보호되어 있는 글입니다.
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2022.05.10 마지막 수정일 2023.04 # 노티서비스에서 이슈 발생 승인결과를 보내주는 노티(알림)서비스가 특정 가맹점에 400 오류응답을 하고 있다고 가정해보자. 아마 모니터링에서 감지되는것이 아니라면, 가맹점에서 먼저 확인요청이 들어올 수도 있다. 400 에러는 클라이언트 에러이므로 결국 가맹점 서버에서 오류응답 한 것이다. (4xx : 클라이언트 에러, 5xx : 서버 에러) 그러면 해당 이슈는 무조건 가맹점측 서버 문제일까? # 상황 설명 1. 클라이언트로 부터 결제승인 요청 2. 비즈니스 로직 처리 후 외부 API 호출 원천사/중계사 통신하여 승인요청 3. 외부 API 통신 결과에 따라 클라이언트로 응답 성공, 실패, 타임아웃 등 4. ..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2022.06 마지막 수정일 2023.04 # 외부 API 연동시 고려사항외부 API를 연동시 신경써야 할 부분이 많다. 예를들면, 외부 API관련 변수의 처리에 신경을 써야하고 ex) 요청/응답 값을 DB의 키값으로 설정하지 않을 것, 매핑처리에 대해 고민 할 것, 응답값을 필수값으로 가정하지 않을 것(null값으로 인한 NPE 발생, 혹은 빈 값의 저장에 주의) 고객에게 어떤 응답을 줄지 고민해야 되고 ex) 결제요청에 대해 외부 API에서 타임아웃 혹은 장애응답을 받아서 결제 유무를 알 수 없는 경우, 일단 고객에게는 결제실패 응답한 후. 배치나 메시징큐 등을 통해 취소요청을 재처리하는 것 또 외부 API가 우리쪽 애플리케이션의 성능에 영향을 최소화..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2022.03.16 마지막 수정일 2023.04 # 가상계좌(무통장입금) 서비스 가상 계좌란, 고객이 자신이 원하는 은행을 선택 후 생성된 고유의 가상 계좌로 입금하는 서비스를 말한다. ATM 기기를 통한 입금, 인터넷뱅킹, 폰뱅킹 등 다양한 방법으로 입금이 가능하다. 가상계좌 제휴사는, 각 은행과 가상계좌 서비스를 제공 사업자를 연결 및 관리해 주는 제휴 기관을 말한다. 가상계좌 서비스는, 가상계좌 채번, 수취조회, 입금, 환불 등이 있다. # 수취조회시 개설기관 장애 응답 발생 DB동기화 점검 작업간 모니터링 진행중, 수취조회시 개설기관 장애 응답 발생을 감지 한 상황이라 가정해보자. DB동기화 점검 작업시 L4를 제어하여 한쪽 서버씩 번갈아 작업을 ..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2022.05.14 마지막 수정일 2023.04 # 카드사 장애 발생 감지 1. VAN에서 카드사 TIMEOUT 응답 발생 횟수가 일정이상 감지되어 서비스 모니터링에 감지된다. 2. 운영팀에서 카드사 상황실로 확인요청을 보낸다. 3. 카드사 터널 끊김을 감지하게 되고 VAN 담당자는 카드 통신 프로세스 재기동을 진행한다. => L4 스위치 제거 4. 인프라팀을 통해 각 서버별 카드 연동 전용회선 DOWN 이력 및 회선 정상여부 확인을 진행한다. => DOWN이력 O. 현재 정상 O 5. PG에서도 카드 거래건에 대해 VAN으로부터 카드사 TIMEOUT 응답 확인된다. => 카드사 TIMEOUT이라면 PG입장에서는 장애설정 혹은 서비스 조치 대상은 아닐 것..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2022.03 마지막 수정일 2023.04 # 레거시 서버 장비노후 이슈 새벽에 레거시 서버에서 장비노후로 인한 문제가 발생한 적이 있었다. 운영팀으로부터 디스크 컨디션 로그 Top I/O 처리율 90% 이상으로 지속 유지되고 있음을 공유받았고 실제로 확인해보니 거의 100% 근사치라서 계정 접속도 힘든 정도였다. 이에 대하여 다음과 같이 대응하였다. 1. 모니터링 프로그램 오탐 가능성 확인하고자, 레거시 서버(배치 컨테이너 용도)에 접속하여 실제 IO 사용량을 확인 2. 서버 프로세스 및 배치 스케줄러 목록 확인 후, 프로세스 중지 및 재기동을 하여도 특이사항이 없을지 확인 3. 서버 프로세스 중지 후 IO 사용량 모니터링 (정상화 되면 재기동 예정) ..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2021.04 마지막 수정일 2023.04 # 배치컨테이너 배포와 스케줄러 실행이 동시에 진행 결론부터 말하자면 오류가 발생가능하며, 이 경우 배치가 돌던 중 오류가 발생하고 데이터의 정합성을 보장 할 수 없을 것이다. 그러면 해당 컨테이너의 로그를 직접 보면서 데이터 보정 작업을 진행해야 될 수 있다. 또한 배치를 마저 돌려야 되는지, 그냥 재수행만 해도 될지 아니면 데이터 보정 후 재수행을 해야될지 등을 판단해야 한다. ex) admin 컨테이너 로그상 배포(HotDeploy)와 배치 실행이 겹치게 되어, InvalidGlobalDeployVersionException, InvalidGlobalDeployVersion 발생 프레임워크/서버에 따라 안전..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2021.04 마지막 수정일 2023.04 # 계좌이체 서비스의 도메인에 대해 은행은 계좌이체 서비스를 창구에서 직접 처리하는 경우가 있기때문에 입금이 완료되어도 바로 중계사를 통해 입금통보처리를 진행하지 않는다. 최초 입금수취조회 후 약 2분정도의 딜레이를 가진 뒤, 이후 다시한번 입금수취조회 후 입금통보처리를 하게 된다. 이를 API를 호출하는 흐름으로 나타내면 아래와 같다. 1. 최초 입금수취조회 : 은행 => 중계사 => PG사 2. 2분 딜레이(이 사이에 은행 시스템취소가 발생하면, 더이상 flow 진행 x) 3. 입금수취조회 : 은행 => 중계사 => PG사 4. 입금수취조회 성공응답시, 입금통보요청 : 은행 => 중계사 => PG사 # 은행점..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2020.12.30 마지막 수정일 2023.04 # 연말에 문제 발생 자바에서 SimpleDateFormat 메소드를 사용시, 반드시 주의해야 할 내용이 있는데 바로 년도 포맷의 사용방식이다. ex) 년도 포맷 - 대문자 사용 (YYYY 또는 YY) : 오류발생 O - 소문자 사용 (yyyy 또는 yy) : 오류발생 X 위 형식을 지키지 않을 경우, 1년 빠른 날짜를 가져오게 되어 문제가 발생된다. YYMMdd, YYMM, YYMMDD 등올 사용시에도 마찬가지로 연말(12/31)에 오류가 발생하므로 반드시 아래와 같이 포맷을 사용하도록 하자 ex) 이렇게 사용해야 함 년 : yyyy 또는 yy 월 : MM 일 : dd 시 : HH 분 : mm 초 : ss..
* 해당 글은 계속 수정 예정입니다. 최초 작성일 2022.04 마지막 수정일 2023.04 # 자바와 접근제한자 자바는 객체지향 언어입니다. 객체(object)란 실생활에서 우리가 인식할 수 있는 사물로 정의할 수 있고 이러한 객체의 상태와 행동을 구체화하는 형태의 프로그래밍이 바로 객체지향 프로그래밍입니다. 이때 객체를 만들어내기 위한 설계도와 같은 개념을 클래스라고 합니다. 클래스는 객체의 상태를 나타내는 필드와 행동을 나타내는 메소드라는 멤버들로 구성되어 있으며 모든 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스라고 할 수 있습니다. 따라서 어떤 클래스의 객체의 생성은 결국 외부 클래스에서 진행이 되고 외부 클래스에서 접근이 가능한 멤버와 접근이 제한된 멤버로 구분하여 필드, ..