| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- nestjs
- Express
- docker
- 클로드
- vscode
- python
- nodeJS
- MSA
- javascript
- AI
- 알고리즘
- 함수형프로그래밍
- 파이썬
- html
- node.js
- Generics
- MSK
- Schema Registry
- GIT
- ChatGPT
- ES6
- GPT
- 자료구조
- typescript
- Linux
- 비주얼 스튜디오 코드
- Let's Encrypt
- Certbot
- AI에이전트
- stream
- Today
- Total
목록Backend/DataBase (5)
JangBaGeum.gif
개발자로 일하면 가장 오래 고민했던 주제 중 하나가 DB 모델링 컨벤션이다. 코드에는 ESLint, Prettier 같은 도구가 있어서 팀원 간 스타일을 자동으로 맞출 수 있지만, DB 설계에는 그런 자동화 도구가 없는 것으로 보인다. 결국 사람이 규칙을 정하고, 사람이 지켜야 한다. 이 글은 여러 프로젝트를 거치면서 정리한 나만의 MySQL 모델링 컨벤션을 정리하려고 한다. 요즘 AI를 통한 개발뿐만 아니라 설계도 함께하면서 사소한 컨벤션, 구두로 전해 내려오던 도메인적 규칙 등 모두 콘텍스트에 녹일 수 있도록 정리를 하고 있다. 이도 그 과정 중에 하나이다. 절대적인 정답은 아니고, 실무에서 반복적으로 부딪히며 다듬어 온 기준이다. 팀마다, 도메인마다 맞지 않는 부분이 있을 수 있으니 참고용으로 해도..
기본적으로 검색 쿼리를 작성할 때, 기본적을 와일드카드를 사용하여 LIKE 검색을 이용하는 것을 떠올릴 것이다. 이 방법은 가장 기본적이며 사용하기 쉬워 어렵지 않게 적용을 할 수 있으나, 데이터가 많아지면 무조건 성능 이슈를 맞이하게 된다. LIKE를 사용할 때 크게 고려해야 할 부분은 Index 설정에 대한 고려와 와일드카드의 쓰임 그리고 풀스켄에 대한 고려 등이 있을 것 같다. 이에 대한 대안이 될 수 있는 기능으로 MySQL의 Full-Text Search 기능이 있으며, 이 기능에 대한 간단한 배경, 검색 메커니즘, 활용법 등에 대한 내용을 다루려고 한다.# Full-Text Search란?Full-Text Search는 데이터베이스에서 텍스트 데이터를 검색하기 위한 기술로, 특정 키워드나 문장..
2022년 3월 TypeORM이 0.3 버전으로 새롭게 배포되면서 많은 것이 달라진 듯하다. 이전에 봤던 함수들이 deprecated 되었고 DB 설정 방식이나 repository 이용 방법 등이 달라졌다. 오랜만에 TypeORM을 사용하면서 기존과 많이 달라졌고 구글링 해도 예전 방식의 설명이 많아 혼란스러웠기에 어떤 점이 바뀌었는지 간단하게 적어보려고 한다. @EntityRepository EntityRepository는 repository 패턴을 이용해 Active Recorder에 없는 함수를 정의할 때 사용하던 Decorator이다. @EntityRepository() class UserRepository extends Repository {} 기존에는 위와 같이 사용되었지만 deprecated..
관계형 DB는 수직확장(Scale Up)에 유리하고 NoSQL은 수평 확장(Scale Out)에 유리하다고 한다. 이를 추상적으로만 알고 있었기에 시각적으로 표현해 확실히 하고자 기록해두려고 한다. Scale Up과 Scale Out Scale Up은 간단하게 이야기해 기존의 서버를 이전보다 높은 사양으로 업그레이드하는 것을 말한다. 이는 하드웨어 적으로 보면 용량을 늘리기 위한 목적으로 디스크를 늘리거나 혹은 성능을 높이기 위한 목적으로 CPU 또는 메모리를 업그레이 하는 등의 예시를 들 수 있다. Scale Out은 서버를 추가하는 방식을 말한다. 기존 서버의 용량 혹은 성능이 한계를 도달했을 때, 성능이 비슷한 혹은 낮은 성능을 가진 서버를 추가로 연결하는 방식이다. 이는 데이터의 저장 용량을 늘릴..
이전에 프로젝트를 진행하면서 회원의 정보를 하루가 지날 때마다 수정을 해야 하는 작업을 했어야 했다. 처음엔 어플리케이션을 돌리는 서버에서 배치 프로그램을 돌리거나 crontap을 돌려야 되나 싶었지만 찾아보니 mongodb는 친절하게 Trigger라는 기능을 제공해 주고 있었다. 나는 예약 작업만 걸어주면 mongodb가 알아서 쿼리를 정해준 시간에 돌려준다. 방법이 복잡하지 않아서 남겨두려고 한다. 내가 할 작업은 우리나라 기준 0시마다 "test"라는 DB의 모든 User의 quizChance를 3으로 바꿔줄거다. 우선 웹 mongodb atlas 관리 페이지로 들어가 준다. 그러면 위처럼 왼편에 "Triggers"라는 것이 있다. 저곳에서 trigger를 등록할 수 있다. "Add Trigger"..