본문 바로가기

분류 전체보기

(267)
[HTTP Status] 429 Too Many Requests https://developer.mozilla.org/ko/docs/Web/HTTP/Status/429 429 Too Many Requests - HTTP | MDN HTTP 429 Too Many Requests 응답 상태 코드는 사용자가 주어진 시간 동안 너무 많은 요청을 보냈음을 나타냅니다("속도 제한"). developer.mozilla.org 429 상태 코드는 사용자가 서버에 대해 일정 기간 내에 너무 많은 요청을 보냈음을 의미한다. 특정 웹사이트로부터 데이터를 전부 긁어오는 크롤링 코드처럼 짧은 시간에 많은 요청을 보내면 서버에 높은 부하가 걸린다. 서버는 이 상황에서 429 에러를 반환하여 사용자에게 요청을 적당히 보내라는 의미를 전달할 수 있다. 따라서 429 상태 코드가 반환되었다면, ..
[aws] python boto3 타입 사용 https://github.com/CSID-DGU/2023-02-CECD2-4/tree/ai-server-startkit/ai-server-startkit 나는 최근 진행 중인 졸업 프로젝트에서 데이터 수집 기능 및 API 서버를 구현하고 있다. 데이터 수집 기능의 경우 lambda를 이용하여 어느 정도 구축했고, 수집한 데이터를 파이썬 기반 AI 서버에 연동하기 위한 작업을 진행해야 했다. 일반적으로 파이썬에서 aws 서비스를 연동할 때 boto3 라이브러리를 이용한다. 사용법에 대해서는 공식 문서에서 어느 정도 친절하게 설명해주고 있다. 참고로 aws 서비스 외부에서는 액세스 키와 비밀 키, 지역 등의 정보가 추가적으로 필요하며, 이는 boto3.client에서 넘기면 된다. 개인적으로 여기서 좀 헤..
[javascript] Ajv 라이브러리 https://ajv.js.org/ Ajv JSON schema validator The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927) ajv.js.org Ajv는 자바스크립트 진영에서 많이 사용되는 validator 라이브러리 중 하나로, JSON Schema 또는 JSON Type Definition (JTD)을 이용하여 객체의 타입을 표현한다. 두 표현 방식 모두 표준으로 등록되어 있기 때문에, 해당 표준을 이용한 표기법만 알고 있다면 Ajv를 사용하기는 매우 쉽다. JSON Schema 문서: https://json-schema.org..
[nestjs] nestjs swagger Swagger https://swagger.io/ 오픈소스 기반 문서 자동화 도구로, 바로 테스팅해볼 수 있는 환경도 함께 지원한다. 졸업 프로젝트에서 프론트엔드 분과 협업할 필요가 있다. 이전에 진행했던 프로젝트에서는 API 요청 및 응답에 대한 문서화가 제대로 되지 않아 API 구조에 대한 의견을 주고 받다가 시간을 많이 낭비한 경험이 있다. 작성해 둔 API 관련 정보가 개발 과정에서 변화를 많이 겪었지만 이에 대한 문서는 최신화하지 않아 발생한 문제다. 따라서 이번 프로젝트에서는 swagger을 도입하여 이러한 시행착오를 줄이고자 한다. @nestjs/swagger https://docs.nestjs.com/openapi/introduction nestjs는 추가 모듈 설치를 통해 swagger을..
[기록] EventBridge rule, lambda, 시간대 cron 기반 스케줄링 aws lambda에 cron 스케줄러를 적용하려면 EventBridge 서비스를 이용한다. https://aws.amazon.com/ko/eventbridge/ 서버리스 이벤트 라우터 - Amazon EventBridge - Amazon Web Services Amazon EventBridge 이벤트 버스는 이벤트 수신, 필터링, 변환, 라우팅 및 전송에 도움이 되는 서버리스 이벤트 버스입니다. aws.amazon.com eventbridge는 이벤트 기반으로 애플리케이션을 연결하는 서버리스 서비스로, 버스 · 파이프 · 스케줄러 등의 방법을 통해 AWS의 다양한 애플리케이션을 연동하는데 도움을 준다. 현재 나는 네이버 뉴스 사이트로부터 뉴스 목록을 가져오는 기능을 구현했고, 이..
[javascript] 호이스팅, var, let, const 과거에는 let, const가 존재하지 않았기 때문에 var을 주로 사용함. 호이스팅 자바스크립트에서 변수 또는 함수를 스코프 내 최상위로 이동한 것처럼 동작하는 특성. 용어 자체는 ECMAScript 사양에 등장한 적이 없지만, 실제로는 자신이 속한 스코프의 최상단으로 이동하는 특성을 가지고 있으므로 호이스팅이라는 표현을 사용하여 설명한다고 한다. 호이스팅에 의해 선언 전에 사용한 경우는 자바스크립트 내에서 2가지 경우만 해당한다. var 함수 표현식(function expression) var apple = 'this is apple'; v(); console.log(apple); e(); function v() { apple = 'inner apple'; console.log(apple); cons..
[기록] ec2, lambda, 서버 구성에 대한 고민 최근 졸업 팀 프로젝트에서 백엔드 서버 구현 역할을 맡고 있다. 내가 맡은 역할은 크게 2가지로 나눌 수 있겠다. nest.js 기반 API 백엔드 구성 cron(스케줄) 기반으로 동작하는 데이터 스크래핑 로직 구현 현재 글에서는 2번 항목에 대한 고민을 기록한다. 이전에 네이버 뉴스 URL 분석 및 댓글 API 분석에 대한 글을 작성한 적이 있다. 뉴스 URL 분석: https://blaxsior-repository.tistory.com/235 댓글 API 분석: https://blaxsior-repository.tistory.com/231 두 가지 분석 결과를 기반으로 키워드에 대한 기사 및 댓글 목록을 가져오는 함수를 작성했다. https://github.com/blaxsior/crawler-pro..
[DB] crow feet notation 엔티티 사이의 관계를 표현할 때 사용하는 방법에는 여러가지가 있을 수 있다. 여기에 대해서는 ER Model에 대해 설명하는 과정에서 예전에 내가 써둔 글이 있어서 첨부한다. https://blaxsior-repository.tistory.com/104 [데이터베이스 03] Entity Relationship Model 하나의 프로그램을 설계할 때는 어플리케이션 디자인 및 데이터베이스 디자인이 필요하다. 이때 수행되는 데이터베이스 디자인은 엄밀하게 따지면 분석(analysis) 및 디자인(design) 작업을 포함하 blaxsior-repository.tistory.com Chen notation / min-max notation 위 글에 기록한 내용에 따르면 우리는 최소 2개의 표기법을 알고 있다. c..