post-thumbnail

MongoDB의 Geo-Spatial query를 Spring Data mongoDB로 작성하는 법

서론 배달 어플리케이션 제작 중에 소비자의 위치 근처에 있는 음식점만 보여줘야 하는 기능이 필요했다. 이를 구현하기 위해 특정한 알고리즘을 Service layer에서 구현할 수도 있었으나, 개발 소요 시간을 줄이기 위해 MongoDB에서 제공하는 Geo-Spatia

2023년 5월 27일
·
0개의 댓글
·
post-thumbnail

Kakao developers API를 이용하여 주소로부터 좌표(위도, 경도) 추출해내기

서론 프로젝트 기능과 관련하여 클라이언트가 입력한 주소에서 위도 및 경도 좌표를 추출해야할 일이 생겼다. 주소에서 위도 및 경도를 꺼내기 위해서는 직접 주소에 위도 및 경도 정보를 매칭한 데이터를 소장하고 있거나, 배포된 API를 활용하여 주소 정보를 보내고 위도 및

2023년 5월 11일
·
0개의 댓글
·
post-thumbnail

Spring-Data-DynamoDB를 사용하여 AWS DynamoDB에 연결하여 데이터 기록하기

서론 프로젝트에서 DynamoDB에 연결하여 데이터 저장할 일이 있었다. DynamoDB CRUD의 Example을 검색했으나, DynamoDBMapper를 사용하여 데이터를 기록하거나, Spring Data dynamoDB를 사용하더라도 local DynamoDB에

2023년 5월 5일
·
0개의 댓글
·
post-thumbnail

Cognito에서 받은 JWT를 해석하여 로그인 한 유저의 정보 가져오기

서론 지난 글에서 API gateway에 권한 부여한 후 Cognito 인증하여 백엔드 리소스인 Lambda에 접근하는 것을 실습해봤다. 하지만 실제 어플리케이션이 사용자를 인식하여 동적으로 정보를 보여주기 위해서는 이것만으로는 충분하지 않을 것이다. 유저 맞춤형으로

2023년 4월 27일
·
0개의 댓글
·
post-thumbnail

AWS VPC가 삭제되지 않을 때(1) - API gateway managed eni 문제

프로젝트를 진행하다보면 기존의 VPC를 삭제하고 새로운 VPC를 생성하여 인스턴스 환경을 바꿔야 할 필요가 있다. 하지만 VPC를 삭제하는 과정에서 VPC 내부에 사용되는 ENI가 남아있어서 삭제가 안 되는 문제가 종종 발생한다. 이 글은 그 중에 빈번하게 발생하는 원

2023년 4월 27일
·
0개의 댓글
·
post-thumbnail

Cognito를 사용하여 API gateway 접근 권한 부여하기

서론 Cognito의 역할 사전 준비 - Lambda, API gateway Lambda 함수 생성 HTTP API gateway 생성 Cognito 사용자 풀 생성 및 앱 통합 Cognito - API gateway 연결 HTTP API gateway 권

2023년 4월 24일
·
0개의 댓글
·
post-thumbnail

VPC Endpoint를 통해 ECR에서 이미지를 가져와 ECS에서 구동하기

VPC Endpoint를 통해 Private subnet 상에 있는 ECS와 ECR을 서로 연결해주면 ECR에 있는 이미지를 ECS가 가져와 쓸 수 있다.앞서 VPC 엔드포인트는 크게 인터페이스 엔드포인트와 게이트웨이 엔드포인트가 있다고 하였다. 우리는 Private

2023년 4월 20일
·
0개의 댓글
·
post-thumbnail

AWS REST API gateway를 VPC Link를 사용하여 NLB와 통합하기

서론 프로젝트를 진행하면서 HTTP API gateway와 Network Load Balancer를 통합해봤다. 하지만 이 통합 방식에는 단점이 하나 있었는데, API gateway의 라우팅 주소가 실제 어플리케이션 코드에서 라우팅 주소와 정확히 일치해야 정상 작동하는

2023년 4월 19일
·
0개의 댓글
·
post-thumbnail

