BackEnd43 [Retry storm] retry storm으로 인한 서비스 장애 제가 겪은 장애는 아니지만, 팀원이 운영하고 있는 서비스가 retry로 인해 장애가 발생한 적이 있습니다. 네트워크 환경은 보통 완벽히 동작한다고 믿을 수 없습니다. 중간에 패킷이 누락될 수도 있고 다양한 요인으로 인해 통신이 끊길 수 있습니다. 이러한 경우를 대비하기 위해서 retry와 timeout을 설정하게 됩니다. 하지만 과도한 retry가 일어나면 retry storm이라고 해서 서버에 부하가 가게 됩니다. 이번 경우도 이러한 이유로 인해 이슈가 발생했었습니다. 네트워크 단에서 문제가 있어서 클라이언트가 응답을 받지 못했었습니다.그래서 클라이언트에서는 retry를 하게 되었고, 이로 인해 서버 메모리가 부족해지고 cpu 사용량이 급증하는 일이 있었습니다.jvm을 재부팅하더라도 똑같이 ret.. 2025. 7. 27. [Spring] Http Interface 테스트 https://danden.tistory.com/167 [Spring] open feign 테스트 코드개발에 관심이 많으신 분들이라면 openfieng 들어보셨을 것이라고 생각합니다. 저도 최근에 관심이 생겨서 사내 프로젝트에 적용을 해보고 있습니다.configuration을 이용해 retry,5xx 에러가 발생하면 rdanden.tistory.com에서 feign을 사용했었고, open feign 에서 공식적으로 http interface로 마이그레이션 하는 것을 권장한다고 했었습니다. 그래서 이번에는 http interface를 이용해서 간단한 프로젝트 구현하고 테스트 해보겠습니다. 가정 상황다른 팀에서 데이터를 가져오고 이를 가공하는 로직이 필요합니다. 이 때, 팀은 계속 추가될 수 있습니다. 또한.. 2025. 7. 25. [헥사고날 아키텍처] port 네이밍 https://github.com/thombergs/buckpal GitHub - thombergs/buckpal: An example approach for implementing a Clean/Hexagonal ArchitectureAn example approach for implementing a Clean/Hexagonal Architecture - thombergs/buckpalgithub.com 회사 내에서 최신 프로젝트는 대부분 헥사고날 아키텍처를 이용하고 있습니다.저 같은 경우에는 위의 프로젝트를 참고해서 프로젝트를 진행하고 있습니다. 해당 프로젝트를 보면Load와 Update 관련 Port를 나눈 것을 볼 수 있습니다.또한 제가 사내에서 프로젝트를 진행할 때에도 Load, Save Po.. 2025. 7. 24. [대규모 트래픽] 사양 변경으로 인한 네트워크 부하 현재 운영하고 있는 서비스의 요청량은 하루에 3~4억 건 정도 됩니다.작년에 특정 데이터를 추가했고,이로 인해 여름이나 겨울에는 제공하는 데이터가 증가하게 되었습니다. 문제 상황 피크 시간대에 네트워크 부하가 차고, 이로 인해 이 대역폭을 이용하는 모든 서비스에 영향이 갔습니다. 처음에는 저희 측 서버에 변경 점이 없어서 저희 팀의 문제는 아니라고 생각했었습니다.평소보다 오히려 요청량이 적었기 때문입니다. 물론 평소보다 수집되는 데이터의 수가 많았습니다.하지만 작년에는 데이터를 추가한 후에 수집되는 데이터가 3배 더 많은 적도 있었지만, 큰 이슈가 없었습니다.작년에 네트워크 트래픽을 고려하여 데이터 개수가 일정 개수 넘어가면 슬랙이 울리게 했었습니다. 하지만 실제 서버의 out traffic을 확인했.. 2025. 7. 20. [Spring] openfeign 기여 시도했으나.... 이전 openfeign 테스트 관련 포트스에서 말한 것처럼 validation 관련해서 기여를 해보려고 했었습니다. 그래서 실제로 @FeignClients 가 선언되어 있는 인터페이스의 메소드를 호출할 때 어떠한 흐름으로 응답 -> object로 변환을 해주는지 디버깅해 봤습니다. 알아봤을 때,SpringDecoder라는 것을 이용하는 것으로 보입니다. 해당 프로젝트는 spring cloud 내의 프로젝트였습니다. 그래서 github로 가보니... 이런 내용이 있더라고요... 더 이상 업데이트 되지는 않고 버그 수정이나 소규모 PR 정도만 받는 것 같습니다.또한 Spring Interface Clients로 마이그레이션 하는 것을 추천하네요.심지어 좀 오래전에 발표한 내용이네요. 대신, HttpInt.. 2025. 7. 6. [백엔드] 헥사고날 아키텍처 사용 후기 현재 회사에서 레거시를 제외한 대부분이 헥사고날 아키텍처를 이용하고 있습니다.약 2년 정도 쓴 것 같은데, 이를 이용하면서 느낀점들입니다. 1. 장점1) adapter를 유연하게 갈아끼움으로써 특정 기술에 대한 의존도가 줄어듭니다. 만약 postgreSQL를 이용해 데이터 저장하던 것을 mongoDB로 바꾼다면 adapter 만 갈아끼우고 비즈니스 로직은 수정을 하지 않아도 됩니다. 2)이렇게 함으로써 비즈니스 로직에 대한 단위 테스트도 하기 쉬워집니다.port는 전부 mocking을 이용하여 외부 의존성을 최대한 줄임으로써 테스트하기 쉬워집니다. 2. 단점하지만 단점도 많다고 느꼈습니다. 1) 추상화가 생각보다 어렵습니다.기술이 바뀌더라도 비즈니스 로직에 영향 안 받도록 하는 것이 생각보다 어렵습니.. 2025. 7. 5. 이전 1 2 3 4 ··· 8 다음