API (11) 썸네일형 리스트형 [GCP] 공개 API의 무단 사용 및 비용 폭증을 방지하는 방법 첫번째 방법 프로젝트에 API 키 인증을 적용하여 보안을 강화했습니다.MY_API_KEY 환경 변수에 설정된 값과 일치하는 키를 포함하지 않는모든 API 요청은 차단되어 무단 접근을 방지합니다. 두번째 방법레이트 리미팅을 적용하여 무분별한 남용을 방지할 수 있도록 헤더로 KEY 인증과 함께 적용하였습니다 위의 두가지 개선사항을 GCP 단위가 아닌 코드 단위에서 적용하였습니다 이로써 공개된 API지만 무단 사용을 방지할 수 있을 것으로 예상됩니다! [GCP/Cloud Run] 구글 클라우드 플랫폼에 Docker 이미지 배포 성공 & 과정 "컨테이너화된 애플리케이션을 위한 서버리스" 라는 문장이GCP의 Cloud Run 기능을 설명하고 있습니다. 서비스 만들기 버튼을 눌러 세팅을 시작했습니다 "기존 컨테이너 이미지에서 버전 1개 배포" 대신"저장소에서 지속적 배포"를 선택, GitHub과 연동하여 푸쉬될때마다 자동으로 배포될 수 있도록 했습니다. 제 프로젝트에도 루트에 Dockerfile이 있기에 소스위치 "/Dockerfile" 은 기본값 그대로 두었습니다.브랜치는 "^main$"라고 표기되어 있는데 또한 main브랜치를 배포할 목적이었으므로 또한 그대로 두었습니다. AWS에서와 같이 GCP에도 리전 선택지가 있었습니다. 대신 AWS와 달리 GCP에서는 인스턴스를 생성할 때 선택하도록 되어 있었네요. 위와 같이 `결제: 요청 기반,.. [Aizen] Gemini AI와 함께 프로젝트 설계하기 이 프로젝트(Aizen)를 시작하게 된 계기는 ... # AI는 개발자의 의도를 가끔 잘 못알아듣는 것 같았습니다. 그래서 요구사항을 잘게 쪼개어 순서대로 입력시키면 코딩을 잘 할까 싶어 # 요구사항을 잘게 쪼갰습니다. 프로젝트를 문서화하고 목표를 명확히 설정하여 구체적인 구현방법을 생각해보았습니다. # 그리고 그것을 수행할 수 있는지 AI에게 물어봅니다. Gemini AI는 그 문서화 한 대로 자신에게 단계별로 할일을 제시하면 가능하다고 했습니다. 그래서# AI가 가능한 영역의 코딩이라는 확신이 들었습니다. 그리고 문서화 자료를 토대로 Gemini에게 프롬프트를 전달하며 코드를 출력하도록# 진행했습니다. 처음엔 너무 밋밋한디자인이어서 강렬한 색(노랑,파랑,빨강,초록)을 섞은 블랙 테마를 .. [Docs] RESTful API란 무엇인가요? RESTful API란 무엇인가요? - RESTful API 설명 - AWSAmazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API Gateway를 사용하면 실시간 양방향 통신 애aws.amazon.com Next.js에서 Axios GET 메소드 요청 구현 [React] items.json은 깃허브에 배포한 제 블로그의 게시물 데이터 파일입니다. 제 items.json 또한 공개된 장소에 누구나 접근할 수 있으므로 Nest.js에서 Axios로 데이터를 요청해 보았습니다. -- Next.js 설치npx create-next-app@latest-- 프로젝트 디렉토리로 이동cd my-nextjs-project-- 프로젝트 실행npm run dev Next.js에서는 `/app` 하위에 있는 `page.tsx`가 기본 화면으로 동작합니다. 그래서 `/app/page.tsx`가 `localhost:3000/` 에 접속했을때 보이는 기본 화면이 됩니다. 저는 `/app` 하위에 `/request` 를 생성한 후, `page.tsx`를 생성했습니다. 이 `/reqeust/pag.. NestJS 백엔드 REST API 구축 기록 [mongoDB] NestJS를 사용해 수입/지출 관리를 위한 기본 REST API를 구축하고 실행한 것입니다.주요 작업 내용과 코드를 기록한 문서입니다. 1. NestJS 프로젝트 생성NestJS는 백엔드 애플리케이션 프레임워크로, 모듈 기반 구조와 데코레이터를 활용한 선언적 코딩 스타일을 제공합니다.초기 프로젝트 설정과 IncomeExpenseModule 생성은 애플리케이션의 구조를 정리하는 작업입니다. 2. Mongoose 및 MongoDB 연결Mongoose를 통해 MongoDB와 통신할 수 있도록 설정했습니다.MongoDB는 NoSQL 데이터베이스로, 수입/지출 데이터를 저장할 데이터베이스로 사용되었습니다.MongooseModule.forFeature를 사용해 IncomeExpense라는 Mongoose 모델을 .. Node.js 서버로 카카오 로그인을 구현해보자 [MongoDB/JWT] Node.js의 Express 웹 애플리케이션 프레임워크를 사용하면 RESTful API, 웹사이트, 단순한 웹 서버를 빠르게 구축할 수 있습니다. 카카오 REST API를 사용하여 카카오 API를 활용하는 웹 서버를 빠르게 구축하기 위해 Node 서버를 선택하였습니다. JWT 토큰은 API와 Node.js 서버 간의 인증 및 권한 부여 과정에서 중요한 역할을 하며, 사용자 정보를 안전하게 전달하고 서버의 부하를 줄이는 데 기여합니다.JWT (JSON Web Token) 의 역할은 무엇인가요? 헤더는 토큰의 유형과 서명 알고리즘 정보를 포함합니다.페이로드는 사용자 정보 및 기타 클레임을 포함합니다.헤더와 페이로드를 조합한 후, 비밀 키를 사용하여 서명을 생성합니다. 이 서명은 JWT의 무결성을 검증하는 .. 스프링부트에서 페이팔 결제 API를 사용해보자 [PayPal/후기] 스프링부트에서 10달러를 결제하는 페이팔 결제 버튼을 만들어 보겠습니다. 준비물페이팔 회원가입, 계좌가 인증된 상태여야 합니다 (2~3일 소요)페이팔 API (샌드박스 ON)스프링부트 서버 로직웹 프론트엔드 리소스 (HTML/CSS/JS) Sandbox모드는 API 테스트와 개발을 할 수 있도록 제공되는 테스트 환경입니다.샌드박스 모드에서 실제 결제는 이루어지 않으며 가상의 계좌를 설정할 수 있다고 합니다.[ 결과물 스크린샷 ] :: 로직 설명 및 후기 ::결제를 시작하려면 아래 버튼을 클릭하세요. Pay with PayPal 이것은 페이팔 결제 api를 호출하는 index.html의 버튼입니다.누르면 "/api/paypal/pay" 주소를 POST 메서드로 호출합니다... 이전 1 2 다음