모
모두싸인
May 12, 20211회
여러 AWS S3 Object를 하나로 압축하기

간단 소개
모두싸인에서 AWS S3 객체들을 묶어 압축하는 기능을 Node.js stream과 AWS SQS를 활용하여 구현한 과정과 해결 방법을 설명합니다.
AI Summary
- 배경 및 요구사항
- 모두싸인에서 여러 파일을 묶어 다운로드하는 기능에 대한 고객 요구가 있었습니다.
- 기존에는 파일 하나씩만 다운로드 가능해 불편함이 있었습니다.
- 문서 접근 권한 통제 및 안전한 URL 제공 필요했습니다.
- 구현 방식 및 문제점
- Node.js와 stream을 사용하여 S3 객체를 읽어 압축 후 응답하는 방식 고려했습니다.
- 하지만 통신 중단 시 작업 재시작으로 인한 시스템 부하 문제가 있었습니다.
- 클라이언트 응답 대기 및 재시도 요청 문제 발생했습니다.
- 해결책 및 결과
- 비동기 방식으로 변경하여 클라이언트 요청 즉시 응답하고, 실제 작업은 Task Queue(AWS SQS)를 통해 처리했습니다.
- S3Adapter 내부에 Node.js stream 로직을 구현하여 S3 파일 압축 및 업로드 효율성을 높였습니다.
- 작업 실패 시 재시도 로직 및 모니터링 기능 추가했습니다.
Next Feeds

DDD와 MSA 기반으로 좋은 서비스 개발하기
DDD와 MSA 기반 서비스 개발 원칙: Loose Coupling, High Cohesion, 명확한 모듈 경계, 독립적 배포, 기술 다양성.
DDDMSALoose CouplingHigh Cohesion마이크로서비스
2021. 5. 10.
컬리

왜 폴 그레이엄은 회사 이름을 Y Combinator라고 지었을까
폴 그레이엄이 회사 이름을 Y Combinator라고 지은 이유를 람다 계산법과 함수형 프로그래밍 관점에서 분석하고, Clojure 예제를 통해 설명합니다.
Y Combinator폴 그레이엄Clojure람다 계산법함수형 프로그래밍
2021. 4. 29.
컬리

올리브영 기술 블로그에는 누가, 얼마나 방문했을까?
올리브영 기술 블로그의 Google Analytics를 활용한 웹 로그 분석 및 도입 배경, 적용 과정, 장점을 소개합니다.
Google Analytics웹 로그 분석데이터 트래킹방문자 분석기술 블로그
2021. 4. 26.
올리브영

2021년 3월 회고 🔮 _ 2탄
올리브영 신입 개발자의 리리뷰 웹 앱 개발 경험 공유: React의 장점과 프로젝트 회고.
리리뷰React프론트엔드올리브영회고
2021. 4. 26.
올리브영

“잘” 사용할 수 있는 디자인 시스템 컴포넌트 만들기
모두싸인 디자인 시스템 구축 과정과 Styled System을 이용한 UI 컴포넌트 개발 및 개선 사례를 공유합니다.
디자인 시스템UI 컴포넌트Styled SystemReact모달
2021. 4. 26.
모두싸인

2021년 3월 회고 🔮 _ 1탄
올리브영 신입 개발자들의 리뷰 서비스 개선 프로젝트 회고: 기획, 개발, 팀 협업 과정을 담았습니다.
리뷰 서비스프로젝트 회고ReactSpring Boot팀 협업
2021. 4. 23.
올리브영