BACKEND(24)
-
EXPLAIN 사용법 찍먹 해보기
MySql의 옵티마이저가 항상 최적의 쿼리 최적화를 하는 것은 아니기 때문에 EXPLAIN을 사용해 실행 계획을 확인하는 것은 중요하다. 부끄럽게도 나는 DB를 잘 사용하고 다루는 것에 많이 부족하다.최근 Real Mysql 8.0이라는 좋은 책을 읽었지만 내용도 많고 나에게는 어려운 부분이 많지만 그 중에서도 특히 EXAPLIN 활용에 대한 부분은 요약해서 기록하는게 필요 할 것 같다는 생각에 포스트로 작성하게 되었다.EXAPLIN 이란?SQL 데이터베이스에서 EXPLAIN은 쿼리의 실행 계획(execution plan)을 보여주는 명령어로, 개발자와 DBA가 쿼리의 성능을 분석하고 최적화하는 데 사용된다. 이 명령어는 쿼리를 실제로 실행하지 않고, 데이터베이스가 어떻게 쿼리를 처리할지 계획을 보여준다..
2025.03.26 -
JSON_ARRAYAGG와 JSON_OBJECTAGG 차이 (Mysql 8.0)
JSON_ARRAYAGG() 함수와 JSON_OBJECTAGG() 함수는 MySQL에서 JSON 데이터를 집계하는 데 사용되는 함수로, 각각 다른 형태의 JSON 구조를 생성한다. 이 두 함수의 차이점은 생성되는 JSON 데이터의 형태에 있다.1. JSON_ARRAYAGG()JSON_ARRAYAGG() 함수는 JSON 배열을 생성, 여러 개의 값을 한 배열로 묶어서 JSON 형태로 반환할 때 사용된다. 쉽게 말해, 특정 컬럼의 값을 순차적으로 모아서 하나의 배열을 만드는 역할을 한다.예제:다음과 같은 테이블이 있다고 가정id name1John2Jane3Smith이 데이터를 JSON_ARRAYAGG()로 집계하면:SELECT JSON_ARRAYAGG(name) AS names_arrayFROM employ..
2025.02.12 -
Nest, Adonis, Express 비교 하기
Node.js 환경에서 API 서버를 개발 할 때 처음엔 express를 사용했었다 그 당시에는 express가 너무 자유로워서 개발자들 마다 실력차이가 심하고 보일러플레이트 마다 안티패턴이 존재하거나 상대적으로 적을 수 있다고 생각이 들었다. 그러다가 nest.js를 접하면서 spring boot와 많이 닮아있는 nest.js가 만족스러웠는데 Lalavel에 영향을 받아 비슷한 구조를 가진다고 한다.공식문서, Chat GPT, 기타 검색을 통해 각 프레임워크에 차이가 궁금했는데 GPT의 답변이 요약과 정리가 잘 되어있다는 생각이 들었고 이해하는데 도움이 많이 된다는 생각이 들어 질문과 답변을 비루하게 나마 포스트로 남긴다.AdonisJS 와 nest.js의 특징, 장점, 단점에 대해 설명해줘Adonis..
2024.12.09 -
Nest.js 공부하기 (2)
Custom Pipe 만들기커스텀 파이프를 만들기 위해서는 PipeTransForm을 반드시 implements 해야 하고 transform 메서드를 오버라이드 해서 구현해야 한다.자바를 사용한 개발자라면 익숙한 방식 일 것 같다.import { ArgumentMetadata, PipeTransform } from '@nestjs/common';export class BoardStatusValidationPipe implements PipeTransform { transform(value: any, metadata: ArgumentMetadata) { throw new Error('Method not implemented.'); }}기본적으로 PipeTransform을 implem..
2024.11.27 -
Nest.js 공부하기 (1)
Nest.js란위 이미지는 구글 트렌드에서 나오는 Nest.js의 최근 5년간의 관심 변화량이다.Nest.js는 Node.js의 서버 애플리케이션 프레임워크로, TypeScript를 기본적으로 사용하고, 모듈러 아키텍처와 의존성 주입(DI)을 통해 유지보수성과 확장성이 높은 애플리케이션을 만들 수 있도록 설계되었고Angular에서 영감을 받아 비슷한 구조와 패턴을 따른다고 한다.Node로 백엔드 개발을 할 때 많은 선택을 받았다는 것을 알고 있었고 사용 해보고 있다.Angular에서 많은 철학적 영향을 받았다고 하는데 나는 Nest.js를 전혀 모르는 상태에서 코드를 보았을 때 Spring boot와 유사한 느낌을 많이 받았다.Javascript는 너무 자유롭고 Standard를 찾기 어렵다는 생각이 많..
2024.11.04 -
Prisma 공부하기
Prisma 공부하기최근 이직한 이후 신생회사에서 근무하게 되었고 기술전환을 하는 과정에서 Nest.js와 Prisma를 사용하는 것으로 최종 결정 되었다, 장기적으로 좋은 부분인 것 같다. 이제 1개월이 갓 지났지만 새삼 Node 환경에서 개발을 하다보니 Spring boot환경에 비해 정말 간편하고 빠르고 뭔가 가볍다는 느낌을 많이 받는 것 같다. Prisma에 대해 공부하며 글이 정리 될 때까지 글이 계속 수정 될 것 같다.ORM에 대하여나는 개인적으로 JPA를 공부하며 상당히 재밌고 좋다고 느꼈다. 그런데 막상 사용하려고 하거나 실무에서 사용 할 때 주의해야 하는 부분들을 알게 되면서 러닝커브가 높고 쉽지않은 기술이라는 생각도 많이 들었다. 아마도 국내에서 JPA를 가장 잘 아는분은 김영한님이 아..
2024.10.20