[Spring] 외부 API를 호출할 때 주의할 점에 대해서
·
Backend
안녕하세요. 사내 업무를 진행하면서 외부 API를 호출할 일이 많이 있는데요, 오늘은 외부 API를 호출할 때 주의할 점에 대해서 학습한 내용에 대해 나누고자 글을 작성하게 되었습니다. 부족하거나 잘못된 내용이 있을 수 있는데, 피드백을 주신다면 꼭 확인하고 더 나은 개발자로 성장하도록 하겠습니다. 🙇🏻‍♂️1. 외부 서버에 요청을 보낼 때 Timeout을 고려하자가장 먼저 언급할 내용은 타임아웃을 고려하는 것입니다. 위 이미지와 같이 타임아웃 상황이 발생한다면 연결 자체가 수립되지 않거나, 혹은 연결은 됐으나 외부 API를 호출 후 우리 서버에선 정상적으로 응답을 받을 수 없게 됩니다. 조금 더 자세히 타임아웃을 알아보자면, 타임아웃 발생 상황은 아래와 같이 크게 두 가지 경우로 나뉠 수 있습니다...
[Spring] MySQL을 이용한 중복 발급 방지와 동시성 해결 이야기 (멱등성, 분산락)
·
Backend
안녕하세요. 최근에 업무를 하면서 계산서가 중복으로 발급이 되는 문제를 발견했습니다. 다행히 PHP에서 Spring 기반으로 마이그레이션을 하고 있는 단계라 실서버 배포가 되진 않았고, 기존 PHP 실서버에선 중복 발급 사례는 없었지만 이대로 배포가 된다면 충분히 중복으로 발급하여 포인트가 차감되는 문제가 발생할 수 있었습니다. 더불어서 스프링 환경에서 동시성 문제도 발견했는데, 낙관적락과 비관적락은 사내 DB 구조상 적용해도 큰 의미가 없어서 이를 어떻게 해결했는지도 같이 이야기 해보고자 합니다. 참고로 현재 팀 내에서 MySQL 5.x 버전을 사용하고, 서비스 상황상 아직까지 Redis는 도입할 필요가 없다고 생각하여 작업 또한 MySQL로 진행했습니다. 부족한 점이 있으면 피드백 부탁드리겠습니다!..
[Spring Batch] 대량 파일 마이그레이션 작업 #1 - 도입
·
Backend
안녕하세요. 신입 개발자로 입사한 지 벌써 9개월 정도가 되었습니다. 오늘은 최근 사내에서 진행한 마이그레이션 업무에 대해 간단히 기록 겸 남겨보려고 합니다.아마 총 두 편의 포스팅으로 이뤄질 것 같고, 오늘은 작업 설명과 기술 선택에 대한 근거를 작성해보려고 합니다. 글이나 내용적으로 부족한 면이 있을 수 있습니다. 언제든지 지적 혹은 피드백을 주신다면 꼭 확인하고 더 나은 개발자로 성장하도록 하겠습니다. 🙇🏻‍♂️ 1. 작업 개요현재 그룹웨어를 만드는 업무를 진행하고 있고, 그 중에서 전자세금계산서 개발 관련 업무를 진행하고 있습니다.세금계산서 서비스 개편 업무를 진행하면서 기존 기능의 비효율적인 면을 개선하며 레거시 프로젝트를 개선하는 작업을 주로 하고 있습니다. 현재 레거시 프로젝트에선 파일..
[Kafka] Kafka 개념을 훑어보고, 주의할 점에 대해서 가볍게 알아보자
·
Backend
글이나 내용적으로 부족한 면이 있을 수 있습니다.언제든지 지적 혹은 피드백을 주신다면 꼭 확인하고 더 나은 개발자로 성장하도록 하겠습니다. 🙇🏻‍♂️Kafka 훑어보기Apache Kafka는 대규모 데이터 스트리밍과 실시간 데이터 처리를 위해 설계된 오픈소스 분산 메시징 시스템이자 이벤트 스트리밍 플랫폼이다. 쉽게 말해서, Kafka를 통해 데이터를 발행하고, 컨슈머를 통해서 데이터를 처리할 수 있다. 아래 그림을 통해 일단 구조를 훑어보고 각 개념들이 무엇인지 이해하고 주의할 점은 무엇인지 살펴보자간단한 컨셉으로는 일단 프로듀서를 통해 데이터를 토픽에 Push하고, 컨슈머를 통해 메시지를 Consume하는 것을 볼 수 있다. 용어도 프로듀서, 브로커, 토픽, 파티션, 컨슈머 등등 아직은 조금 복잡힌..