네이버 쇼핑의 상품 정보를 크롤링하는 과정에서 여러 문제점들이 발생했다. 기존 코드는 첫페이지만 크롤링이 되도록 구현되어 있었기 때문에 상품 정보가 20개밖에 저장되지 않았다. 이를 해결하기 위해 여러 페이지를 크롤링 하도록 코드를 수정했는데 이번에는 상품 정보가 너무
개발을 하다 보면 예외 처리의 중요성을 실감하게 된다. 잘못된 입력 데이터, 데이터베이스 연결 오류, 혹은 서버의 예기치 못한 동작은 사용자 경험에 큰 영향을 미친다. NestJS는 이런 문제를 체계적으로 해결할 수 있는 예외 처리 기능을 제공하며, 이를 커스터마이징하
✨ Git Hook이란? Git Hook은 Git과 관련한 어떤 이벤트가 발생했을 때 특정 스크립트를 실행할 수 있도록 하는 기능이다. 크게 클라이언트 훅 과 서버 훅으로 나뉘는데 클라이언트 훅은 commit, merge가 발생하거나 push가 발생하기 전 클라이언트
이번 포스팅에서는 Redis로 캐싱을 구현하는 방법에 대해서 알아보겠다.캐싱 전에는 10번의 호출을 했을 때 평균적으로 30초가 걸렸다면 캐싱 후에는 평균적으로 14초가 걸렸다. 따라서 지연 시간이 대략 50%정도 감소했다. Could not write JSON: Ja
Resilience4j 라이브러리를 사용하여 서킷 브레이커를 적용하는 방법에 대해 알아보자.Resilience4j는 함수형 프로그래밍으로 설계된 경량 장애 허용 라이브러리로, 서킷 브레이커 패턴을 위해 사용된다. 서킷 브레이커 라이브러리에는 Hystrix도 있는데, H
개발을 하다 보면 외부 API를 호출해야 하는 경우가 있다. 특히나 전체적인 시스템 구성이 MSA(Microservice Architecture)로 되어 있다면 다른 서비스를 호출하는 경우가 매우 빈번하다. 문제는 서버들에 장애가 발생할 수 있다는 점인데, 호출한 다른
크롤링은 웹 상에 존재하는 자료들을 특정한 방식을 사용하여 수집하는 것을 의미한다. 여기서 중요한 점은 웹 상의 정보에는 여러가지 종류가 있다라는 점이다. 정적인 문서가 대상이 될 수도 있고, API와 같은 서비스가 될 수도 있다. 정적인 자료를 대상으로 하는 것은 크
평소에 개발을 하면서 HTTP 메서드를 이용하는데, GET, POST, PUT, DELETE와 같은 메서드들을 내가 명확하게 사용하고 있는 걸까? 라는 궁금증이 생겼다. 이 궁금증과 동시에 HTTP 메서드라는 게 정확히 무엇이고, 왜 사용하는 것인지 근본적인 의문이 생
오늘은 Grafana와 Slack을 연동하여 알림을 설정하는 방법에 대해 알아보자. 알림 설정을 해두면 시스템의 상태를 더 효율적으로 모니터링 할 수 있다. Slack 설정하기 Grafana가 Slack에 알림을 보내기 위해서는 Webhook을 생성해야 하는데, 그
cAdvisor는 Google에서 개발한 오픈 소스 컨테이너 리소스 사용 및 성능 분석 도구이다. "Container Advisor"의 약자로, 주로 Docker 및 Kubernetes와 같은 컨테이너 오케스트레이션 환경에서 사용된다. 컨테이너 환경에서 작동하는 각각
✨Prometheus > Prometheus는 메트릭 수집, 시각화, 알림, 서비스 디스커버리 기능을 모두 가지고 있는 오픈소스 기반의 모니터링 시스템이다. 처음에는 SoundCloud에서 만들어졌으나 2016년에는 쿠버네티스에 이어 두 번째로 CNCF(Cloud