There are 10 posts.

분산 트랜잭션

September 05, 2024

분산 트랜잭션 분산 트랜잭션은 쉽게 설명해서 데이터베이스의 트랜잭션이 하나가 아닌, 분산으로 발생하는 것을 말한다. 가령, 하나의 서버에서 서로 다른 DB를 사용하여 하나의 작업을 묶는 등 여러 리소스에 영향을 주는 트랜잭션처럼 말이다. 시나리오 우선, 두 가지의 케이스를 고려해본다. Monolithic 환경에서 DB 리소스가 1개인 경우 대부분 Mo…


NestJS에서 인터페이스 DI

August 24, 2024

NestJS에서의 DI와 인터페이스 SpringBoot 우선 SpringBoot에서 OCP와 DIP를 지키기 위해, DI하는 경우 인터페이스를 사용하는 것을 볼 수 있다. 간단하게, DI 받는 부분에서 private final UserService: userService 로 명시하는 것을 볼 수 있다. NestJS 그럼 NestJS도 SpringBoot와…


TOSS AOP 라이브러리

July 20, 2024

TOSS AOP 라이브러리


Toss AOP 라이브러리 한글 문서 번역 기여

June 20, 2024

Toss AOP 라이브러리 한글 문서 번역 왜 한글 문서 번역? 최근에 오픈소스 기여에 대해 관심이 생기고 바로 내가 기여할 수 있는 게 무엇일까를 고민하던 중, 어떤 블로그에서 영어 문서를 한글 문서로 번역하는 것부터 시작해보라는 말을 보게 되었다. 그래서, 내가 최근 가장 관심있게 보던 오픈소스인 TOSS의 AOP 라이브러리를 확인해보았고, 마침 영…


NestJS 빌드 속도 개선

June 18, 2024

Feature 빌드 속도를 개선하기 위해, yarn classic -> yarn berry (zero install) -> pnpm으로 마이그레이션 하는 과정과 docker multi-stage 적용, nestjs에서 swc를 통한 컴파일 속도 최적화를 진행했습니다. Situation 현재 저희는 AWS ECS를 통해 서버를 배포하고 있습니다. githu…


연관관계 없이 join

May 12, 2024

Feature typeORM에서 연관관계가 없는 테이블 간 join 하는 방법 Tables User 테이블 Payment 테이블 각 테이블은 연관관계를 설정하지 않았고, payment 테이블에서 userId를 저장할 수 있게 했습니다. Join case 모든 user에 대한 payment 정보를 조회하기 위해 join을 합니다. 동작한 query 리턴된 …


이미지 업로드 성능 개선

April 03, 2024

Feature Image Upload 서버에서 Sharp 라이브러리를 사용해 Content-type 변경하는 기능 구현 Situation 기존 운영중인 서비스은 S3에 이미지 업로드 할 때, image/jpg로 업로드됩니다. JPG는 PNG에 비해 작은 용량의 크기로 사진을 압축할 수 있지만 WebP와 비교했을 때 화질면에서 크게 떨어집니다. 또한, We…


PR 리뷰어 할당 봇 만들기

February 27, 2024

Tech Environment Python v3.12 actions/checkout@v3 actions/setup-python@v3 python code의 의존성을 위해 requirements.txt로 라이브러리 설치 member_list.json 해당 파일에 멤버 리스트를 등록하여 사용합니다. 이와 같은 형식으로 등록합니다. PR notificaiton…


동시성 이슈 해결해보기

February 16, 2024

동시에 같은 DB 테이블 row를 업데이트 하는 상황은 "DB의 동시성 이슈"으로 생각해보면 좋을 것 같다. DB의 동시성 이슈 동시성이란 여러 요청이 동시에 동일한 자원(Data)에 접근하고 수정하려는 것을 말한다. 이로 인해, 발생하게 되는 문제를 동시성 문제라고 한다. 동시성 문제로 Data의 무결성이 깨지고 의도하지 않은 결과를 반환하게 되는 문제…


github-action + slack으로 서버 헬스체크하기

December 27, 2023

이번에 진행한 프로젝트에서 나는 CloudType을 사용하여 NestJS 기반 서버를 무료로 배포하였다. 무료로 서버를 배포할 수 있다는 것이 정말 큰 장점이었지만, CloudType의 무료 티어의 경우 연속 실행 제한이 걸려 매일 오전 3~9시 사이 프리티어로 구동 중인 서비스는 자동으로 중지 상태로 변경되는 문제가 존재한다. 사실, 정지되는 것은 문…