본문 바로가기
반응형

전체글582

스타트업이 받을 수 있는 클라우드, SaaS 혜택 요즘 스타트업 제품팀과 종종 미팅을 한다. 제품은 이미 출시되었는데, 이제 시작 단계라 계속해서 속도전으로 기능을 붙이는 팀들이다. 대부분 전체 팀원이 10인 이하이거나 개발팀원이 3 ~ 7이다. 그러다보니 고정비에 대한 고민을 항상 듣게 된다. 트래픽이나 가입자수는 아직 보잘 것 없고, 수익은 0원인데, 5명 ~ 10명의 급여로 매달 수천만원씩 나가고 있는 상황. 이런 상황에서 한달에 클라우드 사용료로 30만원이라도 나오게 되면 이걸 어떻게 아낄 수 없을까 하는 고민이 먼저 든다. (EC2, ALB, Route53, CloudFront, RDS, Redis, S3 등 최소한의 구색이라도 갖춘 경우) 물론 몇천만원씩 급여를 주니 이정도는 감안할 수 있는거 아니야? 라고 할 수 있다. 하지만… 월급 200.. 2023. 5. 20.
나를 위해 남을 도와주기 3년차가 안되던 주니어 개발자일때를 돌이켜보면 "과연 내가 이 팀에서 필요한 사람인가" 하는 의문이 들때가 많았다. 당시에 내가 속해있던 팀은 연차에 관계 없이 잘하는 사람들이 많았다. 나보다도 어린, 나보다도 연차가 낮은 개발자분들이 나보다 훨씬 더 좋은 코드로 훨씬 더 빠른 속도로 일을 마무리 하는 것을 볼때마다 계속해서 나와 비교를 했다. 좋은 팀을 이야기할때 "개인이 풀스택일 필요는 없지만, 팀은 풀스택이어야 한다"는 말을 자주 듣는다. 한 사람이 모든 영역을 잘할 수 없기 때문에, 각자가 고유의 전문 영역을 가지고 서로의 부족함을 채워준다는 의미로 해석했다. 하지만, 이 팀에서 내가 무엇을 채워줄 수 있을지, 무엇이 내 고유의 전문영역인지 알 수가 없었다. 당시의 우리팀은 퍼블리싱을 제외한 모든.. 2023. 5. 15.
Promise Pool로 성능 개선하기 (feat. Promise.all) Node.js 환경에서는 다수의 비동기 작업을 처리하기에 적합하다. 예를 들어, 다음과 같은 상황이 있다고 가정해보자. ID 별로 조회만 가능한 외부 서비스에서 대량의 건수를 API로 조회해야하는 경우 join, subquery 로 조회시 성능과 DB의 부하가 심하여, id 별로 쿼리를 나눠서 조회해야하는 경우 대량으로 이벤트 메세지를 발행해야하는 경우 등등 다량의 Promise 작업들은 백엔드 애플리케이션 작업에서는 언제든지 발생할 수 있다. 이럴때 Node.js 환경에서는 Promise.all 을 통해 쉽게 해결할 수 있다. 여기서 Promise.all 보다 좀 더 성능을 개선할 수 있는 방법을 보자. 개요 수백개 이상의 Promise 작업들은 보통 한번에 Promise.all을 수행하지 않는다. 예.. 2023. 5. 5.
선뻥 후 노력 언니네이발관이 결성된 계기를 참 좋아한다. (이미지 출처: 나무위키) 아래 이야기는 루리웹에서 가져온 것이지만, 대부분의 커뮤니티에서 이미 공개되어 있는 이야기이다. PC통신시절 하이텔 메탈 음악 동호회에는 mypsb라는 전설의 악플러가 있었다. 지 맘에 안드는 뮤지션은 이 놈 저 놈 가릴것없이 닥치는대로 까내려서 악명이 자자했다. 당시 하이텔 동호회에는 현역 뮤지션들이 상당히 많았는데 음악평론활동(혐오물타기)을 하며 이들에게 꿀리기 싫었던 mypsb는 자신이 록밴드의 리더라고 입을 털고 다녔다. 물론 실제로는 밴드는 개뿔 악기 하나 다룰 줄 모르는 문외한이었다. 거짓말에 너무 심취한 나머지 현실과 망상의 경계가 모호해지는 수준에 이른 mypsb는 급기야 KBS라디오 '전영혁의 음악세계'라는 프로그램에 .. 2023. 4. 21.
1. 효율적으로 로그 모니터링하기 - 로그 레벨 구분하기 365/24 로 관리하는 시스템에서 로그는 굉장히 중요하다. 하지만 로그가 중요하다는 생각에 무분별하게 남기는 것은 좋지 않다. 대표적인 예로 습관적으로 예외 상황이 발생하면 ERROR 레벨로 로그를 남기는 경우이다. 보통의 서비스에서는 시간 내 에러 로그가 일정 수치 이상 쌓이면 알람을 발생시키도록 구성한다. 정상적이지 않은 모든 상황에서 전부 ERROR 레벨로 처리하게 되면 불필요하게 많은 알람들로 인해 정작 봐야할 심각한 에러 로그들도 놓칠 수 있다. 그래서 적정 수준에서 로그 레벨을 구분하여 알람 경보 수준도 구분하는 것이 필요하다. 1. 로그 레벨 로그 레벨은 해당 로그 메세지가 얼마나 중요한지를 알려주는 정보이다. 로그 레벨의 중요도는 담당 개발자가 밤에 계속 잠을 잘 수 있는지, 즉시 침대에.. 2023. 4. 16.
AWS RDS PostgreSQL에서 Slow, Error, DDL 쿼리 발생시 Slack 발송하기 이전 글 에서 RDS에서 Slow Query가 발생했을때 Slack을 발송하는 것을 구현했다. 이번 시간에는 해당 코드를 발전시켜서 Slow, Error, DDL 쿼리들을 각각의 채널에 발송시키도록 Lambda 코드를 개선해보자. 이후에 이 코드는 Serverless 등의 프레임워크로 교체될 예정이다. 1. 구조 가능하면 AWS Lambda는 각각 하나의 기능만 담당하도록 구성하고 싶었다. 하지만 CloudWatach의 로그 스트림에서는 구독 필터를 2개밖에 할당하지 못한다. 즉, Slow, Error, DDL 등 종류별로 Lambda를 만들어서 구독을 시킬 수가 없다. 그래서 하나의 Lambda에서 로그 종류를 구분해서 각각 Slack 채널에 전송하도록 구성해야한다. 물론 하나의 Lambda가 Gate.. 2023. 4. 13.

728x90
반응형