본문 바로가기

전체 글130

Prisma Mutation 최적화 기록 Prisma를 사용 중인 우리 서버 프로젝트. 기능 개발을 하다 보니 어느새 커진 사용자 bulk 생성 함수에 성능 문제가 제기되었다.이를 해결하고 최적화 하기 위해 시도한 방법에 대해 기록한다. 문제 상황 프로젝트의 관리자 페이지에는 사용자를 대량으로 업로드하여 한꺼번에 생성하는 기능이 있다. 처음에 해당 기능이 구현되었을 때는 사용자 생성에 많은 작업이 필요하지 않아서 성능이 크게 문제되지 않았지만, 프로젝트가 개발되어감에 따라 사용자 생성과 함께 이루어지는 다양한 부가 작업들이 붙게 되었고, 그러다보니 어느새 사용자 생성 함수는 사용자와 관련된 복수의 데이터를 여럿 생성해야 하는 큰 함수가 되었다. 기존 함수 Stress Test 결과 개선 전후의 성능 비교를 위해, Cursor에게 성능 측정용.. 2026. 8. 2.
두서없는 2025년 회고 열흘이나 넘게 지나버렸지만 2025년이 끝났다. 재작년(2024년)에는 아슬아슬하게 지켜왔던 '한 달에 블로그 포스팅 하나'의 룰을 지키지 못했기에 블로그에 거미줄이 쳐진 느낌이지만, 한 해가 지났으니 작년을 마무리하는 겸 간단한 회고 글을 남겨보려 한다.회고취직 후 재작년(2024년) 말에 퇴사를 한 후, 작년 2월 경 현재 회사에 입사했다. 현재의 팀은 정해진 마감 기한에 따라 프로젝트 개발을 진행하고 있어, 입사한 이래로 연말까지 이래저래 정신 없이 보냈던 것 같다. 새해가 밝은 현재 시점에도 1분기에 다양한 개발 계획들이 짜여져 있어(...) 여러 의미로 바쁘게 지내지 않을까 싶다. 사생활(?) 본래 기록을 좋아하는 사람인데, 기록에 대한 의지에 반해 체력이 받쳐주질 않아 블로그에 유의미한.. 2026. 1. 12.
오픈소스 라이브러리 커스텀해본 기록 현 프로젝트에서 내가 담당하는 부분에 사용되는 오픈소스 라이브러리에 이런저런 애로사항이 생겼다.해당 라이브러리 단에서 처리되어야 하는 부분인데, 필요한 기능이 라이브러리에 구현되어있지 않다던가자잘한 버그가 있어 이를 고쳐야 했다던가마침 오픈소스 라이브러리이니, 애로사항을 해결하기 위해서는 라이브러리 자체를 수정해서 사용하는게 낫겠다는 판단이 섰고, 이를 실제로 실행에 옮기며 몇몇 이슈를 겪었다.해결해보니 별 것 아닌데 커스텀이 처음이어서 그랬나 시간을 많이 잡아먹었다... 이 글에선 초보자가 겪은 바보 이슈들을 기록한다.(막무가내와 짧은 지식으로 들이받은 부분이 있다) 오픈소스 라이브러리를 커스텀해보자 돌이켜보면 사실 오픈소스 라이브러리를 수정하는 것 자체보다는 수정한 코드를 빌드하고 테스트 하는 과정.. 2025. 11. 9.
Prisma 알아보기 회사 업무로 백엔드 부분을 조금씩 손대보기 시작하며, 한 번도 써본 적이 없는 Prisma를 다루게 되었다.그러나 아는 것이 없었던 고로, Prisma에 대해 공부를 해보았다.Prisma ORMORM이란ORM(Object-relational Mapping): DB와 객체 지향 언어 간 호환되지 않는 데이터를 변환하는 프로그래밍 기법.https://stackoverflow.com/a/1279678 What is an ORM, how does it work, and how should I use one?Someone suggested I use an ORM for a project that I'm designing, but I'm having trouble finding information on what .. 2025. 7. 19.
Error에 정보값 집어넣기 개발 중, 서버에서 던지는 에러에 특정 정보값을 넣을 필요성이 생겼다.서버에서 직접 에러 메시지를 던지는 대신, 별도의 에러 코드를 정의하여 사용하는 방식으로 개발을 진행하고 있었는데, 그러다 보니 ‘어떤 필드(값)에서 에러가 나타났는지’에 대한 정보를 포함할 필요성이 생겼다.이를 구현하기 위해 거친 과정을 짤막히 기록한다.구현 방법 알아보면서 생각해봤는데, 자신의 프로젝트 상황에 따라서 방법이 갈릴 것 같다. 1. 내 프로젝트가 ECMA2022 이상을 지원한다.⇒ 별도의 추가 개발 없이 원래의 Error 클래스를 사용하면 될 것이다. 이는 ECMA2022 부터 Error 클래스에 cause라는 속성이 지원되기 때문이다.https://developer.mozilla.org/ko/docs/Web/Jav.. 2025. 5. 31.
GraphQL에는 유연한 객체가 존재할까 (GraphQL 스칼라 타입에 대해) 어느날 서버 코드를 작업하다가… 의문이 들었다. GraphQL에는 Any 같은 타입이 존재하나?이것이 갑자기 궁금해진 이유는, 구조가 정해지지 않은 객체 타입을 반환하고 싶은데, 이걸 그냥 JS/TS에서 하듯이 하는 것이 불가능해보였기 때문이다.// 참고로 이런 방식을 얘기한다{ [key:string]: string }그래서 GraphQL에는 이런 타입을 지원할까.→ 결론부터; GraphQL은 강한 타입 시스템 때문인지 ‘일단은’ 이런 타입이 없다.그렇지만, 편법처럼 어떤 모양의 객체든 허용하게끔 만드는 것은 가능하다.이걸 가능하게 해주는 것이 '커스텀 GraphQL 스칼라 타입' 이라는데, 이 부분에 충분한 이해가 없어 조금 더 알아봤다. GraphQL이 지원하는 타입스칼라 타입 공식 스펙 문서를 조.. 2025. 5. 5.