본문 바로가기
반응형

전체글500

루비콘 프로젝트 완료 메일 아래 모든 내용은 이번에 신규 오픈한 랠릿의 프로젝트 종료와 함께 TF 멤버분들께 전달한 메일 내용입니다. 루비콘은 랠릿 런칭 프로젝트명입니다 :) 안녕하세요 여러분 향로입니다. 다들 프로젝트 오픈하고 가벼운 마음으로 저녁 보내고 계신가요? 1월은 인프런 서비스 역대급 장애와 함께 랠릿 QA가 겹치니 정말 정신없는 1월을 보낸것 같아요. 그러면서 루비콘 TF 멤버들과 나눴던 수많은 대화들이 떠올랐는데요. 파트별 혹은 개인별 대화들을 복기해보면서 TF 회고와 별개로 이런 이야기는 꼭 해드리면 좋겠다 싶어 메일을 작성하게 되었습니다. 저는 루비콘 프로젝트가 대단한 성과라고 생각 하지만, 오픈하는 과정에서의 많은 일들로 인해서 자괴감을 느낀 분들에게는 “대단해요!” 라는 이야기는 그냥 겉치례로 들릴거라 생각해.. 2022. 1. 29.
Mac에서 코틀린 개발환경 구성하기 간단하게 코틀린을 테스트해볼 일이 있어 개인 PC에 코틀린을 설치해봤습니다. 모든 과정은 Homebrew를 통해 진행합니다. 1. JDK 구성 아직 코틀린은 JVM이 있어야 하기 때문에 JDK를 꼭 설치해야 합니다. 물론 kotlin native 의 시도가 계속 되고 있습니다. JDK가 미설치라면 다음과 같이 설치를 진행합니다. 저는 OpenJDK 11을 설치했는데, 최근엔 17까지 나왔기 때문에 본인 환경에 맞게 설치하시면 됩니다. brew tap AdoptOpenJDK/openjdk brew install --cask adoptopenjdk11 설치가 끝나면 아래와 같이 버전을 확인할 수 있습니다. java -version 2. 코틀린 구성 Java 버전을 확인했다면 코틀린을 바로 설치합니다. bre.. 2022. 1. 24.
NodeJS 와 PostgreSQL Connection Pool Database에 관해 기본적인 id/pw 외에 해야할 설정들이 여러개 있는데요. 그 중 실제 서비스 운영에 가장 중요한 설정 중 하나가 이전 글인 쿼리 타임아웃 과 함께 커넥션 풀 (Connection Pool) 설정입니다. 이 커넥션풀 설정이 왜 필요한지, 어떻게 해야할지 등등을 알아보겠습니다. 1. 실험 환경 실험의 경우 아래 환경에서 진행합니다. Node 16 PostgreSQL 14 (by Docker) 간단하게 아래와 같이 Node와 PG를 사용한 코드를 하나 만들어둡니다. 실험을 위해 lint 등을 빼고 빠르게 구성했습니다. app.js const express = require('express'); const pg = require('pg'); const app = express() con.. 2022. 1. 21.
[Ulysses] 에디터내 이미지 크기 조절 최근에 메모앱으로 Ulysses 를 써보고 있습니다. 에버노트에서 완전히 이주하게 되면 메모앱 정착기도 정리해보겠습니다. 처음 Ulysses를 작성할때 메모 작성과 폴더 관리가 원하던 의도 그대로 표현이 되어서 마음에 들었습니다. 다만 이미지 리사이즈가 별도로 되지 않아서 잠깐 고민을 했었는데요. Ulysses 에서는 이미지별로 사이즈 조절은 없고, 전체 설정으로 이미지들의 크기를 일괄 관리하는 기능만 존재합니다. 그래서 아래와 같이 기본 이미지 등록을 하면 굉장히 작은 사이즈로 이미지가 보이게 되는데요. 가독성 문제도 있어서 이미지 사이즈 크기를 조절해봅니다. 먼저 환경설정 (Command + ,) 으로 이동하신뒤 일반 (General) -> 이미지 미리보기 에서 사이즈 조절을 하시면 됩니다. 기본값이.. 2022. 1. 18.
NOT IN 쿼리 성능 개선하기 (PostgreSQL) 일반적으로 모든 RDBMS에서 부정조건 (not in, != 등) 은 인덱스를 선택하지 못한다. 이는 부정조건이 그 조건 외 나머지 모두를 뜻하기 때문인데, 지정된 대상을 빨리 찾는것이 인덱스임을 고려하면 그것 외 나머지라는 것 자체가 전체를 읽어야만 알 수 있는 정보이기 때문이다. 이럴때 가장 효율적인 해결 방법은 not in 을 없애는 것이다. 가장 대표적으로는 left outer join 이 있다. as-is) 아래의 쿼리는 현재 거의 2초에 가까운 시간이 소요되는 쿼리이다. select id from courses WHERE ("status"::text = 'publish' AND "published_date" < now() AND "exposure" AND "deleted_at" IS NULL).. 2022. 1. 17.
NodeJS 와 PostgreSQL Query Timeout 작은 서비스를 운영할때는 문제가 없던 서비스가 데이터가 적재되면 될수록 점점 슬로우 쿼리가 등장하게 됩니다. 이때 쿼리 시간을 제한하지 않으면, 5분/10분씩 수행되는 쿼리가 운영 환경에서 실행하게 되기도 하는데요. 이런 쿼리가 트래픽에 맞춰 여러개 요청이 온다면 결국 Node에서 사용가능한 Connection Pool이 가득차 더이상 쿼리 질의를 못하거나, 심한 경우 데이터베이스의 장애로 서비스가 사용불가능하게 되기도 합니다. 그래서 적정시간 이상으로 쿼리가 수행되면 강제로 종료하고, 다시 요청하도록 하는것이 일반적인 방식인데요. 해당 상황과 PostgreSQL에서의 옵션에 대해 소개드립니다. 1. 실험 환경 실험의 경우 아래 환경에서 진행합니다. Node 16 PostgreSQL 14 (by Dock.. 2022. 1. 14.

728x90
반응형