NAT gateway로 Docker Hub 이미지를 호출하는 대신 AWS ECR과 VPC endpoint를 사용해보자

서론 지난 글에서 NAT gateway를 사용하여 private subnet에서 Docker Hub에 요청을 보내어 docker image를 가져오는 실습을 진행해봤다. 글을 마치면서 NAT gateway 단점으로 비용이 많이 발생한다는 것을 언급하였다. 실제로 서비

2023년 4월 18일
·
0개의 댓글
·
post-thumbnail

AWS ECR 생성 관련 오류 및 해결 방법 모음

aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.awsAWS ECR에서 제공하는 인증 토큰 가져오는 명령어를 그대로 입

2023년 4월 17일
·
0개의 댓글
·
post-thumbnail

Private Subnet에서 ECS를 구동하기 위해 NAT gateway 사용하기

프로젝트 진행 중에 AWS ECS가 생성되지 않는 문제가 발생했다. 현재 프로젝트 설계 구조는 다음과 같이 VPC 내 프라이빗 리소스를 통해 API gateway - Load balancer - Container Service 가 연결되어있는 구조다.보안상의 이유로 어

2023년 4월 13일
·
0개의 댓글
·
post-thumbnail

Docker image를 AWS ECS에 등록하여 서버 띄우기

지난 편에서 Spring boot에서 Docker image를 만들고 Docker image를 Docker Hub에 등록하는 것까지 해봤다. 이번에는 등록한 이미지를 끌어와 ECS에서 구동하는 법을 실습해본다. 해당 실습은 AWS 계정이 있고 해당 계정이 IAM에

2023년 4월 6일
·
0개의 댓글
·
post-thumbnail

Spring Boot 프로젝트 Docker image를 Docker Hub에 업로드하기

Spring 프로젝트를 도커 이미지로 만들어 클라우드에서 구동하려고 했으나 이에 관련하여 one way로 깔끔하게 정리되어있는 문서를 보지 못한 것 같아서 정리해두려고 한다.또한 코드를 업데이트하고 나서 BootJar로 빌드 하지 않아서 코드의 변경사항이 반영되지 않는

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

이것도 캐시, 저것도 캐시... Cache는 대체 뭘 칭하는 것일까?

서론 system 설계를 하다가 'Cache'라는 용어를 잘못 사용하다가 멘토에게 지적을 받은 적이 있다. 상황을 대략 설명하자면, system에 Spring으로 구현한 WAS가 여럿 있었고, 거기에 세션을 관리할 Redis가 붙어있었는데, 그 Redis를 '웹캐시'라

2023년 3월 2일
·
0개의 댓글
·
post-thumbnail

[알고리즘] max(), min()은 언제 사용하는게 좋을까?

알고리즘 문제를 풀다보면, 어느 한 문제에서는 사용해야 풀 수 있던 어떤 기능이 다른 문제에선 오히려 그 문제를 푸는데 악영향을 끼치기도 한다. 이번에 논의할 max()와 min()도 바로 그러한데, max()와 min()는 처리되는데 O(n)의 시간이 걸리므로 무턱대

2023년 2월 23일
·
0개의 댓글
·
post-thumbnail

Idempotency(멱등성)과 REST API. Method의 idempotency는 가변적이다.

개요 Idempotency의 개념과 이를 설명하기 위해 REST API와 HTTP Method에 대한 설명을 곁들이는 글이다. 또한 HTTP Method의 Idempotency 속성은 변할 수 있다는 것에 대해 서술한다. 서론 Spring을 이제 막 배우던 때에, @

2023년 2월 10일
·
0개의 댓글
·
post-thumbnail

왜 3-way handshake를 사용할까?

개요 본 글은 네트워크의 5가지 계층과 트랜스포트 계층에 해당하는 TCP의 사용 이유, 그리고 지연시간 보상을 위해 사용하는 웹 프록시, CDN에 대해 설명하는 글이다. 서론 F-lab 오리엔테이션에서 기습적으로 질문을 받았다. "3-way handshake를 사

2023년 1월 10일
·
0개의 댓글
·