pintpoint를 도입하면서 겪었던 과정에대해서 공유하고자 합니다. 많은 글에서 pinpoint-agent를 설치할때, 직접 config 파일의 collector.ip를 수정해서 설치하는 방법들을 설명하곤 합니다. 하지만, CI/CD , docker를 쓰는 환경에서는 매 배포때마다 Pinpoint Agent를 직접 설치하고 collector.ip를 수정해 줄 수는 없습니다. 따라서, CI/CD환경에서는 2가지 문제가 있었습니다. 1.) Pinpoint Agent 설치 2.) collector.ip 수정 1번에 대한 해결책으로 docker-compose를 사용해서 multi-container로 pinpoint-agent를 도커 컨테이너로 띄워서 볼륨을 호스트와 공유하는 방식을 트렌비 기술블로그(https..
이전 환경(single-container, 다른 플랫폼(JAVA, Python))에서는 nginx.conf 파일을 재정의 하기 위해서 .platform/nginx/nginx.conf를 위치 하는 방법을 통해 재정의 하였습니다. 하지만, Elastic Beanstalk에서 docker-compose를 통한 배포시 프록시 서버를 컨테이너로 실행한다고 가정하기 때문에, 프록시 서버 설정의 기본값은 없음입니다. 따라서, nginx.conf 파일을 재정의 하고 싶다면, docker-compose에 nginx-proxy 컨테이너를 따로 올려야 합니다. Docker 환경 구성 - AWS Elastic Beanstalk (amazon.com) Docker 환경 구성 - AWS Elastic Beanstalk NGINX..
배경SNS 서비스를 개발하다 보면 피드 또는 타임라인 기능은 필수적입니다. 저희 Film it을 개발하면서도 다른 SNS(인스타그램, 페이스북, 트위터, 링크드인 등)처럼 사용자에게 실시간으로 업데이트되는 타임라인을 제공하기 위해 다양한 고민을 했습니다. 문제점기존의 Pull 모델에서는 사용자가 타임라인을 요청할 때마다 실시간으로 데이터베이스에서 필요한 정보를 가져와서 조합합니다. 이 방식은 구현이 비교적 간단하지만, 요청할 때마다 사용자의 모든 팔로잉의 새로운 계시물들을 가져와서 타임라인을 조합해야 하기 때문에, 팔로잉수가 많아질 수록 타임라인을 만드는 시간이 계속해서 늘어날 수 있다고 판단하였습니다.이를 해결하기 위해, 고민했던 방법들과 과정에 대해서 설명하겠습니다. Push 모델 앞선 문..