
0. 서론 DB 관련 업무를 하다 보면 응당 하게 되는 고민이 있다. 바로 데이터의 중복이다. 대부분의 속성이 동일한 성질을 가지지만 몇 가지 정도의 속성만 다른 테이블이 적게는 2개, 많으면 수십개 존재하던 경험은 많은 서버 개발자들에게 일반적인 경험으로 자리 잡아 있다. 위 사진은 데이터 중복의 대표적인 예시이다. 서로 다른 테이블에 고객번호, 고객명이라는 중복된 속성이 사용되고 있는 것을 확인할 수 있다. 매우 간략화된 예시로, 업무에서 일반적으로 발견되는 사례는 이보다 훨씬 더 많은 중복 속성을 가지고 있을 것이며, 훨씬 많은 테이블에 위치하고 있을 것이다. 이번 아티클에선 데이터 중복을 해결하기 위한 모델링 기법인 슈퍼타입 및 서브타입 도출에 대한 소개를 해보려 한다. 해당 기법을 실무에서 활용..

서론 필자는 파이썬 백엔드 출신이며, 지난 8월 이직을 하면서 자바로 기술 스택 전환을 했다. 파이썬을 할 때엔 주로 FastAPI를 사용했는데, Spring Boot로 넘어오면서 좀 당황했던 부분 중 하나가 Enum 타입에 대한 파라미터를 처리하는 방식이었다. { "detail": [ { "type": "enum", "loc": [ "query", "status" ], "msg": "Input should be 'NOT_STARTED','IN_PROGRESS','DONE' or 'FAILED'", "input": "as", "ctx": { "expected": "'NOT_STARTED','IN_PROGRESS','DONE' or 'FAILED'" } } ] } 위 JSON은 FastAPI에서 기본적으로..

발단 최근 회사의 한 프로젝트를 크게 리팩토링 할 일이 있었는데, 해당 내용을 배포한 이후 메모리 누수 현상이 발생하기 시작했다. 메모리 사용량이 계속 오르기만 하다 결국 인스턴스가 죽어버린다. 추정 중인 원인은, gunicorn이 복잡한 request, 즉 응답에 시간이 오래 걸리는 request에 대한 메모리 해제를 제대로 해주지 못하는 것이다. 구글링을 좀 해보면, 여기저기서 gunicorn의 메모리 누수 현상 때문에 곡소리를 내고 있다는 것을 알 수 있다. gunicorn은 자신들의 메모리 누수 현상을 인지하고 있으며, 이를 대비한 조금 과격한 해결책을 구비해 놓았다. 바로 max_requests 옵션이다. max_requests란? gunicorn엔 max_requests와 max_request..
- Total
- Today
- Yesterday
- 모델 추론
- 사이드프로젝트
- 정적웹사이트
- 회고
- 개발자동아리
- 유난한도전
- S3+CloudFront
- 조직문화
- uvicorn
- 메모리 누수
- Gunicorn
- memory leak
- 웹사이트배포
- 백엔드
- Ai
- Triton Inference Server
- 넷플릭스
- 토스
- AWS
- 모델 추론 최적화
- mlops
- s3
- 개발자회고
- ddd
- CloudFront
- 규칙없음
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |