전체 글 88

slack 파일 업로드, completeUploadExternal(),getUploadURLExternal() 사용법

슬랙에 파일을 보내기 위해 대부분 사용하고 있던 files.upload()함수가 2025년 3월 11일에 종료됩니다.대안으로, files.getUploadURLExternal 과 files.completeUploadExternal 함수를 사용하라고 하는데,코드 예시가 많이 없어 불편해서 글을 작성하게 되었습니다.과정은 대략 이렇습니다. 파일 업로드할 url 가져오기1번에서 받은 url로 파일 올리기1번에서 받은 파일 아이디로 슬랙 전송하기파일 업로드할 URL 가져오기Requestparams 에 filename(파일이름), fileLength(파일길이) 추가return await instance({ method: 'post', url: '', headers: { Authorizat..

개발 아카이브 2024.11.19

Node.js 에서 Cpu intensive한 코드 찾아내는 법 강연 정리

해당 강연을 보고 정리한 글입니다. https://inflearn.com/course/lecture?courseSlug=inflearn-evening-meetup-2211&unitId=137803&subtitleLanguage=ko CPU intensive 한 코드란? 학습 페이지 www.inflearn.com 잘 알고 있다 시피, node.js는 이벤트 루프를 사용하고 싱글 스레드지만, 만약 블로킹 IO 나 커널 블로킹이 필요하다면, libuv 엔진의 스레드 풀을 사용하여 처리하게 된다 결국 강연자가 생각했을 땐, 전체 Node.js 의 요청들은 worker pool과 event pool로 나누어질 것이고worker pool : libuv엔진이 처리하는 것들event pool : 그외의 것들이다 강연자..

개발 아카이브 2024.10.27

쿠버네티스란? feat. 데이터 처리도 이제는 컨테이너로, 우아한형제들의 데이터플랫폼 혁신

요즘 쿠버네티스 이야기가 많이 들려서, 관련된 AWS 써밋을 보았는데, 일단 내용이 좀 어려웠다.그래서 쿠버네티스 내용부터 훑고, 내용 정리를 진행했다.  쿠버네티스란?서비스를 제공하려면 만든 서버를 특정 서버에 배포해야 함. 기존에는 물리 서버에 여러 개의 가상 머신을 띄우는 가상화를 많이 사용했음. 하지만 가상화에는 몇 가지 한계가 있어서 이를 해결하기 위한 기술로 컨테이너가 등장했고, 컨테이너를 효율적으로 관리하기 위해 쿠버네티스(Kubernetes)가 나옴. 가상화(Virtualization) 가상화는 물리적인 하드웨어를 논리적인 객체로 추상화해 한 서버 위에 여러 운영체제를 설치하고, 각각 독립적으로 애플리케이션을 실행하는 방식임. 이 방식의 특징과 한계는 다음과 같음.  1. 확장성의 한계: ..

개발 아카이브 2024.10.13

[Deview] - 일본에서도 VOD 를 빠르게 업로드하고 재생할 순 없을까 정리 및 후기

https://tv.naver.com/v/23649793 NAVER D2일본에서도 VOD를 빠르게 업로드하고 재생할 순 없을까tv.naver.com  2021 deview 컨퍼런스를 보고 내용과 느낀 점을 정리해 본다. 이번에 본 컨퍼런스는 [일본에서도 vod를 빠르게 업로드하고 재생할 순 없을까?]의 주제였다. 이걸 고른 이유는 vod 서비스는 어떻게 개발되는지 하나도 지식이 없어서, 보게 되었다. 해당 컨퍼런스를 발표한 부서는 네이버 etech이다.etech는 포토 오디오 비디오의 생산부터 클라우드까지 전반적인 워크플로의 기술 연구와 개발을 담당하는 부서라고 한다.즉, 사용자가 영상을 업로드하고, 그걸 클라우드에 적재하고 영상을 보여주는 일련의 모든 과정을 담당하는 부서라고 이해했다. 이번 발표자님은..

개발 아카이브 2024.09.29

docker-compose로 테스트 환경 구축하기

사내에서 기존에 1000줄에 달하는 복잡한 회원가입/로그인 기능 마이그레이션을 제안하고, 진행하게 되었다.그를 위한 첫 단계로, 코드의 안정성을 보장하고 변화에 대응하기 위해 테스트 코드를 도입하게 되었다.특히, 통합 테스트를 중심으로 시스템 전반의 정합성을 검증하고자 한다.다음은 aws , db등 여러가지 환경에 얽혀있는 서버를 로컬에서 가장 간단히 테스트하기 위한 환경 구축기이다. 통합테스트란?통합 테스트는 흔히 E2E(End to End) 테스트라고 불리며, 애플리케이션의 모든 계층을 거쳐 최종적인 기능이 올바르게 동작하는지 검증하는 방법입니다. 즉, 실제로 API 서버를 가동시킨 후 클라이언트가 서버에 요청을 보내고, 그 요청에 대한 응답이 예상한 결과와 일치하는지 확인하는 방식입니다. ex. 정..

개발 아카이브 2024.09.08

DynamoDB 인덱스 개선으로 비용 절감하기

최근 회사에서 진행한 DynamoDB 글로벌 보조 인덱스 최적화를 통해 월 2,000달러의 비용을 절감할 수 있었다 문제 : 왜 인덱스 하나의 비용이 월 2,000달러나 나오는데?인덱스 프로젝션 속성이 ALL이면, 그만큼 데이터를 저장하고, 조회하고, 쓰는데 비용이 부과되었기 때문이다.인덱스는 생성 시 함께 프로젝션(저장) 될 속성을 선택할 수 있다. 2024.07.20 - [분류 전체보기] - DynamoDB 알아가기(1) - 인덱스(index), 쓰로틀링(throttling)KEYS_ONLY: 인덱스와 같은 Key만 포함INCLUDE: 특정 항목을 지정하여 포함 (예: name, phone 등)ALL: 모든 속성 포함 예를 들어 user 테이블이 다음과 같다고 하자.이때 snsId라는 값은 sns_i..

개발 아카이브 2024.09.01

2024 인프콘에 다녀오다

해당 글은 사내 블로그에 기재한 글이다. 그래서 평소랑 말투 다름 주의..ㅎㅎ인프콘 후기두둥, 인프콘에 가다.2024 8월 2일 코엑스에서 열린 IT인들을 위한 축제 , 인프콘에 다녀왔습니다. 인프콘은 국내 IT 교육 강의 사이트 인프런에서 주최하는 컨퍼런스이며, 국내 다양한 IT 기업(우아한 형제들, 토스, 무신사, 라인 등)의 IT 종사자들이 모여 각 사업체에서 얻은 인사이트를 공유하는 자리입니다. 10,000명이 넘게 지원하였고, 이번에 2,000명이 참여를 했다고 합니다. 저 또한 좋은 기회로 이번에 참석하게 돼, 경험을 공유하고자 합니다. 이번 인프콘은 다양한 강연이 있었는데, 저는 오후 시간에 참여해 3개의 강연을 들었습니다.혹시 당신은 데이터를 모르는 개발자인가요?클린 스프링 : 스프링 개발..

[플로니] 자산 내역 중복 데이터 트러블 슈팅기 (동시성 제어 실전편)

오랜만에 플로니 관련 글을 써본다. 플로니는 공유 가계부이다. 따라서, 한 자원에 여러 명이 접근하게 된다. 그렇기에 동시성 제어가 필수였다.런칭 전에도, 동시성 제어를 예상하고, 대비해놨었다.그럼에도 불구하고, 서비스를 운영하다 보니 예상치 못한 곳에서 에러가 터지기 마련이었다.이제는 실전이다.ㅋ 2023.10.08 - [Floney] - [플로니] 데이터 동시성 제어하기  [플로니] 데이터 동시성 제어하기런칭 때가 되니..끝이라고 생각했지만, 처리해야할 게 하나둘 생긴다 오늘은 이러한 이슈를 생각해봐야한다. 만약, 동시에 가계부 내역을 고쳐서 동시성 문제가 생기면 어떻게 하나요???? 우리의sienna1022.tistory.comNonUniqueResultException 발생런칭한 지 얼마 지나지 ..

Floney 2024.08.04
728x90